hondah
2015年7月24日 19時13分
いつもお世話になっております。
本田と申します。
Armadillo440にてLEDの状態を保存と復元方法を探しております。
cpやcatではエラーしてします。
初歩的な質問で申し訳ありませんが、ご教示いただけると助かります。
[root@Armadillo440]#cat /sys/devices/platform/leds-gpio.0/leds/green/brightness > /tmp/green_back
[root@Armadillo440]#cat /tmp/green_back > /sys/devices/platform/leds-gpio.0/leds/green/brightness
cat: Write Error: Invalid argument
LED操作で使用しているのは、下記のファイルになります。
/sys/devices/platform/leds-gpio.0/leds/*/
・brightness
・trigger
・(delay_on)
・(delay_off)
コメント
y.nakamura
中村です。
最後の
> % head /tmp/red > /sys/class/leds/red/brightness
これはエラーになりました。
head: standard output: Invalid argument
ですが、これはOK。
# head -n 1 /tmp/red > /sys/class/leds/red/brightness
> 何故でしょうね。
原因は、最後のNULLバイト(0x00)。
# cat /sys/class/leds/green/brightness | hexdump
0000000 3532 0a35 0000
0000005
# echo `cat /sys/class/leds/green/brightness` | hexdump
0000000 3532 0a35
0000004
# cat /sys/class/leds/green/brightness | head | hexdump
0000000 3532 0a35 0000
0000005
# cat /sys/class/leds/green/brightness | head -n 1 | hexdump
0000000 3532 0a35
0000004
/tmp/red をviで開くと・・・
255
^@
--
なかむら
hondah
at_ohsawa
中村 様
大澤です。
少し話題から逸れますが、
>> % head /tmp/red > /sys/class/leds/red/brightness
>これはエラーになりました。
>head: standard output: Invalid argument
(後続の00のせいで)LEDの状態は変らないにせよ、ここで
headがstdoutに対してエラーするのが、気になります。
kernelとユーザーランドのバージョンを教えていただけない
でしょうか。
a440の現在の標準イメージでやってみたのですが、
リダイレクトは正常に終って(LEDの状態は変らず)、
コンソールへの出力は何もありませんでした。
- kernel : 2.6.26-at25
- userland(/etc/DISTNAME):v1.40.0 (AtmarkTechno/Armadillo-440)
y.nakamura
中村です。
> >> % head /tmp/red > /sys/class/leds/red/brightness
> >これはエラーになりました。
> >head: standard output: Invalid argument
>
> (後続の00のせいで)LEDの状態は変らないにせよ、ここで
> headがstdoutに対してエラーするのが、気になります。
>
> kernelとユーザーランドのバージョンを教えていただけない
> でしょうか。
atmark-dist v1.31.1 (AtmarkTechno/Armadillo-440)
Linux 2.6.26-at17 [armv5tejl arch]
です。
v1.31.1はatmark-dist-20130329です。
そのときたまたま動かしていたのが、このバージョンだったためで、
ちょっと古かったですね。
> a440の現在の標準イメージでやってみたのですが、
> リダイレクトは正常に終って(LEDの状態は変らず)、
> コンソールへの出力は何もありませんでした。
>
> - kernel : 2.6.26-at25
> - userland(/etc/DISTNAME):v1.40.0 (AtmarkTechno/Armadillo-440)
A410に最新のが入っていましたので、これで試してみました。
atmark-dist v1.41.0 (AtmarkTechno/hoge) <--- hogeは440のコピーです
Linux 2.6.26-at25 [armv5tejl arch]
このバージョンだと、headでエラーメッセージは出ませんでしたが
終了コードは1です。
# head /tmp/green > /sys/class/leds/red/brightness
# echo $?
1
-n 1 を付けると・・・
# head -n 1 /tmp/green > /sys/class/leds/red/brightness
# echo $?
0
--
なかむら
at_ohsawa
中村 様
ありがとうございます。
http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/com…
このパッチ直っていましたが、LEDのsysfsが値を返す時に無駄に取っていますね。。
catでエラーするのは、後続の00(Null)がLED classに書き込まれた時に
コールされる drivers/leds/led-class.c::led_brightness_store() のsimple_strtoulで
変換できずに、エラーが返ったようです。
アップデートの候補に載せておきます。
hondah
いつもお世話になっております。
本田です。
headやcutを使用し、保存と復元を実現したのですが、まれにに戻せない場合がございます。
何か対応策があれば、ご教示いただけると助かります。
LEDにタイマーをセット
echo timer > /sys/devices/platform/leds-gpio.0/leds/red/trigger
echo 100 > /sys/devices/platform/leds-gpio.0/leds/red/delay_on
echo 100 > /sys/devices/platform/leds-gpio.0/leds/red/delay_off
sh aaa;sh bbb (バックアップ採取と復元作業)
実行した物を添付しておきます。
環境
atmark-dist v1.41.0
linux-2.6.26-at25
hondah
アップロードに失敗しておりましたので、再送いたします。
> いつもお世話になっております。
> 本田です。
>
> headやcutを使用し、保存と復元を実現したのですが、まれにに戻せない場合がございます。
> 何か対応策があれば、ご教示いただけると助かります。
>
> LEDにタイマーをセット
> echo timer > /sys/devices/platform/leds-gpio.0/leds/red/trigger
> echo 100 > /sys/devices/platform/leds-gpio.0/leds/red/delay_on
> echo 100 > /sys/devices/platform/leds-gpio.0/leds/red/delay_off
>
> sh aaa;sh bbb (バックアップ採取と復元作業)
> 実行した物を添付しておきます。
>
> 環境
> atmark-dist v1.41.0
> linux-2.6.26-at25
ファイル | ファイルの説明 |
---|---|
aaa.txt | |
bbb.txt |
hondah
アップロードに失敗しておりましたので、再送いたします。
> いつもお世話になっております。
> 本田です。
>
> headやcutを使用し、保存と復元を実現したのですが、まれにに戻せない場合がございます。
> 何か対応策があれば、ご教示いただけると助かります。
>
> LEDにタイマーをセット
> echo timer > /sys/devices/platform/leds-gpio.0/leds/red/trigger
> echo 100 > /sys/devices/platform/leds-gpio.0/leds/red/delay_on
> echo 100 > /sys/devices/platform/leds-gpio.0/leds/red/delay_off
>
> sh aaa;sh bbb (バックアップ採取と復元作業)
> 実行した物を添付しておきます。
>
> 環境
> atmark-dist v1.41.0
> linux-2.6.26-at25
ファイル | ファイルの説明 |
---|---|
aaa.txt | |
bbb.txt |
y.nakamura
hondah
izawa
2015年7月24日 20時00分
取り敢えず試してみました。
--
% cat /sys/class/leds/red/brightness > /tmp/red
% cat /tmp/red > /sys/class/leds/red/brightness
cat: Write Error: Invalid argument
% echo `cat /tmp/red` > /sys/class/leds/red/brightness
% head /tmp/red > /sys/class/leds/red/brightness
%
--
何故でしょうね。