「Chrome OS デバイス」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(Pkg/AUR テンプレートの更新)
(Note を追加)
10行目: 10行目:
 
{{Warning|この記事ではサードパーティ製のスクリプトなどを使用するため、ハードウェアやデータに修復不可能なダメージを与える可能性があります。自己責任で使用してください。}}
 
{{Warning|この記事ではサードパーティ製のスクリプトなどを使用するため、ハードウェアやデータに修復不可能なダメージを与える可能性があります。自己責任で使用してください。}}
 
この記事では Acer, HP, Samsung, 東芝, Google によって作られた Chromebook ノートパソコンで Arch を動かす情報を提供しています。現在はページを改訂してモデルごとのページを作成しています。
 
この記事では Acer, HP, Samsung, 東芝, Google によって作られた Chromebook ノートパソコンで Arch を動かす情報を提供しています。現在はページを改訂してモデルごとのページを作成しています。
  +
  +
{{Note|This article describes how to install Arch Linux by activating developer mode. For instructions on how to install Arch Linux in a ChromeOS container without having to enable developer mode see [[Crostini]]}}
   
 
== イントロダクション ==
 
== イントロダクション ==

2021年8月5日 (木) 14:52時点における版

関連記事

警告: この記事ではサードパーティ製のスクリプトなどを使用するため、ハードウェアやデータに修復不可能なダメージを与える可能性があります。自己責任で使用してください。

この記事では Acer, HP, Samsung, 東芝, Google によって作られた Chromebook ノートパソコンで Arch を動かす情報を提供しています。現在はページを改訂してモデルごとのページを作成しています。

ノート: This article describes how to install Arch Linux by activating developer mode. For instructions on how to install Arch Linux in a ChromeOS container without having to enable developer mode see Crostini

目次

イントロダクション

レガシーブート

最近の Chromebook (Intel の Haswell や Broadwell が搭載されている機種) には"レガシーブート"モードが存在し Linux や他のオペレーティングシステムを簡単に起動することができます。このレガシーブートモードは CorebootSeaBIOS ペイロードによって提供されています。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 ペイロードの存在・不存在を問わず) Coreboot ファームウェアを使用する Chromebook 全てにあてはまるはずですが、機種によっては別段の設定が必要になることがあります。

一般的なインストール手順:

  • デベロッパーモードを有効にする。
  • SeaBIOS のある Chromebook:
    • レガシーブート / SeaBIOS を有効化する。
    • SeaBIOS をデフォルトに設定 (必須ではありませんが推奨。書き込み保護を無効にする必要があります)。
  • SeaBIOS のない Chromebook:
    • カスタムファームウェアに書き換え。
  • インストールメディアを準備。64ビットのメディアを手動で作成するには他の Linux マシンが必要です。
  • Arch Linux インストールメディアを起動して Arch をインストール。

デベロッパーモードの有効化

ChromeOS の中からスーパーユーザーシェルにアクセスするには デベロッパーモード が必要です。SeaBIOS での起動を許可するなど、システムに変更を加えるために有効化は必須になります。

警告: デベロッパーモードを有効化するとデータが全て消去されます。

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

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

スーパーユーザーシェルにアクセス

デベロッパーモードに移行した後は、スーパーユーザーのプロンプトを表示する必要があります。スーパーユーザーシェルのアクセス方法は 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 を起動できます。

ノート: プリインストールされている SeaBIOS をずっと使い続けるつもりであり、SeaBIOS を起動のに毎回 Ctrl + L を押す必要があるのが鬱陶しいときは、デフォルトで SeaBIOS を起動するように Coreboot を設定することができます。この設定は Chrome OS の中から行う必要があり、(ハードウェアとソフトウェアの) 書き込み保護を無効化しなくてはなりません。後でリカバリインストールメディアを使って Chrome OS を再インストールする必要がなくなるので、ここで今すぐ設定するほうが良いでしょう。Chrome OS を捨てないつもりならば (Arch を外部ストレージにインストールするか、内部ストレージの中に Chrome OS と一緒にインストールする)、あとから SeaBIOS をデフォルトに設定できます。

以上で Chromebook の SeaBIOS の有効化が完了です。SeaBIOS をデフォルトに設定しない場合は Arch Linux のインストールに進むことができます。

デフォルトで SeaBIOS を起動

デフォルトで SeaBIOS を起動するには、Chrome OS で set_gbb_flags.sh を実行する必要があります (Chrome OS に初めから入っています、Arch Linux では正しく動作しません)。

警告: GBB フラグを設定していないとバッテリーが空になったときにシステムが破損する可能性があります。dev_boot_usbdev_boot_legacy がデフォルトの値にリセットされ、Chrome OS が強制的にリカバリを行なって、内蔵ストレージの Arch Linux 環境を失うことになります。ただし、Chrome OS のリカバリイメージを修正してまた値を設定することは可能です [3]
警告: GBB フラグを設定する前に書き込み保護を無効化しないと、ファームウェアの RW-LEGACY 部分 (SeaBIOS) が消去されシステムが起動しなくなるおそれがあります (Chrome OS のリカバリメディアで復旧させることができます)。set_gbb_flags.sh の最新バージョンでは書き込み保護を無効化しないと GBB フラグを設定できなくなっています。
# sudo su
  • ソフトウェア書き込み保護の無効化。
# flashrom --wp-disable
  • 書き込み保護が無効化されているか確認。
# flashrom --wp-status
  • 何もパラメータを付けずに set_gbb_flags.sh を実行。
# set_gbb_flags.sh
ノート: 最近のバージョンの Chrome OS ではスクリプトが /usr/share/vboot/bin/set_gbb_flags.sh に移動されており、デフォルトではパスが通っていません ($PATH に含まれていない)。
  • 以下の出力がされたか確認、[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 からカスタムファームウェアを書き込む手順です。詳しい情報は Chrome OS カスタムファームウェアのページを見て下さい。
  • ハードウェア書き込み保護を無効化します。

ハードウェア書き込み保護のネジ/スイッチ/ジャンパの位置は使用している Chrome OS デバイスのページを見て下さい。使用しているデバイスのページが ArchWiki にない場合、Information for Chrome OS DevicesCoreboot の Chromebook ページ を見て下さい。ファームウェア書き込み保護に関する詳細は Chrome OS カスタムファームウェア#ファームウェア書き込み保護 を見て下さい。

以上でデバイスにカスタムファームウェアがインストールされたはずです。うまくいくことを祈って再起動しましょう。

ファームウェアの書き込みに成功したら Arch Linux のインストールを行って下さい。

Arch Linux のインストール

インストールメディアの準備

Arch Linux インストーラの USB ドライブを作成してください。

インストールメディアの起動

  • USB ドライブを Chromebook に接続して、(SeaBIOS をデフォルトに設定していない場合) 白いブートスプラッシュ画面で Ctrl + L を押して SeaBIOS を起動します。
  • Esc を押してブートメニューを表示して USB ドライブの番号を選択してください。

Arch Linux インストーラのブートメニューが表示されるので、通常通りにインストールすることができます。

ノート: ブートローダーとして GRUB を選択し、パーティションスキームとして MBR または GPT を選択することができます。GPT を選択した場合は BIOS Boot Partition を忘れずに追加してください。既知の問題も参照。

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 に設定します。
ノート: 一部の人々が言っていることとは裏腹に、GRUB パーティションはディスクの一番最初のパーティションである必要はありません。どのみち既存の ChromeOS パーティションがあるため最初にするのは至難です。
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 カーネルにまだマージされていない、タッチパッドやタッチスクリーン、スピーカーなどの機能の修正を行います。詳しくは GitHub のページ を見て下さい。

パッチがあてられたカーネルが必要な場合、上流ソースにパッチがマージされるたびにパッチのリストは小さくなっていくので、パッチのリストを見てパッケージが必要かどうか決めるのを推奨します。最終的には公式の linux パッケージが使えるようになるはずです。

Linux カーネルの詳細はカーネルを見て下さい。

ビデオドライバー

Intel Graphics を見て下さい。

タッチパッドとタッチスクリーン

Synaptics タッチパッド, libinput, タッチスクリーンを見て下さい。

カーネル 3.17 から、関連するパッチは全て上流のソースにマージされたので、core の linux パッケージでタッチデバイスはサポートされています。

タッチパッドの設定

タッチパッドを設定する方法はいくつかあります:

  • あなたが使っている Chromebook 機種の ArchWiki ページに (Chromebook 機種一覧を参照) タッチパッドの xorg.conf.d ファイルがないか見て下さい。
  • KDESynaptiks などのタッチパッド設定ツールを使う。Synaptiks はメンテナンスがされておらず KDE 4.11 ではクラッシュすると書かれていますが、KDE 4.12.2 では問題なく動作します。別のユーティリティ、kcm_touchpadAUR[リンク切れ: アーカイブ: aur-mirror] は全く使えません。

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 の設定を再生成してください。

音声出力の修正

Baytrail が搭載された機種

Baytrail が搭載されている機種の多くは linux-lts で動作しますが 4.5.0 からリグレッションが発生しています。新しいカーネルを使いたい場合は linux-max98090AUR[リンク切れ: パッケージが存在しません] をインストールしてください。また、alsa-utils パッケージに含まれている alsamixer を使って "Left Speaker Mixer Left DAC" と "Right Speaker Mixer Right DAC" をオンにする必要があります。詳しくは [7] を参照。

Haswell が搭載された機種

以下の設定をすることで音声関連の問題が解決することがあります。snd_hda_intel モジュールの設定が特に有効です。何も設定しなくていい場合もあります。

  • /etc/modprobe.d/alsa.conf を作成。index オプションは (HDMI ではなく) アナログ出力をデフォルトにして、model オプションはボードモデルにドライバーを通知して内蔵のマイクロフォンを利用可能にします (代わりに model=alc283-sense-combo または model=,alc283-dac-wcaps を使うこともできます):
/etc/modprobe.d/alsa.conf
options snd_hda_intel index=1 model=,alc283-chrome
  • [8]~/.asoundrc ファイルを使用。
  • ヘッドフォンに問題が起こる (何も音声が流れない) 場合、alsactl restore を実行してみてください。ヘッドフォンまたはスピーカーが使用されているときに ALSA が自動的にチャンネルを切り替えます。
  • PulseAudio での Flash プラグインの音声を修正するには [9] にある ~/.asoundrc ファイルを使って下さい。

Chromebook Pixel 2015

linux-samus4AUR には Broadwell SoC サウンドデバイスのパッチが含まれています。GitHub ページ にサウンドデバイスを初期化する方法が載っています。

ホットキー

Chromebook のファンクションキー は通常の F1-F10 としてカーネルに認識されますが、それぞれのキーの見た目にあうようにマッピングすることが可能です。また、Delete, Home, End, PgUp, PgDown を Chrome OS でマッピングされているように Alt + : BackSpace, Right, Left, Up, Down にするのも良いでしょう。

xkeyboard の設定

xkeyboard-config 2.16-1 から追加された chromebook モデルを使うことでファンクションキーから Chrome OS のような機能を使用することができます。例えば、localectl set-x11-keymap us chromebook のようなコマンドで設定することが可能です。完全なマッピングは /usr/share/X11/xkb/symbols/inet 内の chromebook の定義を確認してください。

Sxhkd の設定

Sxhkd デーモンを使ってホットキーを設定することができます。sxhkd の他に amixer, xorg-xbacklight, xautomation が必要になります。

  • ~/.config/sxhkd/sxhkdrc の設定例は [10] を参照。

xbindkeys の設定

xbindkeys を使ってホットキーを設定する方法もあります。xbindkeys の他に amixer, xorg-xbacklight, xvkbdAUR が必要になります。

別の xbindkeys の設定

Volchange (元は Debian ユーザーフォーラム に存在) で amixer を使うかわりに PulseAudio でボリュームを制御することができます。Volchange の他に xorg-xbacklightxvkbdAUR が必要になります。

  • [12] からスクリプトをダウンロード
  • 実行可能属性を付与
$ chmod u+x ~/.local/bin/volchange

[13] を見て ~/.xbindkeysrc を設定してください。

xkeyboard-config にパッチをあてる

xkeyboard-config-chromebookAUR をインストールする方法もあります。詳しくは [14] を参照。

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[リンク切れ: 置換パッケージ: gnome-tweaks]インストールして、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 を使って下さい。

参照