ブログ

Armadillo-840でswmgrを使う

at_takuya.sasaki
2014年11月22日 10時38分

Armadillo-400シリーズには、swmgrというスイッチを押した際に任意のコマンドを実行するツールが標準でインストールされていました。

[Armadillo-440 液晶モデル開発セット スタートアップガイド]
https://manual.atmark-techno.com/armadillo-4x0/armadillo-440_startup_guide_ja-1.1.9/ch09.html#sec-08-2

このswmgrをArmadillo-840でも使えるようにしてみます。

1. ソースコードダウンロードして展開します

atmark@atde5:~$ wget http://armadillo.atmark-techno.com/files/downloads/armadillo-840/source/atmark-dist-20140602.tar.gz
atmark@atde5:~$ wget http://armadillo.atmark-techno.com/files/downloads/armadillo-840/source/linux-3.4-at10.tar.gz
atmark@atde5:~$ tar zxf atmark-dist-20140602.tar.gz 
atmark@atde5:~$ tar zxf linux-3.4-at10.tar.gz 
atmark@atde5:~$ ln -s atmark-dist-20140602 atmark-dist
atmark@atde5:~/atmark-dist$ ln -s ../linux-3.4-at10 ./linux-3.x

2. swmgrのソースを、Armadillo-840プロダクトディレクトリにコピーします

atmark@atde5:~/atmark-dist$ cp -r vendors/AtmarkTechno/Armadillo-4x0.Common/swmgr/ vendors/AtmarkTechno/Armadillo-840/

3. Armadillo-840プロダクトのMakefileを修正します

atmark@atde5:~/atmark-dist$ vi vendors/AtmarkTechno/Armadillo-840/Makefile 
 
     SUBDIR_y =
     SUBDIR_y += swmgr/          ←追加します。
     SUBDIR_$(CONFIG_VENDOR_CONVERT_PUBKEY_CONVERT_PUBKEY)   += convert_pubkey/

4. Armadillo-840用にswmgrのソースを修正します。

atmark@atde5:~/atmark-dist$ vi vendors/AtmarkTechno/Armadillo-840/swmgr/main.c 
 
struct _sw sw[] = {
        {"sw0", KEY_ENTER, "SW1 on Armadillo-4x0 board"},
        {"sw1", KEY_BACK, "SW1 on LCD extension board"},
        {"sw2", KEY_MENU, "SW2 on LCD extension board"},
        {"sw3", KEY_HOME, "SW3 on LCD extension board"},
};
 
↓ Armadillo-840用に変更します。
 
struct _sw sw[] = {
        {"sw1", KEY_POWER, "SW1 on LCD extension board"},
        {"sw2", KEY_BACK, "SW2 on LCD extension board"},
        {"sw3", KEY_MENU, "SW3 on LCD extension board"},
        {"sw4", KEY_HOME, "SW4 on LCD extension board"},
};

*各スイッチに何のキーイベントが関連付けられているかは以下のソースからわかります。

 linux-3.4-at10/arch/arm/mach-shmobile/board-armadillo840.c

  static struct gpio_keys_button gpio_buttons[]

5. make menuconfig/makeを実行します

atmark@atde5:~/atmark-dist$ make menuconfig
 
Vendor:    AtmarkTechno
Products: Armadillo-840
 
atmark@atde5:~/atmark-dist$ make

6. Armadillo-840にromfs.img.gzを書き込んで動作確認をします

以下の例では各スイッチを押すと、dateコマンドが発行されます。

[root@armadillo840-0 (ttySC2) ~]# swmgr sw1 0 date
Sat Jan  1 10:53:13 JST 2000
 
[root@armadillo840-0 (ttySC2) ~]# swmgr sw2 0 date
Sat Jan  1 10:53:23 JST 2000
 
[root@armadillo840-0 (ttySC2) ~]# swmgr sw3 0 date
Sat Jan  1 10:53:32 JST 2000
 
[root@armadillo840-0 (ttySC2) ~]# swmgr sw4 0 date
Sat Jan  1 10:53:39 JST 2000

以上