ASUS Zenbook Prime UX31A
このページでは ASUS Zenbook UX31A や UX21A ノートパソコンに Arch Linux をインストール・設定する方法を説明します。UX32VD にも大抵のことがあてはまるはずです。
前世代機については ASUS Zenbook UX31E のページを見てください。UX31A にも一部当てはまる情報が載っています。
目次
インストール
UX31A に Arch Linux をインストールする手順は公式のインストールガイドを見てください。UX31A は UEFI と GPT を使っているため UEFI, GPT, ブートローダーなどのページも見てください。UEFI の USB デバイスを準備する方法は UEFI#ISO から UEFI ブータブル USB を作成するを読んでください。
USB メディアから起動
Escape
を押してブートメニューを開いてください。USB ブータブルデバイスがリストに存在しない場合、設定メニューを開いてから直接 F10
を押して保存してください。そして再起動して Escape
をもう一度押してください。今度はメニューに USB ブータブルデバイスが表示されるはずです。
ブートローダーのインストールを簡単にするために EFI モードで USB を起動するようにしてください。
設定
ファンクションキー
以下の表ではファンクションキーと関連付けられる機能、X によって認識されるキーコード、ショートカットが必要かどうかをまとめています。
キー | 機能 | X | ショートカットの必要性 |
---|---|---|---|
Fn+F1 |
スリープ | XF86Sleep | no |
Fn+F2 |
WLAN と Bluetooth の無効化 | XF86WLAN & XF86Bluetooth | no |
Fn+F3 |
キーボードバックライトを暗くする | XF86KbdBrightnessDown | yes |
Fn+F4 |
キーボードバックライトを明るくする | XF86KbdBrightnessUp | yes |
Fn+F5 |
LCD バックライトを暗くする | XF86MonBrightnessDown | no |
Fn+F6 |
LCD バックライトを明るくする | XF86MonBrightnessUp | no |
Fn+F7 |
LCD をオフにする | No named key | no |
Fn+F8 |
ディスプレイの切り替え | XF86Display | yes |
Fn+F9 |
タッチパッドの切り替え | XF86TouchpadToggle | yes |
Fn+F10 |
ミュートの切り替え | XF86AudioMute | yes |
Fn+F11 |
音声ボリュームを下げる | XF86AudioLowerVolume | yes |
Fn+F12 |
音声ボリュームを上げる | XF86AudioRaiseVolume | yes |
Fn+a |
アンビエントライトセンサー | m:0x0 + c:248 | yes |
Fn+c |
ディスプレイのプロファイルの切り替え | XF86Launch1 | yes |
Fn+v |
ウェブカメラ | XF86WebCam | yes |
Fn+space |
電源プロファイルの切り替え | XF86Launch6 | yes |
ディスプレイのバックライト
新しいカーネル (3.7 以上) ではディスプレイのバックライトは問題なく動作します。輝度はハードウェアによって管理されるため全ての DE で機能するはずです。
キーボードのバックライト
新しいカーネルではキーボードバックライトは自動的に機能します。UPower を使用するデスクトップ環境 (GNOME や KDE など) の場合はキーボードの輝度を変えるのに特に設定をしたりツールを使う必要はありません。
輝度を手動で設定
キーボードの明るさを手動で変えたいときは UPower の D-Bus インターフェイスを使う方法が一番簡単です。root 権限も必要ありません。
現在の輝度を確認:
$ dbus-send --type=method_call --print-reply=literal --system --dest="org.freedesktop.UPower" /org/freedesktop/UPower/KbdBacklight org.freedesktop.UPower.KbdBacklight.GetBrightness
輝度を 2 に設定:
$ dbus-send --type=method_call --print-reply=literal --system --dest="org.freedesktop.UPower" /org/freedesktop/UPower/KbdBacklight org.freedesktop.UPower.KbdBacklight.SetBrightness int32:2
/sys/class/leds/asus::kbd_backlight/
や /sys/devices/platform/asus-nb-wmi/leds/asus::kbd_backlight/
に存在する brightness
ファイルに値を書き込むことでもキーボードのバックライトを制御できます。root 権限が必要です。
明るさの最大値を確認:
# cat /sys/class/leds/asus::kbd_backlight/max_brightness
3
特定の値を設定:
# echo 2 > /sys/class/leds/asus::kbd_backlight/brightness
asus-kbd-backlight を使う
UPower を使いたくない場合 asus-kbd-backlightAUR を使ってバックライトの輝度を管理できます。ユーザーから輝度を変更できるようにするには:
# asus-kbd-backlight allowusers
systemd を使っている場合、パッケージに含まれているユニットファイルが使えます:
# systemctl daemon-reload # systemctl start asus-kbd-backlight.service # systemctl enable asus-kbd-backlight.service
以下のコマンドでターミナルからキーボードバックライトを変更することが可能になります:
$ asus-kbd-backlight up $ asus-kbd-backlight down $ asus-kbd-backlight max $ asus-kbd-backlight off $ asus-kbd-backlight night $ asus-kbd-backlight 2 $ asus-kbd-backlight show
XF86KbdBrightnessDown や XF86KbdBrightnessUp キーを上記のコマンドに割り当てることができます。詳しくは Xorg での特別なキーボードキーを参照。
Ambient Light Sensor (ALS)
Zenbook には環境光センサーが搭載されており、Zenbook がある場所の照度にあわせてキーボードや LCD のバックライトを調整することができます。使用するには、カーネルモジュールの als-dkmsAUR パッケージとユーザースペースプログラムの als-controllerAUR パッケージをインストールしてください。
ALS ドライバー
ALS ドライバーは als
という名前のモジュールです。sysfs の /sys/bus/acpi/devices/ACPI0008:00
ディレクトリにデバイスが作成されます。enable
ファイルに "1" を書き込むことで環境光センサーを有効にできます:
# echo "1" > /sys/bus/acpi/devices/ACPI0008:00/enable
ただし、以下で説明しているユーザースペースコントローラを使用した方が良いでしょう。モジュールはカーネルのアップデートがあるたびに再ビルドする必要があります
センサーが /sys/bus/acpi/devices/ACPI0008:00
で確認できない場合、acpi_osi='!Windows 2012'
カーネルパラメータを設定してください。
ALS コントローラ
als-controllerAUR パッケージには als-controller プログラムとユーザースペーススクリプトが含まれています。何もパラメータを付けずにプログラムを root で起動した場合、als-controller デーモンが起動して /var/run
に pid ファイルとソケットが作成されます:
# als-controller
適切なパラメータ (-e
または -d
) を付けることで非特権ユーザーでも als-controller を実行してセンサーを有効化・無効化できます。
有効にするには:
$ als-controller -e
無効にするには:
$ als-controller -d
また、パッケージには als-controller.service
ユニットが含まれています。起動・有効化して使うことができます。
サンプルスクリプト
ユーザースペーススクリプトは /usr/share/als-controller/example/switch.sh
にインストールされます。スクリプトはキーに紐付けて実行するように作られています。libnotify のインストールが必要です。Windows と同じ [Fn]+[a] で有効化・無効化できるようにしたい場合、X におけるキーコードは 248 です。xbindkeys を使用する場合、以下を .xbindkeysrc
ファイルに追加してください:
# Ambient Light Sensor (ALS) Toggle [Fn a] "/usr/share/als-controller/example/switch.sh" m:0x0 + c:248
詳しい情報はプロジェクトの README ファイルを見てください。
ソリッドステートドライブ
SSD を使用する場合、ソリッドステートドライブを読んでください。
グラフィック
Intel Graphics を見てください。動画のハードウェアアクセラレーションについてはハードウェアビデオアクセラレーションを見てください。
タッチパッド
右ボタンを有効にする方法は Synaptics タッチパッド#ボタンのないタッチパッド (別名クリックパッド) を見てください。
2本指・3本指のタップは特に設定をしなくても機能します。
マルチタッチジェスチャー
Windows のようなマルチタッチジェスチャーを有効にしたい場合、toucheggAUR をインストールしてください。Touchegg を使うには Synaptics 入力ドライバーによる入力処理を一部無効化する必要があります。/etc/X11/xorg.conf.d/10-synaptics.conf
を以下のように編集してください:
Section "InputClass" Identifier "touchpad catchall" Driver "synaptics" MatchIsTouchpad "on" MatchDevicePath "/dev/input/event*" Option "TapButton1" "1" Option "TapButton2" "0" Option "TapButton3" "0" Option "ClickFinger2" "0" Option "ClickFinger3" "0" Option "HorizTwoFingerScroll" "0" Option "VertTwoFingerScroll" "0" Option "ClickPad" "true" Option "EmulateMidButtonTime" "0" Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0" EndSection
X.org の設定ファイルを記述するかわりに .xinitrc
の中から synclient
コマンドを使う方法もあります。デスクトップ環境によっては効果がないこともあります。
$ synclient TapButton2=0 TapButton3=0 ClickFinger2=0 ClickFinger3=0 HorizTwoFingerScroll=0 VertTwoFingerScroll=0
マルチタッチジェスチャーを有効にするには touchegg
を自動起動する必要があります。.xinitrc
の中に touchegg &
と記述したり、デスクトップ環境のスタートアップアプリケーション機能を使ってください。その後、必要に応じて ~/.config/touchegg/touchegg.conf
を編集してください。
マルチタップや2本指のスクロールが機能しない
xinput list
を確認して Elantech タッチパッドが Elantech クリックパッドとして認識されていないか確認してください。その場合、elantech-asustouchpad-dkmsAUR[リンク切れ: パッケージが存在しません] をインストールすることで問題が解決するかもしれません。
GNOME 3 のマルチタッチジェスチャー
GNOME 3 の gnome-shell は独自のマウス管理機能を持っており、適切なプラグインを無効化しないと Synaptics や Touchegg の設定と干渉することがあります:
$ gsettings set org.gnome.settings-daemon.plugins.mouse active false
上記のプラグインを無効化するとシステム設定のマウスとタッチパッドセクションの設定が無視されるようになります。
タイピング中にタッチパッドを無効化
タッチパッドの場所が邪魔なせいでタイピング中にタッチパッドに触れてしまうということがよくあります (Amazon のレビューを見てください)。適当な方法を使ってタッチパッドを無効化すると良いでしょう。詳しくは Synaptics タッチパッド#タイピング中はタッチパッドを無効にするを参照してください。
起動時に HDMI を接続
起動時に HDMI デバイスが接続されていた場合、画面が切り替わってしまってノートパソコンのディスプレイが表示されなくなる問題が存在します。以下の udev ルールとスクリプトを使うことで HDMI の切り替えを自動化することができます。
root で以下のスクリプトを追加してください:
/usr/local/share/hdmi-plugged-startup
#!/bin/bash export XAUTHORITY=/home/$USER/.Xauthority export DISPLAY=:0 /usr/bin/xrandr -display :0 --output eDP1 --auto --output HDMI1 --auto --above eDP1
追加したら実行可能属性を付与してください:
# chmod +x /usr/local/share/hdmi-plugged-startup
そして以下の udev ルールを追加してください:
# echo 'ACTION=="change", SUBSYSTEM=="drm", RUN+="/usr/local/share/hdmi-plugged-startup"' >> /etc/udev/rules.d/10-local.rules
サスペンドしてから HDMI ケーブルを切断して、復帰することで、ノートパソコンを再起動することなく Zenbook のディスプレイを有効にできます。
電源管理
省電力設定のオプションやツールについては省電力設定を見てください。
ハードウェアとモジュール
デバイス
説明 | デバイス Id | ドライバー/モジュール |
---|---|---|
Intel Corporation 3rd Gen Core processor DRAM Controller | 8086:0154 | ivb_uncore |
Intel Corporation 3rd Gen Core processor Graphics Controller | 8086:0166 | i915 |
Intel Corporation Device | 8086:0153 | none |
Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller | 8086:1e31 | xhci_hcd |
Intel Corporation 7 Series/C210 Series Chipset Family MEI Controller #1 | 8086:1e3a | mei_me |
Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 | 8086:1e2d | ehci_hcd |
Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller | 8086:1e20 | snd_hda_intel |
Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 1 | 8086:1e10 | pcieport |
Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2 | 8086:1e12 | pcieport |
Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 | 8086:1e26 | ehci_hcd |
Intel Corporation HM76 Express Chipset LPC Controller | 8086:1e59 | lpc_ich |
Intel Corporation 7 Series Chipset Family 6-port SATA Controller | 8086:1e03 | ahci |
Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller | 8086:1e22] | i2c_i801 |
Intel Corporation 7 Series/C210 Series Chipset Family Thermal Management Controller | 8086:1e24 | none |
Intel Corporation Centrino Advanced-N 6235 | 8086:088e | iwlwifi |
Chicony Electronics Co., Ltd Asus 720p CMOS webcam | 04f2:b330 | uvcvideo |
Intel Corporation [Bluetooth Device] | 8087:07da | btusb |
Realtek Semiconductor Corp. RTS5139 Card Reader Controller | 0bda:0139 | rtsx_usb |
他のデバイスとドライバー
MEI
i7 MEI を使用したい場合、Intel Local Manageability Service が必要です。intel-lmsAUR パッケージをインストールしてください。
ウォッチドッグ
チップセットにはハードウェアウォッチドッグが搭載されています:
# wdctl
Device: /dev/watchdog Identity: iTCO_wdt [version 0] Timeout: 30 seconds Timeleft: 2 seconds FLAG DESCRIPTION STATUS BOOT-STATUS KEEPALIVEPING Keep alive ping reply 0 0 MAGICCLOSE Supports magic close char 0 0 SETTIMEOUT Set timeout (in seconds) 0 0
systemd の開発者である Lennart Poettering が ブログ記事 で説明しているように、systemd でウォッチドッグを有効にするのは簡単です。
/etc/systemd/system.conf
を開いて RuntimeWatchdogSec=0
行をコメントアウトしてください。0
は一定時間 ping が受信できなかった場合に再起動する秒数に変えてください。例えば iTCO_wdt のデフォルト設定である30秒にする場合:
#RuntimeWatchdogSec=0 RuntimeWatchdogSec=30
再起動したら有効になっていることを確認してください:
# journalctl | grep -i watchdog
Oct 06 06:36:27 asarum kernel: iTCO_wdt: Intel TCO WatchDog Timer Driver v1.10 Oct 06 06:36:27 asarum systemd[1]: Hardware watchdog 'iTCO_wdt', version 0 Oct 06 06:36:27 asarum systemd[1]: Set hardware watchdog to 30s.
ACPI と gpio_ich の問題
gpio_ich
モジュールによって以下のようなエラーが表示されることがあります:
ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts with Region \PMIO 2 (20120711/utaddress-251) ACPI Warning: 0x0000000000000500-0x000000000000053f SystemIO conflicts with Region \GPIO 1 (20120711/utaddress-251) ACPI Warning: 0x0000000000000500-0x000000000000053f SystemIO conflicts with Region \GP01 2 (20120711/utaddress-251) lpc_ich: Resource conflict(s) found affecting gpio_ich ACPI Warning: 0x000000000000f040-0x000000000000f05f SystemIO conflicts with Region \SMB0 1 (20120711/utaddress-251) ACPI Warning: 0x000000000000f040-0x000000000000f05f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 2 (20120711/utaddress-251)
上記は ACPI がメモリ領域を何か他のために予約したという警告です。心配する必要はありません。