スポンサーサイト

一定期間更新がないため広告を表示しています

| スポンサードリンク | | - | - | pookmark |
Entry: main  << >>
[玄箱Pro]Debian化 仕切直し
というわけできままなWebLog on 玄箱Proさんを参考に構築したいと思う。

※現在管理人殿にリンクと参考にする旨の了解を得ているところです。



1.Debian化ハックキットの準備
sushi-k日誌2さんから下記の6ファイルをダウンロードする。
・ChangeMeDevHDD(これは玄箱Pro付属CDにも入っている)
・ChangeMyUbootEnv(これは玄箱Pro付属CDにも入っている)
・gnutar_kuropro.gz
・debian_kit.tar.gz
・hddrootfs.tar.gz
・uImage.buffalo

2.取得したファイルを玄箱Proへ転送
玄箱ProはFlashブートだとデフォルトでDHCPからIPを取得するとのこと。
我が家はDHCP環境なのでLANに接続して立ち上げて、
手元のPCからTeraTermで接続できることを確認。
※DHCPから取得出来なかった場合は、192.168.11.150で起動するとのこと。
その状態ですでにSambaが起動しているので、
手元のPCからエクスプローラで¥¥kurobox-proへアクセスし、
「mtd device」に1で取得した6ファイルを転送する。

3.tarの入替え
玄箱ProのFlashに入っているtar(というはほとんどのコマンド)は、
busyboxへリンクされていて、展開時にdevファイルのパーミッションを
落としてしまうとのこと。
なので正しく動作するtarと入れ替える。
2で転送した6ファイルのうち、
「gnutar_kuropro.gz」を解凍した物を「tar」に名前を変更する。

4.Flash環境のバックアップ
手元のPCからTelnetで玄箱Proへ接続。
下記のコマンドを実行する。
# cd /
# /mnt/mtd/tar cvzpf /mnt/mtd/rootfs.tar.gz bin boot dev etc home lib root rootfs sbin sys usr

手元のPCからエクスプローラでアクセス、
「mtd device」に入っている「rootfs.tar.gz」を待避しておく。

5.Flash環境の書き換え
下記のコマンドを実行し、Flash環境の一部を書き換える。
# cd /mnt/mtd
# ./tar xvzpf debian_kit.tar.gz -C /

6.Debian化本番
いよいよDebian化開始。
玄箱Proの裏側にあるリセットボタンを「ピッ」と鳴るまで長押しする。
すると玄箱Proが再起動してDebian化が開始する。
Debian化中は「info」ランプが点滅しているが、
これが消えればDebian化完了。
だがしかーし!まだ再起動してはいけない。
まだ環境に問題があるのでそれを整えてから再起動することになる。
次項に記載するのでそれまではくれぐれも再起動しないこと。
尚、以後はsshでの接続になるので、
「UTF-8 TeraTerm Pro with TTSSH2」を使用する。

7.環境設定
Debian化が完了した状態だとswapが有効になっていないので、
ここで有効化する。
# mkswap /dev/sda3

さらに電源断出来るようにするため、「/etc/default/halt」を修正する。
HALT=halt

パッケージの追加
# aptitude install psmisc

これでひとまずDebian化が完了したわけだが、
玄箱Pro特有の設定(電源ボタン長押しによるシャットダウンやファンコントロール)
を続けて行う。
JUGEMテーマ:玄人志向


8.Flash内のファームを取得
まずはFlash内にあるコマンドを利用するため下記のコマンドを実行する。
# mknod /dev/mtd2 b 31 2
# mkdir /mnt/mtd2
# mkdir /usr/local/buffalo
# mount /dev/mtd2 /mnt/mtd2
# cd /mnt/mtd2
# tar cf - . | (cd /usr/local/buffalo ; tar xv - )

9.デバイスの作成
現状だとデバイスが足りないので、必要に応じて追加する。

#!/bin/sh
mknod /dev/mtd0 b 31 0
mknod /dev/mtd1 b 31 1
mknod /dev/mtd2 b 31 2
mknod /dev/mtd3 b 31 3
mknod /dev/mtd4 b 31 4
mknod /dev/mtd5 b 31 5
mknod /dev/mtd6 b 31 6
mknod /dev/mtd7 b 31 7
mknod /dev/mtd8 b 31 8
mknod /dev/mtd9 b 31 9
mknod /dev/mtd10 b 31 10
mknod /dev/mtd11 b 31 11
mknod /dev/mtd12 b 31 12
mknod /dev/mtd13 b 31 13
mknod /dev/mtd14 b 31 14
mknod /dev/mtd15 b 31 15
mknod /dev/mtdblock0 b 31 0
mknod /dev/mtdblock1 b 31 1
mknod /dev/mtdblock2 b 31 2
mknod /dev/mtdblock3 b 31 3
mknod /dev/mtdblock4 b 31 4
mknod /dev/mtdblock5 b 31 5
mknod /dev/mtdblock6 b 31 6
mknod /dev/mtdblock7 b 31 7
mknod /dev/mtdchar0 b 90 0
mknod /dev/mtdchar1 b 90 2
mknod /dev/mtdchar2 b 90 4
mknod /dev/mtdchar3 b 90 6
mknod /dev/mtdchar4 b 90 8
mknod /dev/mtdchar5 b 90 10
mknod /dev/mtdchar6 b 90 12
mknod /dev/mtdchar7 b 90 14
mknod /dev/mtdchar8 b 90 16
mknod /dev/mtdchar9 b 90 18
mknod /dev/mtdchar10 b 90 20
mknod /dev/mtdchar11 b 90 22
mknod /dev/mtdchar12 b 90 24
mknod /dev/mtdchar13 b 90 26
mknod /dev/mtdchar14 b 90 28
mknod /dev/mtdchar15 b 90 30
ln -s /dev/ram0 /dev/ramdisk
mknod /dev/rom0 b 31 0
mknod /dev/rom1 b 31 1
mknod /dev/rom2 b 31 2
mknod /dev/rom3 b 31 3
mknod /dev/rom4 b 31 4
mknod /dev/rom5 b 31 5
mknod /dev/rom6 b 31 6
mknod /dev/rom7 b 31 7
mknod /dev/rom8 b 31 8
mknod /dev/rom9 b 31 9
mknod /dev/sda b 8 0
mknod /dev/sda1 b 8 1
mknod /dev/sda2 b 8 2
mknod /dev/sda3 b 8 3
mknod /dev/sda4 b 8 4
mknod /dev/sda5 b 8 5
mknod /dev/sda6 b 8 6
mknod /dev/sda7 b 8 7
mknod /dev/sda8 b 8 8
mknod /dev/sda9 b 8 9
mknod /dev/sdb b 8 16
mknod /dev/sdb1 b 8 17
mknod /dev/sdb2 b 8 18
mknod /dev/sdb3 b 8 19
mknod /dev/sdb4 b 8 20
mknod /dev/sdc b 8 32
mknod /dev/sdc1 b 8 33
mknod /dev/sdc2 b 8 34
mknod /dev/sdc3 b 8 35
mknod /dev/sdc4 b 8 36
mknod /dev/sdd b 8 48
mknod /dev/sdd1 b 8 49
mknod /dev/sdd2 b 8 50
mknod /dev/sdd3 b 8 51
mknod /dev/sdd4 b 8 52
mknod /dev/ttyS0 c 4 64
mknod /dev/ttyS1 c 4 65
mkdir /dev/usb
mkdir /dev/usb/tts
chmod 777 /dev/usb
chmod 755 /dev/usb/tts



10.マイコン制御の設定
マイコン制御をJail環境で実行するため、、/usr/local/sbin/miconaplを作成する。
# chroot /usr/local/buffalo /usr/local/sbin/miconapl $*

起動時に実行できるよう、/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
-------------------------------------



11.電源ボタン長押しによるシャットダウンの設定
電源ボタンを制御するために、KeventdとKevent.shをコピーする。
# cp /usr/local/buffalo/usr/local/sbin/Keventd /usr/local/sbin/Keventd
# cd /usr/local/buffalo/etc/init.d/Kevent.sh /etc/init.d/Kevent.sh
コピーした/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
-------------------------------------


さらに/etc/init.d/Kevent.shを以下のように修正する。
-------------------------------------
#!/bin/sh

start(){
if [ -x /usr/local/sbin/Keventd ] ; then
    /usr/local/sbin/Keventd &
fi
}
-------------------------------------
/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)
        /usr/local/sbin/miconapl -a bz_on button
        shutdown -h now
        ;;
    esac
    ;;
esac
-------------------------------------

12.ファンコントロールの設定
電源ファンをコントロールするために、
/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
-------------------------------------
さらに/usr/local/buffalo/etc/init.d/FanController.shを以下のように修正。
-------------------------------------
#!/bin/sh

start(){
if [ -x /usr/local/sbin/Fand ] ; then
    /usr/local/sbin/Fand &
fi
}
-------------------------------------
/usr/local/buffalo/etc/fan.profを修正することにより、
ファンの回転速度と温度をコントロールすることが可能。
私はきままなWebLog on 玄箱Proさんを参考に下記の様に修正。
-------------------------------------
stop - 20
slow 20 35
fast 35 45
full 45
-------------------------------------

13.電源ボタン長押し時のビープ音設定
PlayBeep.shとSW_ON.mscをコピーする。
# mkdir /usr/local/music
# cp /usr/local/buffalo/usr/local/bin/PlayBeep.sh /usr/local/bin/PlayBeep.sh
# cp /usr/local/buffalo/usr/local/music/SW_ON.msc /usr/local/music/SW_ON.msc

/usr/local/bin/PlayBeep.shを編集する。
--------------------------------------
#!/bin/sh

if [ -f "$1" ] ; then
    TEMPO=`grep "TEMPO=" $1|sed -e "s/TEMPO=//"`
    MELODY=`grep -v "TEMPO=" $1`
    PLAYDATA="${TEMPO} ${MELODY}"
else
    MELODY=`echo $*| sed -e "s/$0//"`
    PLAYDATA=${MELODY}
fi

/usr/local/sbin/miconapl -a bz_melody ${PLAYDATA}
--------------------------------------

/etc/rc.localに登録する。
--------------------------------------
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/usr/local/bin/PlayBeep.sh /usr/local/music/SW_ON.msc

exit 0
--------------------------------------

14.自動起動の設定
玄箱Proが起動したときに自動起動できるようmiconaplとKevent.shをrc.dに登録する。
# update-rc.d miconapl start 80 S . stop 10 0 6 .
# update-rc.d Kevent.sh start 81 S . stop 10 0 6 .

玄箱Proを再起動させて手元のPCより接続し、Debianが起動していることを確認。
これにて玄箱ProのDebian化完了!
| おおき | 20:32 | comments(0) | trackbacks(0) | pookmark |
スポンサーサイト
| スポンサードリンク | 20:32 | - | - | pookmark |
Comment








Trackback

コンテンツ検索

当サイト内の検索にも便利です。
 
※別窓が開きます

Amazon

Amazonおまかせ紹介

カウンター

ブログパーツUL5

Entry

Comment

Archives

Category

Link

Profile

Sponsored Links

Feed

Others

無料ブログ作成サービス JUGEM

Mobile

qrcode


当サイトに記載の方法をを利用して不具合が生じても、当方では一切の責任を負いかねます。
.