Differences between revisions 5 and 26 (spanning 21 versions)
Revision 5 as of 2013-12-23 03:27:32
Size: 9747
Editor: ?NickWhite
Comment:
Revision 26 as of 2014-12-03 19:31:29
Size: 11761
Editor: ?NickWhite
Comment:
Deletions are marked like this. Additions are marked like this.
Line 16: Line 16:
{{attachment:Chromebook_Pixel__28WiFi_29_open.JPG||align="right",width=30%}}
Line 17: Line 19:
||||<tablestyle="margin-left:3em;width:90%">'''Core Components'''||<|10 style="text-align:right;border-style:none;vertical-align:top;"> {{attachment:photo.png}}||
||Boot Standard Kernel: || {X} ||
||||<tablestyle="margin-left:3em;width:60%">'''Core Components'''||<|10 style="text-align:right;border-style:none;vertical-align:top;"> ||
||Boot Standard Kernel: || {i} ([[#Kernel|see below]]) ||
Line 29: Line 31:
|| Mouse || {OK} ||
|| - Built-in (Touchpad) || {OK} ||
|| - Built-in (Touchscreen) || {OK} ||
|| Touchpad and touchscreen || {i} ([[#Touchpad and touchscreen|see below]]) ||
Line 43: Line 43:
Closing the lid without suspending the laptop can cause the touchscreen to go crazy (at least with the 3.10 kernel). To resolve this reload the touchscreen module with this command after reopening the screen: {{{ modprobe -r atmel_mxt_ts && modprobe atmel_mxt_ts }}}
Line 47: Line 45:
== Kernel ==

A 3.10 kernel or later is required for all of the drivers to work. However the touchscreen & touchpad don't work with the latest backported kernels (3.10 and 3.11) because the CHROMEOS_LAPTOP option is disabled in those versions. That should change soon; see [[#Useful Links]]. For now you need to compile your own kernel with the [[#Attachments|attached]] .config.
Line 53: Line 47:
Follow steps 1-9 of DaveM's excellent [[http://vger.kernel.org/~davem/chromebook_pixel_linux.txt|Installing Linux on the Chromebook Pixel]] guide. This will get Debian installed and working, except for the touchpad & touchscreen.

You can then either follow his remaining instructions to compile the necessary modules, or compile your own kernel using the .config file [[#Attachments|attached to this wiki]].
Follow steps 1-9 of DaveM's excellent [[http://vger.kernel.org/~davem/chromebook_pixel_linux.txt|Installing Linux on the Chromebook Pixel]] [[/DaveMInstallMirror|(local mirror)]] guide. This will get Debian installed and working, except for the touchpad & touchscreen.

Once the basics are working, the easiest way to get the touchpad and touchscreen working is to use kernel 3.12 or newer from [[Backports|wheezy-backports]] (the linux-image package). The 3.12 and newer kernels work very well, though a little configuration is necessary for [[#Suspend]] and the [[#Touchpad and touchscreen]] to work fully.
Line 74: Line 68:
For suspend to work reliably you need to add the following line to /etc/modules ([[https://plus.google.com/109560881064626882142/posts|source]]): For suspend to work reliably you need to add the following line to /etc/modules ([[https://plus.google.com/+DuncanLaurie/posts/gyjF87fq9Js|source]]):
Line 80: Line 74:
Also note that if you have an SD card mounted it may not remount correctly after a suspend. You can force a remount by adding an executable file /etc/pm/sleep.d/10extraresume with the following (presuming the SD card is mounted at /mnt/sd):

{{{
umount /mnt/sd && sleep 1 && mount /mnt/sd
}}}
Line 82: Line 82:
The Chromebook Pixel has a very unfortunate design bug where if the battery is completely empty it will not allow you to boot up an operating system other than ChromeOS, requiring a reinstall of Debian. This is because it the "Developer Mode" setting is battery backed, so is lost if the battery runs out, and it can't be set except in a running ChromeOS install. Needless to say this is very bad news! [[https://groups.google.com/d/msg/chromebook-central/zl9UZd4QvJ0/zER63daiHrIJ|Source]]. The Chromebook Pixel has a [[http://code.google.com/p/chromium/issues/detail?id=362105|very unfortunate design bug]] where if the battery is completely empty it will not allow you to boot up an operating system other than ChromeOS, requiring a reinstall of Debian. This is because it the "Developer Mode" setting is battery backed, so is lost if the battery runs out, and it can't be set except in a running ChromeOS install. [[http://dev.chromium.org/chromium-os/developer-information-for-chrome-os-devices/workaround-for-battery-discharge-in-dev-mode|There is now a workaround to reset the flags]], but note that "this process is also pretty annoying, but it's better than losing all your data."
Line 85: Line 85:

== Touchpad and touchscreen ==

The touchpad and touchscreen both work well with the 3.12 kernel. However the driver doesn't load properly when booting, and needs to be reloaded once everything else has finished. You can automate this by adding these two lines to /etc/rc.local:

{{{
modprobe -r chromeos_laptop
modprobe chromeos_laptop
}}}

This seems to be caused by [[http://article.gmane.org/gmane.linux.kernel/1582650|this kernel bug]], which is fixed in newer kernels.

=== Tap to click ===

If you want tap to click, you need to tell the synaptics driver about it. There will be graphical ways to do that in desktop environments, but an alternative is just to run these commands (e.g. from .xinitrc):

{{{
synclient TapButton1=1 # one finger tap is left click
synclient TapButton2=2 # two finger tap is middle click
synclient TapButton3=3 # three finger tap is right click
}}}

== Keyboard ==

The keyboard works fine, but Google left out some useful keys (like delete and page up, page down, home and end), and made the key that is usually caps lock into a big "search" key (that reports itself as Super_L). One way to reassign them is with xmodmap, by adding something like the following to ~/.xmodmap and running 'xmodmap ~/.xmodmap' (e.g. from .xinitrc):

{{{
! Set Super_L (Search) key to be a Control key
remove Mod4 = Super_L
add Control = Super_L

! Set Left Control key to Mode Switch
keycode 37 = Mode_switch

! Set PgUp / PgDown / Home / End to Mode Switch (Left Control) + arrow keys
keycode 113 = Left Left Home
keycode 114 = Right Right End
keycode 115 = Up Up Prior
keycode 116 = Down Down Next

! Set Mode Switch (Left Control) + Backspace to Delete
keycode 22 = BackSpace BackSpace Delete
}}}
Line 173: Line 216:
## Link to related installation-report
## Link to related bug(s) report(s)
## Avoid linking to other installation Howto from this page.
* [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=731271|Bug 731271 blocking kernel from working fully with the laptop]]
* [[http://lists.debian.org/20131223013009.GB20910@manta.lan|Request to debian-backports to update the backported kernel to one with CHROMEOS_LAPTOP enabled]]

 * [[http://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/chromebook-pixel|Google's developer information for the Chromebook Pixel]]
 * [[http://www.coreboot.org/Google_Chromebook_Pixel|Coreboot on the Chromebook Pixel]]
 * [[http://www.coreboot.org/Chromebooks|Coreboot on Chromebooks]]
 * [[http://libreplanet.org/wiki/Group:Hardware/Laptops_Comparison|LibrePlanet's laptop comparison tables]]
Line 181: Line 224:
[[http://njw.me.uk|Nick White]]  * [[http://njw.me.uk|Nick White]]
 * [[https://commons.wikimedia.org/wiki/User:Pmsyyz|Pmsyyz]] for the [[https://en.wikipedia.org/wiki/File:Chromebook_Pixel_(WiFi)_open.JPG|photo of the Chromebook Pixel]] (CC-BY-SA).
Line 184: Line 228:
### Keep only one good category and remove others
## CategoryLaptopComputer
CategoryLaptopComputer

Translation(s): none

Models covered
Chromebook Pixel WiFi, Chromebook Pixel LTE

Chromebook_Pixel__28WiFi_29_open.JPG

Overall Status

Core Components

Boot Standard Kernel:

{i} (see below)

LAN network card:

{OK}

Detect hard drives:

{OK}

Extra Features

CPU Frequency Scaling

{OK}

Hibernation

[?] (not tested)

Sleep / Suspend

{i} (see below)

Xorg

{i} (see below)

- OpenGL

{OK}

- Resize-and-Rotate(randr)

{OK}

Switch to External Screen

{OK}

Touchpad and touchscreen

{i} (see below)

Modem

[?] (not tested)

Wireless/Wifi

{OK}

Keyboard's Hotkeys

{OK}

Legend :
{OK} = OK ; {X} Unsupported(No Driver) ; /!\ = Error (Couldn't get it working); [?] Unknown, Not Test ; [-] Not-applicable
{i} = Configuration Required; X-( = Only works with a non-free driver and or firmware

Important Notes

Installing Debian onto the Chromebook Pixel is a slightly unusual affair due to its signed bootloader, but is quite straightforward providing the instructions are followed precisely. See #Installing Debian.

Each time you boot once Debian is installed you need to press Ctrl-L when presented with the white warning screen by coreboot. SeaBIOS will then be loaded, which will load Grub. This is unavoidable (without flashing a modified version of coreboot).

It's very important not to let the battery run completely out or you may lose all your data! See #Ensuring the battery doesn't run right down.

Installing Debian

Follow steps 1-9 of DaveM's excellent Installing Linux on the Chromebook Pixel (local mirror) guide. This will get Debian installed and working, except for the touchpad & touchscreen.

Once the basics are working, the easiest way to get the touchpad and touchscreen working is to use kernel 3.12 or newer from wheezy-backports (the linux-image package). The 3.12 and newer kernels work very well, though a little configuration is necessary for #Suspend and the #Touchpad and touchscreen to work fully.

Configuration

Display

The size of the screen isn't automatically detected, which leads to incorrect DPI assumptions. To fix that create a file called /etc/X11/xorg.conf.d/90-monitor.conf containing this:

Section "Monitor"
    Identifier  "<default monitor>"
    DisplaySize 270 180 # millimeters
EndSection

Power Management

Suspend

For suspend to work reliably you need to add the following line to /etc/modules (source):

tpm_tis force=1 interrupts=0

Also note that if you have an SD card mounted it may not remount correctly after a suspend. You can force a remount by adding an executable file /etc/pm/sleep.d/10extraresume with the following (presuming the SD card is mounted at /mnt/sd):

umount /mnt/sd && sleep 1 && mount /mnt/sd

Ensuring the battery doesn't run right down

The Chromebook Pixel has a very unfortunate design bug where if the battery is completely empty it will not allow you to boot up an operating system other than ChromeOS, requiring a reinstall of Debian. This is because it the "Developer Mode" setting is battery backed, so is lost if the battery runs out, and it can't be set except in a running ChromeOS install. There is now a workaround to reset the flags, but note that "this process is also pretty annoying, but it's better than losing all your data."

It is therefore advisable to make sure the battery never gets to empty by forcing a shutdown when the battery level is low. You can do that with various graphical power management tools, or by creating an automatic shutdown daemon.

Touchpad and touchscreen

The touchpad and touchscreen both work well with the 3.12 kernel. However the driver doesn't load properly when booting, and needs to be reloaded once everything else has finished. You can automate this by adding these two lines to /etc/rc.local:

modprobe -r chromeos_laptop
modprobe chromeos_laptop

This seems to be caused by this kernel bug, which is fixed in newer kernels.

Tap to click

If you want tap to click, you need to tell the synaptics driver about it. There will be graphical ways to do that in desktop environments, but an alternative is just to run these commands (e.g. from .xinitrc):

synclient TapButton1=1 # one finger tap is left click
synclient TapButton2=2 # two finger tap is middle click
synclient TapButton3=3 # three finger tap is right click

Keyboard

The keyboard works fine, but Google left out some useful keys (like delete and page up, page down, home and end), and made the key that is usually caps lock into a big "search" key (that reports itself as Super_L). One way to reassign them is with xmodmap, by adding something like the following to ~/.xmodmap and running 'xmodmap ~/.xmodmap' (e.g. from .xinitrc):

! Set Super_L (Search) key to be a Control key
remove Mod4 = Super_L
add Control = Super_L

! Set Left Control key to Mode Switch
keycode 37 = Mode_switch

! Set PgUp / PgDown / Home / End to Mode Switch (Left Control) + arrow keys
keycode 113 = Left Left Home
keycode 114 = Right Right End
keycode 115 = Up Up Prior
keycode 116 = Down Down Next

! Set Mode Switch (Left Control) + Backspace to Delete
keycode 22 = BackSpace BackSpace Delete


System Summary

lspci

lspci -nn

00:00.0 Host bridge [0600]: Intel Corporation 3rd Gen Core processor DRAM Controller [8086:0154] (rev 09)
00:02.0 VGA compatible controller [0300]: Intel Corporation 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09)
00:1a.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 [8086:1e2d] (rev 04)
00:1b.0 Audio device [0403]: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller [8086:1e20] (rev 04)
00:1c.0 PCI bridge [0604]: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 3 [8086:1e14] (rev c4)
00:1d.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 [8086:1e26] (rev 04)
00:1f.0 ISA bridge [0601]: Intel Corporation HM75 Express Chipset LPC Controller [8086:1e5d] (rev 04)
00:1f.2 SATA controller [0106]: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] [8086:1e03] (rev 04)
00:1f.3 SMBus [0c05]: Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller [8086:1e22] (rev 04)
00:1f.6 Signal processing controller [1180]: Intel Corporation 7 Series/C210 Series Chipset Family Thermal Management Controller [8086:1e24] (rev 04)
01:00.0 Network controller [0280]: Atheros Communications Inc. AR9462 Wireless Network Adapter [168c:0034] (rev 01)

lsusb

lsusb -v | grep -E '\<(Bus|iProduct|bDeviceClass|bDeviceProtocol)' 2>/dev/null

Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
  bDeviceClass            9 Hub
  bDeviceProtocol         1 Single TT
  iProduct                0 
  bDeviceClass            9 Hub
  bDeviceProtocol         0 Full speed (or root) hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
  bDeviceClass            9 Hub
  bDeviceProtocol         1 Single TT
  iProduct                0 
  bDeviceClass            9 Hub
  bDeviceProtocol         0 Full speed (or root) hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  bDeviceClass            9 Hub
  bDeviceProtocol         0 Full speed (or root) hub
  iProduct                2 EHCI Host Controller
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  bDeviceClass            9 Hub
  bDeviceProtocol         0 Full speed (or root) hub
  iProduct                2 EHCI Host Controller
Bus 001 Device 003: ID 2232:1033  
  bDeviceClass          239 Miscellaneous Device
  bDeviceProtocol         1 Interface Association
  iProduct                2 Chromebook HD WebCam
      (Bus Powered)
  bDeviceClass          239 Miscellaneous Device
  bDeviceProtocol         1 Interface Association
  (Bus Powered)
Bus 001 Device 004: ID 0489:e057 Foxconn / Hon Hai 
  bDeviceClass          224 Wireless
  bDeviceProtocol         1 Bluetooth
  iProduct                2 
Bus 002 Device 003: ID 05e3:0727 Genesys Logic, Inc. microSD Reader/Writer
  bDeviceClass            0 (Defined at Interface level)
  bDeviceProtocol         0 
  iProduct                4 USB Storage
      (Bus Powered)
  bDeviceClass            0 (Defined at Interface level)
  bDeviceProtocol         0 
  (Bus Powered)
Bus 002 Device 004: ID 1410:9010 Novatel Wireless 
  bDeviceClass          239 Miscellaneous Device
  bDeviceProtocol         1 Interface Association
  iProduct                3 Novatel Wireless 4G
  bDeviceClass          239 Miscellaneous Device
  bDeviceProtocol         1 Interface Association

USB Host controllers entries (without OHCI, UHCI, EHCI) are removed too.

Resources

Attachments

Some configuration files and sample outputs.

  • [get | view] (2013-12-23 03:28:33, 105.7 KB) [[attachment:3.10.25 kernel .config]]
  • [get | view] (2013-12-23 03:31:07, 315.3 KB) [[attachment:Chromebook Pixel photo from https___en.wikipedia.org_wiki_File_Chromebook_Pixel_(WiFi)_open.JPG by Pmsyyz]]
  • [get | view] (2013-12-23 03:41:56, 315.3 KB) [[attachment:Chromebook_Pixel__28WiFi_29_open.JPG]]
 All files | Selected Files: delete move to page copy to page

Credits


CategoryLaptopComputer