A- DATA
5.4. CF インターフェース インターフェース インターフェース インターフェース
MA-450/XWでは、CFインターフェースがあり、追加のファイルシステム等を用意することができます。
Linux上からは、/dev/hdaとして見え、制御することができます。
動作実績のあるCFカードは以下のとおりです。
TS128MCF45I Transcend
TS4GCF120
Hitachi HMS360604D5CF00
※ 完全な動作保証ではありません。
ディップ・スイッチ設定により、CFメモリカードをルートとして起動することが可能です。
5.5. CF カード カード カード カード・ ・ ・スロット ・ スロット スロット・ スロット ・ ・ ・リリース リリース リリース リリース・ ・ ・ ・スイッチ スイッチ スイッチ スイッチ
MA-450/XWでは、CFカードスロットにリリーススイッチがあります。
各ボタンに対する状態は、/proc ファイルシステム上のファイル「/proc/driver/psw_pcmcia1」で取得することが できます。
戻 戻戻
戻りりりり値値値値 状態状態状態状態 0 ボタンが押下状態
1 ボタンが押下されていない状態
通常 pshd_cf デーモンにより、このボタンの状態が監視され押下状態が検知された場合、各ボタンに対応する
スクリプトを呼び出します。
CF カード・スロット・リリース・スイッチ押下動作のサンプルスクリプトとして、/etc/opt/eject_pcmcia.sh が用意さ れていますので、用途に合わせてシェルスクリプトを設定して下さい。
(eject_pcmcia.sh)
#! /bin/bash
# GentooLinux common functions source /etc/init.d/functions.sh
function is_cf_storage { local result
ebegin "Searching CompactFlash Storage"
pccardctl ident | grep "fixed disk" &> /dev/null result=$?
eend ${result}
return ${result}
}
function find_mounted { local mounted
mounted=`cat /proc/mounts|egrep hda[0-9]+|cut -d' ' -f 1`
echo ${mounted}
}
function unmount_all { local msg=$1
local mounted_devices local dev
local result=1
mounted_devices=`find_mounted`
if [ "${mounted_devices}" == "" ]; then return 0
fi
for dev in ${mounted_devices}; do
ebegin "Unmounting CF partition ${dev}"
umount ${dev} &> /dev/null eend $?
done
mounted_devices=`find_mounted`
if [ "${mounted_devices}" == "" ]; then result=0
fi
return ${result}
}
# main
# check CF storage device is_cf_storage
if [ "$?" != "0" ]; then
echo " * CF(Storage) not found, exit."
exit 0 fi
# unmount all CF partitions unmount_all
if [ "$?" != "0" ]; then unmount_all "(retry)"
fi
if [ "$?" != "0" ]; then
echo " * Unmount failed, exit."
fi
ebegin "Eject CompactFlash card"
pccardctl eject 0 &> /dev/null eend $?
5.6. LED
本装置では、ユーザアプリケーションがLEDを変化させることができます。
5.6.1. /dev/led0インターフェースインターフェースインターフェースインターフェース
システム起動時に、ledctld デーモンが起動します。このデーモンは/dev/led0 をオープンするため、デーモン稼 働中は、他のアプリケーションが/dev/led0へ書き込めません。
ledctldへはpipeファイル(/tmp/ledctrl)を通して、コマンドを送ることが出来ます。
ここでは説明のため、正面から見たLEDのレイアウトを以下のようにします。
SET SET SET SET
特定のLED状態を設定します。
以下の例は①を緑点灯させます。
# echo "SET:0 G" > /tmp/ledctrl
SET:(LED番号) (制御文字) 制御文字:
"G" : 緑点灯
"R" : 赤点灯
"Y" : 緑赤点灯
"K" : 全消灯
ON ON ON ON
特定のLEDを点灯させます。
以下の例は、②の赤をONにします。緑の状態は変わりません。
# echo "ON:1 R" > /tmp/ledctrl
ON:(LED番号) (制御文字) 制御文字:
"G" : 緑
"R" : 赤
OFF OFF OFF OFF
特定のLEDを消灯させます。
以下の例は、②の赤をOFFにします。緑の状態は変わりません。
# echo "OFF:1 R" > /tmp/ledctrl
OFF:(LED番号) (制御文字) 制御文字:
"G" : 緑
"R" : 赤
BLINK BLINK BLINK BLINK
特定のLEDの点灯パターンを設定します。
以下の例は、③を、2秒赤点灯、1秒消灯、0.5秒緑点灯を繰り返します。
# echo "BLINK:2 R:2000,K:1000,G:500" > /tmp/ledctrl
BLINK:(LED番号) (制御文字):(継続時間msec), ....
制御文字:
"G" : 緑点灯
"R" : 赤点灯
"Y" : 緑赤点灯
"K" : 全消灯