玄箱で遊ぼう!!―玄箱/玄箱HG対応玄箱で遊ぼう!!―玄箱/玄箱HG対応
鈴木 哲哉

玄箱をハックしよう!―ハックキットで夢のVine Linuxホームサーバー 玄箱PROで遊ぼう!! Debian 辞典 (Desktop reference) Seagate 3.5inch 内蔵ハードディスク 2.0TB 7200rpm 64MBキャッシュ 1TBプラッタ技術採用 SATA3.0 ST2000DM001 ハックキットで夢のDebian GNU/Linuxサーバー 玄箱PROをハックしよう!

by G-Tools

 

 

 

今回玄箱のLenny化に当たり、参考にさせていただいたURLをリンクいたします。ありがとうございます。


Lenny化(http://www.revulo.com/さん)


Squeeze化(masezou hackedさん)

 


[玄箱初期設定セットアップデータ]

 ※玄箱ノーマル用とHG用の2種類があります。必要な方をダウンロードして下さい。
 kuro_102.zip (ノーマル玄箱用ファームウェア)
 kurog101.zip (玄箱HG用ファームウェア)


[Lenny化セットアップデータとインストーラ]
 debian-lenny-installer-kuroBOX-20090317.tgz(インスト―ルスクリプト1)

  debian-lenny-kuroBOX-20090317.tgz(Lenny化データ)

  kuro-bootsel2-debian.tgz(インスト―ルスクリプト2用パッチ)

  kuro-bootsel2.20080419.tar.gz(インストールスクリプト2)

  loader.o

 

 ※玄箱ノーマル用とHG用の2種類があります。必要な方をダウンロードして下さい。

  kernelimage-2.6.25.1-kuroBOX.tgz(ノーマル用カーネルイメージ)

  modules-2.6.25.1-kuroBOX.tgz(ノーマル用モジュール)

  kernelimage-2.6.25.1-kuroHG.tgz(HG用カーネルイメージ)

  modules-2.6.25.1-kuroHG.tgz(HG用モジュール)

 

 

まずは玄箱をEMモード(基盤にあるチップから最小限のLinux OSが起動する)に移行させます。

HDD初期化 or コンソールから"NGNG"コマンド でEMモードへ移行する)

すでにセットアップの終了しているDebianをEMモードにするなら、ログインして下記のコマンドを入力して再起動させればEMモードになります。カーネルのバージョンによってコマンドが違いますが、今なら2.6系の方でしょう。

 

↓※カーネルが2.4の場合

# echo -n NGNG > /dev/fl3
# reboot

 

↓※カーネルが2.6以降の場合

# echo -n NGNG > /dev/mtdblock2
# reboot

 

 

公式KuroBoxSetup.exeの実行
※windowsXPでも7でも可能(一時的にファイアウォールを無効にしておく)
公式セットアッププログラムがインストールされたら、玄箱の電源ボタンを長押ししてシャットダウンし、再度起動させます。

下記のようにセットアップに失敗する場合。「ファームウエアの更新に失敗しました」と表示されたりする。

※ネットワークアダプタが複数ある場合はいずれかを無効にして一つにしておかないといけない。Windows7だとコンパネ→ネットワークとインターネット→ネットワーク接続、で一時的に無効にする。例えば、VMwareを使用していると複数のネットワークアダプタが作成されている。

※windowsのファイアウォールは無効にしておく。


 

 


telnetで接続するには玄箱のIPアドレスを知る必要があります。Zenmap(nmapのwindows版)を起動させ、とりあえず全アドレスを検索します。


target指定は[ 192.168.*.* ]
command指定は[ nmap -sP 192.168.*.* ]と入力して「scan」ボタンで玄箱のIPアドレスを調べる。
結果が下に出てくるので玄箱のIPアドレスを確認する。

 

 

MACアドレスは玄箱の後ろにシールで貼ってあるし、(玄箱HG:Buffalo)(玄箱ノーマル:Melco)と表示されているのが玄箱と思われます。下記のような表示結果が表示されると思います。

 

 

アドレスが分かったらPoderosa等のリモート接続コンソールでTelnet接続します。

ユーザ名

パスワード

玄箱ノーマル

root

kuro

玄箱HG

root

kuroadmin

 

それぞれコネクトできたらこのように表示される。

-----------------------------------------
玄箱[ノーマル]の場合
Kroutoshikou KURO-BOX (IETSUNA)
kernel 2.4.17-kuro-box on ppc

 KURO-BOX-EM login:

-----------------------------------------
玄箱[HG]の場合
Kuroutoshikou KURO-BOX/HG (IESHIGE)
Linux/ppc 2.4.17_mvl21

 KURO-BOX-EM login:

-----------------------------------------


Zenmap(nmap)で玄箱のIPアドレスを調べ、FFFTP等のFTPソフトで先ほどダウンロードした必要なデータを7つ転送する。


ユーザ名

パスワード

玄箱ノーマル

root

kuro

玄箱HG

root

kuroadmin

 

 

転送するデータ

  debian-lenny-installer-kuroBOX-20090317.tgz
 debian-lenny-kuroBOX-20090317.tgz
 kuro-bootsel2-debian.tgz
 kuro-bootsel2.20080419.tar.gz
 loader.o

(玄箱ノーマルなら)
 kernelimage-2.6.25.1-kuroBOX.tgz
 modules-2.6.25.1-kuroBOX.tgz

(玄箱HGなら)
 kernelimage-2.6.25.1-kuroHG.tgz
 modules-2.6.25.1-kuroHG.tgz


FFFTPのクイック接続。
玄箱に接続する。画面の左がwindowsのディレクトリで、右が玄箱のディレクトりになるので右の枠内に必要なデータをドラッグで7つ転送する。 転送されたデータは玄箱の/root下に配置される。7つのデータは同じディレクトリに置いておきましょう。

 

 

PoderosaやTeraTermなどのコンソールプログラムを使ってtelnetで玄箱に接続し、以下のコマンドでDebian Lenny化インストーラを実行する。

まずは圧縮されているインストーラを解凍する。

#tar -zxvf debian-lenny-installer-kuroBOX-20090317.tgz

 

次に以下のコマンドでインストーラを実行する。

ノーマルの場合: # sh debian-lenny-installer-kuroBOX.sh

HGの場合:    # sh debian-lenny-installer-kuroHG.sh

 

これでとりあえずDebian Lenny化は終了で、再起動をかけるとIPアドレスは「192.168.0.100」になります。自分のネットワークが「192.168.1.***」なんかだとtelentで接続ができません。 なので、アドレスの変更が必要があれば現時点で玄箱のIPアドレスを任意のアドレスに変更できます。

# vi /mnt/etc/network/interfaces (この時点ではLennyの設定ファイルは/mntにあります)

自分のネットワークが「192.168.1.***」の場合の設定(もともとは赤字の1が0となっている)

※ここでは変更の例をあげていますが、私は必要がないので実際には編集せずにインストールを続けていきます。

 

iface eth0 inet static
address 192.168.1.100
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1

iface lo inet loopback

auto eth0 lo

 

いっしょにリゾルバの設定も変更しておきます。自分のネットワークのDNSサーバとなっているアドレスを指定します。たいていルーターに登録していると思いますのでルーターのアドレスです。 契約しているプロバイダのDNSサーバのアドレスを入力しておけば間違いないでしょう。

#vi /mnt/etc/resolv.conf (この時点ではLennyの設定ファイルは/mntにあります)

search

nameserver プライマリDNSアドレス

nameserver セカンダリDNSアドレス

※DNSアドレスの設定をきちんとしておかないとapt-getコマンドでダウンロードサイトにたどり着かずにエラーが帰ってきます。

 例えば Temporary failure resolving 'ftp.jp.debian.org' とか

 W: Some index files failed to download, they have been ignored, or old ones used instead.

 W: You may want to run apt-get update to correct these problems など。

 

 

次に、以下のコマンドで再起動させれば玄箱のOSはDebian Lennyになります。

# reboot

 

 

 

 上記でアドレスの変更をしていなければ、telnetで192.168.0.100に接続出来ます。(poderosa等のソフトで)
 ユーザ:tmp-kun
 パス:tmp-kun

 

 玄箱にログインできたら以下のコマンドでrootにスイッチする

 #su root (コマンド後にパスワードを聞かれる)

パスワード:root

 

インストール終了後は基本的に192.168.0.100になっているが、この時点でネットワーク設定をしておいても良い。(IPアドレスの設定は後でもできる)

ネットワークの設定ファイルをviエディタで編集することができます。

#vi /mnt/etc/network/interface

※ここでは変更の例をあげていますが、私は必要がないので実際には編集せずにインストールを続けていきます。

 

iface eth0 inet static
address 192.168.0.20 ←(ここのアドレスが玄箱のIPアドレスになります)
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1

 iface lo inet loopback

 auto eth0 lo

 

先程も同じような設定をしましたが、リゾルバの設定も変更しておきます(今度はファイルの場所が違います)。自分のネットワークのDNSサーバとなっているアドレスを指定します。たいていルーターに登録していると思いますのでルーターのアドレスです。 契約しているプロバイダのDNSサーバのアドレスを入力しておけば間違いないでしょう。

#vi /etc/resolv.conf

search

nameserver プライマリDNSアドレス

nameserver セカンダリDNSアドレス

※DNSアドレスの設定をきちんとしておかないとapt-getコマンドでダウンロードサイトにたどり着かずにエラーが帰ってきます。

 例えば Temporary failure resolving 'ftp.jp.debian.org' とか

 W: Some index files failed to download, they have been ignored, or old ones used instead.

 W: You may want to run apt-get update to correct these problems など。

 

 

 

 

Squeeze化に必要な設定をviエディタで下記のように編集する。(赤字を追加する

#vi /etc/init.d/kuroevtd (赤文字を追加)

#!/bin/sh
# Start/stop the KURO-BOX Event Daemon.
# Provides:        kuroevtd
# Required-Start:  $network $remote_fs $syslog
# Required-Stop:   $network $remote_fs $syslog
# Default-Start:   2 4 5
# Default-Stop:    0 1 3 6
# Short-Description: Start/stop the KURO-BOX Event daemon

 test -f /usr/sbin/kuroevtd || exit 0

 case "$1" in
start) echo -n "Starting KURO-BOX event daemon: kuroevtd"
start-stop-daemon --start --quiet --exec /usr/sbin/kuroevtd
echo "."
;;
stop) echo -n "Stopping KURO-BOX event daemon: kuroevtd"
start-stop-daemon --stop --quiet --exec /usr/sbin/kuroevtd
echo "."
;;
restart) echo -n "Restarting KURO-BOX event daemon: kuroevtd" start-stop-daemon --stop --quiet --exec /usr/sbin/kuroevtd start-stop-daemon --start --quiet --exec /usr/sbin/kuroevtd echo "." ;;
reload|force-reload) echo -n "Reloading configuration files for KURO-BOX event daemon: kuroevtd" # kuroevtd reloads automatically echo "." ;;
*) echo "Usage: /etc/init.d/kuroevtd start|stop|restart|reload|force-reload" exit 1 ;;
esac
exit 0

 

# vi /etc/init.d/kuro_boot(赤文字を追加)

#! /bin/sh
# Provides:          kuro_boot
# Required-Start:    $remote_fs $all
# Required-Stop:
# Default-Start:     2 4 5
# Default-Stop:      0 1 3 6
# Short-Description: Initialize the KUROBOX AVAR

 case "$1" in
start|force-reload|restart|reload)
echo -n "ttyS1 port init : "
stty -F /dev/ttyS1 10:1:9f0d:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
echo -n "AVR init string send"
echo -n "AAAAFFFFJJJJ>>>>VVVV>>>>ZZZZVVVVKKKK" > /dev/ttyS1
echo "."
;;
stop)
;;
*)
echo "Usage: /etc/init.d/$0 {start|stop|restart|reload|force-reload}"
exit 1
esac

exit 0

 

Debianリポジトリを編集する。(squeeze化に必要なデータをダウンロードする場所を指定)

 2016年2月の時点でとっくにsqueezeのサポートが切れていたことに気がついたので、デフォルトのURLではアップデートはダウンロードできませんでした。 そこで、専用のアーカイブURLを指定します。

#vi /etc/apt/sources.list

deb http://archive.debian.org/debian/ squeeze main

 

※もともとあったアドレスは「#」でコメントアウトするか削除しておきましょう。

 

Squeezeへアップグレードするのに必要なデータのダウンロード。

#apt-get update

 

#apt-get updateするとGPGに関するエラーが表示されますので、以下の対応をします。表示されなければdist-upgradeしてかまいません。インストール時の質問にはYesで答えます。

#apt-get updateするとこんなメッセージが表示される

W: GPG error: http://ftp.jp.debian.org squeeze Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AED4B06F473041FA

W: GPG error: http://security.debian.org squeeze/updates Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AED4B06F473041FA

W: You may want to run apt-get update to correct these problems

 

以下の対応をほどこす。(一度上記の#apt-get updateしないとできません

Install these packages without verification [y/N]? の質問には「y」と返答します。

# apt-get install debian-keyring
# apt-get install debian-archive-keyring

 

 

次のコマンドでsqueezeにアップグレードします。

#apt-get dist-upgrade

 

アップグレード開始時に質問されますので下記のようにイエスと答えてインストールを始めてください。

Do you want to continue [Y/n]? Y ←そのままエンター

インストール中の質問には、基本的にOKとかデフォルトの選択でいいでしょう。

 

 

先ずは言語に関するパッケージをインストールする。もし質問を聞かれたらデフォルトで答える。

# apt-get install locales

 Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following NEW packages will be installed:
locales
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 4761 kB of archives.
After this operation, 12.8 MB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
locales
Install these packages without verification [y/N]? y
Get:1 http://ftp.jp.debian.org/debian/ squeeze/main locales all 2.11.3-4 [4761 kB]
Fetched 4761 kB in 1s (2698 kB/s) 
Preconfiguring packages ...
Selecting previously deselected package locales.
(Reading database ... 12304 files and directories currently installed.)
Unpacking locales (from .../locales_2.11.3-4_all.deb) ...
Processing triggers for man-db ...
Setting up locales (2.11.3-4) ...
Generating locales (this might take a while)...
Generation complete.

 

言語を日本語に設定する。英語のままで良ければ必要ありません。

# dpkg-reconfigure locales

ja_JP.EUC-JP
ja_JP.UTF-8
上記を選択(方向キーで選択・スペースキーでチェックを入れる。TABキーでOKに合わせてエンターキーで決定)、その後デフォルトコードを聞かれるのでja_JP.UTF-8を選択

 

# rebootで再起動後にLennyにアップグレードしている。かつ、日本語になっている。

# reboot

 

 

■ちなみに、windowsで作成したファイルが入っているUSBメモリをマウントした時、lsコマンドで日本語表示をさせるコマンド。

# mount -t vfat -o codepage=932,iocharset=utf8 /dev/sda1 /mnt/