経緯のまとめ

ThinkPad X1にはLinuxを入れようと思っており、Debian/Ubuntu系ディストリビューションを検討していました。DebianよりUbuntuを使っていたことの方が多かったのですが、Ubuntuは、

  • Cinnamonデスクトップがサポートされなくなったこと
  • あらかじめ用意されすぎててダメになりそう

だったので、Debianにしようと思っていました。

しかし、(少なくとも)当時安定版(stable)・テスト版(testing)のDebianではIntel HD Graphic 5500に対応しておらず、Cinnamon環境ははsoftware renderingになってしまいました。いちいちその表示がうざったいので原因を探ると、(linux kernel)linux-image-3.16.7では、それに入っているxf86-video-intelが古く、Intel HD Graphic 5500搭載のCPU世代に対応したものではなかった、ということが分かりました。linux-imageを上げるためには、安定板ではまだ配布されておらず、不安定版(unstable)へ更新すればできるとのことでしたが、(対応したxf86-video-intelが入っている)linux-imageを4.0.2にしても改善されず、更新でエラーが増えただけでした。よくよく、linux-imageに含まれると調べた先では書いてあったのですが、ArchLinuxでは別途インストールしたので、複雑な依存関係(xf86-video-intelは複雑らしいです)を乗り越えて、xf86-video-intelをアップデートする必要があったのでしょう。

この調べ中に、xf86-video-intelで発見したのがArchWikiでした。さて、ArchLinuxって聞いたことはあるけど、実際何ぞやとぐぐってっみたところ、拝見したのが「こちら(Divide et impera - 愛着が湧くほどの恐怖を味わえる。そう、ArchLinuxならね)」の記事でした。「愛着」という点で納得のいくものがありました。

改めて考えると、Ubuntuはまめにアップグレードされているし、Linuxディストリビューションの中でもソフトウェアに特にサポートされているようでもありました。あらかじめ、設定も結構用意してあるし、デスクトップ環境にこだわりがなければ、めっちゃいいやんと思いつつあります。それでも、サブやUSBブートならともかく、否定的な思いもややあります。

なるほど、愛着が持てなかったからかもしれない---

そう思ってこのThinkPadではArchLinuxを使っていこうと思います。

というわけで、しばらくArchLinuxを、先日のSSD換装にともなって再インストールするというお話です。Windows10のクリーンインストール編は前の記事へ。

参考にするのは、基本的に「ArchWiki」と「普段使いのArchLinux」さん。

インストールに際して、そちらだけで十分ですが、ThinkPad X1 Carbon (Gen3)および、デュアルブートに合わせて、疑問点や補足した点を以下にまとめました。一応、ターミナルなどのコマンド操作は黒、vimなどのコンソールアプリでの操作は緑の背景にしてますが...余計に分かりにくいかもしれません。また、PC向けしかCSSを編集してないので...

BIOSの設定

デュアルブートを行う前に、BIOS Setup画面でSecureBootを無効化します。("CMOS"らしいですが、以降で設定画面に関しては、BIOS画面と呼びます。あしからず。)

一部のディストリビューションはSecureBootをサポートしており、そこにはArchLinuxも含まれますが、SecureBootは無効化することを推奨する旨がwikiに記載されています。

ThinkPad X1 (2015)の場合、Lenovoのロゴが現れているときにF1を押すと、BIOS画面(ThinkPad Setup)に入ります。F1ではなくEnterを押すと、BIOSの他、EFIブートメニューを開くためにはどのファンクションキーを押せばいいか、helpを見ることが出来ます。

BIOS画面(ThinkPad Setup)で「Security > Secure Boot > Secure Boot」でEnableをDisableに切り替えます。また「Config > Fanction and Ctrl Key swap」をEnableにすると、一般的なキーボード配列で、FNキーとCtrlキーを使えるようになります。(キーボードキャップは交換できないのが残念です。)なお、Configでタッチパッドも無効化できたように思いますが、Windowsでしか作用しません。(外部ブートに関しては設定はいらなかったと思いますが、どうしてもブートできないようであればBIOSを確認してください。)

インストール用USBを"dd"コマンドで作成

参考:ArchWiki - USB インストールメディア

まずはArch Linuxの公式サイトから最新のisoイメージをダウンロードします。一方で、インストールに使うUSBはパーティションテーブルをGPTで初期化しておきます。(これはGpartedを使えば楽。)

次に、ダウンロードしたisoをUSBに書き込みます。
# dd bs=4M if=[isoのpath] of=/dev/sdX && sync

[isoのpath]でダウンロードしたisoを指定します。また、書き込み先のsdXのXはインストールしたいUSBの番号(sdbなど)のことで、コマンドでもGPartedでも確認できます。

これでインストール用ブータブルUSBは完成です。もしブートできなければ、biosを確認する(PC側の設定が原因の場合)か、一度Live版でいいのでLinuxをブートできたUSB(USBが原因の場合)を使ってください。このときUSBハブを挟んでいるとうまく行かない場合が多いです。

インストール後のUSB

このままではUSBドライブはデータ用に使えないので、一度、USBの先頭512MBを初期化します。

# dd count=1 bs=512 if=/dev/zero of=/dev/sdx && sync

その後で、GPartedでパーティションテーブルをmsdosなどにして初期化します。

EFIでインストール

参考:ArchWiki - ビギナーズガイド
参考:普段使いのArchLinux - Arch Linux インストール

上記の参考のリンク(普段使いのArchLinux)を参照してください。ArchWikiに従うより分かりやすい、というか確実です。はしょれる設定ははしょって、wikiと混ぜながらまとめようと思っていたのですが、うまくいかなかったので。

ThinkPad X1 Carbon (gen3)でWindows10とデュアルブートする、という目的において変更した点などを記載します。(ので、ここだけみてもインストールはできないのです...)

USBブート

ThinkPadの場合、F12をブート時に押すことでEFIブートメニューに入れます。ここでUSBメモリを選んでください。また、後でWindowsを起動する場合は、(Grubをいじらなければ、)この画面で、Windows Boot Managerを選択しててブートします。

パーティション分割

キーボードが日本語キーボードであれば、先に仮設定しておきます。

# loadkeys jp106

パーティションですが、デュアルブートが目的なので、既に構成されているパーティション領域には触れないものとします。以前の記事のようにWindows10をクリーンインストール(+300GBに縮小)した場合は、

  • sda1 450MB 回復パーティション
  • sda2 100MB EFIブートパーティション
  • sda3 16MB ??
  • sda4 300GB WIndows本体
  • 未割当領域
となっていました。このうち、sda2のEFIブートパーティションは使いますが、他は触らず、未割当領域にパーティションを作成していきます。WIndows10へアップグレードしただけの場合、パーティション構成は異なりますが、ArchLinuxのインストール時に使うのはEFIブートパーティションだけなので、GPartedやWindows標準のパーティショニング(コンピューターを右クリックのやつ)で検討をつけて下さい。フォーマットはおそらくfat32か"EFI boot partition"みたいになっており、また、領域は100~512MBのことが多いです。(消去法的だったかもしれませんが)ラベルで判別できた思いますが、どうだったか...最後のタイミングとしては、/mnt/bootにマウントしたときに、「EFI」というフォルダがあればそれです。

ということで、先のパーティションに続けて、

  • sda5 4GB SWAP
  • sda6 40GB / パーティション
  • sda7 60GB /home パーティション
  • 未割当領域(共有パーティション)
と、パーティションを作成し、ファイルシステムはXFSを使いました。(現在のパーティションはlsblkコマンドで確認できます)
# gdisk /dev/sdX
Command (? for help): n(新しいパーティションを作る)
Partition number:(ENTER)(デフォルトで次の番号)
First sector: (ENTER)
Last sector: +4G
Hex code or GUID: 8200 (swap用は8200)
Command (? for help): n
Partition number:(ENTER)
First sector: (ENTER)
Last sector: +40G
Hex code or GUID: (ENTER)(デフォルトがファイルシステムの8300)
Partition number:(ENTER)
First sector: (ENTER)
Last sector: +60G
Hex code or GUID: (ENTER)
Command (? for help): w
Do you want to proceed?: Y
# mkswap /dev/sdX5
# swapon /dev/sdX5
# mkfs.xfs -m crc=1 /dev/sdX6
# mkfs.xfs -m crc=1 /dev/sdX7

ファイルシステム

現在、Linuxでよく使われるファイルシステムはいくつかあります。私が調べた感じでは、HDDの場合ex4が向いており(ディスクを想定しているらしい)、SSDの場合はXFSが優勢のようです。このいずれかが無難なようです。

マウント

ArchWikiでは、EFIブートパーティションは/boot/efiにマウントするといいと書いてますが、そんなことはないんじゃないかなーと思います。GRUBのインストールの関係で?うまく行かなかった(/boot直下にもファイルができていた)ので、/bootにマウントします。

# mount /dev/sdX6 /mnt
# mkdir /mnt/home
# mount /dev/sdX7 /mnt/home
# mkdir /mnt/boot
# mount /dev/sdX2 /mnt/boot

日本語化は別の記事に紹介されていますので、GRUBのインストールまでは普段使いのArchLinuxさんのこの記事での紹介に従ってインストールしました。続きはそれ以降での作業となります。

ArchLinuxにGUI環境を用意

参考:普段使いのArchLinux - Arch Linux インストール

先ほどと同様、参考ページを前提に。参考先は先のインストールの続きで、日本語化他です。もうpacmanは使えます。

まだユーザーを作っていないので、再起動したらユーザー名は「root」、パスワードはルートパスワードを打ち込んで認証を入ってください。

visudoなど、なるべく「何か書く」処理は後回しの方がいいです。英字キーボードをつなげているならともかく、記号を打ち込む必要があると、不便極まるので、日本語の設定・キーボード設定のあとを推奨します。

X-Windows Systemをインストールする

対象はThinkPad X1 Carbon (gen3)の場合、Xやドライバでまずインストールするものは、以下のもの。「pacman -S」に続けて、スペースで区切るとまとめてインストールできます。

  • X window systemのパッケージなど
  • xf86-video-intelビデオドライバ(と予備のvesa)
  • (使えるかは分からないのですが)libva-intel-driver

# pacman -S xorg-server xorg-server-utils xorg-xinit xorg-xclock xterm xf86-video-intel xf86-video-vesa libva-intel-driver

gnome,cinnamonをインストールする

cinnamonもgnomeとともにインストールします。

# pacman -S gnome gnome-extra cinnamon

ディスプレイマネージャは素直にgdmを使用します。SLiMはなぜかログインできなくなるのでよく分からない人はやめておきましょう。私はよく分からない...

再起動すればGUIでログイン画面が表示されるので、パスワード入力部の隣のマークをクリックして、デスクトップ環境を選びます。ログアウトして、でもできるのですが、dmによってはログインしまくるとダメという話もあったので、再起動の方がいいです。SSDなら時間もかからないので。

yaourt

はじめはyaourtの使い方が分からなかったので注意点です。まず、yaortは管理者状態ではできません。「su -」から出て、一般ユーザー状態で使用します。yaourtでpacmanのもの以外をインストールしようとすると、PKGBUILDを編集するか聞かれます。確認できる方が安全ですが、はじめは見ても分からないので、編集しない(N)と答えると、インストールし始めます。pacmanより時間はかかります。

日本語化

ThinkPadのキーボードなどを設定

まず、synapticをインストールします。

# pacman -S xf86-input-synaptics

次は最新のUbuntuからThinkPad用の設定ファイルを頂戴してきます。Ubuntuの/usr/share/X11/xorg.conf.d/にある全ファイルをArchLinuxの/usr/share/X11/xorg.conf.d/にコピーします。これで中クリックも使えるようになります。キーボード設定は参考先と異なり、ThinkPadなのでhhkではなく、thinkpadに指定しましたが、XkbLayoutだけでも良さそうではあります。

Option "XkbModel" "thinkpad"
Option "XkbLayout" "jp"

日本語入力Mozcをインストール

参考:ArchWiki - Mozc

ibus-Mozcで利用します。/etc/pacman.confに、配布元(sourceforge)を追加し、pacmanを更新した後、インストールします。

# vi /etc/pacman.conf
[pnsft-pur]
SigLevel = Optional TrustAll
Server = http://downloads.sourceforge.net/project/pnsft-aur/pur/x86_64/
pacman -Syy
pacman -S mozc-im

Mozcをyaourtでインストール

Mozcをyaourtでインストールすることもできます。

# yaourt -S mozc-im

日本語環境の設定

参考:ArchWiki - iBus

まず、デスクトップ環境をgnomeにしてログインしてください。cinnamonでは言語設定の項目がありません...

GUIの「Setting > setting-Region&Language」で日本語を選択、また、Imput Sourcesで日本語(Mozc)を選びます。gnomeでの作業はこれだけなので、再起動してcinnamonにログインします。

「ibusの設定(検索ボックスにibusで出ると思います)」で、input methodがmozcのみになればOKです。(ibus-setupコマンドでも設定画面は出ます。)

参考に記載があるように、ibusでキーボードが勝手に変更されないように、/usr/share/ibus/component/mozc.xmlの<layout> default<⁄layout>の行を<layout>jp<⁄layout>に変更しました。

/etc/locale.confは最低限LANGさえja_JP.utf8にしておけばよく、他は好みで。

また、「~/.bash_profile」に日本語設定の記述を書きます。

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

これで、起動後のcinnamon(gnome)は日本語入力もできるようになりますが、それはgeditやターミナルだけで、FireFoxなどの外部ソフトウェアでは日本語入力ができません。これは全く意味がないので、「ibus-daemon -xdr」のコマンドでibus-daemonを起動する必要があります。しかし、SSDが速いのか、「~/.bash_profile」では反映されないので、ターミナル起動を前提に、「~/.bashrc」にibus-daemonを起動するよう書くことになります。あるいは、「設定 > Startup applications」で以下の起動コマンドを登録します。トレイにアイコンが表示されている場合、(設定が正しければ)日本語入力が有効になっているはず。

ibus-daemon -xdr
Screenshot from 2015-06-25 15-00-53

これで日本語化は完了です。が、謎の事故で日本語入力可能になってなかったりします。「PATHが反映されてない=.bash_profileを読み込んでない」時は/etc/profileに環境変数を書いてください。それでもキーボードが英字のままのときは、これまでのキーボード設定の手順(再起動 > ibusの設定を確認 > /usr/share/X11/xorg.conf.d/10-evdev.confの確認 > usr/share/ibus/component/mozc.xmlの確認 > 再起動)を再度たどってください。確認したところ、勝手に書き換えられていることもありました。それでも無理ならぐぐるしかなさそうですが...

文字の美化

参考:普段使いのArchLinux - Arch Linuxで日本語フォントをきれいに表示

フォントのフォルダ

gnomeではフォントをダブルクリックして、「インストールする」でインストールできますが、Linuxではユーザーのホームディレクトリにフォルダ「~/.font」を作り、フォントファイルを置けばいいそうです。

しかしこの方法では、ソフトウェアによっては反映されないこともあるので(なんでだろう?)、pacmanかyaourtから、otf-ipafontなどを入れます。

参考先の手順通りに作業すればできます。ただし、「71-no-embedded-bitmaps.conf」という名前ではないと思います。(インストール環境・時期で異なる?と思いますので。)なので編集先は、/etc/fonts/conf.avail/中の*-no-bitmaps.confのようなファイル名のものです。新規にファイルを作成するということじゃないかなーという気がしてきました。

管理者権限でgeditとかを使った方がコピペ作業で楽かもしれません。

Wirelessの有効化

参考:ArchWiki - ワイヤレス設定
参考:ArchWiki - NetworkManager

Debianのように、firmware-iwlwifiをインストールする必要はありません。WiFiを拾えるように「NetworkManager」を使います。(多くのディストリビューションはこれ。)Wikiにはコマンドでやってみようと書いてますが、手順に従ってやってもなぜかつながっていると表示されるのにつながってない、みたいなことになったので嫌な思い出です。pacmanでインストール後、systemdに登録します。(gnomeをインストールしたのでgnome-keyringはインストール済み。)Windowsなどのように、トレイのインターネット接続のアイコンをクリックするとWiFiが選べる(有線が優先ですが)ようになります。アイコンが出なければ再起動すればでると思います。

# pacman -S NetworkManager
# sytemctl enable NetworkManager.service

これで、デュアルブートは完成です。修正があれば編集します。参照のリンクを張り損ねていたらすみません。後日、grubにwindowsのエントリを追加したらまとめる予定です。


追記 : pacman -Syuで、更新をかけるとある日、キーボードレイアウトが崩れました。前述のiBusの設定ファイルは変更されていません。Cinnamonの設定メニューのキーボード項目を見てみると、レイアウトが英語キーボードになっていたので、日本語キーボードを追加し、英語キーボードを削除すると戻りました。このように、パッケージの更新の関係で、急に設定が変わったりするのがArchの悲しいところですね。