Difference between revisions of "Acer C720 Chromebook"

From ArchWiki
Jump to navigation Jump to search
(→‎Touchpad Configuration: we shouldn't encourage using synaptics at all since it is in "maintenance mode")
 
(68 intermediate revisions by 21 users not shown)
Line 1: Line 1:
 
[[Category:Acer]]
 
[[Category:Acer]]
 
[[ja:Acer C720 Chromebook]]
 
[[ja:Acer C720 Chromebook]]
[[zh-cn:Acer C720 Chromebook]]
+
[[zh-hans:Acer C720 Chromebook]]
 +
{{Related articles start}}
 +
{{Related|Chrome OS devices}}
 +
{{Related|Laptop}}
 +
{{Related articles end}}
 
{{Warning|This article relies on third-party scripts and modifications, and may irreparably damage your hardware or data. Proceed at your own risk.}}
 
{{Warning|This article relies on third-party scripts and modifications, and may irreparably damage your hardware or data. Proceed at your own risk.}}
The Acer C720 Chromebook (and newer Chromebooks in general) features a "legacy boot" mode that makes it easy to boot Linux and other operating systems. The legacy boot mode is provided by the [http://www.coreboot.org/SeaBIOS SeaBIOS] payload of coreboot. SeaBIOS behaves like a traditional BIOS that boots into the MBR of a disk, and from there into your standard bootloaders like Syslinux and GRUB.
+
The Acer C720 Chromebook (and newer Chromebooks in general) features a "legacy boot" mode that makes it easy to boot Linux and other operating systems. The legacy boot mode is provided by the [http://www.coreboot.org/SeaBIOS SeaBIOS] payload of [http://www.coreboot.org/ Coreboot]. SeaBIOS behaves like a traditional BIOS that boots into the MBR of a disk, and from there into your standard bootloaders like Syslinux and GRUB.
  
 
== Installation ==
 
== Installation ==
  
First enable legacy boot / SeaBIOS, this can either be done by enabling the pre-installed version of SeaBIOS or by installing a custom ROM. The pre-installed SeaBIOS route has the advantage of being officially implemented by Google whereas the custom ROM route has other advantages such as being more up-to-date, reducing the boot time, removing the Developer Mode screen and enabling VMX. After accessing SeaBIOS you will be able to install and boot Linux as you would on a traditional x86 BIOS system.
+
Go to the [[Chrome OS devices]] page, read the [[Chrome OS devices#Introduction|Introduction]] and continue by following the [[Chrome OS devices#Installation|Installation]] guide.
  
{{Note|If you intend to stay using pre-installed SeaBIOS route and think you won't appreciate having to press {{ic|Ctrl + L}} every time you boot to reach SeaBIOS then you can set coreboot to boot to SeaBIOS by default so it isn't necessary to press {{ic|Ctrl + L}}; this currently must be done inside of Chrome OS and requires removing the write-protect screw so if you would like to do this then it may be a good idea to remove the write-protect screw now so that you will not have to reinstall Chrome OS later with recovery install media. If you would like to do this now then you can do so by removing the bottom panel of the laptop by removing the 12 visible screws and another one underneath the warranty sticker, then separating the plastic starting at the back and finally completely removing the write-protect screw from the motherboard, which is labelled as #7 in [http://www.chromium.org/_/rsrc/1381990807648/chromium-os/developer-information-for-chrome-os-devices/acer-c720-chromebook/c720-chromebook-annotated-innards.png this picture].}}
+
== Configuration ==
  
=== Enabling Developer Mode ===
+
For information on general Chromebook post installation configuration (hotkeys, power key handling ...) see the [[Chrome OS devices#Post installation configuration|Post installation configuration]] on the [[Chrome OS devices]] page.
  
[http://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/acer-c720-chromebook#TOC-Developer-Mode Developer Mode] is necessary to access the superuser shell inside Chrome OS; which is required to make the changes to the system to allow you to boot through SeaBIOS.
+
=== Touchpad Configuration ===
  
{{Warning|Enabling Developer Mode will wipe all of your data.}}
+
See the [[libinput]] article on how to install and setup your touchpad.
  
To enable Developer Mode:
+
=== Improving WLAN and BT performance ===
  
* Turn on the Chromebook.
+
The C720 comes with Atheros AR9462 WLAN and Bluetooth chip which supported by {{ic|ath9k}} kernel module, the following options to the {{ic|ath9k}} module can help to affect the performance, quality and power consumption of the chip.
* Press and hold the {{ic|Esc + F3 (Refresh)}} keys, then press the {{ic|Power}} button. This enters Recovery Mode.
 
* Press {{ic|Ctrl + D}} (no prompt). It will ask you to confirm, then the system will revert its state and enable Developer Mode.
 
{{Note|Press {{ic|Ctrl + D}} (or wait 30 seconds for the beep and boot) at the white boot splash screen to enter Chrome OS.}}
 
 
 
=== Accessing the superuser shell ===
 
 
 
After you have enabled Developer Mode you will need to access the superuser shell.; how you do this depends on whether you've configured Chrome OS or not.
 
 
 
==== Accessing the Superuser shell without Chrome OS configuration ====
 
 
 
If you haven't configured Chrome OS, just press {{ic|Ctrl + Alt + F2}} (F2 is the "forward" arrow on the top row, →), you'll see a login prompt.
 
 
 
* Use {{ic|chronos}} as the username, it should not prompt you for a password.
 
* Become superuser with {{ic|sudo bash}}.
 
 
 
==== Accessing the superuser shell with Chrome OS configuration ====
 
 
 
If you have configured Chrome OS already:
 
 
 
* Open a crosh window with {{ic|Ctrl + Alt + T}}.
 
* Open a bash shell with the {{ic|shell}} command.
 
* Become superuser with {{ic|sudo bash}}
 
 
 
=== Enabling SeaBIOS ===
 
 
 
This method will allow you to access the pre-installed version of SeaBIOS through the Developer Mode screen in coreboot.
 
 
 
* Inside your superuser shell enter:
 
# crossystem dev_boot_usb=1 dev_boot_legacy=1
 
* Reboot the machine.
 
 
 
You can now start SeaBIOS by pressing {{ic|Ctrl + L}} at the white boot splash screen.
 
 
 
==== Boot to SeaBIOS by default ====
 
 
 
If you want to make SeaBIOS default, you must do the following:
 
 
 
{{Warning|If you do not remove the write-protect screw then your system will become corrupted, on empty battery Chrome OS is forced to recover and you lose your Arch Linux. If you would like to remove the write-protect screw then you can do so by removing the bottom panel of the laptop by removing the 12 visible screws and another one underneath the warranty sticker, then separating the plastic starting at the back and finally completely removing the write-protect screw from the motherboard, which is labelled as #7 in [http://www.chromium.org/_/rsrc/1381990807648/chromium-os/developer-information-for-chrome-os-devices/acer-c720-chromebook/c720-chromebook-annotated-innards.png this picture].}}
 
 
 
* Inside your superuser shell enter:
 
 
# sudo su
 
# set_gbb_flags.sh 0×489
 
 
 
=== Installing Arch Linux ===
 
 
 
{{Poor writing|Duplicated content}}
 
 
 
Create an [https://wiki.archlinux.org/index.php/USB_Flash_Installation_Media Arch Linux Installer USB drive] then plug the USB drive into the Chromebook and start SeaBIOS with {{ic|Ctrl + L}} at the white boot splash screen. Press {{ic|Esc}} to get a boot menu and select the number corresponding to your USB drive. The Arch Linux installer boot menu should appear and installation can proceed as normal.
 
 
 
{{Note|Choose [https://wiki.archlinux.org/index.php/Beginners%27_Guide#GRUB GRUB] as your boot loader for now instead of Syslinux. See [[#Syslinux | Known Issues]]}}
 
 
 
==== 64-bit installation with the newest 2014.07.03 ISO ====
 
 
 
Create a new FAT32 partition on your USB drive e.g. with gparted and '''label it as ArchLinux'''.
 
 
 
{{Warning|Without the label it won't work}}
 
 
 
*Mount the new partition (replace x with the correct letter as shown with sudo fdisk -l and username with your own username)
 
 
 
# mount /dev/sdx1 /mnt/ -o uid=username,gid=users
 
 
 
Install GRUB2 on the USB drive
 
 
 
# grub-install --no-floppy --root-directory=/mnt /dev/sdx
 
 
 
Create a new directory in /mnt/boot
 
 
 
# /mnt/boot/archlinux-20140703-dual
 
 
 
Mount the archlinux-2014.07.03-dual.iso
 
 
 
$ mkdir ~/iso
 
# mount -o loop archlinux-2014.07.03-dual.iso ~/iso
 
 
 
Copy the mounted files to the usb drive
 
 
 
$ cp -r ~/iso/arch/* /mnt/boot/archlinux-20140703-dual
 
 
 
Create the grub.cfg file
 
 
 
{{hc|head=/mnt/boot/grub/grub.cfg|
 
output=menuentry "Arch Linux 64 Bit" {
 
linux /boot/archlinux-20140703-dual/boot/x86_64/vmlinuz archisobasedir=/boot/archlinux-20140703-dual archisolabel=ArchLinux
 
initrd /boot/archlinux-20140703-dual/boot/x86_64/archiso.img
 
}
 
}}
 
 
 
=== Xorg video driver ===
 
 
 
[[Pacman|Install]] the {{Pkg|xf86-video-intel}} driver.
 
 
 
=== Touchpad ===
 
 
 
==== Touchpad kernel modules ====
 
 
 
Kernel 3.16.1 should be the last kernel that requires these patches, as a fix has been merged into 3.17-rc1.
 
 
 
===== Install patched kernel =====
 
 
 
Install {{AUR|linux-chromebook}} from [[AUR]]
 
 
 
===== Manually build the modules =====
 
 
 
{{Poor writing|Low quality scripts}}
 
 
 
Enabling the touchpad currently requires building a set of patched Haswell Chromebook kernel modules.
 
 
 
{{Warning|Do not use [http://pastebin.com/ pastebin.com]. It appears to be the most popular site but it is slow, full of adverts, formats the text badly (it will mess up your code) and many people can not even open the site due to aggressive spam filters.}}
 
 
 
* kernel 3.16.1, simply run [https://github.com/masmullin2000/arch-c720p this script] after installing these packages:
 
 
 
$ pacman -S wget sudo patch make gcc git
 
 
 
 
 
==== Touchpad Configuration ====
 
 
 
* Edit the Xorg touchpad configuration file
 
Add the Xorg touchpad configuration below for better usability (increases touchpad sensitivity).
 
 
 
{{hc|/etc/X11/xorg.conf.d/50-cros-touchpad.conf|
 
Section "InputClass"
 
    Identifier      "touchpad peppy cyapa"
 
    MatchIsTouchpad "on"
 
    MatchDevicePath "/dev/input/event*"
 
    MatchProduct    "cyapa"
 
    Option          "FingerLow" "10"
 
    Option          "FingerHigh" "10"
 
EndSection}}
 
 
 
If you want to remove the "right-click" behavior from the touchpad from the bottom right area (you can still right-click with two finger clicks), you should comment out the following section from <code>/etc/X11/xorg.conf.d/50-synaptics.conf</code>
 
 
 
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|
 
#Section "InputClass"
 
#        Identifier "Default clickpad buttons"
 
#        MatchDriver "synaptics"
 
#        Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"
 
#      To disable the bottom edge area so the buttons only work as buttons,
 
#      not for movement, set the AreaBottomEdge
 
#      Option "AreaBottomEdge" "82%"
 
#EndSection
 
}}
 
 
 
* Use a graphical tool
 
[[Touchpad_Synaptics#Graphical_tools | Synaptiks]] is a touchpad configuration and management tool for [[KDE]]. It provides a system settings module to configure basic and advanced features of the touchpad. Although it is said to be currently unmaintained and seems to crash under KDE 4.11, it works well with this Chromebook under KDE 4.12.2.
 
Another utility, [https://aur.archlinux.org/packages/kcm_touchpad/ kcm_touchpad], does not work at all.
 
 
 
Reboot for the touchpad to become operational.
 
 
 
=== Touchscreen (C720P model) ===
 
 
 
Kernel 3.16.1 should be the last kernel that requires these patches, as a fix has been merged into 3.17-rc1.
 
 
 
==== Install patched kernel ====
 
 
 
Install {{AUR|linux-chromebook}} from [[AUR]]
 
 
 
==== Manually build the modules ====
 
 
 
If you're using a touchscreen-enabled model (such as the C720P), you may use a modified version of the previous touchpad script to install patched modules for the touchscreen as well.
 
 
 
For kernel 3.16 the above script has moved to a GitHub repository.  The script no longer uses the /tmp directory for downloading and compiling, so you'll have to clean up after using.
 
 
 
$ git clone https://github.com/masmullin2000/arch-c720p.git
 
$ cd arch-c720p
 
$ sh ./touch.sh
 
 
 
=== Fix Audio ===
 
  
 +
To add the desired module options, just create a {{ic|ath9k.conf}} file as shown here with some example settings:
 +
{{hc|/etc/modprobe.d/ath9k.conf|
 +
output=options ath9k bt_ant_diversity=1 ps_enable=0}}
  
Create <code>/etc/modprobe.d/alsa.conf</code>
+
Details of possible settings are below.
  
{{hc|head=/etc/modprobe.d/alsa.conf|
+
==== Bluetooth coexistence ====
output=option snd_hda_intel index=1}}
+
Both Bluetooth and WiFi can use 2.4 GHz, which can cause interference. You can enable Bluetooth coexistence to improve the performance of the card with the option {{ic|1=btcoex_enable=1}}.
  
Create this specific <code>~/.asoundrc</code> file
+
==== Power saving ====
 +
You can enable power savings with the option {{ic|1=ps_enable=1}} to reduce power usage, though it has been [https://bbs.archlinux.org/viewtopic.php?pid=1481644#p1481644 suggested] that enabling it might be related to system freezes and also to dropouts so if you encounter such issues then you might want to make sure it's disabled ({{ic|1=ps_enable=0}}).
  
{{hc|~/.asoundrc|
+
==== Improving signal quality ====
# Standard
+
Enable antenna diversity with the option {{ic|1=bt_ant_diversity=1}} to improve the signal quality and boost performance. However, keep in mind that [https://wireless.wiki.kernel.org/en/users/drivers/ath9k/antennadiversity this disables the bluetooth interface] and, as such, bluetooth coexistence  must not be loaded at the same time.
pcm.!default {
 
  type hw
 
  card 1
 
  device 0
 
}
 
  
ctl.!default {
+
==== Fixing decrease in bandwidth ====
  type hw
+
If you are experiencing a decrease in bandwidth at seemingly random times try switching from hardware to software wireless encryption as explained in [[Wireless network configuration#ath9k]].
  card 1
 
}
 
  
pcm_slave.slavej {
+
=== Enabling the light sensor ===
  pcm "hw:1"
 
  channels 2
 
  rate 44100
 
}
 
  
pcm.plugj {
+
Intersil ISL29018 is the light sensor in the C720, as default its module is disabled on build time so in order to use the sensor the kernel should be recompiled with {{ic|CONFIG_SENSORS_ISL29018}} enabled. You can also compile just the single module. Follow the preparation instructions as [[Compile kernel module]], enable the module in your <code>.config</code> and execute
  type plug
 
  slave slavej
 
}
 
  
# HDMI
+
$ make SUBDIRS=drivers/staging/iio/light modules
#pcm.!default {
 
  #type hw
 
  #card 1
 
  #device 3
 
#}
 
  
#ctl.!default {
+
then follow [[Compile kernel module#Module installation]] to install the module.
  #type hw
 
  #card 0
 
#}
 
  
}}
+
== Suspend ==
  
To fix FlashPlugin audio with PulseAudio use this specific <code>.asoundrc</code> file
+
=== Fix wakeup from suspend on lid close ===
  
{{hc|~/.asoundrc|
+
When the lid of the C720 is closed, the top of the screen presses against the touchpad, instantly waking the computer from suspend. To disable wakeup by touchpad, create the following file:
# Standard
 
pcm.pulse {
 
  type pulse
 
}
 
  
ctl.pulse {
+
{{hc|head=/etc/tmpfiles.d/disable-touchpad-wakeup.conf|
  type pulse
+
output=
}
+
w /proc/acpi/wakeup - - - - TPAD}}
pcm.!default {
 
type pulse
 
#  type hw
 
#  card 1
 
# device 0
 
}
 
  
ctl.!default {
+
To check the current state:
type pulse
 
# type hw
 
  #card 1
 
}
 
  
pcm_slave.slavej {
+
# cat /proc/acpi/wakeup | grep TPAD
  pcm "hw:1"
 
  channels 2
 
  rate 44100
 
}
 
  
pcm.plugj {
+
Alternatively, it may be toggled manually by running:
  type plug
 
  slave slavej
 
}
 
  
# HDMI
+
# su
#pcm.!default {
+
# echo TPAD > /proc/acpi/wakeup
  #type hw
 
  #card 1
 
  #device 3
 
#}
 
  
#ctl.!default {
+
This method does not persist after a reboot.
  #type hw
 
  #card 0
 
#}
 
  
}}
+
=== Lots of ehci errors in dmesg after resume ===
 
 
=== Fixing suspend ===
 
 
 
The following are instructions to fix the suspend functionality.
 
Depending if you use the pre-installed SeaBIOS or John Lewis' pre-built custom ROMs with {{AUR|linux-chromebook}} you might no need the following fix.
 
With the recent 3.17rc5 kernel the suspend fix still needed.
 
 
 
There have been a few alternatives discussed and those may work better for some. [https://bbs.archlinux.org/viewtopic.php?pid=1364376#p1364376] [https://bbs.archlinux.org/viewtopic.php?pid=1364521#p1364521]
 
 
 
NOTE: Lid suspend doesn't work directly after boot, you need to wait a little.
 
 
 
Create the following {{ic|cros-acpi-wakeup.conf}} file.
 
 
 
{{hc|head=/etc/tmpfiles.d/cros-acpi-wakeup.conf|
 
output=w /proc/acpi/wakeup - - - - EHCI
 
w /proc/acpi/wakeup - - - - HDEF
 
w /proc/acpi/wakeup - - - - XHCI
 
w /proc/acpi/wakeup - - - - LID0
 
w /proc/acpi/wakeup - - - - TPAD
 
w /proc/acpi/wakeup - - - - TSCR}}
 
 
 
Then, create the following {{ic|cros-sound-suspend.sh}} file. Only the EHCI binding/unbinding lines are listed below; see the alternatives linked above for additional sound suspend handling if you experience issues.
 
 
 
{{hc|head=/usr/lib/systemd/system-sleep/cros-sound-suspend.sh|
 
output=<nowiki>#!/bin/bash
 
 
 
case $1/$2 in
 
  pre/*)
 
    # Unbind ehci for preventing error
 
    echo -n "0000:00:1d.0" | tee /sys/bus/pci/drivers/ehci-pci/unbind
 
    # Unbind snd_hda_intel for sound
 
    echo -n "0000:00:1b.0" | tee /sys/bus/pci/drivers/snd_hda_intel/unbind
 
    echo -n "0000:00:03.0" | tee /sys/bus/pci/drivers/snd_hda_intel/unbind
 
    ;;
 
  post/*)
 
    # Bind ehci for preventing error
 
    echo -n "0000:00:1d.0" | tee /sys/bus/pci/drivers/ehci-pci/bind
 
    # bind snd_hda_intel for sound
 
    echo -n "0000:00:1b.0" | tee /sys/bus/pci/drivers/snd_hda_intel/bind
 
    echo -n "0000:00:03.0" | tee /sys/bus/pci/drivers/snd_hda_intel/bind
 
    ;;
 
esac</nowiki>}}
 
 
 
Make sure to make the script executable:
 
# chmod +x /usr/lib/systemd/system-sleep/cros-sound-suspend.sh </code>
 
Then add the following kernel boot parameters. Different combinations have been mentioned, with {{ic|1=tpm_tis.force=1}} being the most important.
 
 
 
{{hc|head=/etc/default/grub|
 
output=GRUB_CMDLINE_LINUX_DEFAULT="quiet add_efi_memmap boot=local noresume noswap i915.modeset=1 tpm_tis.force=1 tpm_tis.interrupts=0 nmi_watchdog=panic,lapic"}}
 
 
 
Then [[GRUB#Generating main configuration file|rebuild your grub config]].
 
 
 
=== Improving WLAN and BT performance ===
 
 
 
The C720 comes with a AR9462 WLAN+BT chip. Both Bluetooth and WiFi can use 2.4 GHz, which can cause interference. You can enable Bluetooth coexistence to improve the performance of the card. Additionally, you can enable power savings and antennae diversity to reduce power usage and boost performance:
 
 
 
{{hc|/etc/modprobe.d/ath9k.conf|
 
output=options ath9k btcoex_enable=1 ps_enable=1 bt_ant_diversity=1}}
 
  
== Post Installation Configuration ==
+
See [[Chrome OS devices#Fixing suspend]].  Additionally, [https://bbs.archlinux.org/viewtopic.php?pid=1364521#p1364521], [https://github.com/vonbrownie/linux-post-install/blob/master/config/c720_jessiebook/lib/systemd/system-sleep/ehci-pci.sh], [https://philipalban.wordpress.com/2014/04/25/fixing-suspend-in-xubuntu-on-the-acer-c720-a-simplified-guide/], and [https://bugzilla.redhat.com/show_bug.cgi?id=1218734] may be helpful.
  
For information on general Chromebook post installation configuration (hotkeys, power key handling ...) see [[Chromebook#Post_Installation_Configuration]].
+
One symptom may be that it cannot properly shut down or reboot.
  
== Known issues ==
+
== Locating the Write-Protect Screw ==
  
=== Syslinux ===
+
* Remove the bottom panel of the laptop by removing the 12 visible screws and another one underneath the warranty sticker.
 +
* Separate the plastic starting at the back.
 +
* Remove completely the write-protect screw from the motherboard, which is labelled as #7 in [http://www.chromium.org/_/rsrc/1381990807648/chromium-os/developer-information-for-chrome-os-devices/acer-c720-chromebook/c720-chromebook-annotated-innards.png this picture].
  
Syslinux fails to set the bootable flag with {{ic|syslinux-install_update -i -a -m}}. After setting the bootable flag manually in {{ic|fdisk}} and installing Syslinux to the MBR with {{ic|syslinux-install_update -i -m}}, SeaBIOS boots Syslinux, but Syslinux then complains about a missing OS. Use GRUB for now.
+
== Known Issues ==
  
== Unbricking with Raspberry Pi==
+
=== System freezes ===
  
Get yourself an SOIC clip [http://www.hmcelectronics.com/product/Pomona/5250], and hook up the SOIC clip and jumper wires [http://flashrom.org/RaspberryPi] [http://elinux.org/Rpi_Low-level_peripherals#General_Purpose_Input.2FOutput_.28GPIO.29] [https://drive.google.com/folderview?id=0B9f62MH0umbmRTA2Xzd5WHhjWEU&usp=sharing]
+
See power saving section at [[#Improving WLAN and BT performance|Improving WLAN and BT performance]].  
  
[[Install]] {{Pkg|flashrom}}. Enable {{ic|spi}}:
+
Additionally see [[SSD#Troubleshooting]] if the system freezes are associated with hard drive errors in the system's journal.
  
# modprobe spi_bcm2708
+
=== Internal microphone not working ===
# modprobe spidev
 
  
Backup ROM:
+
If your internal microphone is not working (for example, in Skype), select "Microphone (unplugged)" as your input source in the PulseAudio Volume Control. Your internal microphone should now work. [http://forums.bodhilinux.com/index.php?/topic/9975-microphone-support-on-acer-c720/]
  
flashrom -r backup-rom.bin -VVV -p linux_spi:dev=/dev/spidev0.0
+
See also [[Chrome OS devices#Fixing audio]] for another possible solution.
  
Flash the new ROM:
+
=== System shutdown on battery ===
  
flashrom -w new-rom.bin -VVV -p linux_spi:dev/dev/spidev0.0
+
If you are on battery and the system shutdown when you use the keyboard, it's probably a battery switch mulfunction (cover don't press it all time), labbeled #5 in [http://www.chromium.org/_/rsrc/1381990807648/chromium-os/developer-information-for-chrome-os-devices/acer-c720-chromebook/c720-chromebook-annotated-innards.png this picture]. It is a safety mechanism to prevent the Acer C720 from being powered by the battery while the cover is removed.
  
See [http://www.tnhh.net/2014/08/25/unbricking-chromebook-with-beaglebone.html] for BeagleBone instructions.
+
You can bypass this switch with a screw inserted in hole #6.
  
 
== See also ==
 
== See also ==
  
 +
* [http://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/acer-c720-chromebook Chromium OS Acer C720 & C720P Developer Page]
 
* [https://bbs.archlinux.org/viewtopic.php?id=173418 BBS topic]
 
* [https://bbs.archlinux.org/viewtopic.php?id=173418 BBS topic]
 +
* Unbricking with {{Pkg|flashrom}} [http://flashrom.org/RaspberryPi using the Raspberry Pi], requires [http://www.hmcelectronics.com/product/Pomona/5250 SOIC clip], See [http://elinux.org/Rpi_Low-level_peripherals#General_Purpose_Input.2FOutput_.28GPIO.29 GPIO matrix] and [https://drive.google.com/folderview?id=0B9f62MH0umbmRTA2Xzd5WHhjWEU&usp=sharing pictures]. also there is a [http://www.tnhh.net/2014/08/25/unbricking-chromebook-with-beaglebone.html BeagleBone method].
 +
* [https://github.com/GalliumOS/galliumos-haswell Configuration files with optimization tweaks for Haswell devices used by default in the GalliumOS Linux distribution].

Latest revision as of 18:10, 17 April 2017

Warning: This article relies on third-party scripts and modifications, and may irreparably damage your hardware or data. Proceed at your own risk.

The Acer C720 Chromebook (and newer Chromebooks in general) features a "legacy boot" mode that makes it easy to boot Linux and other operating systems. The legacy boot mode is provided by the SeaBIOS payload of Coreboot. SeaBIOS behaves like a traditional BIOS that boots into the MBR of a disk, and from there into your standard bootloaders like Syslinux and GRUB.

Installation

Go to the Chrome OS devices page, read the Introduction and continue by following the Installation guide.

Configuration

For information on general Chromebook post installation configuration (hotkeys, power key handling ...) see the Post installation configuration on the Chrome OS devices page.

Touchpad Configuration

See the libinput article on how to install and setup your touchpad.

Improving WLAN and BT performance

The C720 comes with Atheros AR9462 WLAN and Bluetooth chip which supported by ath9k kernel module, the following options to the ath9k module can help to affect the performance, quality and power consumption of the chip.

To add the desired module options, just create a ath9k.conf file as shown here with some example settings:

/etc/modprobe.d/ath9k.conf
options ath9k bt_ant_diversity=1 ps_enable=0

Details of possible settings are below.

Bluetooth coexistence

Both Bluetooth and WiFi can use 2.4 GHz, which can cause interference. You can enable Bluetooth coexistence to improve the performance of the card with the option btcoex_enable=1.

Power saving

You can enable power savings with the option ps_enable=1 to reduce power usage, though it has been suggested that enabling it might be related to system freezes and also to dropouts so if you encounter such issues then you might want to make sure it's disabled (ps_enable=0).

Improving signal quality

Enable antenna diversity with the option bt_ant_diversity=1 to improve the signal quality and boost performance. However, keep in mind that this disables the bluetooth interface and, as such, bluetooth coexistence must not be loaded at the same time.

Fixing decrease in bandwidth

If you are experiencing a decrease in bandwidth at seemingly random times try switching from hardware to software wireless encryption as explained in Wireless network configuration#ath9k.

Enabling the light sensor

Intersil ISL29018 is the light sensor in the C720, as default its module is disabled on build time so in order to use the sensor the kernel should be recompiled with CONFIG_SENSORS_ISL29018 enabled. You can also compile just the single module. Follow the preparation instructions as Compile kernel module, enable the module in your .config and execute

$ make SUBDIRS=drivers/staging/iio/light modules

then follow Compile kernel module#Module installation to install the module.

Suspend

Fix wakeup from suspend on lid close

When the lid of the C720 is closed, the top of the screen presses against the touchpad, instantly waking the computer from suspend. To disable wakeup by touchpad, create the following file:

/etc/tmpfiles.d/disable-touchpad-wakeup.conf
w /proc/acpi/wakeup - - - - TPAD

To check the current state:

# cat /proc/acpi/wakeup | grep TPAD

Alternatively, it may be toggled manually by running:

# su
# echo TPAD > /proc/acpi/wakeup

This method does not persist after a reboot.

Lots of ehci errors in dmesg after resume

See Chrome OS devices#Fixing suspend. Additionally, [1], [2], [3], and [4] may be helpful.

One symptom may be that it cannot properly shut down or reboot.

Locating the Write-Protect Screw

  • Remove the bottom panel of the laptop by removing the 12 visible screws and another one underneath the warranty sticker.
  • Separate the plastic starting at the back.
  • Remove completely the write-protect screw from the motherboard, which is labelled as #7 in this picture.

Known Issues

System freezes

See power saving section at Improving WLAN and BT performance.

Additionally see SSD#Troubleshooting if the system freezes are associated with hard drive errors in the system's journal.

Internal microphone not working

If your internal microphone is not working (for example, in Skype), select "Microphone (unplugged)" as your input source in the PulseAudio Volume Control. Your internal microphone should now work. [5]

See also Chrome OS devices#Fixing audio for another possible solution.

System shutdown on battery

If you are on battery and the system shutdown when you use the keyboard, it's probably a battery switch mulfunction (cover don't press it all time), labbeled #5 in this picture. It is a safety mechanism to prevent the Acer C720 from being powered by the battery while the cover is removed.

You can bypass this switch with a screw inserted in hole #6.

See also