Fedora 22 on the Acer c720

Posted: 6/1/15 10:21 AM

I've had an Acer c720 Chromebook for quite a while now.  Immediately after I acquired the Chromebook I removed ChromeOS and installed desktop Linux.  Thanks to some excellent work by John Lewis it now behaves like a normal laptop, but at a much reduced priced.  I started with Arch Linux, but decided when Fedora 22 came out to switch to something more complete out of the box.  Surprisingly a full Fedora 22 workstation install is about the same size as an Arch Linux install with GNOME shell, but with quicker updates and a much more polished appearance.  The 4.0.4 kernel fixes a number of annoyances I originally had when I first purchased the Chromebook, but it still requires a few changes to get suspend and other hardware working.  I'll try to document the changes required to get Fedora 22 working as intended.

Suspend

The most annoying problem is suspending the machine out of the box will cause the laptop to hang on shutdown and cause general slowness.  This is due to an issue with the ehci_pci driver.  I'm not sure if this will be fixed eventually in the kernel, but nothing I've seen yet indicates that.  To workaround the problem you need to make a few changes.

Create the file /etc/rc.d/rc.local

#!/bin/bash

# fix ehci_pci suspend errors
echo 1 > "/sys/devices/pci0000:00/0000:00:1d.0/remove"

# disable touchpad wakeup
awk '{if ($3 == "*enabled") print $1}' /proc/acpi/wakeup | while read NAME ; do
    echo "${NAME}" > /proc/acpi/wakeup
done

# fix kswapd0 100% cpu
echo madvise > /sys/kernel/mm/transparent_hugepage/enabled

exit 0

You will also need to enable the rc-local.service

$ sudo chmod +x /etc/rc.d/rc.local

Change the following lines in /etc/systemd/logind.conf

HandleLidSwitch=suspend
HandleLidSwitchDocked=suspend

Wireless

The default settings for the wireless driver are not ideal for maximizing signal quality.  You can apply the modprobe changes below to improve the signal quality.  I tried to enable the power savings mode, but this was causing network delays which seemed to stall dnf sometimes and slowed down firefox.

Create the file /etc/modprobe.d/ath9k.conf

# improve wifi signal quality
options ath9k btcoex_enable=1 bt_ant_diversity=1 ps_enable=0

Sound

To get the microphone to work with Skype and other applications you need to either select the correct input port using pavucontrol or apply an ALSA modprobe fix which seems to correct the port assignment.

Create the file /etc/modprobe.d/alsa.conf

# fix internal microphone
options snd_hda_intel model=,alc283-dac-wcaps

Power

Fedora 22 provides a few useful services to reduce power consumption without too much manual work.  Install the tuned and powertop packages to help reduce power consumption.

$ sudo dnf install tuned powertop

Enabling these two services is good enough in most cases

$ sudo systemctl enable tuned.service
$ sudo systemctl enable powertop.service

Keyboard

I find it useful to change the keybindings in GNOME shell so that F6-F10 function as they did in ChromeOS.  To enable this first install the xdotool package and then paste the sequence of gsettings commands from here into a terminal window.

$ sudo dnf install xdotool

If you want to enable some of the ALT+<key> shortcut keys like in ChromeOS you can use xbindkeys combined with xdotool.  The key sequences must be triggered on key release, which is why xbindkeys must be used vs GNOME shortcut keys, for more information see here.  Create the following config file at ~/.xbindkeysrc and then run xbindkeys.

$ sudo dnf install xbindkeys
$ editor ~/.xbindkeysrc

"xdotool key --clearmodifiers --delay 0 Delete"
    Alt + BackSpace + Release

"xdotool key --clearmodifiers --delay 0 Page_Up"
    Alt + Up + Release

"xdotool key --clearmodifiers --delay 0 Page_Down"
    Alt + Down + Release

"xdotool key --clearmodifiers --delay 0 Home"
    Alt + Left + Release

"xdotool key --clearmodifiers --delay 0 End"
    Alt + Right + Release

$ xbindkeys

Show/Add Comments (0)