玄箱Gentoo化 — 『kurobox.com』の手順 その3

これまでの、手順はほとんどボロPCのときと変わりません。それでは、chrootしてGentooシステム内にはいります。

# mount -t proc none /gentoo/proc
# cp -L /etc/resolv.conf /gentoo/etc/
# mount -t proc none /gentoo/proc
# cp -L /etc/resolv.conf /gentoo/etc/
# chroot /gentoo /bin/bash 

KURO-BOX-EM / # source /etc/profile

プロンプトが、変わりました。

しばらくは使いにくいnanoを使うので、TERM変数を設定しておきます。

KURO-BOX-EM / # export TERM=vt100

portageスナップショットは、/varの直下につくります。kurobox.comでは、/var/tree下に作っていますが、今回使用しているファイルでそのようにすると、シンボリックリンクが、1つ深くなってしまってうまくいきません。

KURO-BOX-EM / #

以下の、portage下に必要なディレクトリを作っておきます。

KURO-BOX-EM portage # cd /var/portage
KURO-BOX-EM portage # mkdir distfiles
KURO-BOX-EM portage # mkdir packages
KURO-BOX-EM portage # mkdir rpm
KURO-BOX-EM portage # cd ..
KURO-BOX-EM portage # mkdir overlays

/etc/make.confnanoで開いて、以下のように編集しました。

# Kurobox make.conf

CFLAGS="-O2 -mcpu=603e -fno-strict-aliasing -pipe -fsigned-char"
CXXFLAGS="${CFLAGS}"

PORTDIR=/var/portage
DISTDIR=/var/portage/distfiles
PKGDIR=/var/portage/packages
RPMDIR=/var/portage/rpm 

PORTDIR_OVERLAY="/var/overlays/kurobox"

RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes

GENTOO_MIRRORS="http://mirror.gentoo.gr.jp/"
SYNC="rsync://192.168.11.121/gentoo-portage"

PORTAGE_TMPDIR=/var/tmp
MAKEOPTS="-j6"
FEATURES="distcc"
DISTCC_DIR="${PORTAGE_TMPDIR}/.distcc"

ボロPCをrsyncサーバーをして、玄箱ではよく失敗するportage更新を、LAN内で実行するように、SYNC変数を指定しています。
また、玄箱でネックとなる、コンパイルを少しでも、早く実行できるようdistccを利用して、ボロPCに手伝わせる指定もしております。
rsyncサーバの構築とdistccの導入については、別途『Gentooいじり』に書く予定です。

/etc/make.profileにシンボリックリンクをはっておきます。

KURO-BOX-EM portage # rm make.profile
KURO-BOX-EM portage # ln -s ../var/overlays/kurobox/profiles/kurobox make.profile

次に、portageキャッシュをアップデートしておきます。

KURO-BOX-EM portage # emerge metadata

emergeをテストランして、portageの整合性をチェックします。

KURO-BOX-EM portage # emerge -puD system
Calculating system dependencies ...done!

OK!

ついでに、ボロPCにrsyncして、portageを最新状態にしておきます。

KURO-BOX-EM portage # emerge --sync

ふ~む、多少早い気がする・・・。LAN内から、ダウンロードしてるんだから、その分早くなるのは当たり前か。

とりあえず、ここでティーブレイク。

・・・(To be continued)

chroot環境下でGentoo構築


玄箱Gentoo化の手順は、以下のようなステップを考えています。

  • まず、chroot環境下で、Gentoo環境構築
  • Gentoo環境下に、ハードウェアまわりに必要なモジュールを、オリジナルから、持ってくる
  • できたGentooイメージを、ルートに展開して、Gentoo化の出来上がり

まあ、そう簡単にはいかないと思いますが、ちまちまやることにします。

ああ、chrootがない。・・・そうかもね、NASには必要ないしと納得。しかし、こんなところで、納得してもいられない。どうしようかと、付属CDの内容をみていると、binaryの下にツール類があるのを見つけました。autoconf,binutils,gcc,make…。ふ~む、まずはこれを、全部入れておきます。もしかしたら、chrootもあるかも?

# which chroot

chrootは、ありません。付属CDについてきたツール類で、コンパイルはできそうなので、ソースからコンパイルすることにします。

# emerge --search chroot

してみると、Gentooでは、coreutilsにパッケージされているらしい。 Gentooミラーサイトから、coreutils-5.2.1.tar.bz2を持ってきて、玄箱の共有フォルダ経由で、コピーします。適当なディレクトリに展開し、

# ./configure
# make

さすがに、PowerPC200MHzだと、時間がかかりますねー。
src下に、chrootができたので、/usr/local/sbinにコピーします。

# which chroot
/usr/local/sbin/chroot

ボロPCの時と同様に、ステージ→Portageと進むのですが、今回は、Stage3で手を抜くわけにはいきそうもない。Stage1をダウンロード&展開。Portageも同じく。
/etc/make.confを編集して、

# mount -t proc none /mnt/share/gentoo/proc
# chroot /mnt/share/gentoo /bin/bash
# env-update
# source /etc/profile

chrootもできた・・・。

が、

# emerge --sync

あれ、順調に進んでいたかに、見えたのですが、遅いのではなさそう・・・固まっています。Teratermで[Enter]を叩いただけで、Teratermが閉じてしまいました。

・・・(To be continued)

chrootして、構築する環境に入る


さて、いよいよchrootするわけですが、その前にDNS情報のコピーと、procファイルシステムをマウントしておきます。

cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
mount -t proc none /mnt/gentoo/proc

chrootの準備は整った(ハズ)。

# chroot /mnt/gentoo /bin/bash

環境を引き継ぐ。

# env-update
# source /etc/profile

次は、Portageの更新とやら・・・

# emerge --sync

必要なロケールだけ使用するように設定します。

echo "sys-libs/glibc userlocales" >> /etc/portage/package.use

/etc/locales.buildを編集して、以下のように設定します。

en_US/ISO-8859-1
en_US.UTF-8/UTF-8
de_DE/ISO-8859-1
de_DE@euro/ISO-8859-15
ja_JP.EUC-JP/EUC-JP
ja_JP.UTF-8/UTF-8
ja_JP/EUC-JP