トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

UNIX/Linux Knowledge

このページの文章は現在鋭意作成中です

Debian 玄箱 Pro にする

用意するもの

  • 玄箱 Pro 本体
     本体付属の CD-ROM より以下のファイルを使います。
    • ChangeMeDevHDD
    • ChangeMyUbootEnv
  • sushi-k 日誌 2Debian 化キット
     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/sdb183ext3256MB
//dev/sdb283xfs2.5GB
(swap)/dev/sdb382(swap)256MB
(拡張領域)/dev/sdb45(拡張領域)残り全部
/mnt/dev/sdb583xfs100GB
/home/dev/sdb683xfs残り全部

 玄箱 Pro のルートディレクトリに xxx というディレクトリを作成し、/dev/sdb2 をマウント、その後、boot, mnt, home ディレクトリを xxx ディレクトリ以下に作成して、各個 /dev/sdb1, /dev/sdb5, /dev/sdb6 をマウントします。

参考図書

リンク集


© 2004-2011 Ellinikonblue.com All Rights Reserved.