「miconaplコマンド」の編集履歴(バックアップ)一覧はこちら
「miconaplコマンド」(2008/02/03 (日) 03:54:21) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
#contents()
*コマンドの使い方を探る
玄箱PROに組み込まれた各種装置を論理的に操作するのはCPUである88F5182だが、実際に直接制御しているのはμPD78F0500だ。
そして88F5182がμPD78F0500を制御するために使用しているのがこのmiconaplコマンドなのだが、このコマンドはプログラムでありソースは公開されていない。
詳しい使い方を知るためにはmiconaplコマンドを使用しているスクリプトを調べればいい。
**/以下の全ファイルから「miconapl」文字列を探す
findコマンドでファイル形式のものを検索し、その中身にmiconaplという記述があればそれを出力する。
~ # find / -type f | xargs grep -i miconapl
/etc/init.d/rcS: miconapl -b -a boot_end
/etc/init.d/bootcomplete.sh:/usr/local/sbin/miconapl -b -a boot_end
/etc/init.d/FanController.sh: /usr/local/sbin/miconapl -a fan_set_speed stop
/etc/init.d/shutdown_start.sh:miconapl -a bz_on button
/etc/init.d/shutdown_start.sh:miconapl -a shutdown_wait
/etc/init.d/reboot_start.sh:miconapl -a bz_on button
/etc/init.d/reboot_start.sh:miconapl -a reboot
grep: /sys/class/scsi_host/host1/scan: Permission denied
grep: /sys/class/scsi_host/host0/scan: Permission denied
grep: /sys/bus/pci/drivers/uhci_hcd/new_id: Permission denied
grep: /sys/bus/pci/drivers/ohci_hcd/new_id: Permission denied
grep: /sys/bus/pci/drivers/ehci_hcd/new_id: Permission denied
grep: /sys/bus/pci/drivers/mvSata/new_id: Permission denied
grep: /sys/bus/pci/drivers/sk98lin/new_id: Permission denied
grep: /sys/bus/pci/drivers/serial/new_id: Permission denied
grep: /sys/bus/pci/drivers/tpm_atmel/new_id: Permission denied
grep: /sys/devices/system/leds/leds0/event: Permission denied
grep: /sys/devices/platform/host0/target0:0:0/0:0:0:0/delete: Permission denied
grep: /sys/devices/platform/host0/target0:0:0/0:0:0:0/rescan: Permission denied
/usr/local/bin/kuro_lib:MICONAPL=/usr/local/sbin/miconapl
/usr/local/bin/KeventHandller.sh: INT_DETAIL=`$MICONAPL -a int_get_switch_status |grep "int=" |sed -e "s/int=//"`
/usr/local/bin/PlayBeep.sh:miconapl -a bz_melody ${PLAYDATA}
/usr/local/bin/InitDisk1.sh: miconapl -a led_set_cpu_mcon diag
/usr/local/bin/InitDisk1.sh: miconapl -a led_set_on_off diag
/usr/local/bin/InitDisk1.sh: miconapl -a led_set_brink diag
/usr/local/bin/InitDisk1.sh: miconapl -a bz_on on3off3
/usr/local/bin/InitDisk1.sh: miconapl -a bz_on
/usr/local/bin/InitDisk1.sh: miconapl -a led_set_brink off
/usr/local/bin/InitDisk1.sh: miconapl -a led_set_on_off off
/usr/local/bin/InitDisk1.sh: miconapl -a led_set_cpu_mcon off
/usr/local/bin/InitDisk1.sh:miconapl -a led_set_code_information 28
/usr/local/bin/InitDisk1.sh:miconapl -a bz_on button
/usr/local/bin/InitDisk1.sh:miconapl -a led_set_code_information clear
/usr/local/sbin/Fand:miconapl -a fan_set_speed full
/usr/local/sbin/Fand: TEMP=`miconapl -a temp_get|grep temp=| sed -e "s/.*=//"`
/usr/local/sbin/Fand: SPD=`miconapl -a fan_get_speed|grep fan_rpm=|sed -e "s/.*=//"`
/usr/local/sbin/Fand: SSPD=`miconapl -a fan_set_speed|grep fan_speed=|sed -e "s/.*=//"`
/usr/local/sbin/Fand: miconapl -a fan_set_speed ${SSPD_NEW}
/usr/local/sbin/miconapl:/var/run/miconapl.pid
/usr/local/sbin/miconapl:/var/log/miconapllog.txt
/usr/local/sbin/miconapl:Usage: miconapl ver.%s(%s) OPTION
/usr/local/sbin/miconapl:/etc/miconapl.conf
/usr/local/sbin/miconapl:miconapl already running
/usr/local/sbin/miconapl:/var/lock/miconapl
/usr/local/sbin/miconapl:miconapl giveup
/usr/local/sbin/miconapl:#[miconapl.%s]
~ #
ここまでで出てきたのは
>miconapl -b -a boot_end
>miconapl -a fan_set_speed stop
>miconapl -a bz_on button
>miconapl -a shutdown_wait
>miconapl -a reboot
>$MICONAPL -a int_get_switch_status
>miconapl -a bz_melody ${PLAYDATA}
>miconapl -a led_set_cpu_mcon diag
>miconapl -a led_set_on_off diag
>miconapl -a led_set_brink diag
>miconapl -a bz_on on3off3
>miconapl -a bz_on
>miconapl -a led_set_brink off
>miconapl -a led_set_on_off off
>miconapl -a led_set_cpu_mcon off
>miconapl -a led_set_code_information 28
>miconapl -a led_set_code_information clear
>miconapl -a temp_get
>miconapl -a fan_get_speed
>miconapl -a fan_set_speed ${SSPD_NEW}
など。
引数らしき要素を簡単にまとめると
>miconapl -b -a boot_end
>miconapl -a fan_set_speed stop|${SSPD_NEW}
>miconapl -a bz_on button|on3off3
>miconapl -a shutdown_wait
>miconapl -a reboot
>miconapl -a int_get_switch_status
>miconapl -a bz_melody ${PLAYDATA}
>miconapl -a led_set_cpu_mcon diag|off
>miconapl -a led_set_on_off diag|off
>miconapl -a led_set_brink diag|off
>miconapl -a led_set_code_information 28|clear
>miconapl -a temp_get
>miconapl -a fan_get_speed
となる。実際に試してみるのが一番だが、${PLAYDATA}と${SSPD_NEW}という変数は個別に調べる必要がある。
**${PLAYDATA}を調べる
${PLAYDATA}を調べるため、/usr/local/bin/PlayBeep.shを見てみる。
~ # cat /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
miconapl -a bz_melody ${PLAYDATA}
~ #
miconapl -a bz_melodyのあとに「TEMPO」と「MELODY」が続くということがわかる。
このスクリプトそのものの詳細は「[[PlayBeep.sh]]」で説明する。
同様に「TEMPO」で検索すると/usr/local/music/SW_ON.mscがヒットし、中を見ると
~ # cat /usr/local/music/SW_ON.msc
TEMPO=30
b4 b5 b4 b6
とある。
TEMPOは数字で示しMELODYは「b4 b5 b4 b6」というように音程とオクターブの組み合わせの羅列らしい。
まともに「ドレミファソラシド」と演奏させるには
>~ # miconapl -b -a bz_melody 120 c3 d3 e3 f3 g3 a3 b4 c4
というようにB(シ)をキーとして組み立てればうまくいく。
**${SSPD_NEW}を調べる
次に/usr/local/sbin/Fandを覗いてみる。
~ # cat /usr/local/sbin/Fand
#!/bin/sh
CONF_FILE=/etc/fan.prof
miconapl -a fan_set_speed full
while :
do
while :
do
sleep 60
TEMP=`miconapl -a temp_get|grep temp=| sed -e "s/.*=//"`
SPD=`miconapl -a fan_get_speed|grep fan_rpm=|sed -e "s/.*=//"`
SSPD=`miconapl -a fan_set_speed|grep fan_speed=|sed -e "s/.*=//"`
if [ -f ${CONF_FILE} ] ; then
L_LIMIT=`grep ${SSPD} ${CONF_FILE}| awk '{print $2}'`
H_LIMIT=`grep ${SSPD} ${CONF_FILE}| awk '{print $3}'`
if [ "${TEMP}" -lt "${L_LIMIT}" ] ; then
DIRECT=DOWN
elif [ "${TEMP}" -gt "${H_LIMIT}" ] ; then
DIRECT=UP
else
DIRECT=NO
fi
if [ "${DIRECT}" = "DOWN" -a "${SSPD}" = "slow" ] ; then
SSPD_NEW=stop
elif [ "${DIRECT}" = "DOWN" -a "${SSPD}" = "fast" -o "${DIRECT}" = "UP" -a "${SSPD}" = "stop" ] ; then
SSPD_NEW=slow
elif [ "${DIRECT}" = "DOWN" -a "${SSPD}" = "full" -o "${DIRECT}" = "UP" -a "${SSPD}" = "slow" ] ; then
SSPD_NEW=fast
elif [ "${DIRECT}" = "UP" -a "${SSPD}" = "fast" ] ; then
SSPD_NEW=full
else
SSPD_NEW=${SSPD}
fi
miconapl -a fan_set_speed ${SSPD_NEW}
fi
done
done
~ #
こちらもスクリプトそのものは[[Fand]]で説明するが、${SSPD_NEW}に当てはまる値としてはstop、slow、fast、fullの4種類あるようだ。
**まとめ
***ファンの制御
****miconapl -a fan_set_speed stop|slow|fast|full
ファンの回転スピードを停止|微速|中速|最速と変更する。引数をつけずmiconapl -a fan_set_speedとした場合、ファンのスピード状態を表示する
****miconapl -a fan_get_speed
ファンの回転スピードを表示する
***ブザーの制御
****miconapl -a bz_on button|on3off3
ブザーをピッと鳴らす|ピッピッピッ・・と鳴らす
****miconapl -a bz_melody テンポ メロディ メロディ ・・
指定したテンポ(メロディを4/4とするなら250あたりで楽譜上の120程度)とメロディ(音階『b c cm d dm e f fm g gm a am』とオクターブ1~6(オクターブの始まり音はb)の組み合わせ)でブザーを鳴らす
***LEDの制御
****miconapl -a led_set_on_off diag|off
エラーLEDの制御開始|停止をする。
****miconapl -a led_set_cpu_mcon diag|off
エラーLEDを点灯|消灯させる。事前にmiconapl -a led_set_on_off diagが必要
****miconapl -a led_set_brink diag|off
エラーLEDを点滅|点灯させる。事前にmiconapl -a led_set_cpu_mcon diagが必要
***温度の管理
****miconapl -a temp_get
88F5182の温度を表示。HDDや電源ユニットの温度ではない
----
#contents()
*コマンドの使い方を探る
玄箱PROに組み込まれた各種装置を論理的に操作するのはCPUである88F5182だが、実際に直接制御しているのはμPD78F0500だ。
そして88F5182がμPD78F0500を制御するために使用しているのがこのmiconaplコマンドなのだが、このコマンドはプログラムでありソースは公開されていない。
詳しい使い方を知るためにはmiconaplコマンドを使用しているスクリプトを調べればいい。
**/以下の全ファイルから「miconapl」文字列を探す
findコマンドでファイル形式のものを検索し、その中身にmiconaplという記述があればそれを出力する。
~ # find / -type f | xargs grep -i miconapl
/etc/init.d/rcS: miconapl -b -a boot_end
/etc/init.d/bootcomplete.sh:/usr/local/sbin/miconapl -b -a boot_end
/etc/init.d/FanController.sh: /usr/local/sbin/miconapl -a fan_set_speed stop
/etc/init.d/shutdown_start.sh:miconapl -a bz_on button
/etc/init.d/shutdown_start.sh:miconapl -a shutdown_wait
/etc/init.d/reboot_start.sh:miconapl -a bz_on button
/etc/init.d/reboot_start.sh:miconapl -a reboot
grep: /sys/class/scsi_host/host1/scan: Permission denied
grep: /sys/class/scsi_host/host0/scan: Permission denied
grep: /sys/bus/pci/drivers/uhci_hcd/new_id: Permission denied
grep: /sys/bus/pci/drivers/ohci_hcd/new_id: Permission denied
grep: /sys/bus/pci/drivers/ehci_hcd/new_id: Permission denied
grep: /sys/bus/pci/drivers/mvSata/new_id: Permission denied
grep: /sys/bus/pci/drivers/sk98lin/new_id: Permission denied
grep: /sys/bus/pci/drivers/serial/new_id: Permission denied
grep: /sys/bus/pci/drivers/tpm_atmel/new_id: Permission denied
grep: /sys/devices/system/leds/leds0/event: Permission denied
grep: /sys/devices/platform/host0/target0:0:0/0:0:0:0/delete: Permission denied
grep: /sys/devices/platform/host0/target0:0:0/0:0:0:0/rescan: Permission denied
/usr/local/bin/kuro_lib:MICONAPL=/usr/local/sbin/miconapl
/usr/local/bin/KeventHandller.sh: INT_DETAIL=`$MICONAPL -a int_get_switch_status |grep "int=" |sed -e "s/int=//"`
/usr/local/bin/PlayBeep.sh:miconapl -a bz_melody ${PLAYDATA}
/usr/local/bin/InitDisk1.sh: miconapl -a led_set_cpu_mcon diag
/usr/local/bin/InitDisk1.sh: miconapl -a led_set_on_off diag
/usr/local/bin/InitDisk1.sh: miconapl -a led_set_brink diag
/usr/local/bin/InitDisk1.sh: miconapl -a bz_on on3off3
/usr/local/bin/InitDisk1.sh: miconapl -a bz_on
/usr/local/bin/InitDisk1.sh: miconapl -a led_set_brink off
/usr/local/bin/InitDisk1.sh: miconapl -a led_set_on_off off
/usr/local/bin/InitDisk1.sh: miconapl -a led_set_cpu_mcon off
/usr/local/bin/InitDisk1.sh:miconapl -a led_set_code_information 28
/usr/local/bin/InitDisk1.sh:miconapl -a bz_on button
/usr/local/bin/InitDisk1.sh:miconapl -a led_set_code_information clear
/usr/local/sbin/Fand:miconapl -a fan_set_speed full
/usr/local/sbin/Fand: TEMP=`miconapl -a temp_get|grep temp=| sed -e "s/.*=//"`
/usr/local/sbin/Fand: SPD=`miconapl -a fan_get_speed|grep fan_rpm=|sed -e "s/.*=//"`
/usr/local/sbin/Fand: SSPD=`miconapl -a fan_set_speed|grep fan_speed=|sed -e "s/.*=//"`
/usr/local/sbin/Fand: miconapl -a fan_set_speed ${SSPD_NEW}
/usr/local/sbin/miconapl:/var/run/miconapl.pid
/usr/local/sbin/miconapl:/var/log/miconapllog.txt
/usr/local/sbin/miconapl:Usage: miconapl ver.%s(%s) OPTION
/usr/local/sbin/miconapl:/etc/miconapl.conf
/usr/local/sbin/miconapl:miconapl already running
/usr/local/sbin/miconapl:/var/lock/miconapl
/usr/local/sbin/miconapl:miconapl giveup
/usr/local/sbin/miconapl:#[miconapl.%s]
~ #
ここまでで出てきたのは
>miconapl -b -a boot_end
>miconapl -a fan_set_speed stop
>miconapl -a bz_on button
>miconapl -a shutdown_wait
>miconapl -a reboot
>$MICONAPL -a int_get_switch_status
>miconapl -a bz_melody ${PLAYDATA}
>miconapl -a led_set_cpu_mcon diag
>miconapl -a led_set_on_off diag
>miconapl -a led_set_brink diag
>miconapl -a bz_on on3off3
>miconapl -a bz_on
>miconapl -a led_set_brink off
>miconapl -a led_set_on_off off
>miconapl -a led_set_cpu_mcon off
>miconapl -a led_set_code_information 28
>miconapl -a led_set_code_information clear
>miconapl -a temp_get
>miconapl -a fan_get_speed
>miconapl -a fan_set_speed ${SSPD_NEW}
など。
引数らしき要素を簡単にまとめると
>miconapl -b -a boot_end
>miconapl -a fan_set_speed stop|${SSPD_NEW}
>miconapl -a bz_on button|on3off3
>miconapl -a shutdown_wait
>miconapl -a reboot
>miconapl -a int_get_switch_status
>miconapl -a bz_melody ${PLAYDATA}
>miconapl -a led_set_cpu_mcon diag|off
>miconapl -a led_set_on_off diag|off
>miconapl -a led_set_brink diag|off
>miconapl -a led_set_code_information 28|clear
>miconapl -a temp_get
>miconapl -a fan_get_speed
となる。実際に試してみるのが一番だが、${PLAYDATA}と${SSPD_NEW}という変数は個別に調べる必要がある。
**${PLAYDATA}を調べる
${PLAYDATA}を調べるため、/usr/local/bin/PlayBeep.shを見てみる。
~ # cat /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
miconapl -a bz_melody ${PLAYDATA}
~ #
miconapl -a bz_melodyのあとに「TEMPO」と「MELODY」が続くということがわかる。
このスクリプトそのものの詳細は「[[PlayBeep.sh]]」で説明する。
同様に「TEMPO」で検索すると/usr/local/music/SW_ON.mscがヒットし、中を見ると
~ # cat /usr/local/music/SW_ON.msc
TEMPO=30
b4 b5 b4 b6
とある。
TEMPOは数字で示しMELODYは「b4 b5 b4 b6」というように音程とオクターブの組み合わせの羅列らしい。
まともに「ドレミファソラシド」と演奏させるには
>~ # miconapl -b -a bz_melody 120 c3 d3 e3 f3 g3 a3 b4 c4
というようにB(シ)をキーとして組み立てればうまくいく。
**${SSPD_NEW}を調べる
次に/usr/local/sbin/Fandを覗いてみる。
~ # cat /usr/local/sbin/Fand
#!/bin/sh
CONF_FILE=/etc/fan.prof
miconapl -a fan_set_speed full
while :
do
while :
do
sleep 60
TEMP=`miconapl -a temp_get|grep temp=| sed -e "s/.*=//"`
SPD=`miconapl -a fan_get_speed|grep fan_rpm=|sed -e "s/.*=//"`
SSPD=`miconapl -a fan_set_speed|grep fan_speed=|sed -e "s/.*=//"`
if [ -f ${CONF_FILE} ] ; then
L_LIMIT=`grep ${SSPD} ${CONF_FILE}| awk '{print $2}'`
H_LIMIT=`grep ${SSPD} ${CONF_FILE}| awk '{print $3}'`
if [ "${TEMP}" -lt "${L_LIMIT}" ] ; then
DIRECT=DOWN
elif [ "${TEMP}" -gt "${H_LIMIT}" ] ; then
DIRECT=UP
else
DIRECT=NO
fi
if [ "${DIRECT}" = "DOWN" -a "${SSPD}" = "slow" ] ; then
SSPD_NEW=stop
elif [ "${DIRECT}" = "DOWN" -a "${SSPD}" = "fast" -o "${DIRECT}" = "UP" -a "${SSPD}" = "stop" ] ; then
SSPD_NEW=slow
elif [ "${DIRECT}" = "DOWN" -a "${SSPD}" = "full" -o "${DIRECT}" = "UP" -a "${SSPD}" = "slow" ] ; then
SSPD_NEW=fast
elif [ "${DIRECT}" = "UP" -a "${SSPD}" = "fast" ] ; then
SSPD_NEW=full
else
SSPD_NEW=${SSPD}
fi
miconapl -a fan_set_speed ${SSPD_NEW}
fi
done
done
~ #
こちらもスクリプトそのものは[[Fand]]で説明するが、${SSPD_NEW}に当てはまる値としてはstop、slow、fast、fullの4種類あるようだ。
**まとめ
***ファンの制御
&bold(){miconapl -a fan_set_speed stop|slow|fast|full}
ファンの回転スピードを停止|微速|中速|最速と変更する。引数をつけずmiconapl -a fan_set_speedとした場合、ファンのスピード状態を表示する
&bold(){miconapl -a fan_get_speed}
ファンの回転スピードを表示する
***ブザーの制御
&bold(){miconapl -a bz_on button|on3off3}
ブザーをピッと鳴らす|ピッピッピッ・・と鳴らす
&bold(){miconapl -a bz_melody テンポ メロディ メロディ ・・}
指定したテンポ(メロディを4/4とするなら250あたりで楽譜上の120程度)とメロディ(音階『b c cm d dm e f fm g gm a am』とオクターブ1~6(オクターブの始まり音はb)の組み合わせ)でブザーを鳴らす
***LEDの制御
&bold(){miconapl -a led_set_on_off diag|off}
エラーLEDの制御開始|停止をする。
&bold(){miconapl -a led_set_cpu_mcon diag|off}
エラーLEDを点灯|消灯させる。事前にmiconapl -a led_set_on_off diagが必要
&bold(){miconapl -a led_set_brink diag|off}
エラーLEDを点滅|点灯させる。事前にmiconapl -a led_set_cpu_mcon diagが必要
***温度の管理
&bold(){miconapl -a temp_get}
88F5182の温度を表示。HDDや電源ユニットの温度ではない
----
表示オプション
横に並べて表示:
変化行の前後のみ表示: