Linux-2.6.39.4のT-SH7706LSR向けコンパイル

家に転がっていた「T-SH7706LSR」のボードでLinuxを動かして、デバイスドライバ等、組込みLinux開発見たいな事をしたいと思い立って、早数ヶ月。
そもそもの、Linuxカーネルコンパイルがうまくいかず、いろいろ試していたのですが、今回、linux-2.6.39.4でクロスコンパイルが出来たので、ここにメモしておきます。

ホスト側の環境

といっても、ウィンドウマネージャなど、いろいろと変えているので、Ubuntuに固有の事柄は特にないと思います。

ホスト側の準備

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