不況で倒産寸前のベンチャー企業(?)でプログラマー歴2年になった 新米プログラマーの日記のような雑記です。
welcome 猫並プログラマーの奮闘日記 !
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
category : スポンサー広告 

SH4A(7780)搭載ボードにLinuxを移植する(busybox編)
昨日の続き、今日は自分の進めた手順どおり書いていきます。
といっても、ほとんどbusyboxをコンパイルしてしまえばOK。
まずbusyboxとは何かというとLinuxで使われるコマンド群を1つの実行ファイルにまとめたものです。
基本的なLinuxではコマンドごとの実行ファイルがありますがbusyboxは実行ファイルを一つにまとめ、
コマンドごとのリンクを作ります。コマンドを実行しようとするとリンクからbusybox本体が実行され処理します。(仕組のヒントはargv[0]です。argv[1]じゃないですよ)

まず、ソースをbusyboxサイトなどから落として展開します。
そしてconfig編集をします。
編集方法はカーネルと同じで、
make config
make menuconfig
make xconfig
make gconfig
でUIで編集可能です。重要なポイントとしては、
・クロスコンパイラ(接頭部分)
・コンパイラオプション
・インストール先ディレクトリ
・生成するリンクの種類(ソフトリンク、ハードリンクetc...)
・ライブラリの種類(staticかshare)
・initrdをサポートするか(initramfsならチェックを外す)
これくらいかな後は必要ないコマンドがあればチェックを外すくらいでしょう。
編集ができたらmake。
バイナリイメージができたらmake installを実行。
configで指定したディレクトリにbin,sbinなどのディレクトリとbusybox本体と各コマンドのリンクを作成してくれます。
ファイルシステムとして必要なものをほとんど用意してくれているのですが足りないものがあります。
etc/init.dディレクトリ
rcSファイル
procディレクトリ
devディレクトリ
initスクリプト
最低限これらを作ってあげる必要があります。
とりあえず足りないディレクトリはmkdirで作ってあげましょう。
busyboxはカーネルがinitを実行したときにetc/init.d/rcSファイルを捜しにいきます。
rcSファイルには初期化に必要なスクリプトを書いてあげましょう。
私はとりあえず、
mount -t proc proc proc
のみ書いておきました。
あとはintiスクリプトです。
これはinitramfsを正常にマウントした後にカーネルが自動的に実行するシェルスクリプトです。
ここでUSBドライブなどにあるファイルシステムに切り替える処理などを書いておくわけですね。
ただ、いきなりそんなものを書けない私はテストということで以下を書いておきました。
#!/bin/sh
echo "hello world"
sh
これだけ。
ここまで用意したらcpioアーカイブで固めて圧縮すればinitramfs完成です。
ただu-boot-shで扱うには専用のイメージファイルにする必要があります。
カーネルとおなじでmkimageを使います。
mkimage -A sh -O linux -T ramdisk -C gzip -n "initramfs" -d initrd.gz initrd
これでinitramfsを扱えるようになります。

・・・実はここまでは理解するのに時間がかかってないです。はまったのは次のu-bootでのブート方法ですね。
そのu-bootでの手順とかは明日書こうと思います。
スポンサーサイト
category : Linux移植  comment : 0  track back : 0

thema:Linux - genre:コンピュータ















 

trackback URL
http://nekohara348.blog99.fc2.com/tb.php/64-3ee35df7
trackback
プロフィール

猫原

Author:猫原
猫でもわかる程度の能力な新米プログラマーです。

扱える言語:
アセンブラ(intel系,SH系),C/C++,C#,
java,PHP,etc...

趣味
アニメとかゲームとかプログラムとか
ようするにオタク
(特にガンダム大好きです)

最近のマイブームはニコ動でアイマス架空戦記見ること
(千早かわいいよ千早)

フリーエリア
検索フォーム
ブロとも申請フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。