分解中 | 単体動作中(外付けHDD) | 単体動作中(外付けUSBメモリ) |
linear boot=/dev/sda disk=/dev/sda bios=0x80 install=/boot/boot.b.2104 image=/boot/zImage label=nfsboot root=/dev/hda1 read-only append="console=ttySC1,115200 mem=64M root=/dev/nfs rw ip=::::::bootp"こんなlilo.conf-nfsbootを/mnt/sh/rootfs-cf/etc/につくっておく。 ちなみにappend内の/dev/nfsは、実在しなくても書いておけばOK。 またboot, diskは、ホストPCからみたCFのデバイスファイル。 (USB接続CFリーダだと、/dev/sdaとなることが多いようだ)
# cd /mnt/sh/rootfs-cf # mkdir -p bin boot dev etc home lib proc root sbin tmp usr var dev/pts usr/bin usr/lib usr/sbin lib/modules var/log # cd /dev # cp -a console hda hda? kmem mem null rtc sda sda? tty tty? urandom ptyp? ttyp? /mnt/sh/rootfs/dev/ # cd /usr/src/LANDISK/rootfs/dev # ln -s ../proc/self/fd/0 ./stdin # ln -s ../proc/self/fd/1 ./stdout # ln -s ../proc/self/fd/2 ./stderr # mknod ttySC0 c 204 8 # mknod ttySC1 c 204 9
# mount /dev/sda1 /mnt/cf # cp -auf /mnt/sh/rootfs-cf/* /mnt/cf/ # lilo -r /mnt/cf -C /etc/lilo.conf-nfsboot最後のliloは、ホストPCにはいっているLILOでOK。 ただし-C以下は、-rで書いたルートパスからの相対パスになるので、 この場合は、/mnt/cf/etc/lilo.conf-nfsboot、つまり CF内にコピーしたNFSブート用のlilo.conf-nfsbootを使って LILOを打ち込むことになる。
ただしiohackのディストリビューションを使うならば、 ライブラリその他がgcc-3.0.4でコンパイルされているため、 gcc-3.0.4を使うべき。 (http://www.sh-linux.org/index-j.html の http://www.sh-linux.org/readme-eucJP.txt を参考にインストールする)
ちなみにCygwin上でもインストールできて、カーネル構築もできるが、 いろいろと手動でなおさないといけないことがあった。 →Cygwinの場合のカーネル構築メモ
# cd /mnt/sh/usr/src/ # make menuconfig # make dep # make clean # make zImage # make modules # make INSTALL_MOD_PATH=/mnt/sh modules_install # cp arch/sh/boot/zImage /mnt/sh/boot/これで、/mnt/sh/boot/に、zImage (カーネルの圧縮イメージ)ができる。 これを使ってブート。 あるいはhosoさんの.configをありがたく使わせていただく(/usr/src/.configにコピーして、make dep以降を行う) ちなみにUSBディスクなどをさしたときに自動的にmountさせたければ カーネル構築時にFile Systemの中の automountを 選択しておくのを忘れずに。 ちなみにautofsはapt-get install autofsでインストール。 (メモ・ VFAT領域を読み書き)
ちなみにUSL-5P用のカーネルのソースも、 アイ・オー・データにrequestすると 実費(500円分の切手)で分けてくれる。 この中のカーネルのほうがいいかも。 ボタン関連のbuttondなどのモジュールのシンボルが定義されているので 使えるかも、ということらしい (hosoさんの日記のコメント)。
そのほか、先人たちがコンパイルしてくださったDebianパッケージの数々が Unofficial Debian Packages for LANDISK にあるので、ありがたく頂戴できる。
busybox-1.00を もってきて、makeする(クロスorセルフ)。 カーネルの構築っぽく作れる。
# make menuconfig --- ... General Configuration - [*] Build BusyBox as static binary - [*] Do you want to build Busybox with a Cross Compiler? -> sh4-linux- Installation Options - (/mnt/sh/rootfs) BusyBox installation prefix Login/Password Management Utilities [*] getty Networking Utilities [*] ifupdown Debian utilities [*] run-parts ... --- # make dep # make # make PREFIX=/mnt/sh/rootfs installいくつか良く使うコマンドをmakeするように設定をしておく。 ただしgettyとかだと、次のようなwarningが出る。
-------------------------------------------------- You will probably need to make your busybox binary setuid root to ensure all configured applets will work properly. --------------------------------------------------そこでsetuidを立てておく。
# chmod 4755 busybox or #chmod u+s busyboxが、実行時にこのwarningが原因と思われるwarningが出てしまう。 なんで?とりあえず気にしない。 → きんねこさんから情報をいただく。 /etc/busybox.confに設定を書かないといけないようだ。
しかしbusyboxのinitとshは、「オリジナル」(base-sh4-...)のやつとは 動きがどうも違うようだ。 特にinitはだいぶ違って、runlevelの概念がない、など かなり違うので、設定ファイル(inittab)は大幅に変えないといけない。 詳しくはこちら
# cp -auf /mnt/sh/* /mnt/cf/ただし容量の制限がある場合は、いらないものを削る。 例えばmanとかperl関連ライブラリとかshare/のいろいろとか とかとか。duでディレクトリごとのファイルサイズをみながら 削っていくのが便利そう。
linear boot=/dev/sda disk=/dev/sda bios=0x80 install=/boot/boot.b.2104 image=/boot/zImage label=linux root=/dev/hda1 read-only append="console=ttySC1,9600 mem=64M"
# dpkg -i ??.debでインストールができる。 (ref)
# apt-get updateそしてほしいパッケージ名を書く。
apt-get installapt-getの覚書・ RedHat, Debianの設定のtips
auto lo eth0 iface lo inet loopback iface eth0 inet static address ???.???.???.??? netmask ???.???.???.??? gateway ???.???.???.???