Setup Debian/SH4 on landisk/USL-5P
landisk/lantank/USL-5P を最新のカーネルとdebian-ports.org で移植中のDebian/sh4に置き換えるための方法をまとめています。 置き換えるいうより、再インストールになりますので各自バックアップは取っておきましょう。
カーネル
Linux カーネルは github でカーネルツリーを公開しています。 もちろん、パッチをアップストリームにも投げています。取り込まれるまでに時間がかかるので githubはとりあえず用です。 バイナリはめんどいのでアップロードしません。
ユーザランド
people.debian.org でスナップショットを公開しています。 気が向いたら更新します。
Debian/sh4 に入れ替える
以下の説明では、 インストールするハードディスク(CFなども同じ)が /dev/sdc として認識され、 /mnt にマウントして作業するものとします。環境に合わせてこれらを置き換えてください。
ハードディスクの初期化
- インストールするハードディスクをPCに接続します。USBでもFWでもなんでもOK.
インストールするハードディスクを指定して fdisk を実行し、パーティションを切ります。 もし、/dev/sdc として認識しているのであれば、
% sudo fdisk /dev/sdc
好きなようにパーティションを切る。 /dev/sdc1 / 、/dev/sdc2 をswapとしてパーティションを切ったとします。
/dev/sdc1 をext3 でフォーマットする。
% sudo mkfs.ext3 /dev/sdc1
/dev/sdc2 を swap として初期化する。
% sudo mkswap /dev/sdc2
ハードディスクへのユーザランドのコピー
people.debian.org/~iwamatsu/landisk に 動作確認のされたカーネルとユーザランドが置かれています。 ここから、カーネルとユーザランドをコピーして、ハードディスクへ展開します。
% wget
% sudo mount /dev/sdc1 /mnt
% cd /mnt
% sudo tar -xjf /tmp/rootfs-sid-20110401.tar.bz2
% sudo cp /tmp/zImage /mnt/boot/.
/mnt/etc/lilo.conf の編集
デフォルトでは以下のようになっています。
linear
boot=/dev/sdc
disk=/dev/sdc
bios=0x80
timeout=50
install=/boot/boot.b-selk
image=/boot/zImage
read-only
append="mem=64M console=ttySC1,9600 root=/dev/sda1"
boot と disk を ホストで認識しているパーティションに併せて変更してください。 例えば、/dev/sdb として認識しているのであれば、
linear
boot=/dev/sdb # <- /dev/sdb に変更
disk=/dev/sdb # <- /dev/sdb に変更
bios=0x80
timeout=50
install=/boot/boot.b-selk
image=/boot/zImage
read-only
append="mem=64M console=ttySC1,9600 root=/dev/sda1"
とします。
lilo の実行
liloを実行して、liloをハードディスクに書き込みます。 ここで注意しないといけないのは、ホストにインストールされている lilo を使うのではなく、SH 用のliloを使うということです。 これは、Debian や他のディストリビューションでは頒布されていないので、iohackのサイト等から取得する必要があります。 (landisk-tools 置き場)
landisk-tools をダウンロードし、展開します。 boot.b を /mnt/boot にコピーします。
次に、展開後に作成される lilo を以下のようにして実行します。
% sudo ./lilo -r /mnt -C /etc/lilo.conf
ネットワークの設定
デフォルトでは、eth0 は dhcp でIPアドレスを取得するように設定されています。 固定IPにしたい場合には、/mnt/etc/network/interfaces を以下のように設定します。
変更前:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
変更後:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.254
カーネルの更新
今のところ、landisk 上からカーネルを更新する方法はありません。lilo の SH サポートをする必要があります。 (古いliloをlandisk にコピーして使うという方法がありますが、ここでは説明しません。)
ホストに landisk 用のハードディスクを接続して、カーネルを更新する方法を以下に示します。 ハードディスクは /dev/sdc として認識しているものとします。
% sudo mount /dev/sdc1 /mnt
% sudo cp new-zImage /mnt/boot/zImage
% sudo ./lilo -r /mnt -C /etc/lilo.conf
% sudo umount /mnt