uClinuxのkernel

この記事は古いです。参考の為に残してます。

H8/3069のROM容量はそれほど大きくないので、ネットワークを経由してサーバ等に保存した、
カーネルとユーザランドをRedBootで読み込み起動させます。

カーネル:私のイメージではOSに相当
ユーザランド:私のイメージではアプリケーションに相当

  • DownLoad
    OSJC.net http://uclinux-h8.oscj.net/http://uclinux-h8.oscj.net/uclinux-h8_op.htm
    から以下のファイルをDownLoadさせていただきました。
    1.h8300-linux-elf.tar.gz
    2.uClinux-dist-h8300-20050409.tar.gz#tar xzf h8300-linux-elf.tar.gz -C /   ←/usr/localにh8300-linux-elfディレクトリ作成
    #tar xzf uClinux-dist-h8300-20050409.tar.gz
  • menuconfig するなら ncurses-devel
    #cd uClinux-dist
    #make menuconfig
    エラーが頻発して全然だめ………。
    パスを通してみたりしたがやっぱり、エラーが頻発して全然………。
    ネットで現象を探ってみる………すると、kernel の構築で menuconfig
    するなら ncurses-devel が必要ということを見付ける
    とりあえず
    #apt-get install ncurses-devel
    #make menuconfig
    やったネ♪ 動きました。ということで環境を構築します。
  • Kernelとユーザランドの構築
    #make xconfig
    とすると、X上でグラフィカルに設定できますが、途中でエラーが発生してだめでした。
    結局
    #make menuconfig
    で設定しました。
    Vendor/Product Selectionの項目を設定(画面が切り替わって)
    Select the Vendor you wish to target
    では上の方にスクロールしていくとAkizukiがあったのでこれを選択
    これを選んだら自動的に
    Select the Product you wish to targetはAE3068になりました。
    <EXIT>で抜けます。
    Kernel/Library/Defaults Selectionの項目を設定(画面が切り替わって)
    Libc Versionはよくわからないのでとりあえず。
    Default all setingsを選択してみました<EXIT>で抜けます。ファイルのSAVE位置とか
    聞かれましたが、よくわからん。その後もyes/noを聞かれるわかんのでEnterで。
    基本的にNOを選択してみた。
    んで、なんとか一応終了。
    #make dep
    #make
    ………………………………………………………………………………………
    エラーが発生。
    結局原因はわからない…………。あきれめるかと思ったけど、最後にダメもとで、
    ぐぐってみたら、config.uClibcを変更にしてネというメーリングリストの書き込みがHIT!
    早速修正してみた。。。。
  • config.uClibcの変更
    uClinux-dist/vendors/Akizuki/AE3068/config.uClibc
    # UCLIBC_HAS_GNU_GETOPT is not set と言う行をUCLIBC_HAS_GNU_GETOPT=y別のエラーが。。。
  • Makefile をちょっと修正
    今度は、別のページでMakefile をちょっと修正しますというのを発見!
    % diff vendors/Akizuki/AE3068/Makefile.orig vendors/Akizuki/AE3068/Makefile? 47,49c47,49
    < ????????-flthdr -z $(ROMFSDIR)/bin/*
    < ????????-flthdr -z $(ROMFSDIR)/sbin/*
    < ????????-flthdr -z $(ROMFSDIR)/home/httpd/cgi-bin/*

    > ????????-$(CROSS)flthdr -z $(ROMFSDIR)/bin/*
    > ????????-$(CROSS)flthdr -z $(ROMFSDIR)/sbin/*
    > ????????-$(CROSS)flthdr -z $(ROMFSDIR)/home/httpd/cgi-bin/*
    と言うのを発見。早速修正しました。
    これで、やっとmakeできました。
    はりきってターミナルを起動し、TFTPサーバの設定をしてAKI3069ボードに転送します。load -r -h 192.168.183.66 -b 0x400000 aki3069.bin
    exec -c “console=ttySC1,38400n81″…………
    文字化けした漢字が2文字ほど出力されました…。
    お~そういえばこのボード25MHzのクリスタルにしてるんだった。
  • 25MHzのクリスタルに対応させる
    どこをどう修正すればよいやら、皆目見当がつきません。
    ググります。なんとなく、このへんか?とあたりをつけて以下のファイルを修正。
    (/home/hamuken/H8/uClinux-dist/linux-2.4.x/arch/h8300/target_config.in)
    if [ “$CONFIG_BOARD_AKI3068NET” = “y” ]; then
    define_bool CONFIG_H83068 y
    define_int? CONFIG_CLK_FREQ 25000?? ←ここを20000から25000に修正? define_bool CONFIG_RAMKERNEL y#make clean????????? ←再度一番始めからやってみます。
    #make menuconfig
    一応エラーが発生しないでmakeできました。
    再度AKI3069ボードにTFTPで転送、exec。
    やっと成功!!uClinuxが起動しました。ここまで2005/12/23にちから始めて2006/1/21に終了。
    一ヶ月かかりました………。仕事なら別の手法を考えるところです(笑)。

You may also like...

コメントを残す

メールアドレスが公開されることはありません。


表示されている文字を入力してください! それ以外は任意です。