Xubuntu な Ultrabook を手に入れたよ

Dell の New XPS 13 を Xubuntu な Ultrabook としてセットアップする方法を紹介します。

Xubuntu 生活を始めました。DELLのNew XPS 13のレビュー記事を見てピンと来ました。これは前々から欲しかった Xubuntu な Ultrabook 環境になるんじゃないかって。早速英語キーボードにカスタマイズ注文して待つこと約3週間、モノが来ましたよ。

Xubuntu をブート&インストール

デフォルトで入ってたWindows 8はわずか1時間足らずで完全消去することに決めました。それにしてもWin8はタッチパネルじゃないとこんなにも使いにくいものだったんですね。ただ Xubuntu に移るにしてもハードウェアドライバとかちゃんとしているか確認したかったので、Xubuntu のライブCDをUSBメモリに焼いたもので起動してみて、ちゃんとネットワークに繋がるかなど、簡単な確認を先にします。

NewXPS13 は初期状態では UEFI に boot mode が固定されているので、起動時に F2 を押してBIOS画面の boot mode を UEFI から Legacy へ切り替えます。その状態で Xubuntu のメモリスティックを挿して、起動時に F10 を押すとブートデバイスの選択画面がでるので USB を選択します。ちなみに boot mode を Legacy モードにすると Windows 8 は一時的に起動できなくなります。

ここでまずハマりました。どういうわけか Xubuntu 12.10 の64bit版のイメージでは起動できません。いろいろ試してみると、たまたま手元にあった 12.04 32bit版 ではブートできましたので、ハードウェアの対応確認は 12.04 で行いました。ええ、WiFiとかディスプレイとかタッチパッドとか、必要なものは全部ちゃんと動いてました。きっと 12.10 でも問題ないでしょう。

そしていよいよインストールですが 12.10-64 では起動できませんので、12.04-32 を使ってブートメニューまで進んだところで、おもむろにUSBメモリを 12.10-64 に差し替えて、USBメモリが認識されるのをしばらく(数十秒くらい?)待ってから、ブート継続を選択すると見事に 12.10-64 が起動しました。あとはもう普通の方法でインストールですね。既存のパーティションは全部消して LVM で Xubuntu を入れてしまいました。さらば Windows 8! こんにちは Xubuntu !

まずは SSD のために設定

NewXPS13 は SSD 搭載なので、Xubuntu をそのまま使ってると寿命を縮めてしまう可能性があるので、簡単な対応をしておきました。

/dev/mapper/xubuntu-root    /      ext4  errors=remount-ro,noatime  0  1
UUID={XXX...}               /boot  ext2  defaults,noatime           0  2
/dev/mapper/xubuntu-swap_1  none   swap  sw                         0  0

こんな感じで /etc/fstab 内のSSDのエントリに noatime オプションを追加しました。UNIX系のファイルシステムは、各ファイルに最終アクセス時刻 (atime) を記録しています。この atime は読んだ時も更新されるので、普通に使っているだけでSSDのハードウェア的にはガンガン atime の更新操作 = 書き込みが行われるわけで、 寿命がマッハ だと推測されます。ソレを無効化するのが noatime というわけです

ただこれもうそろそろ OS が自動でなにか対応しているかもしれません。最近の事情は追ってないので正確なところはわかりませんが、気休めに noatime だけは設定しました。他にも discard というオプションがあるのですが、今は付けるのを止めておきました。

レジューム時の問題と解決方法

あとはもう普通の Xubuntu, Linux の設定なので特別なことはないのですが、1つだけ困ったことがありました。それはキーボードに関する以下の設定が、サスペンドから復帰(レジューム)すると全部リセットされ、なかったことになってしまうのです。

  • CAPSをCTRLにする設定
  • キーリピート設定: 遅延時間と速度

色々調べてみるとレジュームするまでに xinput あたりが再起動しちゃってて、ウィンドウマネージャーとかセッションマネージャが起動時に行う上記の設定は消えてしまうようでした。

CAPSをCTRLにする設定

setxkb map -option "ctrl:nocaps"

こちらはサスペンドからの復帰時に上記を実行するだけなのですが、毎回となると面倒ですし、ログイン画面でも効かないのが気になります。

そこで /etc/default/keyboard に

# Check /usr/share/doc/keyboard-configuration/README.Debian for
# documentation on what to do after having modified this file.

# The following variables describe your keyboard and can have the same
# values as the XkbModel, XkbLayout, XkbVariant and XkbOptions options
# in /etc/X11/xorg.conf.

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS="ctrl:nocaps"

# If you don't want to use the XKB layout on the console, you can
# specify an alternative keymap.  Make sure it will be accessible
# before /usr is mounted.
# KMAP=/etc/console-setup/defkeymap.kmap.gz

こんな感じで XKBOPTIONS を指定してあげればレジューム時の再設定もバッチリです。

これは /var/log/Xorg.0.log を観察した結果、サスペンドレジューム毎に xinput が再設定されているらしいので、その時に使われている値がどこからくるのか /etc 下で grep して見つけました。いまはこんなトコロに書くようになったんですね。

キーリピート設定

xset r rate 200 30

じつはコチラが難物でして、自動設定の良い場所がなかなか見つからなくて苦労しました。結果から言うと /etc/pm/sleep.d/00_xset_rate というファイルに以下を記述する形になりました。ユーザ名を決め打ちで書いているのがイケてないのですが、私しか使わないってことで良しとしました。

#! /bin/sh

case $1 in
  resume)
    env XAUTHORITY=/home/koron/.Xauthority xset -display :0.0 r rate 200 30
    ;;
esac

このスクリプトを利用する場合、 koron のところは各自のユーザ名に書き換えないとうまく機能しないので注意してください。

結果

こんなことをした結果、私はほぼストレス0で使える Xubuntu Ultrabook を手に入れることができました。この使い勝手はプログラマにとっては MBA を大きく超えているので、そのスジで興味が有る方には非常にオススメできる満足な買い物でした。