2015年11月14日土曜日

玄人志向 玄箱へ Debian Jessie をインストール

80GB のハードディスクへ交換したことで余裕の出来た玄人志向の玄箱 KURO-BOX へDebian Jessie をインストールしてみました。

Debian Jessie をインストールした玄箱です。

今回のインストールに関しては、以下のウェブサイトを参考にしました。また使用したカーネルイメージや rootfs も拝借させていただきました。どうもありがとうございます。
玄箱にDebian Jessieをインストール: Usoinfo blog
http://blog.usoinfo.info/article/418596388.html

起動の仕組み

この玄箱の起動方法は普通のパソコンとは異なっていました。ハードディスクの第一パーティション(hda1 or sda1)には、メーカ謹製のシステムがインストールされています。このメーカ製のシステムをフラッシュメモリのブートストラップによって起動させます。ここまでメーカ製のシステムを起動させる手順をそのまま流用するようです。
このメーカ製のシステムが起動する途中で新設したブートローダでメーカ製のシステムをそのまま起動させるか、新設した Debian Jessie のシステムを起動させるかの問い合わせがあります(シリアルコンソール上のみ)。自動起動するシステムを Debian Jessie にしておくことにより、電源を投入した後、Debian Jessie が起動されるようになっていました。

Debian Jessie のインストール

参考したウェブサイトではハードディスクを取り出してインストールするように説明してありました。私が行った方法は、ハードディスクを取り出さず、シリアルコンソール上で作業しました。おそらくシリアルコンソールの代わりに telnet でも同様の作業ができると思います。

インストールの前提として、メーカ製のファームウェアが新規にインストールされているものとします。

このメーカ製のシステムが起動している状態でシリアルコンソールからログオンして作業を行いました。

参考ウェブサイトにある各種ファイルをダウンロードしておきます。
  • kurobox-rootfs-jessie.tar.bz2 (tar.gz へ再圧縮)
  • kurobox-kernel-3.19.6.tar.bz2 (tar.gz へ再圧縮)
  • kurobox-lib-3.19.6.tar.bz2 (tar.gz へ再圧縮)
  • kurobox-config-3.19.6.txt
  • kuro-bootsel2.20080419.tar.gz
  • ubuntu-precise-installer.zip

ここでダウンロードしたファイルの一部を事前加工しておきます。これはメーカ製システムに用意されている tar コマンドは .tar.bz2 を解凍することができません。そこで標準的な .tar.gz ファイルへ変更しておきます。私の場合には、単純に一度作業パソコン上で解凍した後、再度圧縮して .tar.gz ファイルを作りました。

そして参考ウェブサイトにあるように ubuntu-precise-installer.zip を作業ディレクトリで解凍して以下の二つのファイルを取り出しておきます。
  • u-boot-1.2.0-hd.ram.bin
  • uloader-2.4.17_mvl21-sandpoint.o

これらのファイルを FTP によって玄箱へ転送します。転送先となるディレクトリを事前に用意しておきます。

 -- 玄箱 --
# mkdir /mnt/jessie
# mkdir -p /boot/tools

 -- 作業パソコン --
# ftp [玄箱の IP アドレス]
    user:root, password:kuro
ftp> cd /mnt/jessie
ftp> put kurobox-rootfs-jessie.tar.gz
ftp> put kurobox-kernel-3.19.6.tar.gz
ftp> put kurobox-lib-3.19.6.tar.gz
ftp> put kuro-bootsel2.20080419.tar.gz
ftp> cd /boot
ftp> put u-boot-1.2.0-hd.ram.bin
ftp> put uloader-2.4.17_mvl21-sandpoint.o
ftp> quit

 -- 玄箱 --
# cd /mnt/jessie
# tar zxvf kuro-bootsel2.20080419.tar.gz
# cp kuro_swread kuro_morse /boot/tools
# cp kuro_bootsel2.sh /etc/init.d
# chmod 755 /etc/init.d/kuro_bootsel2.sh
# pushd /etc/rc.d/rcS.d
# ln -s ../init.d/kuro_bootsel2.sh S15kuro_bootsel2.sh
# popd
# cp kuro_boot.conf /etc

/etc/init.d/kuro_bootsel2.sh を編集(青文字部分が変更場所)
# vi /etc/init.d/kuro_bootsel2.sh

 -- 編集内容 --
101行目から以下の部分をコメントアウトします。vi で 101 行目へジャップする方法は、「:101 (リターン)」です。

    if [ ! -f $2 ]; then
        /bin/echo "Kernel does not exist."
        /boot/tools/kuro_morse F $AVR
        return 0;
    fi

 -- 下記のスクリプトを追加します。 --
#    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

/etc/kuro_boot.conf を編集(青文字部分が変更場所)
# vi /etc/kuro_boot.conf

 -- 編集内容 --
# kuro_bootsel config file (2008-04-01)
#
# "bootdefault" # 1: Linux, 2-9: See below
bootdefault=2 -- 起動を"2へ指定 --
    ↓
    ↓
# Menu entry No.2
#
menu2="Debian Jessie"
loader2="-f /boot/uloader-2.4.17_mvl21-sandpoint.o"
kernel2='uboot=/boot/u-boot-1.2.0-hd.ram.bin'
option2=''

カーネルや rootfs を解凍して、インストールします。
# cd /mnt/jessie
# tar zxvf kurobox-kernel-3.19.6.tar.gz -C /boot
# tar zxvf kurobox-rootfs-jessie.tar.gz -C /mnt
# tar zxvf kurobox-lib-3.19.6.tar.gz -C /mnt

再起動と動作確認

以上でインストールは終了です。再起動して動作確認します。
# reboot

この Debian Jessie のシステムでは、初期設定で telnet とシリアルコンソールが停止されています。ssh でログイン(user:root, password:kuroadmin)します。

なお我が家の環境では、何故か DHCP で取得する IP アドレスが、メーカ製システムの時と Debian Jessie では異なっていました。そのためインストール時の IP アドレスでログインできないときには、IP アドレスを arp-scan コマンドなどで探しだしてください。

これで本格的に玄箱で遊べるようになりました。


0 件のコメント:

コメントを投稿