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
以上