Chromebook(Acer C720)にUbuntuをインストール

# 概要

ついに[日本でもChromebookの発売が決まりました。](http://japanese.engadget.com/2014/07/13/google-chromebook-7-5/)
ということで、輸入版のChromebookにUbuntuを入れた(デュアルブート)際に予想以上に苦戦したので、参考になればと思いログを残します。
と言っても主に[この辺](https://plus.google.com/103687638178763248215/posts/U7qa2QysR14)とか[この辺](http://chromeos-cr48.blogspot.jp/2013/10/chrubuntu-for-new-chromebooks-now-with.html)とかに書かれている通りの内容が大半です。
ちなみにChromebookで動かすUbuntuはChrubuntuと呼ばれているらしいです。

## 追記

* (2014/11/22) この記事は2014年7月時点に書いたものです。日本では[7月に企業向け](http://japanese.engadget.com/2014/07/13/google-chromebook-7-5/)に、[11月に個人向け](http://www.itmedia.co.jp/news/articles/1411/11/news074.html)にChromebookが発売されましたが、本記事ではUS版のChromebookを対象としています。日本でも個人向けに最初に発売されたモデル(AcerC720)でのインストール手順なので、日本版では使えないなんてことは無いかと思いますが、日本版では動作確認はしておりません。


# 環境
Acer C720のメモリ2GB/SSD16GBモデル

# インストール
上記のページや[こちらのページ](http://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/acer-c720-chromebook)を参考にdeveloperモードに入ります。

* ESC + Refresh (F3の位置にあるキー)を押しっぱなしで起動
* 白い画面が立ち上がったらCtrl+dを押して確認画面でEnter
* 再起動するので再び白い画面でCtrl+d
* ChromeOSが起動したらCtrl+Alt+->(F2の位置にあるキー)を押してchronosというシェルに入る
* chronosユーザで入ってsudo suしてから以下のコマンドを実行

```
crossystem dev_boot_usb=1 dev_boot_legacy=1
```
(多分dev_boot_usb=1は不要)

* 続いて以下のコマンドを実行

```
curl -L -O http://goo.gl/9sgchs; sudo bash 9sgchs
```

* 画面の指示に従っていくと再起動するので再びchronosに入って上記と同じコマンドを実行
* 1-2時間ほどで実行が終わると再起動するので今度は白い画面でCtrl+lをクリックするとChrubuntuが起動する。
(Ctrl+dだとChromeOSが立ち上がります。)

# 不具合修正
ここまででChrubuntuが動くことは動きますが、起動が遅い(数分掛かる)、スタンバイできない(カバー閉じた時などに電源停止になってしまう)、タッチパッドが反応しない等の問題があるため修正します。

* 以下を実行してkernelのバージョンをChromebookでの安定版にする

```
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.13.11-trusty/linux-headers-3.13.11-031311_3.13.11-031311.201404222035_all.deb
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.13.11-trusty/linux-headers-3.13.11-031311-generic_3.13.11-031311.201404222035_amd64.deb
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.13.11-trusty/linux-image-3.13.11-031311-generic_3.13.11-031311.201404222035_amd64.deb
sudo dpkg -i linux-headers-3.13.11* linux-image-3.13.11* .deb
```
上記が無かったら以下から該当するファイルを取ってくる
http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.13.11-trusty/

* 以下のようなファイルを作成

```bash:/etc/pm/sleep.d/05_sound
 #!/bin/sh
    # File: "/etc/pm/sleep.d/05_sound".
    case "${1}" in
    hibernate|suspend)
    # 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
    ;;
    resume|thaw)
    # 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 /etc/pm/sleep.d/05_sound
```

* /etc/rc.localの`exit 0`より上に以下を追記

```bash:/etc/rc.local
    echo EHCI > /proc/acpi/wakeup
    echo HDEF > /proc/acpi/wakeup
    echo XHCI > /proc/acpi/wakeup
    echo LID0 > /proc/acpi/wakeup
    echo TPAD > /proc/acpi/wakeup
    echo TSCR > /proc/acpi/wakeup
    echo 300 > /sys/class/backlight/intel_backlight/brightness
    rfkill block bluetooth
    /etc/init.d/bluetooth stop
```

* grubファイルを編集

```bash:/etc/default/grub
# 以下の行を
# GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
# 以下のように書き換える
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash tpm_tis.force=1"
```

* 以下を実行

```
sudo update-grub
sudo update-grub2
```

* 再起動

```
reboot
```

* 以下を実行

```
wget https://raw.githubusercontent.com/raouldc/c720-touchpad-patches/master/install.sh
```
取得したファイル内のカーネルのバージョン(3.XX.X)を3.13.11に変更します。

* 実行

```
sudo sh install.sh
```

* 再起動

```
reboot
```

# キーボードの割り当て変更

いくつかのキーが使えないためxbindkeysを使ってキーを割り当てます。
今回は個人的に不便だったDeleteキー、PageUp/Down、Home/Endを割り当てました。

* 必要なツールのインストール

```
sudo apt-get install xbindkeys xdotool
```

* 設定ファイル作成

```bash:~/.xbindkeysrc
"xdotool keyup control+BackSpace; xdotool key Delete; xdotool keydown control"
control+BackSpace
"xdotool keyup control+Left; xdotool key Home; xdotool keydown control"
control+Left
"xdotool keyup control+Right; xdotool key End; xdotool keydown control"
control+Right
"xdotool keyup control+Up; xdotool key Prior; xdotool keydown control"
control+Up
"xdotool keyup control+Down; xdotool key Next; xdotool keydown control"
control+Down
```

* xbindkeysの再起動

```bash
killall xbindkeys
xbindkeys &
```

以上です。
参考になれば幸いです。