| このページの文章は現在鋭意作成中です |
Debian 玄箱 Pro にする †
用意するもの †
- 玄箱 Pro 本体
本体付属の CD-ROM より以下のファイルを使います。- ChangeMeDevHDD
- ChangeMyUbootEnv
- sushi-k 日誌 2 製 Debian 化キット
sushi-k 日誌 2 より以下のファイルをダウンロードしてきます。- hddrootfs.tar.gz
- uImage.buffalo
- debian_kit.tar.gz
- gnutar_kuropro.gz
- Serial ATA I/F のハードディスク
パーティションを切らないで新品と同等の状態で玄箱 Pro 本体に取り付けて使用します。 - telnet/ssh 接続可能な PC 端末
方針としてはシリアルコンソールは使いません。失敗したら、あきらめて用意してください。
とりあえず Debian 化 †
Flash 環境のバックアップ †
Debian 化した後、玄箱 Pro 固有の機能を制御するために必要なこともあり、また Flash の内容も書き換えるので、まずはバックアップを取っておきます。
ただし玄箱 Pro を Flash 起動した際にコマンドラインから使える tar は busybox にリンクされたサブセットなので、バックアップを取るためにこの tar(busybox) を使用するとパーミッション情報が落ちてしまいます。
そこで sushi-k 日誌 2 よりダウンロードした gnutar_kuropro.gz を解凍したファイルを、Windows 端末より玄箱 Pro を Flash 起動すると現れる共有ディレクトリ mtd device に転送して tar に名前を変更しておきます。併せて、debian_kit.gz も転送しておきます。
次に玄箱 Pro に telnet で接続し、ログインして以下のコマンドを実行します。
cd / /mnt/mtd/tar cvzpf /mnt/mtd/rootfs.tar.gz bin boot dev etc home lib root rootfs sbin sys usr
Flash 環境の書き換え †
バックアップが終わったら、以下のコマンドを実行して Flash の内容を一部書き換えます。
cd /mnt/mtd ./tar xvzpf debian_kit.tar.gz -C /
Debian GNU/Linux ミニルートの転送 †
以上の作業が終了したら、Windows 端末より玄箱 Pro の共有ディレクトリ mtd device より先ほどバックアップした rootfs.tar.gz を取り出してから一度ディレクトリを空にしてから、以下のファイルを mtd device に転送します。
- hddrootfs.tar.gz
- uImage.buffalo
(sushi-k 日誌 2 より) - ChangeMeDevHDD
- ChangeMyUbootEnv (玄箱 Pro 本体付属の CD-ROM より)
転送が終わったら、本体背面の RESET ボタンを長押しします。「ピッ」という電子音がして Debian 化が始まります。数十分かかります。
Debian 化が終了したら、一度、玄箱 Pro に telnet して再起動すると、Debian 化は終了です。
Debian 化が終了すると今度は ssh でしかアクセスできなくなっています。また起動した状態で、sushi-k 日誌 2 のキットでは IP アドレスが固定で 192.168.1.81 になっていることにも注意が必要です。ssh でアクセスする際は、ユーザ名もパスワードも「 kurobox 」で可能です。
一応、これで Debian 化は終了ですが、このままではファンコントロール、電源ボタンでのシャットダウンも動作しませんし、シャットダウンコマンドですら電源が落ちませんので、玄箱 Pro 固有の設定を始めていきます。
玄箱 Pro 固有の設定 †
環境の不備を修正 †
インストール直後は、/dev/sda3 がスワップ領域としてマウントするように設定ファイルにかかれていますが、/dev/sda3 がスワップ領域としてファーマットされていないのでマウントされません。これを修正するために /dev/sda3 をスワップ領域としてフォーマットします。
mkswap /dev/sda3
次回再起動するとマウントされるようになります。
またインストール直後ではシャットダウンコマンドで電源が落ちませんので、/etc/default/haltを以下のように修正します。
HALT=halt
最後に玄箱固有の設定を行っていくと killall というコマンドが必要なになるので、以下のコマンドでパッケージの追加します。
apt-get install psmisc
Flash 起動環境のコピー †
玄箱固有の機能を使うために、Flash領域にあるファームウェアを丸ごとコピーして使います。しかし、そのままではの Flash 領域が見えないので、以下のコマンドを実行して Flash 領域をマウントし、その後丸ごと /usr/local/buffalo ディレクトリを作成して、丸ごとコピーします。
mknod /dev/mtd2 b 31 2 mkdir /mnt/tmp mkdir /usr/local/buffalo/ mount /dev/mtd2 /mnt/tmp cd /mnt/tmp tar cf - . |(cd /usr/local/buffalo/; tar xvf -)
Debian 環境での準備 †
/usr/local/sbin/miconapl として以下の内容のファイルを用意して、Debian 環境から、Flash 環境にあった 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
電源ボタンのコントロールに関する部分は、Debian 環境からシェルスクリプトで用意されているので、これをコピー、編集して使います。
まずは必要なスクリプトを以下のようにコピーします。
cp /usr/local/buffalo/etc/init.d/Kevent.sh /etc/init.d cp /usr/local/buffalo/usr/local/sbin/Keventd /usr/local/sbin
次にコピーした /usr/local/sbin/Kenent.sh の以下の部分を編集します。
#!/bin/sh
#. /usr/local/bin/kuro_lib
KERNEL_EVENT_TAIL=/proc/buffalo/kernevnt
if [ ! -e ${KERNEL_EVENT_TAIL} ] ; then
exit 0
:(略)
次に /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
chroot して実行する環境の準備 †
chroot して実行しても問題がないように、 Debian 環境にコピーしたファイルも一部編集します。
まずは /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 :(略)
自動起動の設定 †
これまでに作成した玄箱 Pro の独自部分への対応を、起動時に自動起動するように設定します。
- ファンコントロールの自動起動設定
ln -s ../init.d/miconapl etc/rc0.d/K10miconapl ln -s ../init.d/miconapl etc/rc6.d/K10miconapl ln -s ../init.d/miconapl etc/rcS.d/S80miconapl
- 電源ボタン監視の自動起動設定
ln -s ../init.d/Kevent.sh etc/rc0.d/K10Kevent.sh ln -s ../init.d/Kevent.sh etc/rc6.d/K10Kevent.sh ln -s ../init.d/Kevent.sh etc/rcS.d/S81Kevent.sh
以上で、玄箱 Pro の Debian 化は完了です。
ハードディスクのお引っ越し †
上記の手順を実行する場合、どのようなサイズのハードディスクを使用しても、パーティション割りはほぼ同様の構成になります。そこで別のハードディスクに移動すれば、パーティション割りも変更できます。
一つ注意が必要なのはハードディスクをフォーマットする際の形式です。一般的に 昨今の Linux で使用されている ext3 ですが、上記で作成した Debian 化した玄箱 Pro で xfs を使用する場合には注意が必要で、Debian 化した玄箱 Pro で xfs フォーマットしたハードディスクは、一般的な x86 で動作する Linux では読み書きできないと思っておいた方がよいと思われます。それは困ると言うことであれば ext3 を使用してください。以下では xfs も使用します。
とりあえず、引っ越しように用意した HDD は、玄箱 Pro に USB で接続して以下のようにパーティションを作成し、各パーティションをフォーマットします。
| 引っ越し後のマウントポイント | デバイス名 | ID | ファイルシステム | 容量 |
| /boot | /dev/sdb1 | 83 | ext3 | 256MB |
| / | /dev/sdb2 | 83 | xfs | 2.5GB |
| (swap) | /dev/sdb3 | 82 | (swap) | 256MB |
| (拡張領域) | /dev/sdb4 | 5 | (拡張領域) | 残り全部 |
| /mnt | /dev/sdb5 | 83 | xfs | 100GB |
| /home | /dev/sdb6 | 83 | xfs | 残り全部 |
玄箱 Pro のルートディレクトリに xxx というディレクトリを作成し、/dev/sdb2 をマウント、その後、boot, mnt, home ディレクトリを xxx ディレクトリ以下に作成して、各個 /dev/sdb1, /dev/sdb5, /dev/sdb6 をマウントします。

