# Acer C720 Chromebook (日本語)

Acer C720 Chromebook (そして最近の chromebook) には"レガシーブート"モードが存在し Linux や他のオペレーティングシステムを簡単に起動することができます。このレガシーブートモードは coreboot の SeaBIOS ペイロードによって提供されています。SeaBIOS がディスクの MBR に起動する伝統的な BIOS のように振る舞い、そこから Syslinux や GRUB などの標準のブートローダーを起動します。

## プレビュー

Acer C720 で Arch がどのように動くか見ることができます: https://www.youtube.com/watch?v=dEbCFlyUw5c

## インストール

まず Chrome OS のデベロッパーモードからレガシーブートと SeaBIOS を有効にしてください。それから伝統きな x86 BIOS システムのように Linux をインストール・起動してください。

### デベロッパーモードを有効にする

Warning: これを行うとデータが全て消去されます！

デベロッパーモードに入るには:

- `Esc+F3 (Refresh)` キーを押しながら、`Power` ボタンを押して下さい。これでリカバリーモードに入ります。
- `Ctrl+D` を押して下さい (プロンプトは出ません)。確認がされてから、システムは状態を初期化してデベロッパーモードを有効にします。
- Chrome OS に入るために白いブートスプラッシュ画面で `Ctrl+D` を押して下さい (もしくはビープ音が鳴って起動するまで30秒待って下さい)。

### SeaBIOS を有効にする

デベロッパーモードに移行した後は、Chrome OS を設定してログインできるようにしてください。

レガシー bios を有効にするには:

- crosh window with `Ctrl+Alt+T` で crosh window を開いて下さい。
- `shell` コマンドで bash シェルを開いて下さい。
- `sudo bash` でスーパーユーザーになってください。
- 次のコマンドでレガシーブートを有効にします:

    # crossystem dev_boot_usb=1 dev_boot_legacy=1

- マシンを再起動してください。

これで白いブートスプラッシュ画面で `Ctrl-L` を押すことで SeaBIOS を起動できます。

### Arch Linux のインストール

Arch Linux のインストーラーが入った USB ドライブを作成してください。その USB ドライブを Chromebook に挿して、白いブートスプラッシュ画面で `Ctrl-L` を押し SeaBIOS を起動します。`Esc` を押してブートメニューを出してあなたの USB ドライブの番号を選択してください。Arch Linux のインストーラーのブートメニューが表示されるはずです。後はインストールガイドに従って下さい。

インストールの注意事項:

- 64ビットのインストールをする時は、2013.10.01 の ISO を使い、`mem=1536m` カーネルオプションを使って x86_64 インストーラーを起動してください (linuxtracker.org で torrent をダウンロードできます)。
- 起動可能な 16GB の root パーティションが入った新しい DOS パーティションテーブルを SSD に用意してください。これは Chrome OS を消去するので注意してください。
- 今のところは、ブートローダーには Syslinux ではなく GRUB を選んで下さい。
- インストール後は OS を起動するのに Ctrl + D ではなく Ctrl + L を使います (なんで起動できないのかと何時間も迷わないために)。
- MBR ではなく GUID Partition Table (GPT) を使って下さい、cgdisk を使えばパーティションを作成できます。また、GRUB に必要な 1-2M くらいの BIOS boot partition を忘れないようにしてください。

### Xorg ビデオドライバ

`xf86-video-intel` ドライバーを使って下さい。

    $ sudo pacman -S xf86-video-intel

### タッチパッドのカーネルモジュール

現在タッチパッドを有効にするにはパッチがあてられた Haswell Chromebook カーネルモジュールのセットをビルドする必要があります。幸いに、ChrUbuntu がこれらのモジュールを自動的にビルド・インストールするスクリプトを提供してくれています: cros-haswell-modules.sh。

Arch Linux 用に修正が加えられたバージョンはここから利用できます cros-haswell-modules-archlinux.sh (Linux 3.13 でテスト済み)。 3.12 以前のカーネル用の昔のスクリプトは ここ にあります。

    $ wget http://pastie.org/pastes/8763538/download -O cros-haswell-modules-archlinux.sh
    $ chmod +x cros-haswell-modules-archlinux.sh
    $ ./cros-haswell-modules-archlinux.sh

#### 設定

- Xorg のタッチパッドの設定ファイルを編集する

以下のように Xorg にタッチパッドの設定を追加することでユーザビリティが向上します (タッチパッドの精度が上がります):

    /etc/X11/xorg.conf.d/50-cros-touchpad.conf

    Section "InputClass"
        Identifier      "touchpad peppy cyapa"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        MatchProduct    "cyapa"
        Option          "FingerLow" "10"
        Option          "FingerHigh" "10"
    EndSection

タッチパッドの右下の領域を使う"右クリック"を止めたい場合は、`/etc/X11/xorg.conf.d/50-synaptics.conf` の以下のセクションをコメントアウトしてください (この設定をしても右クリックは2本指のクリックで可能です):

    /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

- グラフィカルツールを使う

Synaptiks は KDE のタッチパッド設定・管理ツールです。タッチパッドの基本・高度な機能を設定できるシステム設定モジュールを提供します。現在はメンテナンスされておらず、KDE 4.11 ではクラッシュしますが、Chromebook と KDE 4.12.2 なら問題なく動きます。 もうひとつのユーティリティ、kcm_touchpad は全く機能しません。

タッチパッドを利用できるようにするには再起動が必要です。

### タッチスクリーン (C720P)

タッチスクリーンが使えるモデル (C720P など) を使っている場合は、上記のスクリプトの修正版を使うことができます。これはタッチスクリーンのパッチがあてられたモジュールもインストールします。

ここから利用可能です cros-haswell-modules-archlinux.sh (Linux 3.13 でテスト済み)。 3.12 以前のカーネル用の昔のスクリプトは ここ にあります。

    $ wget http://pastie.org/pastes/8834223/download -O cros-haswell-modules-archlinux.sh
    $ chmod +x cros-haswell-modules-archlinux.sh
    $ ./cros-haswell-modules-archlinux.sh

### Power キーとフタの開閉によるスイッチの処理

#### logind の使用を無視する

設定をしなくとも、`systemd-logind` が power キーやフタの開閉によるイベントを処理します: power キーが押された時は電源を切り、フタが閉じられた時はサスペンドします。しかしながら、この挙動には少し問題があるかもしれません、power キーはキーボードの右上にある普通のキーであり間違って押してしまう可能性があるからです。

logind が power キーの押下やフタの開閉を無視するように設定するには、以下の行を `logind.conf` に追加してください:

    /etc/systemd/logind.conf

    HandlePowerKey=ignore
    HandleLidSwitch=ignore

logind を再起動すれば変更が適用されます:

    $ sudo systemctl restart systemd-logind

Power キーのフタの開閉イベントは logind によって journald に記録されます。利用できるオプションは http://www.freedesktop.org/software/systemd/man/logind.conf.html を見て下さい。

#### サスペンドの修正

以下はサスペンドの機能を修正するための手順です。他の方法も議論されており場合によってはそちらのほうが上手くいくかもしれません。

以下の `cros-acpi-wakeup.conf` ファイルを作成してください:

    /etc/tmpfiles.d/cros-acpi-wakeup.conf

    w /proc/acpi/wakeup - - - - EHCI
    w /proc/acpi/wakeup - - - - HDEF
    w /proc/acpi/wakeup - - - - XHCI
    w /proc/acpi/wakeup - - - - LID0
    w /proc/acpi/wakeup - - - - TPAD
    w /proc/acpi/wakeup - - - - TSCR

次に、以下の `cros-sound-suspend.sh` ファイルを作成してください。ここでは ehci のバインド・アンバインドの行だけ載せています。問題が起こる場合は上のリンクにある他の方法を見て下さい。

    /usr/lib/systemd/system-sleep/cros-sound-suspend.sh

    #!/bin/bash
    case $1/$2 in
      pre/*)
        # Unbind ehci.
        echo -n "0000:00:1d.0" | tee /sys/bus/pci/drivers/ehci-pci/unbind
        ;;
      post/*)
        # Bind ehci.
        echo -n "0000:00:1d.0" | tee /sys/bus/pci/drivers/ehci-pci/bind
        ;;
    esac

スクリプトは実行可能にしてください:

    # chmod +x /usr/lib/systemd/system-sleep/cros-sound-suspend.sh

それから以下のカーネルブートパラメータを追加してください。様々な組み合わせがあげられていますが、`tpm_tis.force=1` が一番重要です。

    /etc/default/grub.cfg

    GRUB_CMDLINE_LINUX_DEFAULT="quiet add_efi_memmap boot=local noresume noswap i915.modeset=1 tpm_tis.force=1 tpm_tis.interrupts=0 nmi_watchdog=panic,lapic"

最後にあなたの grub の設定を再生成してください。

## ホットキー

c720 には Chrome OS で使う特定の目的のための Chromebook ショートカットのファンクションキーがあります。デフォルトではこれらのキーは普通のファンクションキーとして動作しますが、見た目にあうようにマッピングすることが可能です。

### Sxhkd の設定

以下は Chrome OS でのショートカットのデフォルトと同じように挙動を指定する Sxhkd の設定ファイルです。sxhkd のデーモンの他に amixer, xorg-xbacklight, xautomation が必要になります。

    ~/.config/sxhkd/sxhkdrc

    # Web browser Back/Forward shortcuts
    {@F1,@F2}
      xte 'keydown Alt_L' 'key {Left,Right}' 'keyup Alt_L'

    # Web browser Refresh shortcut
    @F3
      xte 'keydown Control_L' 'key r' 'keyup Control_L'

    # Awesome WM maximize current window
    # Adjust as necessary for different window managers
    @F4
      xte 'keydown Super_L' 'key m' 'keyup Super_L'

    # Awesome WM move one desktop right
    @F5
      xte 'keydown Super_L' 'key Right' 'keyup Super_L'

    {F6,F7}
      xbacklight -{dec,inc} 10

    F8
      amixer set Master toggle

    {F9,F10}
      amixer set Master 10{-,+} unmute

### xbindkeys による設定

xbindkeys を使ってホットキーを設定する方法もあります。以下は Chrome OS でのデフォルトショートカットと似たような挙動になるように指定した xbindkeys の設定ファイルです。この設定ファイルを使うには amixer と xorg-xbacklight が必要です。さらに、フォーカスしたウィンドウに文字列を送る（ショートカット）には xvkbd が必要になります。設定のいくつかは vilefridge の xbindkeys 設定から引用しています。

    ~/.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\t""
        m:0x0 + c:71
        F5

    #Backlight Down
    "xbacklight -dec 5"
        m:0x0 + c:72
        F6

    #Backlight Up
    "xbacklight -inc 5"
        m:0x0 + c:73
        F7

    #Mute
    "amixer set Master toggle"
        m:0x0 + c:74
        F8

    #Decrease Volume
    "amixer set Master 5- unmute"
        m:0x0 + c:75
        F9

    #Increase Volume
    "amixer set Master 5+ unmute"
        m:0x0 + c:76
        F10

    # added Home, End, Pg Up, Pg Down, and Del keys using the Alt+arrow key combos
    #Delete
    "xvkbd -xsendevent -text '\[Delete]'"
        m:0x8 + c:22
        Alt + BackSpace

    #End
    "xvkbd -xsendevent -text '\[End]'"
        m:0x8 + c:114
        Alt + Right

    #Home
    "xvkbd -xsendevent -text '\[Home]'"
        m:0x8 + c:113
        Alt + Left

    #Page Down
    "xvkbd -xsendevent -text '\[Page_Down]'"
        m:0x8 + c:116
        Alt + Down

    #Page Up
    "xvkbd -xsendevent -text '\[Page_Up]'"
        m:0x8 + c:111
        Alt + Up

    #
    # End of xbindkeys configuration

xbindkeys を設定したら、`~/.xinitrc` を編集して次の行をウィンドウマネージャや DE を起動する行の前に加えて下さい:

    xbindkeys

## オーディオ

C720 で alsa を動かすには `/etc/modprobe.d/alsa.conf` を作成・編集して次の行を追加するだけです:

    /etc/modprobe.d/alsa.conf

    options snd_hda_intel index=1

## 未解決の問題

- 2013.10.01 よりも新しい Arch Linux のインストール ISO に入っている64ビットインストーラーは即時のシステムリセットを引き起こします。
- `syslinux-install_update -i -a -m` を使って Syslinux でブータブルフラグを設定することはできません。`fdisk` を使用して手動でブータブルフラグを設定した後、`syslinux-install_update -i -m` で Syslinux を MBR にインストールして SeaBIOS で syslinux を起動しても、syslinux は OS が見つけられないとエラーを出します。今は GRUB を使って下さい。

Category:

- Acer (日本語)