Armadilloフォーラム

armagillo440にてswmgrとswを用いたLED制御ができません

shiba

2016年11月10日 14時34分

芝です。 
初めてarmadilloを触らせていただいていて、マニュアルの手順を順におわせていただいています。

第8章のインプットデバイスにてswmgrの使用例に
”LCD_SW1が押されたときにLED3を点灯、LCD_SW2が押されたときにはLED3を消灯する”

があるのですが、Tera Termにてarmadillo440にログイン後

[armadillo ~]# swmgr sw1 0 echo 1 > /sys/class/leds/red/brightness &
[armadillo ~]# swmgr sw2 0 echo 0 > /sys/class/leds/red/brightness &

上記のコマンドを入力し、SW1 SW2を本体側でおしているのですが、LEDの点灯、消灯ができません。

evtestにてボタン、タッチスクリーンのインプットイベントは確認できています。

具体的な手段や指摘があればご教授願います。

コメント

at_takashi.sasayama

2016年11月10日 15時28分

笹山です。

> 具体的な手段や指摘があればご教授願います。

以下の様に、""(ダブルクォーテーション) で実行したいコマンドを囲ってみてください。

[armadillo ~]# swmgr sw1 0 "echo 1 > /sys/class/leds/red/brightness" &
[armadillo ~]# swmgr sw2 0 "echo 0 > /sys/class/leds/red/brightness" &

笹山様 返信ありがとうございます。

>以下の様に、""(ダブルクォーテーション) で実行したいコマンドを囲ってみてください。

>[armadillo ~]# swmgr sw1 0 "echo 1 > /sys/class/leds/red/brightness" &
>[armadillo ~]# swmgr sw2 0 "echo 0 > /sys/class/leds/red/brightness" &

ダブルクォーテーションで囲い、上記のように2行コマンド入力後、LCD_SW1、LCD_SW2ともに押しても反応(LEDの点灯又は消灯)できません。

お手数をお掛け致します。

at_takashi.sasayama

2016年11月10日 16時12分

笹山です。

以下の手順で赤LEDの点灯消灯が行われるか確認していただけないでしょうか?

■1. ps コマンドで swmgr が一切起動していないことを確認する
swmgr が起動している場合は、 kill コマンドで終了させてください。

■2. 以下のコマンドで赤LEDが点灯、消灯するかを確認してみてください。

[armadillo ~]# echo 1 > /sys/class/leds/red/brightness
[armadillo ~]# echo 0 > /sys/class/leds/red/brightness

点灯しない場合はLEDの故障が疑われます。

また、念の為、Armadillo を再起動をして起動中に赤LEDが点灯するかも確認してみてください。
赤LEDが正常なら、起動中は点灯したままになります。

お手数ですがどうぞよろしくお願い致します。

笹山様 お世話になっております
■1
■2に関してswmgrが起動していないことを確認し、コマンドにて赤LEDの点灯を確認しました。
[root@armadillo440-0 ~]#
[root@armadillo440-0 ~]# ps
PID USER TIME COMMAND
1 root 0:06 init
2 root 0:00 [kthreadd]
3 root 0:00 [ksoftirqd/0]
5 root 0:00 [kworker/0:0H]
6 root 0:01 [kworker/u2:0]
7 root 0:00 [rcu_preempt]
8 root 0:00 [rcu_sched]
9 root 0:00 [rcu_bh]
10 root 0:00 [khelper]
11 root 0:00 [kdevtmpfs]
12 root 0:00 [netns]
13 root 0:00 [kworker/u2:1]
220 root 0:00 [writeback]
223 root 0:00 [kintegrityd]
224 root 0:00 [bioset]
225 root 0:00 [crypto]
227 root 0:00 [kblockd]
245 root 0:00 [khubd]
363 root 0:00 [kswapd0]
364 root 0:00 [fsnotify_mark]
1033 root 0:00 [ci_otg]
1070 root 0:00 [irq/175-sdhci-e]
1107 root 0:00 [ipv6_addrconf]
1113 root 0:00 [deferwq]
1119 root 0:00 [ts_thread]
1211 root 0:02 udevd --daemon
1295 root 0:00 udevd --daemon
1298 root 0:00 udevd --daemon
1366 root 0:00 syslogd -L
1373 root 0:00 klogd
1461 root 0:00 inetd
1478 www-data 0:00 lighttpd -f /etc/lighttpd.conf
1502 avahi 0:00 avahi-daemon: running [armadillo440-0.local]
1503 avahi 0:00 avahi-daemon: chroot helper process
1519 root 0:03 /usr/bin/Xfbdev -retro -s 0 -mouse tslib,,device=/dev/inp
1546 root 0:07 functester
1552 root 0:00 -ash
1573 root 0:00 [kworker/0:0]
1574 root 0:00 [kworker/0:2]
1575 root 0:00 [kworker/0:1]
1579 root 0:00 ps
[root@armadillo440-0 ~]# echo 1 > /sys/class/leds/red/brightness
[root@armadillo440-0 ~]# echo 0 > /sys/class/leds/red/brightness
[root@armadillo440-0 ~]#

また
>また、念の為、Armadillo
>を再起動をして起動中に赤LEDが点灯するかも確認してみてください。
>赤LEDが正常なら、起動中は点灯したままになります。

[armadillo ~]# echo 1 > /sys/class/leds/red/brightness
を入力後、rebootにて再起動をかけたところ、赤LEDは消灯し、緑LEDが点灯していました。

以上、よろしくお願いいたします。

at_takashi.sasayama

2016年11月11日 14時41分

笹山です。

ご確認ありがとうございました。
赤LEDの故障の線は無いことが確認できました。

> [armadillo ~]# echo 1 > /sys/class/leds/red/brightness
> を入力後、rebootにて再起動をかけたところ、赤LEDは消灯し、緑LEDが点灯していました。

言葉足らずで申し訳ありません。
reboot 後、boot コマンド実行すると、赤LEDが点灯し、起動が完了すると消灯するはずです。

また、一点訂正なのですが、先に""(ダブルクォーテーション)が無いと動作しないと記述しましたが、
これは間違いで、""無くても正常に動作することを、こちらでは確認をしています。
失礼いたしました。

念の為、以下 evtest の動作確認結果を教えていただけないでしょうか?

■1. 以下のコマンドを実行

[armadillo ~]# evtest /dev/input/event0

■2. SWを順番に押下
Armadillo本体SW1 -> LCD_SW1 -> LCD_SW2 -> LCD_SW3 の順に押してください。

期待する結果は以下となります。

[root@armadillo440-0 (ttymxc1) ~]# evtest /dev/input/event0 ★本コマンドを入力
Input driver version is 1.0.0
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "gpio-keys"
Supported events:
  Event type 0 (Sync)
  Event type 1 (Key)
    Event code 28 (Enter)
    Event code 102 (Home)
    Event code 139 (Menu)
    Event code 158 (Back)
Testing ... (interrupt to exit)
Event: time 77861.475208, type 1 (Key), code 28 (Enter), value 1  ★Armadillo本体 SW1押下
Event: time 77861.475225, -------------- Report Sync ------------
Event: time 77861.556891, type 1 (Key), code 28 (Enter), value 0
Event: time 77861.556902, -------------- Report Sync ------------
Event: time 77863.624208, type 1 (Key), code 158 (Back), value 1  ★LCD_SW1 押下
Event: time 77863.624227, -------------- Report Sync ------------
Event: time 77863.755402, type 1 (Key), code 158 (Back), value 0
Event: time 77863.755415, -------------- Report Sync ------------
Event: time 77864.557724, type 1 (Key), code 139 (Menu), value 1  ★LCD_SW2 押下
Event: time 77864.557744, -------------- Report Sync ------------
Event: time 77864.690219, type 1 (Key), code 139 (Menu), value 0
Event: time 77864.690231, -------------- Report Sync ------------
Event: time 77865.371170, type 1 (Key), code 102 (Home), value 1  ★LCD_SW3 押下
Event: time 77865.371188, -------------- Report Sync ------------
Event: time 77865.513891, type 1 (Key), code 102 (Home), value 0
Event: time 77865.513904, -------------- Report Sync ------------

どうぞよろしくお願い致します。

笹山様
いつもご教授有難うございます。

上記rebootあとのログとevtest時のログをテキストに保存いたしました

やはりどちらもうまくいかないみたいです....

毎度すみません。

ファイル ファイルの説明
Armadillo440_evtest関連.txt evtestコマンド実行時のログ
Armadillo440_LED_reboot後ログ関連.txt 赤LEDに関する再起動から再起動後までのログ

at_takashi.sasayama

2016年11月11日 17時19分

笹山です。

ご確認ありがとうございました。
evtest が反応無いということは、Xfbdev が起動したままになっていると考えられます。
Xfbdev を終了した状態で evtest, swmgr を試してみてください。

[armadillo ~]# killall Xfbdev

参考情報:9.1. evtest
http://manual.atmark-techno.com/armadillo-4x0/armadillo-440_startup_gui…

中村です。

横から失礼します。

> evtest が反応無いということは、Xfbdev が起動したままになっていると考えられます。
> Xfbdev を終了した状態で evtest, swmgr を試してみてください。
...
> 参考情報:9.1. evtest
> http://manual.atmark-techno.com/armadillo-4x0/armadillo-440_startup_gui…

440のデフォルトイメージでXfbdevが動いていても、
evtestでボタン操作を拾えますよ。
タッチスクリーンのイベントも拾えます。

armadillo440-0 login: root
Password:
[root@armadillo440-0 (ttymxc1) ~]# ps | grep Xfbdev
 1344 root       2012 S   /usr/bin/Xfbdev -s 0 -mouse tslib,,device=/dev/input/
 1394 root        576 S   grep Xfbdev
[root@armadillo440-0 (ttymxc1) ~]# evtest /dev/input/event0
Input driver version is 1.0.0
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "gpio-keys"
Supported events:
  Event type 0 (Sync)
  Event type 1 (Key)
    Event code 28 (Enter)
    Event code 102 (Home)
    Event code 139 (Menu)
    Event code 158 (Back)
Testing ... (interrupt to exit)
Event: time 946685263.649501, type 1 (Key), code 28 (Enter), value 1
Event: time 946685263.649576, -------------- Report Sync ------------
Event: time 946685263.792666, type 1 (Key), code 28 (Enter), value 0
Event: time 946685263.792708, -------------- Report Sync ------------
Event: time 946685266.770056, type 1 (Key), code 158 (Back), value 1
Event: time 946685266.770105, -------------- Report Sync ------------
Event: time 946685266.906126, type 1 (Key), code 158 (Back), value 0
Event: time 946685266.906168, -------------- Report Sync ------------
Event: time 946685267.351759, type 1 (Key), code 139 (Menu), value 1
Event: time 946685267.351808, -------------- Report Sync ------------
Event: time 946685267.489124, type 1 (Key), code 139 (Menu), value 0
Event: time 946685267.489163, -------------- Report Sync ------------
Event: time 946685267.994201, type 1 (Key), code 102 (Home), value 1
Event: time 946685267.994249, -------------- Report Sync ------------
Event: time 946685268.155372, -------------- Report Sync ------------
Event: time 946685268.155442, type 1 (Key), code 102 (Home), value 0
Event: time 946685268.155454, -------------- Report Sync ------------
Event: time 946685268.155469, -------------- Report Sync ------------
 
[root@armadillo440-0 (ttymxc1) ~]# evtest /dev/input/event1
Input driver version is 1.0.0
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0
Input device name: "imx_adc_ts"
Supported events:
  Event type 0 (Sync)
  Event type 1 (Key)
    Event code 330 (Touch)
  Event type 3 (Absolute)
    Event code 0 (X)
      Value      0
      Min      100
      Max     4000
    Event code 1 (Y)
      Value      0
      Min      100
      Max     4000
    Event code 24 (Pressure)
      Value      0
      Min        0
      Max        1
Testing ... (interrupt to exit)
Event: time 946685276.080420, type 3 (Absolute), code 0 (X), value 1866
Event: time 946685276.080471, type 3 (Absolute), code 1 (Y), value 2624
Event: time 946685276.080483, type 3 (Absolute), code 24 (Pressure), value 1
Event: time 946685276.080490, type 1 (Key), code 330 (Touch), value 1
Event: time 946685276.080498, -------------- Report Sync ------------
Event: time 946685276.096867, type 3 (Absolute), code 0 (X), value 1900
Event: time 946685276.096916, type 3 (Absolute), code 1 (Y), value 2548
Event: time 946685276.096933, -------------- Report Sync ------------
Event: time 946685276.117005, type 3 (Absolute), code 0 (X), value 1960
Event: time 946685276.117055, type 3 (Absolute), code 1 (Y), value 2370
Event: time 946685276.117072, -------------- Report Sync ------------
Event: time 946685276.136869, type 3 (Absolute), code 0 (X), value 1990
Event: time 946685276.136922, type 3 (Absolute), code 1 (Y), value 2314
Event: time 946685276.136940, -------------- Report Sync ------------
Event: time 946685276.156868, type 3 (Absolute), code 0 (X), value 2000
Event: time 946685276.156919, type 3 (Absolute), code 1 (Y), value 2319
Event: time 946685276.156936, -------------- Report Sync ------------
(以下省略)

swmgrのこれもXfbdevが動いたままで大丈夫です。
[root@armadillo440-0 (ttymxc1) ~]# swmgr sw1 0 "echo 1 > /sys/class/leds/red/brightness" &
[root@armadillo440-0 (ttymxc1) ~]# swmgr sw2 0 "echo 0 > /sys/class/leds/red/brightness" &

それから
> また、一点訂正なのですが、先に""(ダブルクォーテーション)が無いと動作しないと記述しましたが、
> これは間違いで、""無くても正常に動作することを、こちらでは確認をしています。

ダブルクォートなしでも動きますけど、意味を考えると、
気持ち悪いです。

--
なかむら