初代玄箱 を使っていたのですが、老朽化してきたので玄箱 PRO を新規購入して、新たにファイルサーバを作り直しました。以下のページを参考に、玄箱 PRO には Debian をインストールすることにしました。
- http://w3.quake3.jp/sushi-k/wp/?p=93
- http://www.ellinikonblue.com/PukiWiki/index.php?Debian%20%B8%BC%C8%A2%20Pro%20%A4%CB%A4%B9%A4%EB
- Installing Debian on the Kurobox Pro | Martin Michlmayr
sushi-k さんの Debian 化キットを使う
今回は横着して、sushi-k さんが作成されている Debian 化キットを利用させて頂きました。sushi-k さんのページに記載されている手順のままですが、私が実施した手順を記載しておきます。
まず、sushi-k さんのページ から作業用の Windows 端末へ、以下のファイルをダウンロードしておきます。
- ChangeMeDevHDD
- ChangeMyUbootEnv
- debian_kit.tar.gz
- gnutar_kuropro.gz
- hddrootfs.tar.gz
- uImage.buffalo
次に Windows 端末の IP アドレスが初期状態の玄箱 PRO と同じネットワークになるよう、IP アドレスを「192.168.11.149/24」(第四オクテットは適当)へ変更しておきます。アドレス変更が完了したら、玄箱 PRO と Windows 端末をネットワークケーブルで接続し、玄箱 PRO の電源を ON にします。しばらく(数分)してから玄箱 PRO が起動した頃を見計らい、Windows 端末から玄箱 PRO(初期アドレスは 192.168.11.150)の共有フォルダへアクセス出来ることを確認します。無事、共有フォルダが閲覧出来るようであれば、mtd ディレクトリへアクセスし、sushi-k さんのページからダウンロードしてきたファイル群を全てコピーしておきます。
後は玄箱 PRO 上でコマンドによる操作を実行することになりますから、Windows 端末から玄箱 PRO へユーザ名「root」、パスワード「kuroadmin」で TELNET します。
玄箱 PRO はデフォルトで「BusyBox」という Linux ディストリビューションで起動しているのですが、BusyBox 添付の tar は展開したファイルのパーミッションを引き継いでくれない、という問題があるようですから、BusyBox 添付の tar を予め Windows 端末からコピーしておいた tar と差し替えます。
cd /mnt/mtd
gzip -dc gnutar_kuropro.gz >/bin/tar
chmod a+x /bin/tar
ここまで準備が出来れば、sushi-k さん作の Debian 化キットを展開します。
tar xvzpf debian_kit.tar.gz -C /
展開が終われば、玄箱 PRO 背面に付いている赤い RESET ボタンを 4 〜 5 秒長押しすると、「ピッ」という電子音が鳴り、本体前面の INFO ランプの点滅と共に Debian 化が開始されます。数分 〜 数十分して INFO ランプの点滅が終了したら、TELNET から玄箱 PRO を再起動し、Debian 化は完了です。
reboot
Debian 化後の初回ログイン
sushi-k さんのキットで Debian 化が完了すると、玄箱 PRO は以下のような設定で起動してきます。
- IP アドレスは「192.168.1.81/24」
- 一般ユーザはユーザ名「kurobox」、パスワード「kurobox」
- root ユーザはパスワード「kuroadmin」のまま
- TELNET は停止状態
- SSH が起動状態
以降は上記の情報を参考に、玄箱へログインします。
スワップ領域の作成
起動直後の状態ではスワップ領域が作成されていません。
$ df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 2893052 158106 2587952 6% /
tmpfs 63192 0 63192 0% /lib/init/rw
tmpfs 63192 0 63192 0% /dev/shm
/dev/sda1 55291 5813 46669 12% /boot
root ユーザへ変更した後、スワップ領域を作成します。作成したスワップ領域は再起動するとマウントされます。
# mkswap /dev/sda3
Setting up swapspace version 1, size = 139825 kB
no label, UUID=4a3b829b-9591-4ad6-a958-985ebe3fb559
# reboot
・
・
・
$ cat /proc/swaps
Filename Type Size Used Priority
/dev/sda3 partition 136544 0 -1
シャットダウン時に電源が切れるようにする
Debian 化直後の状態ではシャットダウン時に電源が切れません。/etc/default/halt を以下のように修正し、hatl コマンド実行時に電源が落ちるように変更します。
$ cat /etc/default/halt
# Default behaviour of shutdown -h / halt. Set to "halt" or "poweroff".
# HALT=poweroff
HALT=halt
IP アドレスの変更 / 名前解決時に参照する DNS サーバの変更
自分自身のネットワークに合わせて、/etc/network/interfaces を書き換えておきます。参考までに初期状態では以下のようになっています。
$ cat /etc/network/interfaces
# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.81
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
同様に、名前解決時に参照する DNS サーバの設定も変更しておきます。設定変更対象は /etc/resolv.conf です。参考までに初期状態では以下のようになっています。
$ cat /etc/resolv.conf
search localnet.mda.or.jp
nameserver 192.168.1.1
killall をインストールする
Debian 化直後の状態だと kill コマンドはインストール済みなのですが、killall コマンドがインストールされていません。killall コマンドを使うと対象プロセスをプログラム名で指定して終了や再起動などのシグナル送信を実施出来るようになります(参考: killとkillallの違いはなに? - ITmedia エンタープライズ )。killall は psmisc というパッケージに含まれている為、apt-get で簡単にインストールすることが出来ます。
apt-get install psmisc
ファンコントロールなど、玄箱 PRO 独自の機能を使う
ファンコントロールなど、玄箱 PRO 独自の機能を利用する為、まずは Flash に内蔵されているファイル群を HDD に書き出しておきます。
mkdir /mnt/tmp
mkdir /usr/local/buffalo/
mount /dev/mtd2 /mnt/tmp
cd /mnt/tmp
tar cf - . |(cd /usr/local/buffalo/; tar xvf -)
コピーした Flash 内のファイルを Debian 環境から利用出来るように、/usr/local/sbin/miconapl として以下の内容のファイルを作成しておきます。
chroot /usr/local/buffalo $0 $*
続いて、以下の内容で起動スクリプト /etc/init.d/miconapl を作成しておきます。
#!/bin/sh
case "$1" in
start)
chroot /usr/local/buffalo mount -t proc proc /proc
chroot /usr/local/buffalo /etc/init.d/checkroot.sh start
chroot /usr/local/buffalo /usr/local/sbin/miconapl -b -a boot_end
chroot /usr/local/buffalo /etc/init.d/FanController.sh start
;;
stop)
chroot /usr/local/buffalo /etc/init.d/FanController.sh stop
chroot /usr/local/buffalo umount /proc
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
作成したファイルに実行権を付与しておきます。
chmod a+x miconapl
次に、Flash 環境からコピーしたシェルスクリプトを適切な位置へコピーします(後ほど、スクリプトの内容を一部、変更します)。
cp /usr/local/buffalo/etc/init.d/Kevent.sh /etc/init.d
cp /usr/local/buffalo/usr/local/sbin/Keventd /usr/local/sbin
cp /usr/local/buffalo/usr/local/bin/KeventHandller.sh /usr/local/bin
シェルスクリプトの一部を編集します。/usr/local/sbin/Keventd のうち、6 行目をコメントアウトし、7 行目に「KERNEL_EVENT 〜」を挿入します。
# vi /usr/local/sbin/Keventd
#!/bin/sh
#. /usr/local/bin/kuro_lib
KERNEL_EVENT_TAIL=/proc/buffalo/kernevnt
if [ ! -e ${KERNEL_EVENT_TAIL} ] ; then
exit 0
fi
while :
do
while :
do
LINE=`cat ${KERNEL_EVENT_TAIL}`
/usr/local/bin/KeventHandller.sh ${LINE}
done
done
次に /usr/local/bin/KeventHandller.sh についても以下の部分について編集します。
#!/bin/sh
case $1 in
micon_interrupts)
INT_DETAIL=`/usr/local/sbin/miconapl -a int_get_switch_status |sed -n -e "s/int=//p"`
case ${INT_DETAIL} in
power_sw)
shutdown -h now
;;
esac
;;
esac
次に /usr/local/bufflao/etc/init.d/FanController.sh の以下の部分を編集します。
start(){
if [ -x /usr/local/sbin/Fand ] ; then
/usr/local/sbin/Fand &
fi
}
次に /usr/local/buffalo/usr/local/sbin/Fand の以下の部分を変更します。
#!/bin/sh
PATH=$PATH:/usr/local/sbin
export PATH
CONF_FILE=/etc/fan.prof
miconapl -a fan_set_speed full
最後に、自動起動用のシンボリックリンクを作成します。
ln -s /etc/init.d/miconapl /etc/rc0.d/K10miconapl
ln -s /etc/init.d/miconapl /etc/rc6.d/K10miconapl
ln -s /etc/init.d/miconapl /etc/rcS.d/S80miconapl
ln -s /etc/init.d/Kevent.sh /etc/rc0.d/K10Kevent.sh
ln -s /etc/init.d/Kevent.sh /etc/rc6.d/K10Kevent.sh
ln -s /etc/init.d/Kevent.sh /etc/rcS.d/S81Kevent.sh
コメント