2015年05月08日

玄箱にDebian Jessieをインストール

Squeeze化しカーネルを2.6.39.4にして使っていた玄箱だが、Jessieがリリースされたのを機に、追い付いておくことにした。

と言っても、HDL-GXRでWheezy/Jessieを動かすよりは簡単に済んだ。玄箱は、正式にカーネルに取り込まれているので、カーネルソースをいじらなくてよいので。
よって、Weezy用は3.2系logtermの3.2.68、Jessie用は最新のstableである3.19.6を選択した。

基本的な作業は、3.x系のカーネルをコンパイルして(参照記事)、debootstrapでrootfsを作成(参照記事)、玄箱からディスクを取り出して別のPCにマウントし、ブート環境を整えた上で、作ったカーネルとrootfsを展開した。
作ったrootfsとカーネルを一応置いておく。

Wheezy向け
rootfs kurobox-rootfs-wheezy.tar.bz2
kernel kurobox-kernel-3.2.68.tar.bz2
lib kurobox-lib-3.2.68.tar.bz2
config kurobox-config-3.2.68.txt

Jessie向け
rootfs kurobox-rootfs-jessie.tar.bz2
kernel kurobox-kernel-3.19.6.tar.bz2
lib kurobox-lib-3.19.6.tar.bz2
config kurobox-config-3.19.6.txt

インストール手順
1. ハードディスクのパーティションを切る
Linuxの動いているPCにHDDを接続して、
(※接続したHDDはsdbの想定)
/dev/sdb1 MontaVista Linux (100M〜お好みで)
/dev/sdb2 swap (256M〜お好みで)
/dev/sdb3 Debian (残り全部)

sdb1,sdb3はext3でフォーマット、sdb2はmkswapする。
玄人志向のページからファームウェアアップデート Ver1.02をダウンロードし解凍、中のimage.zipを解凍して、tmpimage.tgzを /dev/sdb1 に展開する。(この段階で玄箱MontaVistaが動くようになるはず。つまり第1パーティションに玄箱オリジナルのLinuxが入ればいいので、通常の初期化手順を実行しても良い、はず。)

2. ブート環境の整備
玄箱/玄箱HG 用 ubuntu 12.04 LTS imageより、kuro-bootsel2.20080419.tar.gzubuntu-precise-installer.zip をダウンロード。
ubuntu-precise-installer.zip を解凍し、u-boot-1.2.0-hd.ram.bin uloader-2.4.17_mvl21-sandpoint.oをsdb1:/boot に置く。
kuro-bootsel2.20080419.tar.gz を解凍して、install.shの内容を手作業で実行。
# mount /dev/sdb1 /mnt (※接続したHDDはsdbの想定)
# cp u-boot-1.2.0-hd.ram.bin /mnt/boot
# cp uloader-2.4.17_mvl21-sandpoint.o /mnt/boot
# mkdir -p /mnt/boot/tools
# cp kuro_swread kuro_morse /mnt/boot/tools/
# cp kuro_bootsel2.sh /mnt/etc/init.d/
# chmod 755 /mnt/etc/init.d/kuro_bootsel2.sh
# pushd /mnt/etc/rc.d/rcS.d
# ln -s ../init.d/kuro_bootsel2.sh S15kuro_bootsel2.sh
# popd
# cp kuro_boot.conf /mnt/etc/
sdb1:/etc/init.d/kuro_bootsel2.sh を次のように変更。
101行目から
if [ ! -f $2 ]; then
/bin/echo "Kernel does not exist."
/boot/tools/kuro_morse F $AVR
return 0;
fi
init_avr

# if [ ! -f $2 ]; then
# /bin/echo "Kernel does not exist."
# /boot/tools/kuro_morse F $AVR
# return 0;
# fi
if [ -f $2 ]; then
/sbin/insmod $1 kernel=$2 $3
else
echo /sbin/insmod $1 $2 $3
/sbin/insmod $1 $2 $3
echo /sbin/init 6
/sbin\/init 6
fi
init_avr
している内容は、ubuntu-precise-installer-kuroBOX.sh の sed -e "101,105 s/^./#/" -e "110 s/^./#/" ... と同じ。
sdb1:/etc/kuro_boot.conf を次のように変更。
# kuro_bootsel config file (2008-04-01)
#
# "bootdefault"
# 1: Linux, 2-9: See below
bootdefault=2

(略)

# Menu entry No.2
#
menu2="Debian"
loader2="-f /boot/uloader-2.4.17_mvl21-sandpoint.o"
kernel2='uboot=/boot/u-boot-1.2.0-hd.ram.bin'
option2=''
している内容は、ubuntu-precise-installer-kuroBOX.sh の sed -e "s/^#bootdefault=1$/bootdefault=2/" ... と同じ。

3. rootfs,kernel,lib を展開
カーネルをsdb1へ、rootfsとlibをsdb3へ展開する。
# mount /dev/sdb1 /mnt
# tar xvfj kurobox-kernel-XXXXXX.tar.bz2 -C /mnt/boot
# umount /mnt
# mount /dev/sdb3 /mnt
# tar xvfj kurobox-rootfs-XXXXXX.tar.bz2 -C /mnt
# tar xvfj kurobox-lib-XXXXXX.tar.bz2 -C /mnt
# umount /mnt
4. ハードディスクを玄箱に接続してブート
eth0はdhcpでアドレスを取得。電源投入から3〜5分くらいで、sshd が上がりアクセス可能になる。はず。
ユーザー名root、パスワードkuroadmin でログインできる。

- 2015/05/08
3.19.6カーネルでUSBディスクを認識しなかったので作り直し。
posted by usoinfo at 06:54 | Comment(0) | 開発 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。