[Armadillo-9] portage-2.1.2.2のインストール
「やれやれ敵はそんなに甘くない」と、「Gentoo-kuroboxpro公開を始めました」を読む。やはり、約二年ほど新しいStageの公開が止まっている事で苦労するのは何処も同じ様だ。
さて、「stage3-kuroboxpro-20070605.tar.bz2」を頂いて展開し、眺めてみる。同じ日付で二つ置かれているが、何が違うのだろう(?_?)。
展開中に真っ先に気がついたのは、
CHOST="armv5te-kuroboxpro-linux-gnu"
になっていること。元々は "arm-unknown-linux-gnu"だから、Cool!!。早速、真似することにする(笑)。
色々子細を見てみたかったが、"-march=armv5te"で最適化されているため、"Gentoo-kuroboxpro"は Armadilllo-9で動かす事が出来ない。
Gentoo Armadilllo-9
"Gentoo-KURO-BOX/PRO"の公開が始まったのに刺激を受け、"Gentoo Armadilllo-9"も公開したくなった。が、まだお見せ出来るレベルでは無い(公開するなら、Python2.3とか Perl5.8.5を綺麗に消し、gcc-4.1.2, glibc-2.5-r3にしたい)。
が、それでは半年後…の可能性があるし、取り敢えず「make && make installの手作業でアップデート」しないで済む位の公開はしたいと思う。
前提条件
1. "-mcpu=armv4t"で最適化されたコードを実行出来る ARMプロセッサであること。
多分、Zaurusも KURO-BOX/PROいけるんでないか?
2. Gentoo Linuxが稼働しているマシンがあること。
Portageがまともに動かない環境では、Gentooが稼働しているマシンの"/usr/portage"下が必須。
3. HDD
USB経由でも直結でも構わないが、2GB以上の容量は必要だろう。
準備
後でオリジナルカーネルでブートさせるなら、Armadilllo-9のマニュアルに従って EXT2でフォーマットした方がいいだろう。残念ながら、EXT3では Harmitがカーネルを読み出せず、ブート出来ない。
次に、入手可能な中で最新のStage3「stage3-armv4l-2005.1.tar.bz2」を入手し、展開する。次にportageを展開するが、Armadilllo-9の ROM中の atmark-distでは NFS出来ない様だ。かつ、metadataが必要であるから、Gentooが稼働しているマシンから ftpで転送する必要があるのではないか?
なぜ疑問系かと言えば、既に私のArmadilllo-9はセルフビルトしたカーネルでブートし、Gentoo Linux環境下で動作しており、NFSで /usr/portageをマウントしているから…。そう、試していない。
portageが準備出来たところで、Gentooハンドブックに従い chrootし、「カーネル設定」の直前まで済ませておく(Gentooユーザーならなんの説明も要らないだろう)。
Portageの問題
この時点でなんらかの emergeをしようとすると、以下の様なエラーに遭遇するだろう(あなたが試す頃には、多少メッセージが違うかもしれない)。
# emerge -pv -e system
These are the packages that I would merge, in order:
Calculating system dependencies |!!! Cannot resolve a virtual package name to an ebuild.
!!! This is a bug, please report it. (virtual/libiconv-0)
これは「Gentoo Weekly Newsletter: 2006年3月6日: 一般的なPortageエラーメッセージ」に掲載されるほど有名な話しで、「バグ報告するな」とも書かれている。
解決方法はPortageをアップデートすること。が、アップデートしようにもこのエラーが邪魔して何も出来ない。仕方ないから、手作業で各パッケージを"./configure && make && make install"する必要があり、Gentoo 'ARM' Linuxの敷居を高くしている。
Portageの更新
この問題を簡単に解決するために、この日記の存在価値がある。簡単に解決するには、最新のPortageツリーで稼働しているGentoo 'ARM' Linuxマシンからバイナリを持ってくる事だ。
「armv4t_base_packages_070610.tar.bz2 (分割ファイル aa, ab, ac, ad, ae)」を掲載しておく。これをダウンロード・結合(ここのブログの制限か、10MB以上のファイルをアップロード出来ない為)し、作業フォルダに展開してほしい。展開したなら、これらのバイナリパッケージをインストールする。手順は以下になるだろう(作業を簡単にするため、以下の例では portageフォルダに展開している。nfsで x86マシンと共有している場合は注意)。
# cd /usr/portage/packages
# wget http:// .... /armv4t_base_packages_070610.tar.bz2
wget http://starboze.txt-nifty.com/into_the_linux_world/files/armv4t_base_packages_070610.tar.bz2.aa
wget http://starboze.txt-nifty.com/into_the_linux_world/files/armv4t_base_packages_070610.tar.bz2.ab
wget http://starboze.txt-nifty.com/into_the_linux_world/files/armv4t_base_packages_070610.tar.bz2.ac
wget http://starboze.txt-nifty.com/into_the_linux_world/files/armv4t_base_packages_070610.tar.bz2.ad
wget http://starboze.txt-nifty.com/into_the_linux_world/files/armv4t_base_packages_070610.tar.bz2.ae
cat armv4t_base_packages_070610.tar.bz2.aa armv4t_base_packages_070610.tar.bz2.ab armv4t_base_packages_070610.tar.bz2.ac armv4t_base_packages_070610.tar.bz2.ad armv4t_base_packages_070610.tar.bz2.ae > armv4t_base_packages_070610.tar.bz2
# tar jxvf armv4t_base_packages_070610.tar.bz2
# emerge -vk --nodeps =sys-apps/acl-2.2.39-r1
# emerge -vk --nodeps =sys-apps/sandbox-1.2.17
# emerge -vk --nodeps =app-misc/pax-utils-0.1.15
# emerge -vk --nodeps =virtual/libiconv-0
# emerge -vk --nodeps =sys-apps/attr-2.4.32
# emerge -vk --nodeps =net-misc/rsync-2.6.9-r1
# emerge -vk --nodeps =sys-devel/gettext-0.16.1
# emerge -vk --nodeps =sys-apps/coreutils-6.7-r1
# emerge -vk --nodeps =sys-apps/portage-2.1.2.2
さぁ、これで emergeが操作出来る様になった筈だ。次は gccのアップデート作業をお薦めする。
おまけ
その他のファイルも一気にインストールしたいなら、
# emerge -vk =dev-python/python-fchksum-1.7.1
# emerge -vk =dev-lang/python-2.4.3-r4
# emerge -vk =sys-libs/readline-5.2_p2
# emerge -vk =sys-libs/zlib-1.2.3-r1
# emerge -vk =app-misc/ca-certificates-20070303-r1
# emerge -vk =dev-libs/openssl-0.9.8d
# emerge -vk =sys-apps/coreutils-6.7-r1
# emerge -vk =net-misc/rsync-2.6.9-r1
# emerge -vk =sys-apps/acl-2.2.39-r1
# emerge -vk =sys-apps/attr-2.4.32
# emerge -vk =sys-devel/libtool-1.5.22
# emerge -vk =sys-devel/automake-1.9.6-r2
# emerge -vk =sys-devel/automake-1.10
# emerge -vk =sys-apps/help2man-1.36.4
# emerge -vk =sys-devel/autoconf-2.61
# emerge -vk =dev-perl/Locale-gettext-1.05
# emerge -vk =dev-libs/popt-1.10.7
# emerge -vk =sys-apps/diffutils-2.8.7-r1
# emerge -vk =sys-apps/sed-4.1.5
# emerge -vk =sys-devel/m4-1.4.8
# emerge -vk =sys-apps/texinfo-4.8-r5
# emerge -vk =sys-devel/gettext-0.16.1
# emerge -vk =dev-libs/expat-1.95.8
# emerge -vk =perl-core/PodParser-1.35
# emerge -vk =app-admin/perl-cleaner-1.04.3
# emerge -vk =perl-core/Test-Harness-2.64
# emerge -vk =dev-lang/perl-5.8.8-r2
# emerge -vk =sys-devel/libperl-5.8.8-r1
# emerge -vk =sys-libs/db-4.2.52_p4-r2
# emerge -vk =app-shells/bash-3.1_p17
# emerge -vk =sys-libs/ncurses-5.6
# emerge -vk =app-misc/pax-utils-0.1.15
# emerge -vk =sys-devel/autoconf-wrapper-4-r3
# emerge -vk =sys-apps/sandbox-1.2.17
# emerge -vk =virtual/libiconv-0
# emerge -vk =sys-devel/automake-wrapper-3-r1
# emerge -vk --nodeps =virtual/libintl-0
# emerge -vk =sys-devel/gnuconfig-20070118
# emerge -vk --nodeps =sys-apps/portage-2.1.2.2
になるだろう。
さらに、「armv4t_base_packages_070610.tar.bz2」の中には gcc-4.1.2も入っている。このインストールは以下の手順になるだろう。
# emerge -vk =sys-devel/bison-2.2
# emerge -vk =sys-apps/findutils-4.3.4 to /
# emerge -vk =sys-devel/binutils-config-1.9-r4 to /
# emerge -vk =sys-devel/binutils-2.17 to /
# emerge -vk =sys-devel/gcc-config-1.3.16 to /
# emerge -vk =sys-devel/gcc-4.1.2
# gcc-config armv4t-a9-linux-gnu-4.1.2
# source /etc/profile
# emerge -vk =sys-devel/libtool-1.5.22
# ACCEPT_KEYWORDS="x86" emerge --oneshot -kv =sys-libs/libstdc++-v3-3.3.6
おめでとう。あなたは今日現在の私の環境と同じになった。
何故って、私も環境再構築中だがらである。本来は、X11R7のビルドをしたいのだが、どうやら ARMでは GCC4以降でないと linuxthreads絡みでビルド出来ないらしい。その一方、Linux2.4系も使いたいから GCC3を選択し、GCC4は消してしまった。だから、こうして環境の再構築をするハメになっている。
| 固定リンク
« [Armadillo-9] Gentoo Linux on the Armadilllo-9 | トップページ | [Armadillo-9] The KDrive Tiny X Server »

コメント