「Chrome OS デバイス」の版間の差分
(ページの作成:「Category:ノートパソコン en:Chrome OS devices it:Chromebook {{Related articles start}} {{Related|Chromebook}} {{Related|Chrome OS カスタムファー...」) |
|||
235行目: | 235行目: | ||
=== タッチパッドとタッチスクリーン === |
=== タッチパッドとタッチスクリーン === |
||
− | [[Touchpad Synaptics]]と[[タッチスクリーン]]を見て下さい。 |
+ | [[Touchpad Synaptics]] と[[タッチスクリーン]]を見て下さい。 |
カーネル 3.17 から、関連するパッチは全て上流のソースにマージされたので、core の {{Pkg|linux}} パッケージでタッチデバイスはサポートされています。 |
カーネル 3.17 から、関連するパッチは全て上流のソースにマージされたので、core の {{Pkg|linux}} パッケージでタッチデバイスはサポートされています。 |
||
246行目: | 246行目: | ||
* [[KDE]] の [[Touchpad_Synaptics#グラフィカルツール|Synaptiks]] などの[[Touchpad_Synaptics#実行中に設定|タッチパッド設定ツール]]を使う。Synaptiks はメンテナンスがされておらず KDE 4.11 ではクラッシュすると書かれていますが、KDE 4.12.2 では問題なく動作します。別のユーティリティ、{{AUR|kcm_touchpad}} は全く使えません。 |
* [[KDE]] の [[Touchpad_Synaptics#グラフィカルツール|Synaptiks]] などの[[Touchpad_Synaptics#実行中に設定|タッチパッド設定ツール]]を使う。Synaptiks はメンテナンスがされておらず KDE 4.11 ではクラッシュすると書かれていますが、KDE 4.12.2 では問題なく動作します。別のユーティリティ、{{AUR|kcm_touchpad}} は全く使えません。 |
||
− | ==== Chromium OS |
+ | ==== Chromium OS インプットドライバー ==== |
+ | {{AUR|xf86-input-cmt}} は Chromium OS のインプットドライバーの移植です: [[Touchpad Synaptics|Synaptics インプットドライバー]]の代わりに [https://github.com/hugegreenbug/xf86-input-cmt xf86-input-cmt] を使うことができます。ほとんどのデバイスの設定ファイルを調整して、手のひら検出など [[Touchpad Synaptics|Synaptics インプットドライバー]]では出来ない機能が提供されています。さらに、タップによるドラッグなど Chromium OS インプットドライバーでは無効になっている機能も有効にします。 |
||
− | {{AUR|xf86-input-cmt}} offers a port of the Chromium OS input driver: [https://github.com/hugegreenbug/xf86-input-cmt xf86-input-cmt] as an alternative for the [[Synaptics|Synaptics input driver]]. It provides tweaked configuration files for most devices, and provides functionality that the [[Synaptics|Synaptics input driver]] does not such as palm rejection. Additionally, it enables functionality not enabled by default in the Chromium OS input driver such as tap-to-drag. |
||
+ | このインプットドライバーは {{ic|/dev/input/event}} にアクセスする権限がない [https://github.com/hugegreenbug/xf86-input-cmt/issues/5 状況下] では動作しないので注意してください。[[startx]] を使って DE/WM セッションをロードしている場合に問題が発生します。そのような場合、または何らかの理由でドライバーがロードされないときは、次のコマンドを実行してください: |
||
− | Please note, the input driver does not work under [https://github.com/hugegreenbug/xf86-input-cmt/issues/5 some circumstances] where you have insufficient permissions to access {{ic|/dev/input/event}} |
||
− | This will affect you if you use [https://wiki.archlinux.org/index.php/Xinitrc startx] to load a DE/WM session. |
||
− | If this is the case or if the driver does not load for any other cases, you should run: |
||
# usermod -a -G input $USER |
# usermod -a -G input $USER |
||
+ | $USER はインプットドライバーを使用するユーザーの名前に置き換えてください。 |
||
− | Where $USER is the current user wanting to use the input driver. |
||
+ | |||
− | |||
+ | ユーザーによっては [[GDM]] でドライバーが動作しないことがあります。その場合、次のコマンドを実行してください: |
||
− | It should also be noted that some users have reported the driver does not work in [https://wiki.archlinux.org/index.php/GDM GDM] but works normally after log in. |
||
− | If you are affected by this, you should run: |
||
# usermod -a -G input gdm |
# usermod -a -G input gdm |
||
+ | 再起動後、通常通りにタッチパッドが使えるようになっているはずです。 |
||
− | After reboot, you should be able to use the touchpad normally. |
||
− | === |
+ | === サスペンドの修正 === |
+ | {{Note|起動直後はフタを閉じることによるサスペンドは動作しないことがあります。少し待って下さい。}} |
||
− | {{Note|Lid suspend might not work directly after boot, you might need to wait a little.}} |
||
+ | 以下はサスペンド機能を修正するための手順です。プリインストールされている SeaBIOS や John Lewis のビルド済みカスタム ROM を使用している場合でも、以下の修正が必要になります。 |
||
− | The following are instructions to fix the suspend functionality. |
||
− | Even if you are using a pre-installed SeaBIOS or John Lewis' pre-built SeaBIOS you will still need this fix. |
||
− | + | 他の方法も議論されており場合によってはそちらのほうが上手くいくかもしれません [https://bbs.archlinux.org/viewtopic.php?pid=1364376#p1364376] [https://bbs.archlinux.org/viewtopic.php?pid=1364521#p1364521]。 |
|
+ | サスペンドを修正するために、サスペンド・復帰サイクルを失敗させる原因である、EHCI_PCI と TPM モジュールを無効化します。無効化する方法は複数あります。 |
||
− | To fix suspend, the general idea is to disable the EHCI_PCI module, which interferes with the suspend cycle. There are multiple ways to achieve this. |
||
− | ==== |
+ | ==== カーネルパラメータを使う ==== |
+ | |||
− | Add the following to your GRUB configuration:- |
||
+ | GRUB の設定に以下を追加してください: |
||
{{hc|head=/etc/default/grub| |
{{hc|head=/etc/default/grub| |
||
output=GRUB_CMDLINE_LINUX_DEFAULT="modprobe.blacklist=ehci_pci"}} |
output=GRUB_CMDLINE_LINUX_DEFAULT="modprobe.blacklist=ehci_pci"}} |
||
+ | それから [[GRUB#メイン設定ファイルの生成|grub の設定を再生成]]してください。GRUB の設定を再生成したら、コンピュータを再起動してください。 |
||
− | Then [[GRUB#Generate_the_main_configuration_file|rebuild your grub config]]. After rebuilding your GRUB config, reboot your computer. |
||
− | ==== |
+ | ==== systemd を使う ==== |
+ | サスペンド中に、ノートパソコンのタッチパッドなどの部品がウェイクアップデバイスとして使われてノートパソコンを動かしたことになりサスペンドから復帰してしまうことがあります。ノートパソコンのフタのセンサー以外の全てのウェイクアップデバイスを無効化するには、以下の {{ic|suspend-device-fix.sh}} ファイルを作成します: |
||
− | Sometimes the synaptics touchpad, and various other parts of the laptop are used as wakeup devices causing certain movements of the laptop during suspend to end suspend. In order to disable all wakeup devices except for the laptop lid sensor, create the following {{ic|suspend-device-fix.sh}} file. |
||
{{hc|head=/usr/local/sbin/suspend-device-fix.sh| |
{{hc|head=/usr/local/sbin/suspend-device-fix.sh| |
||
294行目: | 291行目: | ||
</nowiki>}} |
</nowiki>}} |
||
+ | ファイルに実行可能属性を付与: |
||
− | Now give the file executable permissions: |
||
# chmod +x /usr/local/sbin/suspend-device-fix.sh |
# chmod +x /usr/local/sbin/suspend-device-fix.sh |
||
+ | 起動時にスクリプトを実行する systemd サービスを作成します: |
||
− | Create a systemd service to execute the script on every boot. |
||
{{hc|head=/etc/systemd/system/suspend-fix.service| |
{{hc|head=/etc/systemd/system/suspend-fix.service| |
||
output=[Unit] |
output=[Unit] |
||
310行目: | 307行目: | ||
}} |
}} |
||
+ | サービスを起動: |
||
− | First start the service. |
||
# systemctl start suspend-fix.service |
# systemctl start suspend-fix.service |
||
+ | 正しく起動したら、ブート時に起動するようにしてください: |
||
− | If it properly starts, then allow it to be started on bootup. |
||
# systemctl enable suspend-fix.service |
# systemctl enable suspend-fix.service |
||
+ | |||
− | Add the following line at the end of {{ic|/etc/rc.d/rc.local}} (if it does not exist, just create it) to prevent bad handling of EHCI USB: |
||
+ | {{ic|/etc/rc.d/rc.local}} (存在しない場合は作成してください) の最後に以下の行を追加して EHCI USB の良くない処理をやめさせます: |
||
{{hc|head=/etc/rc.d/rc.local| |
{{hc|head=/etc/rc.d/rc.local| |
||
321行目: | 319行目: | ||
</nowiki>}} |
</nowiki>}} |
||
+ | 次に、以下の {{ic|cros-sound-suspend.sh}} ファイルを作成してください。ここでは Ath9k のバインド・アンバインドの行だけ載せています。問題が起こる場合は上のリンクにある他の方法を見て下さい。 |
||
− | Then, create the following {{ic|cros-sound-suspend.sh}} file. Only the Ath9k binding/unbinding lines are listed below; see the alternatives linked above for additional sound suspend handling if you experience issues. |
||
{{hc|head=/usr/lib/systemd/system-sleep/cros-sound-suspend.sh| |
{{hc|head=/usr/lib/systemd/system-sleep/cros-sound-suspend.sh| |
||
343行目: | 341行目: | ||
esac</nowiki>}} |
esac</nowiki>}} |
||
+ | ファイルに実行可能属性を付与: |
||
− | Make sure to make the script executable: |
||
# chmod +x /usr/lib/systemd/system-sleep/cros-sound-suspend.sh |
# chmod +x /usr/lib/systemd/system-sleep/cros-sound-suspend.sh |
||
+ | それから [[GRUB#メイン設定ファイルの生成|grub の設定を再生成]]してください。 |
||
− | Then [[GRUB#Generate_the_main_configuration_file|rebuild your grub config]]. |
||
− | === |
+ | === 音声出力の修正 === |
− | ==== Haswell |
+ | ==== Haswell が搭載された機種 ==== |
+ | 以下の設定をすることで音声関連の問題が解決することがあります。{{ic|snd_hda_intel}} モジュールの設定が特に有効です。何も設定しなくていい場合もあります。 |
||
− | One or more of followings might help solving audio related issues, setting {{ic|snd_hda_intel}} module index reported the most useful. It is highly possible that you will not need to make any change. |
||
− | * |
+ | * {{ic|/etc/modprobe.d/alsa.conf}} を作成。{{ic|index}} オプションは (HDMI ではなく) アナログ出力をデフォルトにして、{{ic|model}} オプションはボードモデルにドライバーを通知して内蔵のマイクロフォンを利用可能にします (代わりに {{ic|<nowiki>model=alc283-sense-combo</nowiki>}} を使うこともできます): |
{{hc|head=/etc/modprobe.d/alsa.conf| |
{{hc|head=/etc/modprobe.d/alsa.conf| |
||
output=options snd_hda_intel index=1 model=alc283-dac-wcaps}} |
output=options snd_hda_intel index=1 model=alc283-dac-wcaps}} |
||
− | * |
+ | * [https://gist.githubusercontent.com/dhead666/52d6d7d97eff76935713/raw/5b32ee11a2ebbe7a3ee0f928e49b980361a57548/.asoundrc] の {{ic|~/.asoundrc}} ファイルを使用。 |
+ | * ヘッドフォンに問題が起こる (何も音声が流れない) 場合、{{ic|alsactl restore}} を実行してみてください。ヘッドフォンまたはスピーカーが使用されているときに ALSA が自動的にチャンネルを切り替えます。 |
||
− | * If having problems with headphones (perhaps no audio playing), try <code>alsactl restore</code> in terminal. Now, ALSA should automatically switch between channels when using headphones/speakers. |
||
− | * |
+ | * PulseAudio での [[Flash]] プラグインの音声を修正するには [https://gist.githubusercontent.com/dhead666/0eebff16cd9578c5e035/raw/d4c974fcd50565bf116c57b1884170ecb47f8bf6/.asoundrc] にある {{ic|~/.asoundrc}} ファイルを使って下さい。 |
==== Chromebook Pixel 2015 ==== |
==== Chromebook Pixel 2015 ==== |
||
− | {{AUR|linux-samus4}} |
+ | {{AUR|linux-samus4}} には Broadwell SoC サウンドデバイスのパッチが含まれています。[https://github.com/raphael/linux-samus GitHub ページ] にサウンドデバイスを初期化する方法が載っています。 |
− | === |
+ | === ホットキー === |
− | [https://support.google.com/chromebook/answer/1047364 |
+ | [https://support.google.com/chromebook/answer/1047364 Chromebook のファンクションキー] は通常の F1-F10 としてカーネルに認識されますが、それぞれのキーの見た目にあうようにマッピングすることが可能です。また、{{ic|Delete, Home, End, PgUp, PgDown}} を Chrome OS でマッピングされているように {{ic|Alt + : BackSpace, Right, Left, Up, Down}} にするのも良いでしょう。 |
− | ==== Sxhkd |
+ | ==== Sxhkd の設定 ==== |
− | + | [[Sxhkd]] デーモンを使ってホットキーを設定することができます。{{AUR|sxhkd}} の他に [[Advanced Linux Sound Architecture|amixer]], {{Pkg|xorg-xbacklight}}, {{Pkg|xautomation}} が必要になります。 |
|
− | * |
+ | * {{ic|~/.config/sxhkd/sxhkdrc}} の設定例は [https://gist.github.com/dhead666/191722ec04842d8d330b] を参照。 |
− | ==== |
+ | ==== xbindkeys の設定 ==== |
− | + | [[xbindkeys]] を使ってホットキーを設定する方法もあります。{{Pkg|xbindkeys}} の他に [[Advanced Linux Sound Architecture|amixer]], {{Pkg|xorg-xbacklight}}, {{Pkg|xvkbd}} が必要になります。 |
|
− | * |
+ | * {{ic|~/.xbindkeysrc}} の設定例は [https://gist.github.com/dhead666/08562a9a760b18b6e758] を参照。 |
− | * |
+ | * 他の例は [https://bbs.archlinux.org/viewtopic.php?id=173418&p=3 vilefridge の xbindkeys 設定]を参照。 |
− | ===== |
+ | ===== 別の xbindkeys の設定 ===== |
− | [http://pastie.org/9550960 Volchange] ( |
+ | [http://pastie.org/9550960 Volchange] (元は [http://www.debianuserforums.org/viewtopic.php?f=55&t=1453#p14351 Debian ユーザーフォーラム] に存在) で [[Advanced Linux Sound Architecture|amixer]] を使うかわりに PulseAudio でボリュームを制御することができます。[http://pastie.org/9550960 Volchange] の他に {{Pkg|xorg-xbacklight}} と {{Pkg|xvkbd}} が必要になります。 |
− | * |
+ | * [http://pastie.org/9550960] からスクリプトをダウンロード |
+ | * 実行可能属性を付与 |
||
− | * Make it executable |
||
$ chmod u+x ~/.local/bin/volchange |
$ chmod u+x ~/.local/bin/volchange |
||
− | + | [https://gist.github.com/dhead666/4e23b506441ad424e26e] を見て {{ic|~/.xbindkeysrc}} を設定してください。 |
|
− | ==== |
+ | ==== xkeyboard-config にパッチをあてる ==== |
− | + | {{AUR|xkeyboard-config-chromebook}} をインストールする方法もあります。詳しくは [https://github.com/dhead666/archlinux-pkgbuilds/tree/master/xkeyboard-config-chromebook] を参照。 |
|
− | ==== |
+ | ==== Gnome で gsettings set を使ってマッピング ==== |
+ | Gnome では (ボリュームや輝度などの) 変更があったときの HUD 通知を使ってファンクションキーをマッピングすることができます。こちらの [https://gist.github.com/dhead666/0b9c1cc9def939705594 例] では明るさやボリュームのアクションをマップしています。{{Pkg|xdotool}} が必要なので注意してください。 |
||
− | Some of the function keys can be mapped in Gnome with the advantage of HUD notifications on changes (like volume and brightness changes) which can supplement one of the mapping methods mentioned above. This [https://gist.github.com/dhead666/0b9c1cc9def939705594 linked example] maps the brightness and volume actions. Notice that {{Pkg|xdotool}} is required. |
||
− | === Power |
+ | === Power キーとフタの開閉によるスイッチの処理 === |
− | ==== |
+ | ==== logind の使用を無視する ==== |
+ | 設定をしなくとも、{{ic|systemd-logind}} が power キーやフタの開閉によるイベントを処理します: power キーが押された時は電源を切り、フタが閉じられた時はサスペンドします。しかしながら、この挙動には少し問題があるかもしれません、power キーはキーボードの右上にある普通のキーであり間違って押してしまう可能性があるからです。 |
||
− | Out of the box, {{ic|systemd-logind}} will catch power key and lid switch events and handle them: it will shut down the Chromebook on a power key press, and a suspend on a lid close. However, this policy might be a bit harsh given that the power key is an ordinary key at the top right of the keyboard that might be pressed accidentally. |
||
+ | logind が power キーの押下やフタの開閉を無視するように設定するには、以下の行を {{ic|logind.conf}} に追加してください: |
||
− | To configure logind to ignore power key presses and lid switches, add the lines to {{ic|logind.conf}} below. |
||
{{hc|head=/etc/systemd/logind.conf| |
{{hc|head=/etc/systemd/logind.conf| |
||
416行目: | 414行目: | ||
HandleLidSwitch=ignore}} |
HandleLidSwitch=ignore}} |
||
+ | logind を[[systemd#ユニットを使う|再起動]]すれば変更が適用されます。 |
||
− | Then [[restart]] logind for the changes to take effect. |
||
+ | Power キーやフタの開閉イベントは logind によって journald に記録されます。[[電源管理#ACPI イベント]]を参照。 |
||
− | Power key and lid switch events will still be logged to journald by logind. See [[Power management#ACPI events]]. |
||
− | ==== |
+ | ==== Gnome で無視する ==== |
− | + | {{Pkg|gnome-tweak-tool}} を[[インストール]]して、Tweak Tool を開き Power の Power Button Action を変更してください。 |
|
− | == |
+ | == 既知の問題 == |
=== Syslinux === |
=== Syslinux === |
||
+ | {{ic|syslinux-install_update -i -a -m}} を使って Syslinux でブータブルフラグを設定することはできません。{{ic|fdisk}} を使用して手動でブータブルフラグを設定した後、{{ic|syslinux-install_update -i -m}} で Syslinux を MBR にインストールして SeaBIOS で Syslinux を起動しても、Syslinux は OS が見つけられないとエラーを出します。今は GRUB を使って下さい。 |
||
− | Follow Syslinux installation instructions carefully. Try manual installation to see where the problem comes from. If you see [[Syslinux#Missing_operating_system|Missing Operation System]] then it may be because you need to use correct bootloader binary. If syslinux does not work try other bootloader such as GRUB. |
||
== 参照 == |
== 参照 == |
2015年11月5日 (木) 16:26時点における版
この記事では Acer, HP, Samsung, 東芝, Google によって作られた Chromebook ノートパソコンで Arch を動かす情報を提供しています。現在はページを改訂してモデルごとのページを作成しています。
目次
イントロダクション
レガシーブート
最近の Chromebook (Intel の Haswell や Broadwell が搭載されている機種) には"レガシーブート"モードが存在し Linux や他のオペレーティングシステムを簡単に起動することができます。このレガシーブートモードは Coreboot の SeaBIOS ペイロードによって提供されています。Coreboot は Intel が搭載されている Chromebook に載っているファームウェアです (第一世代は除く)。SeaBIOS がディスクの MBR に起動する伝統的な BIOS のように振る舞い、そこから Syslinux や GRUB などの標準的なブートローダーを起動します。
SeaBIOS が載っている Chromebook では、Arch Linux のインストール手順にほとんど変更がなく、多少のマイナーな調整があるくらいです。
SeaBIOS が存在しない機種
古い機種、また最新機種の一部には、ファームウェアに SeaBIOS が付いていません。SeaBIOS が存在しないデバイスに Arch Linux をインストールする方法は以下の通りです:
- 特定の機種では、ファームウェアのフラッシュメモリの
RW_LEGACY
にだけ SeaBIOS ペイロードを書き込むことができる場合があります (例: Acer C740, Acer C910, Google Chromebook Pixel 2)。Chrome OS のflashrom
を使って手動でRW_LEGACY
をアップデートしたり、John Lewis のflash_chromebook_rom.sh
スクリプトによってサポートされていれば、スクリプトを使って SeaBIOS を書き込むことができます。この方法の利点は (RW_LEGACY
以外の) 標準のファームウェアは変わらないということです。 - SeaBIOS が付属するカスタムファームウェアを書き込む。
- ファームウェアのフラッシュメモリの
BOOT_STUB
に書き込む。この方法では SeaBIOS ペイロードを追加して、SeaBIOS をロードするようにファームウェアを書き換えます。完全にファームウェアを書き換えるよりも安全ではありますが、欠点が複数存在します (例: サスペンドや VMX に対応していない)。John Lewis のflash_chromebook_rom.sh
スクリプトのModify ROM to run SeaBIOS exclusively
オプションです。 - Chrome OS のカーネルとモジュールを使用する ChrUbuntu を使う。
- 自分でカーネルをビルドして署名する。[1] や [2] を参照。
このページで説明しているインストール方法には、SeaBIOS がない機種でも、カスタムファームウェアを書き込むことにより Arch Linux をインストールする方法を記載しています。
ファームウェア書き込み保護
全ての Chromebook にはファームウェア書き込み保護が存在します。インストールの途中で (GBB フラグを更新したりカスタムファームウェアを書き込むために) 書き込み保護を無効化する必要があるかもしれないので、注意しておいてください。
詳しくはファームウェア書き込み保護を見て下さい。
事前注意事項
- Arch をインストールする前に Google ドライブに 100GB-1TB の空き容量が必要になります。これは ChromeOS (バージョン23以上) のためで、linux のためではありません。ドライブの容量を使って ChromeOS を同期・バックアップすることができます。
- 使用している Chromebook の ArchWiki ページを見て下さい、Chromebook 機種一覧を参照。
- あなたの使用しているデバイスの ArchWiki ページが存在しない場合は、デバイスに関する情報を収集して、もし Arch Linux のインストールが成功したのならば、ArchWiki ページを新しく追加することを希望します (SeaBIOS が載っているデバイスには Acer C720 が、SeaBIOS が載っていないデバイスには Acer C710 のページが良いサンプルとなるでしょう)。
- このガイドを隅々まで読み込んで、何か変更をする前に手順についてちゃんと確認を行なって下さい。
Chromebook 機種一覧
Chromebook のページにハードウェアの比較表が載っています。SeaBIOS の有無やストレージの拡張ができるかどうかなどの情報も記載。
インストール
一般的なインストール手順:
- デベロッパーモードを有効にする。
- SeaBIOS のある Chromebook:
- レガシーブート / SeaBIOS を有効化する。
- SeaBIOS をデフォルトに設定 (必須ではありませんが推奨。書き込み保護を無効にする必要があります)。
- SeaBIOS のない Chromebook:
- カスタムファームウェアに書き換え。
- インストールメディアを準備。64ビットのメディアを手動で作成するには他の Linux マシンが必要です。
- Arch Linux インストールメディアを起動して Arch をインストール。
デベロッパーモードの有効化
ChromeOS の中からスーパーユーザーシェルにアクセスするには デベロッパーモード が必要です。SeaBIOS での起動を許可するなど、システムに変更を加えるために有効化は必須になります。
デベロッパーモードに入るには:
- Chromebook を起動します。
Esc + F3 (Refresh)
キーを押しながら、Power
ボタンを押して下さい。これでリカバリーモードに入ります。Ctrl + D
を押して下さい (プロンプトは出ません)。確認がされてから、システムは状態を初期化してデベロッパーモードを有効にします。
スーパーユーザーシェルにアクセス
デベロッパーモードに移行した後は、スーパーユーザーのプロンプトを表示する必要があります。スーパーユーザーシェルのアクセス方法は Chrome OS を設定したかどうかで変わります。
Chrome OS の設定をせずにスーパーユーザーシェルにアクセス
Chrome OS を設定しない場合は、Ctrl + Alt + F2
を押せば (F2 は上段の"右"矢印です, →)、ログインプロンプトが表示されます。
chronos
をユーザー名として使って下さい、パスワードは聞かれません。sudo bash
でスーパーユーザーになってください。
Chrome OS の設定をしてスーパーユーザーシェルにアクセス
Chrome OS を既に設定している場合は:
Ctrl + Alt + T
で crosh window を開いて下さい。shell
コマンドで bash シェルを開いて下さい。sudo bash
でスーパーユーザーになってください。
SeaBIOS の有効化
あなたの Chromebook に SeaBIOS が載っていない場合、もしくはカスタムファームウェアをインストールしてみたい場合は、カスタムファームウェアの書き込みのセクションに飛んで下さい。
以下は Coreboot のデベロッパーモード画面で、プリインストールされている SeaBIOS にアクセスする方法です。
- スーパーユーザーシェルで以下を入力:
# crossystem dev_boot_usb=1 dev_boot_legacy=1
- マシンを再起動。
これで白いブートスプラッシュ画面で Ctrl + L
を押すことで SeaBIOS を起動できます。
以上で Chromebook の SeaBIOS の有効化が完了です。SeaBIOS をデフォルトに設定しない場合は Arch Linux のインストールに進むことができます。
デフォルトで SeaBIOS を起動
デフォルトで SeaBIOS を起動するには、Chrome OS で set_gbb_flags.sh を実行する必要があります (Chrome OS に初めから入っています、Arch Linux では正しく動作しません)。
- ハードウェア書き込み保護を無効化。ファームウェア書き込み保護セクションのハードウェア書き込み保護の無効化を見て下さい。
- スーパーユーザーシェルで次を入力:
# sudo su
- ソフトウェア書き込み保護の無効化。
# flashrom --wp-disable
- 書き込み保護が無効化されているか確認。
# flashrom --wp-status
- 何もパラメータを付けずに
set_gbb_flags.sh
を実行。
# set_gbb_flags.sh
- 以下の出力がされたか確認、[4] を参照。
GBB_FLAG_DEV_SCREEN_SHORT_DELAY 0x00000001 GBB_FLAG_FORCE_DEV_SWITCH_ON 0x00000008 GBB_FLAG_FORCE_DEV_BOOT_LEGACY 0x00000080 GBB_FLAG_DEFAULT_DEV_BOOT_LEGACY 0x00000400
- SeaBIOS をデフォルトに設定。
# set_gbb_flags.sh 0x489
- ソフトウェア書き込み保護を有効に戻す。
# flashrom --wp-enable
以上で Chromebook は SeaBIOS をデフォルトで起動するようになります。Arch Linux のインストールに進んで下さい。デバイスが正しく起動したら、ハードウェア書き込み保護を有効に戻して下さい。
カスタムファームウェアの書き込み
- ハードウェア書き込み保護を無効化します。
ハードウェア書き込み保護のネジ/スイッチ/ジャンパの位置は使用している Chrome OS デバイスのページを見て下さい。使用しているデバイスのページが ArchWiki にない場合、Information for Chrome OS Devices や Coreboot の Chromebook ページ を見て下さい。ファームウェア書き込み保護に関する詳細は Chrome OS カスタムファームウェア#ファームウェア書き込み保護 を見て下さい。
- Lewis のサイトの ROM ダウンロードページ に書かれているコマンドを入力。
- スクリプトが終了したらシステムを再起動する前に外部ストレージにバックアップされたファームウェアをコピー。
以上でデバイスにカスタムファームウェアがインストールされたはずです。うまくいくことを祈って再起動しましょう。
ファームウェアの書き込みに成功したら Arch Linux のインストールを行って下さい。
Arch Linux のインストール
インストールメディアの準備
Arch Linux インストーラの USB ドライブを作成してください。
インストールメディアの起動
- USB ドライブを Chromebook に接続して、(SeaBIOS をデフォルトに設定していない場合) 白いブートスプラッシュ画面で
Ctrl + L
を押して SeaBIOS を起動します。 Esc
を押してブートメニューを表示して USB ドライブの番号を選択してください。
Arch Linux インストーラのブートメニューが表示されるので、通常通りにインストールすることができます。
Arch Linux のインストールが完了したらインストール後の設定を読んで下さい。
別のインストール方法: Chrome OS に加えて Arch Linux をインストール
内蔵ドライブに Arch Linux と Chrome OS の両方をインストールすることも可能です。
ドライブの再パーティション
ドライブをパーティションするには、Chrome OS で ChruBuntu スクリプトの第一段階を実行します。ログインした後、Ctrl + Alt + T
でシェルを開いて、shell
を実行し、cd ~/
でホームディレクトリに移動してください。そして、次のコマンドを実行します:
curl -L -O http://goo.gl/9sgchs; sudo bash 9sgchs
別パーティションの容量をどうするか聞かれます。16GB の SSD なら 8GB が安全な数字です。9GB 以上だと動作しないかもしれません。
ファイルシステムの修正
上記のパーティションを行った後、システムを再起動してください。Chrome OS はファイルシステムの修復を行います。それが完了したら、ファイルマネージャを開いてウィンドウ右上の歯車をクリックしてディスク容量が減っていることを確認してください。
インストールプロセスの続行
インストールに移りますが、内蔵ドライブを全て消去して新しいファイルシステムを作成する代わりに、前のステップで Arch のために用意した既存の空きパーティションに Arch をインストールします。
インストールメディアを起動した後:
fdisk -l
コマンドを実行してドライブとパーティションを表示してください。内蔵ドライブを見つけたら ChrUbuntu スクリプトで指定したサイズと一致するパーティションの名前をメモします。mkfs.ext4 /dev/sdxY
(xY はドライブ文字とパーティション番号に置き換えて下さい、例:/dev/sda7
) を使って arch のファイルシステムを作成します。- GPT に GRUB をインストールする手順に従って、gdisk を使って 1007kb のパーティションを作成しタイプを EF02 に設定します。
Arch Linux と Chrome OS の選択
システムを再起動してください。Ctrl + l
を押して SeaBIOS を起動してから Arch を起動するか Ctrl + d
を押して ChromeOS を起動します。
ここで SeaBIOS をデフォルトに設定することもできます (Chrome OS があるので後でいつでも出来ます)。
インストール後の設定
パッチのあたったカーネル
基本的に Chrome OS 端末では公式の linux パッケージを使うことが推奨されていますが、Chromebook Pixel 2015 など、ごく最近に発売された端末はパッチのあてられたカーネルを必要とすることがあります。
linux-samus4AUR には Chromebook Pixel 2015 のためのパッチが含まれており、上流の Linux カーネルにまだマージされていない、タッチパッドやタッチスクリーン、スピーカーなどの機能の修正を行います。詳しくは its GitHub のページ を見て下さい。
パッチがあてられたカーネルが必要な場合、上流ソースにパッチがマージされるたびにパッチのリストは小さくなっていくので、パッチのリストを見てパッケージが必要かどうか決めるのを推奨します。最終的には公式の linux パッケージが使えるようになるはずです。
Linux カーネルの詳細はカーネルを見て下さい。
ビデオドライバー
Intel Graphics を見て下さい。
タッチパッドとタッチスクリーン
Touchpad Synaptics とタッチスクリーンを見て下さい。
カーネル 3.17 から、関連するパッチは全て上流のソースにマージされたので、core の linux パッケージでタッチデバイスはサポートされています。
タッチパッドの設定
タッチパッドを設定する方法はいくつかあります:
- あなたが使っている Chromebook 機種の ArchWiki ページに (Chromebook 機種一覧を参照) タッチパッドの
xorg.conf.d
ファイルがないか見て下さい。 - KDE の Synaptiks などのタッチパッド設定ツールを使う。Synaptiks はメンテナンスがされておらず KDE 4.11 ではクラッシュすると書かれていますが、KDE 4.12.2 では問題なく動作します。別のユーティリティ、kcm_touchpadAUR は全く使えません。
Chromium OS インプットドライバー
xf86-input-cmtAUR は Chromium OS のインプットドライバーの移植です: Synaptics インプットドライバーの代わりに xf86-input-cmt を使うことができます。ほとんどのデバイスの設定ファイルを調整して、手のひら検出など Synaptics インプットドライバーでは出来ない機能が提供されています。さらに、タップによるドラッグなど Chromium OS インプットドライバーでは無効になっている機能も有効にします。
このインプットドライバーは /dev/input/event
にアクセスする権限がない 状況下 では動作しないので注意してください。startx を使って DE/WM セッションをロードしている場合に問題が発生します。そのような場合、または何らかの理由でドライバーがロードされないときは、次のコマンドを実行してください:
# usermod -a -G input $USER
$USER はインプットドライバーを使用するユーザーの名前に置き換えてください。
ユーザーによっては GDM でドライバーが動作しないことがあります。その場合、次のコマンドを実行してください:
# usermod -a -G input gdm
再起動後、通常通りにタッチパッドが使えるようになっているはずです。
サスペンドの修正
以下はサスペンド機能を修正するための手順です。プリインストールされている SeaBIOS や John Lewis のビルド済みカスタム ROM を使用している場合でも、以下の修正が必要になります。
他の方法も議論されており場合によってはそちらのほうが上手くいくかもしれません [5] [6]。
サスペンドを修正するために、サスペンド・復帰サイクルを失敗させる原因である、EHCI_PCI と TPM モジュールを無効化します。無効化する方法は複数あります。
カーネルパラメータを使う
GRUB の設定に以下を追加してください:
/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="modprobe.blacklist=ehci_pci"
それから grub の設定を再生成してください。GRUB の設定を再生成したら、コンピュータを再起動してください。
systemd を使う
サスペンド中に、ノートパソコンのタッチパッドなどの部品がウェイクアップデバイスとして使われてノートパソコンを動かしたことになりサスペンドから復帰してしまうことがあります。ノートパソコンのフタのセンサー以外の全てのウェイクアップデバイスを無効化するには、以下の suspend-device-fix.sh
ファイルを作成します:
/usr/local/sbin/suspend-device-fix.sh
#!/bin/bash awk '{if ($1 != "LID0" && $3 == "*enabled") print $1}' < /proc/acpi/wakeup | while read NAME do echo "$NAME" > /proc/acpi/wakeup done exit 0
ファイルに実行可能属性を付与:
# chmod +x /usr/local/sbin/suspend-device-fix.sh
起動時にスクリプトを実行する systemd サービスを作成します:
/etc/systemd/system/suspend-fix.service
[Unit] Description=Suspend Fix [Service] Type=simple ExecStart=/usr/local/sbin/suspend-device-fix.sh [Install] WantedBy=multi-user.target
サービスを起動:
# systemctl start suspend-fix.service
正しく起動したら、ブート時に起動するようにしてください:
# systemctl enable suspend-fix.service
/etc/rc.d/rc.local
(存在しない場合は作成してください) の最後に以下の行を追加して EHCI USB の良くない処理をやめさせます:
/etc/rc.d/rc.local
echo 1 > /sys/devices/pci0000\:00/0000\:00\:1d.0/remove
次に、以下の cros-sound-suspend.sh
ファイルを作成してください。ここでは Ath9k のバインド・アンバインドの行だけ載せています。問題が起こる場合は上のリンクにある他の方法を見て下さい。
/usr/lib/systemd/system-sleep/cros-sound-suspend.sh
#!/bin/bash case $1/$2 in pre/*) # Unbind ath9k for preventing error and full sleep mode (wakeup by LID after hibernating) echo -n "0000:01:00.0" | tee /sys/bus/pci/drivers/ath9k/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 ath9k for preventing error and and full sleep mode (wakeup by LID after hibernating) echo -n "0000:01:00.0" | tee /sys/bus/pci/drivers/ath9k/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
ファイルに実行可能属性を付与:
# chmod +x /usr/lib/systemd/system-sleep/cros-sound-suspend.sh
それから grub の設定を再生成してください。
音声出力の修正
Haswell が搭載された機種
以下の設定をすることで音声関連の問題が解決することがあります。snd_hda_intel
モジュールの設定が特に有効です。何も設定しなくていい場合もあります。
/etc/modprobe.d/alsa.conf
を作成。index
オプションは (HDMI ではなく) アナログ出力をデフォルトにして、model
オプションはボードモデルにドライバーを通知して内蔵のマイクロフォンを利用可能にします (代わりにmodel=alc283-sense-combo
を使うこともできます):
/etc/modprobe.d/alsa.conf
options snd_hda_intel index=1 model=alc283-dac-wcaps
- [7] の
~/.asoundrc
ファイルを使用。
- ヘッドフォンに問題が起こる (何も音声が流れない) 場合、
alsactl restore
を実行してみてください。ヘッドフォンまたはスピーカーが使用されているときに ALSA が自動的にチャンネルを切り替えます。
Chromebook Pixel 2015
linux-samus4AUR には Broadwell SoC サウンドデバイスのパッチが含まれています。GitHub ページ にサウンドデバイスを初期化する方法が載っています。
ホットキー
Chromebook のファンクションキー は通常の F1-F10 としてカーネルに認識されますが、それぞれのキーの見た目にあうようにマッピングすることが可能です。また、Delete, Home, End, PgUp, PgDown
を Chrome OS でマッピングされているように Alt + : BackSpace, Right, Left, Up, Down
にするのも良いでしょう。
Sxhkd の設定
Sxhkd デーモンを使ってホットキーを設定することができます。sxhkdAUR の他に amixer, xorg-xbacklight, xautomation が必要になります。
~/.config/sxhkd/sxhkdrc
の設定例は [9] を参照。
xbindkeys の設定
xbindkeys を使ってホットキーを設定する方法もあります。xbindkeys の他に amixer, xorg-xbacklight, xvkbd が必要になります。
~/.xbindkeysrc
の設定例は [10] を参照。- 他の例は vilefridge の xbindkeys 設定を参照。
別の xbindkeys の設定
Volchange (元は Debian ユーザーフォーラム に存在) で amixer を使うかわりに PulseAudio でボリュームを制御することができます。Volchange の他に xorg-xbacklight と xvkbd が必要になります。
- [11] からスクリプトをダウンロード
- 実行可能属性を付与
$ chmod u+x ~/.local/bin/volchange
[12] を見て ~/.xbindkeysrc
を設定してください。
xkeyboard-config にパッチをあてる
xkeyboard-config-chromebookAUR をインストールする方法もあります。詳しくは [13] を参照。
Gnome で gsettings set を使ってマッピング
Gnome では (ボリュームや輝度などの) 変更があったときの HUD 通知を使ってファンクションキーをマッピングすることができます。こちらの 例 では明るさやボリュームのアクションをマップしています。xdotool が必要なので注意してください。
Power キーとフタの開閉によるスイッチの処理
logind の使用を無視する
設定をしなくとも、systemd-logind
が power キーやフタの開閉によるイベントを処理します: power キーが押された時は電源を切り、フタが閉じられた時はサスペンドします。しかしながら、この挙動には少し問題があるかもしれません、power キーはキーボードの右上にある普通のキーであり間違って押してしまう可能性があるからです。
logind が power キーの押下やフタの開閉を無視するように設定するには、以下の行を logind.conf
に追加してください:
/etc/systemd/logind.conf
HandlePowerKey=ignore HandleLidSwitch=ignore
logind を再起動すれば変更が適用されます。
Power キーやフタの開閉イベントは logind によって journald に記録されます。電源管理#ACPI イベントを参照。
Gnome で無視する
gnome-tweak-tool をインストールして、Tweak Tool を開き Power の Power Button Action を変更してください。
既知の問題
Syslinux
syslinux-install_update -i -a -m
を使って Syslinux でブータブルフラグを設定することはできません。fdisk
を使用して手動でブータブルフラグを設定した後、syslinux-install_update -i -m
で Syslinux を MBR にインストールして SeaBIOS で Syslinux を起動しても、Syslinux は OS が見つけられないとエラーを出します。今は GRUB を使って下さい。
参照
- Developer Information for Chrome OS Devices at the Chromium Projects site
- BBS topic about the Acer C720 which include generic information on Haswell Based Chromebooks.
- Re-partitioning in Chrome OS [14], [15]
- Brent Sullivan's the always updated list of Chrome OS devices
- Google Chromebook Comparison Chart