After few days of internet digging and hours lost behind getting OpenSUSE 13.2 fully up and running on a chromebook c720, I thought that perhaps wrapping the knowledge all together in a single post might actually going to help someone else who is on the same boat.
In order to have the c720 to boot up another operating system you will need to put it in developer mode by doing so.
-
Turn off your Chromebook.
-
Hold Esc and Refresh and tap the Power button
-
Once in the recovery screen, press Ctrl+d and then press Enter
-
The system will now reboot in developer mode and all your data will be erased
Now for the sake of getting rid of the boring ChromeOS Warning screen and to be able to get full ACPI working on OpenSUSE you must remove the write protect screw so that we can flash the latest custom Coreboot ROM made by John Lewis which removes the ChromeOS Warning screen, add some patches that lets OpenSUSE sleep and resume, essentially turns your chromebook into a standard laptop.
-
The screw you will need to remove is the number 7 on the picture below (needless to say by doing this your warranty will be voided).
http://www.chromium.org/_/rsrc/1381990807648/chromium-os/developer-information-for-chrome-os-devices/acer-c720-chromebook/c720-chromebook-annotated-innards.png -
Once that’s done, boot the chromebook back into ChromeOS
-
Press Ctrl + alt + F2 to open up a shell
-
At the ChromeOS login prompt, type chronos and hit Enter
-
Become superuser typing sudo bash
-
custom coreboot rom flashing steps
cd; rm -f getnflash_johnlewis_rom.sh; curl -k -L -O https://johnlewis.ie/getnflash_johnlewis_rom.sh; sudo bash getnflash_johnlewis_rom.sh
For more information regarding what the script does, please allow yourself some time to read here https://johnlewis.ie/custom-chromebook-firmware/rom-download/ and make sure you donate John few bucks once all of this will be done and you will have your fully working OpenSUSE distro on your chromebook c720. Without John’s work we wouldn’t have gotten anywhere.
Now, assuming you have read the link I gave you before and that all went right, I suggest you to store somewhere the backup of the dump of the original coreboot firmware, just in the case one day you will want to restore it to factory for whatever reason.
-
Take a deep breath and reboot.
-
Time to get our OpenSUSE usb flash install ready. Many ways you can do this, either use dd if you are on linux, bsd, Mac, cygwin, while if you are on Windows you will need to use a tool that prepares the flash usb installation for you.
On linux https://en.opensuse.org/SDB:Live_USB_stick#Using_commandline_tools
On Windows http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-windows
-
Once your USB install drive is done, all you need to do is stick it in, turn on the chromebook and immediately press ESC, chose to boot from the USB.
-
At this point in order to proceed with the installation you will need a external usb keyboard as well as a usb mouse. Don’t worry we are going to make them working once the installation is completed.
As far as I have understood there seems to be a bug with SeaBios and the OpenSUSE installation module detection that delays the actual installation prompt of about 30 minutes. Yes I am serious, I am looking to strain this out, but as of now, go take a coffee and return in 30 minutes to proceed with the installation.
Upon installation completed, you will need to download and install the latest available kernel from the OpenSUSE stable branch, this will make our keyboard, touchpad and sound to work properly, as well as resume and suspension.
-
Download it from here http://download.opensuse.org/repositories/Kernel:/stable/standard/x86_64
-
Install it sudo zypper update
sudo zypper install kernel-desktop-3.18.1-1.1.g5f2f35e.x86_64.rpm
- Let’s take care of suspension now sudo nano /usr/lib/systemd/system-sleep/cros-sound-suspend.sh
#!/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
-
sudo chmod +x /usr/lib/systemd/system-sleep/cros-sound-suspend.sh
-
sudo nano /etc/default/grub
and add to GRUB_CMDLINE_LINUX_DEFAULT
i915.modeset=1 tpm_tis.interrupts=0
-
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
-
Now we need to address the touchpad sensitivity: sudo nano /usr/share/X11/xorg.conf.d/50-synaptics.conf
Section "InputClass"
Identifier "touchpad catchall"
Driver "synaptics"
MatchIsTouchpad "on"
Option "TapButton1" "1"
Option "TapButton2" "3"
Option "TapButton3" "2"
Option "MaxTapMove" "20"
Option "MaxTapTime" "140"
Option "ClickTime" "5"
Option "FingerHigh" "12"
Option "FingerLow" "10"
Option "LockedDrags" "true"
Option "LockedDragTimeout" "100"
Option "ClickFinger1" "1"
Option "ClickFinger2" "3"
Option "ClickFinger3" "2"
Option "SingleTapTimeout" "140"
EndSection
- To Improve WLAN and BT performance sudo nano /etc/modprobe.d/ath9k.conf
options ath9k btcoex_enable=1 ps_enable=1 bt_ant_diversity=1
- To Fix the Hotkeys we will need to add the X11 utils repo
sudo zypper ar -f http://download.opensuse.org/repositories/X11:/Utilities/openSUSE_13.2/X11:Utilities.repo
sudo zypper install xbindkeys
- nano ~/.xbindkeysrc
# Backward, Forward, Full Screen & Refresh is just for web
browser
#Backward
"xvkbd -xsendevent -text "\A\[Left]""
m:0x0 + c:67
F1
#Full Screen
"xvkbd -xsendevent -text "\[F11]""
m:0x0 + c:70
F4
#Forward
"xvkbd -xsendevent -text "\A\[Right]""
m:0x0 + c:68
F2
#Refresh
"xvkbd -xsendevent -text "\Cr""
m:0x0 + c:69
F3
# on ChromeBook, it "Enter Overview mode, which shows all windows
(F5)", see also
https://support.google.com/chromebook/answer/1047364?hl
# here it work at KDE, it "Switch to next focused window", see
also http://community.linuxmint.com/tutorial/view/47
#Switch Window
"xvkbd -xsendevent -text "\A ""
m:0x0 + c:71
F5
"xbacklight -dec 10"
m:0x0 + c:72
F6
"xbacklight -inc 10"
m:0x0 + c:73
F7
"amixer set Master toggle"
m:0x0 + c:74
F8
"amixer set Master 10%- unmute"
m:0x0 + c:75
F9
"amixer set Master 10%+ unmute"
m:0x0 + c:76
F10
"xvkbd -xsendevent -text '\[Delete]'"
Alt + BackSpace
"xvkbd -xsendevent -text '\[End]'"
Alt + Right
"xvkbd -xsendevent -text '\[Home]'"
Alt + Left
"xvkbd -xsendevent -text '\[Page_Down]'"
Alt + Down
"xvkbd -xsendevent -text '\[Page_Up]'"
Alt + Up
- In order for the hotkeys functions to work you will now need to download and install xbacklight, xvkbd and amixer
http://software.opensuse.org/package/xbacklight
https://software.opensuse.org/package/xvkbd
- KDE will execute it after starting nano .kde4/Autostart/xbindkeys.sh
#!/bin/bash
xbindkeys &
chmod +x .kde4/Autostart/xbindkeys.sh
- Set the default sound card model
sudo nano /etc/modprobe.d/50-alsa.conf
options snd_hda_intel index=1 model=alc283-dac-wcaps
- Fix sound not working after resume
sudo nano /etc/pm/sleep.d/soundcard.sh
#!/bin/bash
case "$1" in
hibernate|suspend)
sudo -u $USER alsactl store --info --text "save soundcard state on suspending"
;;
thaw|resume)
sudo -u $USER alsactl restore --info --text "resume soundcard state"
;;
esac
**sudo chmod a+x /etc/pm/sleep.d/soundcard.sh
**
Reboot and happy OpenSUSE
To do:
**Haswell GPU hang kernel patch and graphic performance improvements (currently testing it on 3.18.1) *
*Function Keys emulation
*You name it