以下の非常に簡潔なパッチを当てると、LinuxカーネルがKUROBOX-PROで動作するようになりました。
diff --git a/arch/arm/mach-orion5x/kurobox_pro-setup.c b/arch/arm/mach-orion5x/kurobox_pro-setup.c
index cb72f1b..86bf268 100644
--- a/arch/arm/mach-orion5x/kurobox_pro-setup.c
+++ b/arch/arm/mach-orion5x/kurobox_pro-setup.c
@@ -137,7 +137,7 @@ static int __init kurobox_pro_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
}
static struct hw_pci kurobox_pro_pci __initdata = {
- .nr_controllers = 2,
+ .nr_controllers = 1,
.swizzle = pci_std_swizzle,
.setup = orion5x_pci_sys_setup,
.scan = orion5x_pci_sys_scan_bus,
今のところ、上記パッチにてkurobox-proで動作を確認したのは
kernel-2.6.26.19
kernel-2.6.27
Kernel-2.6.28.7
Kernel-2.6.29-rc7
です。config はそれぞれ arch/arm/configs/orion5x_defconfig
を .config にコピーすれば概ねOKです。
たった1バイトの変更点ですが、やっとまともに動くカーネルがコンパイルできました。
2009年03月05日
2009年02月17日
実験的な gentoo-linux Arm9 stage3 と New-Kernel(2.6.25.6) について
KUROBOX-PRO で なかなかgentoo-linux が思ったように動かないのが私の癪の種でした。
が、ここにきて(2009,02)新しいstage3 ファイルが次々と公開されだしました。
新しいカーネルでどうやらまともに動くように思えるので簡単にレポートします。
2009年2月現在、公開されている
http://ftp.naist.jp/pub/Linux/gentoo/experimental/arm/autobuilds/
にはそれぞれ、月日別にバージョンが上がっていますが、目下最新のものは
http://ftp.naist.jp/pub/Linux/gentoo/experimental/arm/autobuilds/20090208/armv5tel-softfloat-linux-gnueabi/stage3-armv5tel-20090208.tar.bz2
のように思われます。
glibc-2.7-r2 の仕様の関係と思われますが、Kernel-2.6.14以上でないとまったく起動せず、またバッファローが提供しているカーネル(Kernel-2.6.16.6-arm1)ではglibc が利用する一部のシステムコールが実装されていないので、Kernel-2.6.25程度の新しさがないと rm,chmod,touch などが十分に機能しません。
幸い、現在、LinuxのカーネルはMarvell Arm9 シリーズをサポートしてくれているらしいので比較的新しいカーネルも作成できます。
http://buffalo.nas-central.org/wiki/Kernel-cross-compile-kurobox-pro
の助けを借りました。
結果的にはKernel-2.6.25.6はクロスでもセルフでもコンパイルでき、また、rm chmod touch
など従前のカーネルでは問題のあった動作もOKに見えます。
以上簡潔に報告まで
が、ここにきて(2009,02)新しいstage3 ファイルが次々と公開されだしました。
新しいカーネルでどうやらまともに動くように思えるので簡単にレポートします。
2009年2月現在、公開されている
http://ftp.naist.jp/pub/Linux/gentoo/experimental/arm/autobuilds/
にはそれぞれ、月日別にバージョンが上がっていますが、目下最新のものは
http://ftp.naist.jp/pub/Linux/gentoo/experimental/arm/autobuilds/20090208/armv5tel-softfloat-linux-gnueabi/stage3-armv5tel-20090208.tar.bz2
のように思われます。
glibc-2.7-r2 の仕様の関係と思われますが、Kernel-2.6.14以上でないとまったく起動せず、またバッファローが提供しているカーネル(Kernel-2.6.16.6-arm1)ではglibc が利用する一部のシステムコールが実装されていないので、Kernel-2.6.25程度の新しさがないと rm,chmod,touch などが十分に機能しません。
幸い、現在、LinuxのカーネルはMarvell Arm9 シリーズをサポートしてくれているらしいので比較的新しいカーネルも作成できます。
http://buffalo.nas-central.org/wiki/Kernel-cross-compile-kurobox-pro
の助けを借りました。
結果的にはKernel-2.6.25.6はクロスでもセルフでもコンパイルでき、また、rm chmod touch
など従前のカーネルでは問題のあった動作もOKに見えます。
以上簡潔に報告まで
2009年01月17日
Kurobox/Proカーネルのバージョンアップと新しいexperimental なgentoo-stage3
すでにお気づきの方も多いと思うが、バッファローのLS-HGLシリーズのファ
ームウェアダウンロードサービスから得られるファームウェアアップデータ
は、LS-HGLがもともとKUROBOX/PROそっくりのハードウェアであると推定できる
ことから、カーネルもそのまま流用できると考えられる。
http://buffalo.jp/download/driver/hd/ls-hgl_fw106.htm
http://buffalo.jp/download/driver/hd/ls-hgl_fw.html
これらに新しいカーネルイメージが含まれている (uImage.buffalo)
カーネルkernel-2.6.16.16-arm1 などである。
動作確認については少なくとも私のところではKUROBOX/PROで正常に起動し、
この数日かなり激しい負荷をかけているがあまり問題がないように思える。
この新カーネルを用いると、最近の新しいARM9 用のLinuxが動く。
たとえば、
http://ftp.linux.org.uk/pub/linux/arm/fedora/rootfs/rootfs-f8.tar.bz2
http://ftp.linux.org.uk/pub/linux/arm/fedora/rootfs/rootfs-f10.tar.bz2
といったFedora は、KUROBOX/PRO オリジナルのカーネルでは動作しないが、
上記新カーネルではOKのようである。
今のところ、FC8についてはchroot して動くことは確認できる。FC10は未確
認。
さて、gentooについてもほぼ4年ぶりにARM用のStage3が更新された。
http://ftp.naist.jp/pub/Linux/gentoo/experimental/arm/autobuilds/20090105/armv5tel-softfloat-linux-gnueabi/stage3-armv5tel-20090105.tar.bz2
まだできて間がないようだ。
ある程度動作するのだが、やはりbuffaloカーネル2.6.16.16-arm1 と Linux-headers と glibcの整合性が悪いのであろうか、coreutilsが案外まともに動いていない。
rm,touch,chmod,といったコマンドでFunction not Implemented となる場合が再々である。
もっとも旧カーネルではそもそもchroot すらできない。glibc-2.7がKernel-2.6.14以上を
要求するためのようである。
ともあれちょっとこれでは使えない。
システムのセルフリビルドに挑戦中。
ームウェアダウンロードサービスから得られるファームウェアアップデータ
は、LS-HGLがもともとKUROBOX/PROそっくりのハードウェアであると推定できる
ことから、カーネルもそのまま流用できると考えられる。
http://buffalo.jp/download/driver/hd/ls-hgl_fw106.htm
http://buffalo.jp/download/driver/hd/ls-hgl_fw.html
これらに新しいカーネルイメージが含まれている (uImage.buffalo)
カーネルkernel-2.6.16.16-arm1 などである。
動作確認については少なくとも私のところではKUROBOX/PROで正常に起動し、
この数日かなり激しい負荷をかけているがあまり問題がないように思える。
この新カーネルを用いると、最近の新しいARM9 用のLinuxが動く。
たとえば、
http://ftp.linux.org.uk/pub/linux/arm/fedora/rootfs/rootfs-f8.tar.bz2
http://ftp.linux.org.uk/pub/linux/arm/fedora/rootfs/rootfs-f10.tar.bz2
といったFedora は、KUROBOX/PRO オリジナルのカーネルでは動作しないが、
上記新カーネルではOKのようである。
今のところ、FC8についてはchroot して動くことは確認できる。FC10は未確
認。
さて、gentooについてもほぼ4年ぶりにARM用のStage3が更新された。
http://ftp.naist.jp/pub/Linux/gentoo/experimental/arm/autobuilds/20090105/armv5tel-softfloat-linux-gnueabi/stage3-armv5tel-20090105.tar.bz2
まだできて間がないようだ。
ある程度動作するのだが、やはりbuffaloカーネル2.6.16.16-arm1 と Linux-headers と glibcの整合性が悪いのであろうか、coreutilsが案外まともに動いていない。
rm,touch,chmod,といったコマンドでFunction not Implemented となる場合が再々である。
もっとも旧カーネルではそもそもchroot すらできない。glibc-2.7がKernel-2.6.14以上を
要求するためのようである。
ともあれちょっとこれでは使えない。
システムのセルフリビルドに挑戦中。
2008年11月21日
gentoo-armv5te-softfloat
1年半ぶりに、玄箱PROをgentoo-linux で動かすプロジェクトを更新しました。今回は浮動小数点計算をsoftfloat 化して、よりまともなものになりました。作業量が多くて3ヶ月近くかかりましたが、なんとか実用性のあるレベルにまで完成しております。
http://mit21.sakura.ne.jp/gentoo-kuroboxpro/softfloat/stages
まだマクロプロセッサm4のバージョンが古かったり、ローカルでパッチを当てたものがあったりと、問題は感じていますが、少しでも皆様のお役に立てればと。
http://mit21.sakura.ne.jp/gentoo-kuroboxpro/softfloat/stages
まだマクロプロセッサm4のバージョンが古かったり、ローカルでパッチを当てたものがあったりと、問題は感じていますが、少しでも皆様のお役に立てればと。
2007年06月05日
Gentoo-kuroboxpro公開を始めました
ま、いろいろ曲折はあったんだけれども、1ヶ月の悪戦苦闘によりGentoo−Kuroboxpro、この数日まともに運用できとります。
わかってしまえばStage3つくりのこつは何のことはない。
1)インクリュードファイルは正確なものを。すべてはここから
2)Perlはあらゆるユーティリティに優先してコンパイル
3)そのあとm4やらautomake,makeなどを作ってから
4)glibcをできるだけ古い順にコンパイルすると
5)インクリュードファイルが更新されるので 2)に戻って
一通りすんだら、これを用いてGCCをコンパイル、
6) GCCが変わると、またユーティリティーの互換性が崩れるので2に戻って5)までやって、それから、
7)Python
そして Portage-2.0.系列の最終版をインストールして
emerge --metadata
さらにもう一度Portageの最新版をインストールする
ここまでできれば、あとはおなじみの
emerge -b -e system でOK。
大体5日かかる見通し。すごい作業量。
で、一応glibc-2.3.6-r5のまで進んだ分を掲載。
http://mit21.sakura.ne.jp/gentoo-kuroboxpro/
以下を漁っていただけるとよろしいかと
わかってしまえばStage3つくりのこつは何のことはない。
1)インクリュードファイルは正確なものを。すべてはここから
2)Perlはあらゆるユーティリティに優先してコンパイル
3)そのあとm4やらautomake,makeなどを作ってから
4)glibcをできるだけ古い順にコンパイルすると
5)インクリュードファイルが更新されるので 2)に戻って
一通りすんだら、これを用いてGCCをコンパイル、
6) GCCが変わると、またユーティリティーの互換性が崩れるので2に戻って5)までやって、それから、
7)Python
そして Portage-2.0.系列の最終版をインストールして
emerge --metadata
さらにもう一度Portageの最新版をインストールする
ここまでできれば、あとはおなじみの
emerge -b -e system でOK。
大体5日かかる見通し。すごい作業量。
で、一応glibc-2.3.6-r5のまで進んだ分を掲載。
http://mit21.sakura.ne.jp/gentoo-kuroboxpro/
以下を漁っていただけるとよろしいかと
2007年06月03日
KUROBOX-PROにシリアルコンソールがついた
KUROBOX-PROにシリアルコンソールがついたので、さっそく遊んでみた。起動時のブートシーケンスの数秒の間に文字を入力すると、U-BOOTのパラメータが変更できる。結構うっとおしく、毎度同じことを触る必要があるが、ルートディスクも変更できる。
さて、紆余曲折を経て約1ヶ月かかって作成中のGentoo-Linux on Kurobox-pro であるが、結構あっけなく起動したのである。
オブジェクトの品質に問題あることがわかっている割に、表面上はちゃんと起動し、リブートできる。
大分手抜きをしたので、たとえば電源スイッチを監視してないから電源オフがスイッチ操作でできないし、少なくともCPPの問題で(GCC全体の問題かもしれないが)一部のコマンドがセルフコンパイルできないのだが、それでも動き出した。
どうも完全なセルフコンパイルができず、手作業でパッチ当てて動かしている代物で公開迷っていたのだが、動くのだからまあ試供品ということで近日GENTOO-KUROBOXPRO 公開できるのではと
さて、紆余曲折を経て約1ヶ月かかって作成中のGentoo-Linux on Kurobox-pro であるが、結構あっけなく起動したのである。
オブジェクトの品質に問題あることがわかっている割に、表面上はちゃんと起動し、リブートできる。
大分手抜きをしたので、たとえば電源スイッチを監視してないから電源オフがスイッチ操作でできないし、少なくともCPPの問題で(GCC全体の問題かもしれないが)一部のコマンドがセルフコンパイルできないのだが、それでも動き出した。
どうも完全なセルフコンパイルができず、手作業でパッチ当てて動かしている代物で公開迷っていたのだが、動くのだからまあ試供品ということで近日GENTOO-KUROBOXPRO 公開できるのではと
2007年05月22日
やれやれ敵はそんなに甘くない
前の日記から飛んでいる割に、びっしりgentoo-kuroboxpro セルフ
コンパイルの繰り返しである。
この間の成果は
1)gentoo-zaurus の成果はそのまま流用できる。
同じARMプロセッサだから当たり前か。割合良い成果
2)で、make check をやると、例えばgettext でコンパイルの確
認作業をすると10時間ほどかかるけども、C++のサポート以外は
みなOK。libtool m4 automake など数時間程度かかる難物だが、
ほぼPASS(AUTOMAKEにはバグが残るようだ)
3)USE="-fortran bootstrap" emerge -b gcc-4.1.2 は無事完了
8時間ほど。ほんとに苦労する。いまのところセルフコンパイル
できない大関門はbinutils ,glibc
みなセルフコンパイルしてんのか?クロスで通るからOKみたいな
雰囲気なんだろうなあ。
コンパイルの繰り返しである。
この間の成果は
1)gentoo-zaurus の成果はそのまま流用できる。
同じARMプロセッサだから当たり前か。割合良い成果
2)で、make check をやると、例えばgettext でコンパイルの確
認作業をすると10時間ほどかかるけども、C++のサポート以外は
みなOK。libtool m4 automake など数時間程度かかる難物だが、
ほぼPASS(AUTOMAKEにはバグが残るようだ)
3)USE="-fortran bootstrap" emerge -b gcc-4.1.2 は無事完了
8時間ほど。ほんとに苦労する。いまのところセルフコンパイル
できない大関門はbinutils ,glibc
みなセルフコンパイルしてんのか?クロスで通るからOKみたいな
雰囲気なんだろうなあ。
2007年05月14日
Build a my new stage3-arm-200705-tar.bz2 (2)
結局、クロスコンパイラのお世話になることが多いわけだが、
簡単に利用方法を記述しておく。
キーワードは crossdev と CHOST,CBUILD
crossdev -s4 --b 2.16.1-r3 --g 4.1.1-r3 --k 2.6.11-r6 --l 2.3.6-r5 -t arm-unknown-linux-gnu
で、PC上にARM用のクロスコンパイル環境を作る。
利用するときは、
export CHOST=arm-unknown-linux-gnu
export CBUILD=i686-pc-linux-gnu
export PKGDIR=/armpkg
USE="-fortran" emerge -B =sys-devel/gcc-4.1.1-r3
の要領で、バージョンを指定することと、必ずーBフラグをつけること。
こうすると /armpkg/All の下にARM用のGENTOOのパッケージができる
から玄箱に scp かなんかで持っていって、emerge -k =gcc でOK。
問題は、これほど簡単にいかない重要なパッケージが多いのだわ。手作業の渦。
簡単に利用方法を記述しておく。
キーワードは crossdev と CHOST,CBUILD
crossdev -s4 --b 2.16.1-r3 --g 4.1.1-r3 --k 2.6.11-r6 --l 2.3.6-r5 -t arm-unknown-linux-gnu
で、PC上にARM用のクロスコンパイル環境を作る。
利用するときは、
export CHOST=arm-unknown-linux-gnu
export CBUILD=i686-pc-linux-gnu
export PKGDIR=/armpkg
USE="-fortran" emerge -B =sys-devel/gcc-4.1.1-r3
の要領で、バージョンを指定することと、必ずーBフラグをつけること。
こうすると /armpkg/All の下にARM用のGENTOOのパッケージができる
から玄箱に scp かなんかで持っていって、emerge -k =gcc でOK。
問題は、これほど簡単にいかない重要なパッケージが多いのだわ。手作業の渦。
2007年05月11日
Build a my new stage3-arm-200705-tar.bz2 (1)
KUROBOX−PRO上に、ちょっと古いARM用のgentoo linux を展開する
http://ftp.naist.jp/pub/Linux/gentoo/experimental/arm/stages/arm/stage3-arm-20040510.tar.bz2
なんかがそうだ。
wget http://ftp.naist.jp/pub/Linux/gentoo/experimental/arm/stages/arm/stage3-arm-20040510.tar.bz2
bzip2 が扱えないときは、どこかから引っ張ってきてコンパイルしておく。
tar xjvpf stage3-arm-20040510.tar.bz2 -C /mnt/disk1/arm-040510
cp /etc/resolv.conf /mnt/disk1/arm-040510/etc
chroot /mnt/disk1/arm-040510
一応ちゃんとgentooが動くのは動いているのだが、問題は大有り。
emerge --sync まではできるのだが
emerge portage は途中で停止してしまう。regexがどうのこうのでエラーに
なる。これは大抵当てにしているglibc が違うかららしい。
散々苦労した挙句、よそのPCでクロスコンパイルしたglibc を強引に持ってくるとかなり前進が見られる、ということが一つ、
m4のバージョンを最新に持ってこれるとportageがupdate できること
USE="-nls" をつけると大丈夫らしいことが何となくわかってきたこと
それで、セルフコンパイルには成功していないのだが、何となく最新のportage tree で
動作するARM 用のgentoo は稼動中。
目下、
emerge -b -e system で再構築トライアル中。2日ほどかかるのかな。
http://ftp.naist.jp/pub/Linux/gentoo/experimental/arm/stages/arm/stage3-arm-20040510.tar.bz2
なんかがそうだ。
wget http://ftp.naist.jp/pub/Linux/gentoo/experimental/arm/stages/arm/stage3-arm-20040510.tar.bz2
bzip2 が扱えないときは、どこかから引っ張ってきてコンパイルしておく。
tar xjvpf stage3-arm-20040510.tar.bz2 -C /mnt/disk1/arm-040510
cp /etc/resolv.conf /mnt/disk1/arm-040510/etc
chroot /mnt/disk1/arm-040510
一応ちゃんとgentooが動くのは動いているのだが、問題は大有り。
emerge --sync まではできるのだが
emerge portage は途中で停止してしまう。regexがどうのこうのでエラーに
なる。これは大抵当てにしているglibc が違うかららしい。
散々苦労した挙句、よそのPCでクロスコンパイルしたglibc を強引に持ってくるとかなり前進が見られる、ということが一つ、
m4のバージョンを最新に持ってこれるとportageがupdate できること
USE="-nls" をつけると大丈夫らしいことが何となくわかってきたこと
それで、セルフコンパイルには成功していないのだが、何となく最新のportage tree で
動作するARM 用のgentoo は稼動中。
目下、
emerge -b -e system で再構築トライアル中。2日ほどかかるのかな。