Monday, March 10, 2014

Ubuntu 14.04 on a Chromebook Pixel (Now with Suspend!)

I gave up on chromeos....  for a bit.  I loved running it with crouton and a Kali & Ubuntu chroot, but I really missed linux running natively on the hardware.

I am running Ubuntu 14.04 now, and enjoying it.

The biggest issue I had to overcome was the suspend issue related to the tpm chip.  It is fairly well documented, and patches and workarounds can be found.  More info on that here:

https://code.google.com/p/chromium/issues/detail?id=221905

I tried applying the fix:  modprobe tpm_tis force=1 interuppts=0

For some reason that didn't work for me.  I googled & tried many things.  I thought "modprobe tpm_tis" might have been an invalid command, because after running it, "lsmod | grep tpm" didn't show anything.

After a bunch of screwing around and needlessly playing with the "tpm_infineon" module, I realized tpm_tis was valid, I just needed the following config.

The fix (disclaimer: I am not responsible for anything you do or try, this may break your system):

Edit the GRUB_CMDLINE_LINUX_DEFAULT value in /etc/default/grub and add in "tpm_tis.force=1,tpm_tis.interuppts=0"

Mine looks like this (please note, I removed the default 'quiet splash', because I like the text):

GRUB_CMDLINE_LINUX_DEFAULT="tpm_tis.force=1,tpm_tis.interuppts=0"

That might do it on its own, but I also added the following entries to my /etc/modules file:

tpm
tpm_tis
chromeos_laptop

I think the 'tpm' entry may have been removed and put back, but I can't remember, and of course I didn't back it up.  I'd recommend adding them if they aren't there.

Anyways, hope this helps someone else and saves them a couple of hours.

Update 1:
In order to 'drag to scroll' using the touchscreen, I had to install the 'grab and drag' extension for firefox.

Update 2:

I've edited my /usr/share/X11/xorg.conf.d/50-synaptics.conf to look like this.  It greatly improved the touchpad.

# Example xorg.conf.d snippet that assigns the touchpad driver
# to all touchpads. See xorg.conf.d(5) for more information on
# InputClass.
# DO NOT EDIT THIS FILE, your distribution will likely overwrite
# it when updating. Copy (and rename) this file into
# /etc/X11/xorg.conf.d first.
# Additional options may be added in the form of
#   Option "OptionName" "value"
#
Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
# This option is recommend on all Linux systems using evdev, but cannot be
# enabled by default. See the following link for details:
# http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html
      MatchDevicePath "/dev/input/event*"
EndSection

Section "InputClass"
        Identifier "touchpad ignore duplicates"
        MatchIsTouchpad "on"
        MatchOS "Linux"
        MatchDevicePath "/dev/input/mouse*"
        Option "Ignore" "on"
EndSection

# This option enables the bottom right corner to be a right button on
# non-synaptics clickpads.
# This option is only interpreted by clickpads.
Section "InputClass"
        Identifier "Default clickpad buttons"
        MatchDriver "synaptics"
MatchIsTouchpad "on"
Option "PalmDetect" "1"
Option "PalmMinWidth" "8"
  Option "PalmMinZ" "80"
EndSection

#        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

# This option disables software buttons on Apple touchpads.
# This option is only interpreted by clickpads.
Section "InputClass"
        Identifier "Disable clickpad buttons on Apple touchpads"
        MatchProduct "Apple|bcm5974"
        MatchDriver "synaptics"
        Option "SoftButtonAreas" "0 0 0 0 0 0 0 0"
EndSection













No comments:

Post a Comment