カテゴリ
リンク

当サイトは、玄箱PRO (KURO-BOX/Pro)を中心とした組み込み、Linuxと電子工作を扱っています。
会社案内

情報セキュリティおよび個人情報の取り扱いについて


コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。コメントはそれぞれ投稿した人のものです。

■ファンと電源スイッチの制御
 玄箱PROでは、ファンの回転数の制御と、電源スイッチによるシャットダウンは、Keventd と Fand というスクリプトで行っています。Debian 化で、これらのスクリプトが使えなくなっているので、使えるようにしてみました。
■制御に必要なのは? 
 制御に必要なのは、 miconapl です。まず、別項の「nvram, miconapl を使えるようにする」を参考に miconapl が動作するようにしてください。Fand, Keventd については、オリジナルから若干手を入れています。また、Fand, Keventd が起動時に動くように /etc/rc.local に記述を追加しています。

  ■ファイルのインストール
 次のファイル、
daemon.tar.gz
をダウンロードして、適当なところに置いてください(以下では /home/kurobox/ に置いたとしている)。root で、作業します。まず、ファイルを展開します。
cd /tmp tar xzvf /home/kurobox/daemon.tar.gz
 ファイルを適切な場所にコピーします。
cp Fand Keventd /usr/local/sbin/ cp fan.prof /usr/local/etc/
 rc.local もコピーします。
cp rc.local /etc/
 もし、rc.local を自分で変更している場合は、コピーせず、
MICONAPL=/usr/local/sbin/miconapl ${MICONAPL} -b -a boot_end /usr/local/sbin/Keventd 2> /dev/null & /usr/local/sbin/Fand 2> /dev/null &
を、
exit 0
の行の前に加えてください。コピーしたら、元のファイルは消してかまいません。

  ■動作の仕組み 
 起動時に、/etc/rc.local は実行されます。この中で、
MICONAPL=/usr/local/sbin/miconapl ${MICONAPL} -b -a boot_end
により、制御マイコンとの通信の初期化をします。
/usr/local/sbin/Keventd 2> /dev/null &
により、カーネル・イベント(イーサネット・ポートの変化と、電源、リセット・ボタンの変化)を見張る、Keventd を実行します。
/usr/local/sbin/Fand 2> /dev/null &
により、ファンの制御をする Fand を実行します。 

■Keventd の動作 
 Keventd は、
/proc/buffalo/kernevnt
に、カーネルが1行書き出すまで待っています。1行書き出すと do_kern_event() の内容を実行します。do_kern_event() 内で、押されたスイッチを確認し、
/usr/local/sbin/miconapl -b -a bz_on button
により、ビープ音を鳴らしてから、reboot/poweroff を実行します。 

■Fand の動作
 Fand は、60秒に一度、現在の温度を、
miconapl -a temp_get
により、読み出し、 /usr/local/etc/fan.prof 内の各温度範囲でのファンの回転数を設定します。

 ■動作の確認
 ファン制御の確認は難しいので、背面/電源ボタンの確認をします。背面ボタンを数秒押すと、ピッと音がして再起動が始まり、電源ボタンを数秒押すと、ピッと音がしてshutdown が始まれば OK です。

 カテゴリ 

  ,

トラックバック(0)

このブログ記事を参照しているブログ一覧: ファンの制御と電源スイッチ

このブログ記事に対するトラックバックURL: http://www.eleki-jack.com/mt/mt-tb.cgi/986

コメント(6)

yoshida :

玄箱PROをはじめて買ってDebianETCH化してWebで情報を集めて四苦八苦していたのですが
nvram,miconapl および電源ファン、電源スイッチの記事がすごく助かりました。
あとはHDDのスリープ、静音あたりをいじろうかなと思ってます。

PS.
公開されている hoge.tar.gz ファイルなのですがWindowsXP IEからダウンロードすると hogetar.gzt といったファイルとなってしまっており、手動で hoge.tar.zip に変えるのですが玄箱で tar xvfz hoge.tar.gz とやっても解凍に失敗してしまいます。ダウンロードしたファイルをWindows上で解凍した後、玄箱にもってくればつかえているのでそれで動作しています。
わたしの環境だけでしょうか?

yoshida :

hoge.tar.gz ですね、手動で変えているファイル名は。失礼しました。

yoshida :

気が付いていませんでしたが、サーバの関係でファイル名がオリジナルとは違うようですね。お手数ですが、手で直してください。

tar + gzip のはずが、ダウンロードすると gzip は展開されていることが、Internet expoloer だと、たまにあるようです。玄箱PRO上で、うまくいかないときは、tar xzvf xxx.tar.gz の変わりに、tar xvf xxx.tar.gz として圧縮オプションを外してみてください(その場合、ファイル名は xxx.tar の方が混乱は無いですね)。

yoshida :

 zip が展開される現象があるのは初めて知りました。そう考えれば納得がいきます。
(ファイルサイズも増加していたので)


あと、ブートがいつ終わったかわからないのでこちら記事を基にしてにしていろいろやってみました。
感謝の気持ちを込めてフィードバックします。(釈迦に説法かもしれませんが他の方の参考になれば)

 前提条件: miconapl が HDD 環境で動作するようになっていること。

・オリジナル KUROBOX-PRO の環境 /dev/mtd2 から必要なファイルを HDD へコピー
 /usr/local/bin/PlayBeep.sh
 /usr/local/music/SW_ON.msc (music ディレクトリ込み)

--
mount /dev/mtd2 /mnt/mtd
cp -a /mnt/mtd/usr/local/bin/PlayBeep.sh /usr/local/kurobox/bin
cp -a /mnt/mtd/usr/local/music /usr/local/kurobox
umount /mnt/mtd
--

・オリジナルの PlayBeep.sh では miconapl を直接呼び出しているので
 変数に絶対アドレスで格納し miconapl のスクリプトを呼び出すよう修正。

--/usr/local/kurobox/bin/PlayBeep.sh--
MICONAPL=/usr/local/sbin/miconapl

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

${MICONAPL} -a bz_melody ${PLAYDATA}

exit 0
--

・rc.local を修正して PlayBeep.sh に SW_ON.msc を渡して実行

--/etc/rc.local--
MICONAPL=/usr/local/sbin/miconapl

${MICONAPL} -b -a boot_end

/usr/local/sbin/Keventd 2> /dev/null &
/usr/local/sbin/Fand 2> /dev/null &

#${MICONAPL} -b -a bz_on button

PLAY_BEEP=/usr/local/kurobox/bin/PlayBeep.sh

${PLAY_BEEP} /usr/local/kurobox/music/SW_ON.msc

exit 0
--

次回、起動すればピロリ♪~と起動が終わったくらいにオリジナルと同じメロディーが流れます。

ファイルのコピーや修正が面倒ならば rc.local のexit 0 の前に ${MICONAPL} -b -a bz_on button
を追加するだけでもブザー音が鳴らせます。
(最低限、${MICONAPL} -b -a boot_end よりも後に行うこと。他の処理の後に実行)

yoshida :

情報ありがとうございます。
そうですね。起動直後に音を出すと、分かりやすくていいですね。

yoshida :

/etc/rc.local の exit 0 の行の前に、

${MICONAPL} -a bz_melody "30 b4 b5 b4 b6"

と書くとシンプルにできると思います。

コメントする

おすすめ書籍
Powered by
Movable Type 4.1