落穂拾い

Gleanings in my life

【Gentoo】VAIO PRO 13 に Gentoo Linux をインストールする (その3)

2014年03月08日 01時09分49秒 | Linux
前回までで、disk の準備が終わった。mount も済んだ。続いて、インストールに関する設定をすればガンガンインストールできるはず。
というわけで、今回はインストール前の各種設定である。

時刻設定



まずは時計の確認。時刻がずれていると emerge --sync などでエラーの原因となったりする。
$ date

正しい JST で時刻を表示するように見せかけて、最後に UTC と付いている。要は9時間ずれだ。ここでは time zone は UTC のままとし、date で9時間ずらすことにする(9時間前にする)。

stage3 のインストール



続いて stage3 をインストールする。が、arch linux の install CD には links (テキストブラウザ) が入っていなかった。面倒なので別の PC で stage3 の最新版をダウンロードしてきて、それを scp でコピーする。コピー先は /mnt/gentoo だ。

VAIO PRO 13 の IP アドレスを ifconfig で調べてから scp。ここでは VAIO PRO の IP アドレスが 192.168.0.2 であった。
scp stage3-amd64-20131226.tar.bz2 root@192.168.0.2:/mnt/gentoo

これで stage3 の tar ball が入ったので展開する。
cd /mnt/gentoo
tar xvjpf stage3-*.tar.bz2

これで Gentoo の基礎システムが SSD 上にコピーされた。
続いて Gentoo のエンジンである emerge の設定に移る。

make.confの作成


nano /mnt/gentoo/etc/portage/make.conf

として make.conf を修正する。内容は以下のような感じ。
CFLAGS="-O2 -pipe -march=native"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j4"
CHOST="x86_64-pc-linux-gnu"

USE flag に下記を追記。
 cjk iconv unicode m17n-lib skk

Gentoo の handbook では、ここで mirrorlist コマンドで repository を同期するサーバを設定することになる。しかし arch linux には mirrorlist コマンドがない。そこで、手動でサーバを make.conf に追記する。ここでは下記の内容を追記した。
GENTOO_MIRRORS="http://ftp.jaist.ac.jp/pub/Linux/Gentoo/"
SYNC="rsync://rsync3.jp.gentoo.org/gentoo-portage"

さらに、grub 用の設定も追記する。なお、ここでは grub2 をインストールする方針である。
GRUB_PLATFORMS="coreboot efi-64 efi-32"


chroot



さて、stage3 も入ったので chroot し、arch linux の世界から gentoo linux の世界へと旅立つ。
まず、ネットワーク設定や /proc ファイルシステムなどを arch から gentoo にコピーする。
cp -L /etc/resolv.conf /mnt/gentoo/etc/
mount -t proc proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev

そして、chroot.
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"

これでやっと Gentoo のシステムに入れた。まだ stage3 (binary 配布)だけど。
ここから emerge して、ローカルでコンパイルした gentoo に仕上げていく作業が始まる。

emergeの準備



まず手始めに repository tree をアップデートする。
emerge-webrsync

そして install するプロファイルを選ぶ。ここでは Gnome を選ぶ。最終的には XFCE を使うことになるのだが、XFCE を使う場合には Gnome デスクトップを選択しておけばよい。ただし、最近の Gnome の場合、init システムとして systemd を要求するのが面倒なところだが。
eselect profile list

としてプロファイルのリストを見て、gnome/systemd のプロファイルを選択する。ここでは 5 番であった。
eselect profile set 5

確認する。
$ eselect profile list
Available profile symlink targets:
[1] default/linux/amd64/13.0
[2] default/linux/amd64/13.0/selinux
[3] default/linux/amd64/13.0/desktop
[4] default/linux/amd64/13.0/desktop/gnome
[5] default/linux/amd64/13.0/desktop/gnome/systemd *
[6] default/linux/amd64/13.0/desktop/kde
[7] default/linux/amd64/13.0/desktop/kde/systemd
[8] default/linux/amd64/13.0/developer
[9] default/linux/amd64/13.0/no-multilib
[10] default/linux/amd64/13.0/x32
[11] hardened/linux/amd64
[12] hardened/linux/amd64/selinux
[13] hardened/linux/amd64/no-multilib
[14] hardened/linux/amd64/no-multilib/selinux
[15] hardened/linux/amd64/x32
[16] hardened/linux/uclibc/amd64

さて、ここから emerge をするのだが、ここで時刻設定を再び。先程はインストールにだけ使う arch linux では適当に UTC にして手を抜いたが、今後は JST を使う。そこでGentooの時刻を JST に修正する。

/usr/share/zoneinfo を調べると Asia/Tokyo がある。
cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
echo "Asia/Tokyo" > /etc/timezone

以上でOK。

これで普通のPCなら emerge を始めればいい。しかし、VAIO PRO 13 では注意点がある。VAIO PRO 13 のネットワークチップは Linux kernel 3.12 以降でないとサポートされないのだ。ところが、このインストールした時点で Gentoo の安定版カーネルは 3.10 である。要は安定版ではネットワークが使えないのだ。

そこでカーネルについては開発版を使うように、/etc/portage/package.accept_keywords に下記を追記する。
<=sys-kernel/gentoo-sources-3.13.*

これで 3.13 までは開発版を使うようになる。なお、インストール時点での最新版は 3.12.6 だった。現状では 3.13.* になっている。

kernel の emerge


emerge gentoo-sources
cd /usr/src/linux
make menuconfig

そしてせっせと kernel を設定する。
ポイントを挙げるとすれば、

  • 無線LANのドライバを入れること(iwlwifi と iwlmvm)。特に iwlmvm を忘れないように。
  • bluetoothも設定する。ただし、ドライバは iwlwifi がやってくれるのでデバイスドライバは不要。
  • USB3.0も on
  • touchscreen も on に (evdev で使う)
  • sony_laptop も必須。

といったところか。

続いて compile。
make -j 4
make install
make modules_install

そして kernel の install。
cd /boot
ln -s vmlinuz-3.12.6-gentoo-r1 vmlinuz
ln -s System.map-3.12.6-gentoo-r1 System.map
ln -s config-3.12.6-gentoo-r1 config

systemd



これで Gentoo Linux のカーネルは無事にインストールできたはず。しかし、まだ systemd はインストールされていない。systemd は openrc より分かりにくい気がするが、時代の趨勢か利用せざるを得ない。インストールする。
emerge -av systemd 

しかし、dbus と競合する…。このあたりの辛さが gentoo の産みの辛さ。/etc/portage/package.use に
sys-apps/dbus -systemd

を追記してから、
emerge -av systemd 

を実行。これで systemd が入った。続いて /etc/portage/package.use から 上記のエントリを消去して、
emerge -av dbus

を実行。これで無事 dbus も systemd と共存してインストールできた。systemd の場合、mtab は proc ファイルシステムからのシンボリックリンクを使うことになる。このあたりは gentoo の wiki に詳しい。
ln -sf /proc/self/mounts /etc/mtab

あとは boot 設定のみだ。

コメントを投稿