Difference between revisions of "Dell Chromebook 11"

From ArchWiki
Jump to navigation Jump to search
(→‎Power Key and Lid Switch Handling: remove power key handling as this explained in the chromebook page (post installation configs))
(flagged broken section links (interactive))
Tag: wiki-scripts
 
(32 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
[[Category:Dell]]
 
[[Category:Dell]]
 +
[[ja:Dell Chromebook 11]]
 +
{{Related articles start}}
 +
{{Related|Chromebook}}
 +
{{Related articles end}}
 
The Dell Chromebook 11 (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 Dell Chromebook 11 (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.
  
Line 10: Line 14:
 
=== Enabling Developer Mode ===
 
=== Enabling Developer Mode ===
  
{{Warning|'''This will wipe all of your data!'''}}
+
See the [[Chromebook#Enabling developer mode|Chromebook page]].
  
To enter developer mode:
+
=== Patching SeaBIOS ===
* Press and hold the {{ic|Esc+F3 (Refresh)}} keys, then press the {{ic|Power}} button. This enters recovery mode.
 
* Now, press {{ic|Ctrl+D}} (no prompt). It will ask you to confirm, then the system will revert its state and enable developer mode.
 
* Press {{ic|Ctrl+D}} (or wait 30 seconds for the beep and boot) at the white boot splash screen to enter Chrome OS.
 
 
 
After changing to developer mode, configure Chrome OS so that you can log in, or use the guest account.
 
 
 
=== SeaBIOS ===
 
  
 
{{Warning|'''This may screw up the RW part of your firmware! If this happens, you must use a ChromeOS recovery stick to reset it.'''}}
 
{{Warning|'''This may screw up the RW part of your firmware! If this happens, you must use a ChromeOS recovery stick to reset it.'''}}
Line 28: Line 25:
 
* Open a bash shell with the {{ic|shell}} command.
 
* Open a bash shell with the {{ic|shell}} command.
 
* Become superuser with {{ic|sudo bash}}
 
* Become superuser with {{ic|sudo bash}}
* Download the patched seabios.cbfs from https://code.google.com/p/chromium/issues/detail?id=348403#c4, and save it to Downloads.
+
* Download the patched seabios.cbfs from [https://code.google.com/p/chromium/issues/detail?id=348403#c30], and save it to Downloads.
 
* Patch SeaBIOS with the following commands:
 
* Patch SeaBIOS with the following commands:
  
Line 36: Line 33:
 
  # flashrom -w image.rom -i RW_LEGACY
 
  # flashrom -w image.rom -i RW_LEGACY
  
* Enable legacy boot with:
+
=== Enabling SeaBIOS ===
# 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.
+
Continue by following [[Chromebook#Enabling_SeaBIOS|Enabling SeaBIOS]]{{Broken section link}} on the [[Chromebook]] page.
  
 
=== Installing Arch Linux ===
 
=== Installing Arch Linux ===
  
Create a [https://wiki.archlinux.org/index.php/USB_Flash_Installation_Media USB drive] with the Arch Linux installer. 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. Follow your favorite [https://wiki.archlinux.org/index.php/Beginners%27_Guide installation guide].
+
Continue by following the [[Chromebook#Installation|Installation]] guide on the [[Chromebook]] page.
  
A few installation notes:
+
== Post Installation Configuration ==
* For a 64-bit installation, use the 2013.10.01 ISO, and boot into the x86_64 installer with the {{ic|1=mem=1536m}} kernel option. (You can download torrent on [http://linuxtracker.org/index.php?page=torrent-details&id=4343552155062db9a7a05a10904f5c68f98b1216 linuxtracker.org])
 
* A fresh DOS partition table on the SSD with one bootable 16GB root partition works. Note that this will wipe Chrome OS.
 
* Choose [https://wiki.archlinux.org/index.php/Beginners%27_Guide#GRUB GRUB] as your bootloader, for now, instead of Syslinux.
 
* After installing it's not Ctrl + D to boot OS it's Ctrl + L (To save you hours figuring out why you can't boot)
 
* Use [[GUID_Partition_Table]] (GPT) instead of MBR, you can use cgdisk to create partiton. And don't forget a 1-2M size BIOS boot partition for [[GRUB]] is needed.
 
 
 
=== Xorg Video Driver ===
 
  
Use the {{ic|xf86-video-intel}} driver.
+
For information on general Chromebook post installation configuration (hotkeys, power key handling ...) see [[Chromebook#Post installation configuration|Post installation configuration]] on the [[Chromebook]] page.
  
$ sudo pacman -S xf86-video-intel
+
=== Touchpad Configuration ===
  
=== Touchpad Kernel Modules ===
 
 
Enabling the touchpad currently requires building a set of patched Haswell Chromebook kernel modules. Fortunately, ChrUbuntu provides a script for automatically building and installing these modules: [http://goo.gl/kz917j cros-haswell-modules.sh].
 
 
A modified version for Arch Linux is available here [http://pastie.org/pastes/9106662 cros-haswell-modules-archlinux.sh] (tested with Linux 3.14).
 
An older version for Linux 3.13 is available here [http://pastie.org/pastes/8901903/ cros-haswell-modules-archlinux-3.13.sh].
 
 
$ wget http://pastie.org/pastes/9106662/download -O cros-haswell-modules-archlinux.sh
 
$ chmod +x cros-haswell-modules-archlinux.sh
 
$ ./cros-haswell-modules-archlinux.sh
 
 
====configuration====
 
 
* Edit Xorg touchpad configuration file
 
* Edit Xorg touchpad configuration file
 
Add the Xorg touchpad configuration below for better usability (increases touchpad sensitivity).
 
Add the Xorg touchpad configuration below for better usability (increases touchpad sensitivity).
Line 95: Line 71:
 
#      Option "AreaBottomEdge" "82%"
 
#      Option "AreaBottomEdge" "82%"
 
#EndSection
 
#EndSection
}}  
+
}}
 
 
*Use 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, KDE 4.12.2.
 
Another untility, [https://aur.archlinux.org/packages/kcm_touchpad/ kcm_touchpad], does not work at all.
 
 
 
Reboot for the touchpad to become operational.
 
 
 
=== Fixing suspend ===
 
 
 
The following are instructions to fix the suspend functionality.
 
 
 
Create the following {{ic|cros-ehci-disable.conf}} file. This unbinds the ehci-pci driver at boot, which spams the system journal on wakeup.
 
 
 
{{hc|head=/etc/tmpfiles.d/cros-ehci-wakeup.conf|
 
output=w /sys/bus/pci/drivers/ehci-pci/unbind - - - - "0000:00:1d.0"}}
 
 
 
Then, create the following {{ic|wakeup}} file. This disables all resume triggers from S3 except the lid, and therefore prevents random wakeups due to hardware interrupts. Feel free to experiment to see which of the /proc/acpi/wakeup switches actually causes this behavior, and update this wiki page.
 
  
{{hc|head=/usr/lib/systemd/scripts/wakeup|output=
+
== Hardware ==
echo LID0 > /proc/acpi/wakeup
 
echo TPAD > /proc/acpi/wakeup
 
echo TSCR > /proc/acpi/wakeup
 
echo EHCI > /proc/acpi/wakeup
 
echo XHCI > /proc/acpi/wakeup}}
 
  
Create a systemd service file for it as well:
+
=== Locating the Write-Protect Screw ===
  
{{hc|head=/usr/lib/systemd/services/wakeup.service|output=
+
Visit [http://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/dell-chromebook-11 the Dell Chromebook 11 page on The Chromium Projects].
[Unit]
 
Description=Prevent random wakeups
 
  
[Service]
+
=== Removing the back of the laptop ===
Type=oneshot
 
ExecStart=/usr/lib/systemd/scripts/wakeup
 
  
[Install]
+
[https://www.youtube.com/watch?v=rIdcS-efsio This video] describes the process of removing the back of the Dell Chromebook 11.
WantedBy=multi-user.target}}
 
 
 
Enable and start the service:
 
 
 
# systemctl enable wakeup.service
 
# systemctl start wakeup
 
 
 
Then, add the following kernel boot parameters.
 
 
 
{{hc|head=/etc/default/grub.cfg|
 
output=GRUB_CMDLINE_LINUX_DEFAULT="quiet tpm_tis.force=1 tpm_tis.interrupts=0"}}
 
 
 
Finally, [[GRUB#Generating main configuration file|rebuild your grub config]] and reboot.
 
 
 
== Post Installation Configuration ==
 
  
For information on general Chromebook post installation configuration (hotkeys, power key handling ...) see [[Chromebook#Post_Installation_Configuration]].
+
== Known Issues ==
  
== Audio ==
+
=== Touchpad right-click not functioning in X11 ===
  
The audio configuration is similar to the [[Acer C720 Chromebook#Audio|Acer C720]].
+
If the "Right Click" behavior of the touchpad is not working or it frequently fails to register left mouse clicks, try using the alternative X11 touchpad driver 'Mtrack' found [https://aur.archlinux.org/packages/xf86-input-mtrack/|here].
  
== Unresolved Issues ==
+
=== Unable to boot into Linux after exhausting battery ===
  
* The 64-bit installer in Arch Linux installation ISOs newer than 2013.10.01 causes an immediate system reset
+
This is due to the 'dev_boot_legacy' flag being stored in volatile memory, and so being lost when the power runs out. This can be solved by enabling [[Chromebook#Boot_to_SeaBIOS_by_default|booting to SeaBIOS by default]].
* 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.
 
* Suspend on Linux kernel version 3.14 is broken; the Chromebook reboots on suspend instead.
 

Latest revision as of 09:17, 2 August 2018

The Dell Chromebook 11 (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.

The instructions for getting Arch Linux to work on this machine are similar to the Acer C720 Chromebook, with a few differences.

Installation

First enable legacy boot / SeaBIOS from the developer mode of Chrome OS. Then install and boot Linux as you would on a traditional x86 BIOS system.

Enabling Developer Mode

See the Chromebook page.

Patching SeaBIOS

Warning: This may screw up the RW part of your firmware! If this happens, you must use a ChromeOS recovery stick to reset it.

The version of SeaBIOS that ships with the Dell Chromebook doesn't work properly, and therefore you must patch it in order to get it to work.

  • Open a crosh window with Ctrl+Alt+T.
  • Open a bash shell with the shell command.
  • Become superuser with sudo bash
  • Download the patched seabios.cbfs from [1], and save it to Downloads.
  • Patch SeaBIOS with the following commands:
# cd ~/Downloads
# flashrom -r image.rom
# dd if=seabios.cbfs of=image.rom seek=2 bs=2M conv=notrunc
# flashrom -w image.rom -i RW_LEGACY

Enabling SeaBIOS

Continue by following Enabling SeaBIOS[broken link: invalid section] on the Chromebook page.

Installing Arch Linux

Continue by following the Installation guide on the Chromebook page.

Post Installation Configuration

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

Touchpad Configuration

  • Edit Xorg touchpad configuration file

Add the Xorg touchpad configuration below for better usability (increases touchpad sensitivity).

/etc/X11/xorg.conf.d/50-cros-touchpad.conf
Section "InputClass" 
    Identifier      "touchpad wolf cyapa" 
    MatchIsTouchpad "on" 
    MatchDevicePath "/dev/input/event*" 
    MatchProduct    "cyapa" 
    Option          "FingerLow" "5" 
    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 /etc/X11/xorg.conf.d/50-synaptics.conf

/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

Hardware

Locating the Write-Protect Screw

Visit the Dell Chromebook 11 page on The Chromium Projects.

Removing the back of the laptop

This video describes the process of removing the back of the Dell Chromebook 11.

Known Issues

Touchpad right-click not functioning in X11

If the "Right Click" behavior of the touchpad is not working or it frequently fails to register left mouse clicks, try using the alternative X11 touchpad driver 'Mtrack' found [2].

Unable to boot into Linux after exhausting battery

This is due to the 'dev_boot_legacy' flag being stored in volatile memory, and so being lost when the power runs out. This can be solved by enabling booting to SeaBIOS by default.