Linux-2.6.39.4のT-SH7706LSR向けコンパイル
家に転がっていた「T-SH7706LSR」のボードでLinuxを動かして、デバイスドライバ等、組込みLinux開発見たいな事をしたいと思い立って、早数ヶ月。
そもそもの、Linuxカーネルのコンパイルがうまくいかず、いろいろ試していたのですが、今回、linux-2.6.39.4でクロスコンパイルが出来たので、ここにメモしておきます。
ホスト側の準備
http://mes.sourceforge.jp/mes26/lin_cross.html
こちらの記事の、1と2、必要であれば4の作業を行いました。
Eclipseは使用しないので、Eclipseに関する作業は特に行っていません。
なお、必要なファイルはこちらから。
http://mes.sourceforge.jp/mes26/lin_file.html
上気の2つのページは、それぞれこちらのページのものです
http://mes.sourceforge.jp/mes26/
左側のフレームの「SH3/Linux」へ行き、
同じく左側フレームの「クロスコンパイラ」、「ダウンロード/新版」からそれぞれのページへ行けます。
必要なファイルのダウンロード
先ほどダウンロードを行ったこちらのページから
http://mes.sourceforge.jp/mes26/lin_file.html
以下の2つのファイルをダウンロードします。
- linux-2.6.39.4.tar.bz2
- linux-2.6.39.4-shmin-1.patch
- リンクの名前は「linux-2.6.39.1-shmin-1.patch」となっていますが、実際に参照しているファイルはこの名前です。
ここでは、これらのファイルを以下の場所へダウンロードしたとします。
~/work/
カーネルソースの展開とパッチの適用
コマンドライン上で以下の作業を行います。
$ cd ~/work/できました。 $ tar jxf linux-2.6.39.4.tar.bz2 $ cd linux-2.6.39.4/ $ patch -p1 < ../linux-2.6.39.1-shmin-1.patch
コンパイル
makeの前に環境変数の設定を行います。
$ export PATH="/usr/sh3-linux/bin:$PATH" $ export ARCH=sh $ export CROSS_COMPILE=sh3-linux-
makeします。
$ cd ~/work/linux-2.6.39.4/ $ make
makeが完了すると、
「vmlinux」できました。
というファイルが出来上がっているはずです。
参考
本作業に関して、主に以下の記事を参考にしました。
なお、記事の中ではMakefileの修正を行っていますが、linux-2.6.39.4に関しては、修正を行わずともmakeすることができました。
http://wave2.iobb.net/doc/summary/sh3wiki/wifky.cgi?p=kernel%A4%CE%BA%C6%B9%BD%C3%DB