debootstrap_debian_lenny_sh4

debian lenny の sh4 向けディストリビューションの base.tgz の作り方

lenny(5.0)で書かれていますが squeeze(6.0), wheezy(7.0) で読み替えていただいても同じです。(2013-06-05)

PC環境

PCで debian 5.0 (lenny) を使います。PCに debian 5.0 (lenny) をインストールし、

を先に終わらせてください。
SH4クロスコンパイラと/usr/local/bin/qemu-sh4 が使える状態にしておいてください。

インストール

# apt-get install debootstrap

debootstrapでbaseをダウンロードする

1stステージ

# debootstrap --foreign --arch=sh4  lenny  target-lenny-sh4  https://www.si-linux.co.jp/pub/debian-lenny-sh4/
(最後の3つは 「ディストリビューション名」  「ターゲットディレクトリ名」  「URL」です)

qemu-sh4のコピー

qemu-sh4実行ファイルをターゲットの/usr/local/binにコピーします

# mkdir -p target-lenny-sh4/usr/local/bin
# cp /usr/local/bin/qemu-sh4  target-lenny-sh4/usr/local/bin/

chrootする

target-lenny-sh4 ディレクトリは sh4のバイナリーで構成されているのですが qemu-sh4 が使える状態であれば chroot できてしまいます。

# chroot target-lenny-sh4/
I have no name!@boss2:/#

なんとすばらしい!! /proc をマウントしておきます

# mount -t proc proc /proc

2ndステージ

# /debootstrap/debootstrap --second-stage
:中略
I: Base system installed successfully.
# apt-get clean   (ダウンロードした *.deb ファイルを削除する)
# umount /proc
# exit

設定ファイル

/etc 以下の設定ファイルを編集していきます。 いくつかのファイルはPCの/etcのファイルをコピーしてから編集したほうが楽です

# cp /etc/fstab               target-lenny-sh4/etc/
# cp /etc/resolv.conf         target-lenny-sh4/etc/
# cp /etc/network/interfaces  target-lenny-sh4/etc/network/
  • target-lenny-sh4/etc/fstab
    # /etc/fstab: static file system information.
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    proc            /proc           proc    defaults        0       0
    /dev/hda1       /               ext3    errors=remount-ro 0       1
  • target-lenny-sh4/etc/resolv.conf
    (これは例です。お使いの環境に合わせてください)
    domain si-linux.co.jp
    search si-linux.co.jp
    nameserver 172.16.0.1
  • target-lenny-sh4/etc/network/interfaces
    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).
    
    # The loopback network interface
    auto lo
    iface lo inet loopback
    
    # The primary network interface
    allow-hotplug eth0
    auto eth0
    iface eth0 inet dhcp
  • target-lenny-sh4/etc/hosts
    127.0.0.1       localhost
    
    # The following lines are desirable for IPv6 capable hosts
    ::1     localhost ip6-localhost ip6-loopback
  • target-lenny-sh4/etc/securetty
    (rootでのログインを許す端末。以下の3行をどこでも良いので追加)
    ttySC0
    ttySC1
    ttySC2
  • target-lenny-sh4/etc/inittab
    1:2345:respawn:/sbin/getty 115200 ttySC0
    #2:23:respawn:/sbin/getty 38400 tty2
    #3:23:respawn:/sbin/getty 38400 tty3
    #4:23:respawn:/sbin/getty 38400 tty4
    #5:23:respawn:/sbin/getty 38400 tty5
    #6:23:respawn:/sbin/getty 38400 tty6
  • target-lenny-sh4/etc/apt/sources.list
    deb https://www.si-linux.co.jp/pub/debian-lenny-sh4/ main contrib non-free
    deb-src http://ftp.debian.org/debian/       lenny main contrib non-free
    deb-src http://security.debian.org/ lenny/updates main contrib non-free
    deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
  • デバイスファイルを作る
    # mknod target-lenny-sh4/dev/ttySC0 c 204 8
    # mknod target-lenny-sh4/dev/ttySC1 c 204 9
    # mknod target-lenny-sh4/dev/ttySC2 c 204 10
    # mknod target-lenny-sh4/dev/ttySC3 c 204 11
    
    # mknod target-lenny-sh4/dev/hda  b 3 0
    # mknod target-lenny-sh4/dev/hda1 b 3 1
    # mknod target-lenny-sh4/dev/hda2 b 3 2
    # mknod target-lenny-sh4/dev/hda3 b 3 3

baseの.tgzを作る

最後に target-lenny-sh4/に置いた /usr/local/bin/qemu-sh4 を消し、tarボールを作って終わりです。

# rm target-lenny-sh4/usr/local/bin/qemu-sh4
# cd target-lenny-sh4/
# tar czvf ../lenny-sh4-base_20100523.tgz *
# cd ../

ちなみに

# du -hs target-lenny-sh4/
128M    target-lenny-sh4/

baseだけで 128Mバイトの容量があります。

成果物ダウンロード

完成した lenny-sh4-base_20100523.tgz はこちらからダウンロードできます

128Mbyte以上のストレージをext2/ext3 FS などでフォーマットし、lenny-sh4-base_20100523.tgz を展開すれば CAT760などのSH4 Linuxボードで root_filesystem として使用できます。リンク↓

関連