ページへ戻る

− Links

 印刷 

玄箱HGにGentooを入れてみる :: Nest Of Hawk

xpwiki:玄箱HGにGentooを入れてみる

玄箱HGにGentoo格闘記[1]

ページ内コンテンツ
  • 入れるも何も
  • loader.o
  • ではやってみよう
    • 今回のポイント
    • 参考に:EMモード起動のしかた
    • 1strootの作り方
    • その1:Debian化ツールでも使用して
    • その2:GentooBeta1を使う
    • どれが良いか??
  • ここからが本番です
    • 2ndrootを作る
    • 1strootにてカーネルコンパイル
    • loader.oにて2.6.15起動!
  • 後は…

入れるも何も anchor.png[2]

まずは情報収集から。

よ~くよく調べてみると、なんだかモーレツに難しいらしい。というのも

  1. カーネルはFlashROMに書き込まれている
  2. 独自フォーマット
  3. ブートローダ・カーネルがブートできないと素人では復旧不可
  4. シリアルコンソールがデフォルトで無い。ケーブルを引っ張りださないといけない

すなわち、自宅でやるのはかなり時間がかかるということ。まずシリアルコンソール引き出しケーブルの自作、FlashROMとフォーマットの解析(これは既に済んでいるらしいが)、デバッグ用のJTAGの入手(200万円ぐらいするだよなー)。ありえねぇな…せめてシリアルコンソールとカーネルはHDに置いておくぐらいはやって欲しかった…uboot使えばHDからブートぐらいできるだろぉに… と、言うことをいろいろ調べていたら、すばらしいツールがあることを発見いたしました!!

Page Top

loader.o anchor.png[7]

これは、Linuxのカーネルモジュールで、起動済みのLinuxカーネルにモジュールロードすることによってカーネルを2段ブートするものです。このページの一番下に、

  • ソースアーカイブ
  • うちで動いている実行可能バイナリ

を置いておきます。これを使うと、カーネル2.6でもブート可能!!なのです。

Page Top

ではやってみよう anchor.png[8]

先に書いておきますが、ProjectGentoo[9]なるプロジェクトが海外のwww.kurobox.comにありまして、活発に活動している模様。2.6.15のkurobox-kernelもGentooPortageに取り込まれる予定らしいので、玄箱用インストール手順が正式に整備される可能性があります。ここで書いたやり方よりも便利になることもありますので、お気をつけくださいね…でも多分ルート2面で2段ブート、って形になるんじゃないかな…??ProjectsGenTooという先行プロジェクトもあったので、成果がマージされるんだと思うんですけどね...

Page Top

今回のポイント anchor.png[10]

おいちゃんがやるべきLinux2.6化では、NPTL化が必要。NPTLはGentooの場合カーネル2.6でなければ動かない。んで、玄箱用2.4.17カーネルがNPTL化しているかどうかはちっともわからない。なので、2.6カーネル向けに、別のルートディレクトリを用意してやることにしました。

Page Top

参考に:EMモード起動のしかた anchor.png[11]

EMモードとは、玄箱購入時、かならず起動するファームモードです。HDDなしでも、フラッシュ領域で起動する緊急用Linuxと考えてください。これの起動を知ってると、動かなくなったときに便利、かも。

玄箱にTelnetして、EMモードで起動します。

# echo "NGNG" >/dev/fl3

えふいちさんでは無くてえふえるさんですよ。だまされないでね?おいちゃんはだまされますた…でリブートしたら、EMモード起動時のデフォルトIPアドレス192.168.11.150にTelnetできるようになります… 解除のしかたは

# echo "OKOK" >/dev/fl3

えふえるさんですよ。これでリブートすると、今度はHDDをマウントしてあがって来てくれます。

Page Top

1strootの作り方 anchor.png[12]

Page Top

その1:Debian化ツールでも使用して anchor.png[13]

玄箱うぉううぉう♪[6]さんに、Debian化キットが置いてありますので、これで/dev/hda1を作ります。

Page Top

その2:GentooBeta1を使う anchor.png[14]

おいちゃんはこの方法でやりました。このページ[15]にGentooBeta1のインストール方法は書いてあるっす。これ見てやってみてください。

Page Top

どれが良いか?? anchor.png[16]

一番便利なのはDebian化キットを使うやつでしょうね…この後に続くカーネル2.6.15のコンパイルとかを考えると、ね…コンパイラとかインストールしないといかんですし。GentooBeta1は基本がGentooなので おいちゃんは使いやすいですが、猛烈に時間を食います!!!一昼夜…万人にはお勧めできません…玄箱標準ルートを使う方法も考えたのですが、正直この後のlinux2.6.15のコンパイルとかがめんどーくさそう…

Page Top

ここからが本番です anchor.png[17]

Page Top

2ndrootを作る anchor.png[18]

さて。2ndrootを作りましょう。fdisk使って/dev/hda3を作ります。そこをお好みのフォーマットでフォーマット。さらにGentooのPowerPC版Stage3を持ってきてやって、/dev/hda3に展開します。

このStage3。きっとNPTL対応でコンパイルされているだろうから、このルートで後々起動可能なように設定しておいてやりましょう。ここでは、/dev/hda3を/mnt/gentooにマウントしたと仮定して。

  • /mnt/gentoo/etc/conf.d/netを設定。DHCPにしたら駄目ですよ!dhcpcd入ってないですからね…アドレスをしっかり設定してやりましょう...
  • /mnt/gentoo/etc/fstabを適切に設定
  • /mnt/gentoo/etc/runlevels/defauntの下に、/etc/init.d/sshdへのシンボリックリンクと、/etc/init.d/net.eth0へのシンボリックリンクを作る
  • /mnt/gentoo/etc/init.d/net.eth0を/etc/init.d/net.loへのシンボリックリンクとして作る

これぐらいやっておけばまず大丈夫。

Page Top

1strootにてカーネルコンパイル anchor.png[19]

次に、linux2.6.15のカーネルソースを持ってきて、このページについているkurobox-sources-2.6.15.2ntp.patchを当ててやります。ちなみにlinux-2.6.15-gentoo-r1にもパッチは当たりました。

# tar jxvf linux-2.6.15.tar.bz2
# cd linux-2.6.15
# patch -p1 < kurobox-sources-2.6.15.2ntp.patch

んで、配下にあるconfig_kuroboxもしくはconfig_kuroboxhgを、.configにコピーしてさし上げます。で、以下を実行

# make oldconfig
# make menuconfig
 /dev/hda3で使用したファイルシステムをカーネルに組み込んでやってね。モジュールとかになってるとブートできません…
# make vmlinux
# make modules
# make modules_install

ここで、直下にvmlinuxが出来ていますよね。以下のコマンドを実行

# objcopy -O binary vmlinux

さて、お立会い。このページのloader.oを、/lib/modules/2.4.17_mvl21/extraとか適当にディレクトリ作って、depmod -aします。そして…

Page Top

loader.oにて2.6.15起動! anchor.png[20]

# sync; modprobe loader kernel=vmlinux cmdline="root=/dev/hda3"

どーだ!!!ブートにしばらくかかると思うので、しばらくしたら、前に/mnt/gentoo/etc/conf.d/netに設定したアドレスにsshでつないで見ましょう。接続できましたか?uname -a打ってみましょう

Linux 2.6.15-kurobox #1 PREEMPT Sat Jan 28 05:01:16 JST 2006 ppc 82xx PC8241 GNU/Linux

こんな表示出た?

# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/hda3              4891620    965716   3925904  20% /
udev                     63596        68     63528   1% /dev
none                     63596         0     63596   0% /dev/shm

こんな表示になった?おめでとうございます…

Debian化キット使ってる人は、Debianルートの方の/bootにvmlinuxを置いておくと、勝手に2.6.15でブートしてくれるみたい。カーネルコンパイル時のCONFIG_CMDLINEに

CONFIG_CMDLINE="root=/dev/hda3 loglevel=7"

と書き込んでおけば、勝手にGentooでブートしてくれるでしょう。

GentooBeta1入れた人は…自動起動したい場合はなんかシェルスクリプト作りましょう。

Page Top

後は… anchor.png[21]

好き勝手やってください。make.conf編集して、emerge sync; emerge -uD world .....


Last-modified: 2009-08-20 (木) 00:23:09 (JST) (5334d) by maruo