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 にマウントして作業するものとします。環境に合わせてこれらを置き換えてください。

ハードディスクの初期化

  1. インストールするハードディスクをPCに接続します。USBでもFWでもなんでもOK.
  2. インストールするハードディスクを指定して fdisk を実行し、パーティションを切ります。 もし、/dev/sdc として認識しているのであれば、

    % sudo fdisk /dev/sdc 
    
  3. 好きなようにパーティションを切る。 /dev/sdc1 / 、/dev/sdc2 をswapとしてパーティションを切ったとします。

  4. /dev/sdc1 をext3 でフォーマットする。

    % sudo mkfs.ext3 /dev/sdc1
    
  5. /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