Armadillo-Box WS1/BLE対応
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
]
開始行:
[[Armadillo]]~
[[Armadillo-Box WS1/BLE Gateway]]
#contents
*BLE対応 [#sf73fca9]
Armadillo-IoTで最新のbluezを使ってみる~
https://users.atmark-techno.com/blog/750/1552~
を参考に Armadillo-Box WS1 に Bluetooth Low Energy 対応を...
~
使用する USB Bluetooth アダプターは~
[[Bluetooth 4.0 対応 USB アダプタ Logitec LBT-UAN04C2BK:h...
です。
**カーネルのカスタマイズ [#l9fdf22d]
make menuconfig で vendor/Product を指定します。
(AtmarkTechno) Vendor
(Armadillo-Box WS1) AtmarkTechno Products
カーネルコンフィギュレーションで Bluetooth を有効にします。
Linux Kernel Configuration
[*] Networking support --->
--- Bluetooth subsystem support
<*> RFCOMM protocol support <-- チェックをい...
[*] RFCOMM TTY support <-- チェックをい...
<*> BNEP protocol support <-- チェックをい...
[*] Multicast filter support <-- チェックをい...
[*] Protocol filter support <-- チェックをい...
<*> HIDP protocol support <-- チェックをい...
Bluetooth device drivers --->
<*> HCI USB driver <-- チェックをい...
**ユーザーランドをコンフィギュレーション [#ybbb18be]
今回は使用しないので、サイズの大きい java を外してユーザ...
atmark dist は ramfs に展開されるので、他にも使用しないア...
可能な限り削ると使用可能メモリが増えます。
atmark@atde5:~/atmark-dist$ make menuconfig
Userland Configuration
Miscellaneous Applications --->
[ ] java ← チェックを外す
**Bluez クロスビルド [#ja2df1c6]
Bluez をビルドします。
Bluez のソースコードをダウンロードして展開します。(2015...
atmark@atde5:~$ wget https://www.kernel.org/pub/linux/bl...
atmark@atde5:~$ tar Jxf bluez-5.36.tar.xz
ATDE5 に libical のクロスパッケージをインストールします。
atmark@atde5:~$ wget http://ftp.jp.debian.org/debian/poo...
atmark@atde5:~$ dpkg-cross -v --build --arch armel libi...
atmark@atde5:~$ sudo dpkg -i libical0-armel-cross_0.48-2...
atmark@atde5:~$ wget http://ftp.jp.debian.org/debian/poo...
atmark@atde5:~$ dpkg-cross -v --build --arch armel libi...
atmark@atde5:~$ sudo dpkg -i libical-dev-armel-cross_0.4...
configure を実行します。
atmark@atde5:~$ cd bluez-5.36/
atmark@atde5:~/bluez-5.36$ ./configure --build=i686 --ho...
--disable-udev --disable-syst...
make を実行します。
atmark@atde5:~/bluez-5.36$ make
make install を実行し、atmark dist の ROM イメージディレ...
atmark@atde5:~/bluez-5.36$ make install DESTDIR=/home/at...
ドキュメント類など不要なファイルを削除します。
atmark@atde5:~/bluez-5.36$ rm -rf /home/atmark/atmark-di...
make install ではインストールされない gatttool を手動でイ...
atmark@atde5:~/bluez-5.36$ cp attrib/gatttool /home/atma...
**D-bus インストール [#o9fe40f1]
D-bus deb パッケージをダウンロードします。~
atmark@atde5:~/bluez-5.36$ cd
atmark@atde5:~$ wget http://ftp.gnome.org/mirror/cdimage...
D-bus deb パッケージを atmark dist の ROM イメージディレ...
atmark@atde5:~$ dpkg -x dbus_1.6.8-1+deb7u6_armel.deb at...
不要なドキュメントファイルなどを削除します。~
atmark@atde5:~$ rm -rf atmark-dist/romfs/usr/share/doc
atmark@atde5:~$ rm -rf atmark-dist/romfs/usr/share/man
D-bus パッケージが依存する init-funcions を含む lsb-base ...
ROM イメージディレクトリに展開し、不要な Document のみ削...
atmark@atde5:~$ wget http://ftp.jp.debian.org/debian/poo...
atmark@atde5:~$ dpkg -x lsb-base_4.1+Debian8+deb7u1_all....
atmark@atde5:~$ rm -rf atmark-dist/romfs/usr/share/doc
D-busデーモンを実行するユーザ/グループを追加します。~
ユーザー追加
atmark@atde5:~$ vi atmark-dist-20151026/vendors/AtmarkTe...
ファイル末尾に以下の行を追加します。~
messagebus:x:101:105::/var/run/dbus:/bin/false~
グループ追加
atmark@atde5:~$ vi atmark-dist-20151026/vendors/AtmarkTe...
ファイル末尾に以下の行を追加します。~
messagebus:x:105:~
**イメージ再作成 [#t6f0f383]
上記の作業で BLE 対応が含まれたカーネルとユーザーランドの...
atmark@atde5:~$ cd atmark-dist
atmark@atde5:~/atmark-dist$ make romfs
atmark@atde5:~/atmark-dist$ make image
atmark-dist/images/ の下のファイルが更新されていることを...
**動作確認 [#n0d7cd76]
Armadillo-Box WS1 がネットワークに接続してある場合に一番...
12.4. TFTPを使用してフラッシュメモリを書き換える~
http://manual.atmark-techno.com/armadillo-box-ws1/armadil...
でカーネルとユーザーランドを再作成したものに書き換えます。~
hermit> tftpdl 192.168.0.90 192.168.0.164 --blksize=1024...
hermit> tftpdl 192.168.0.90 192.168.0.164 --blksize=1024...
新しいカーネルとユーザーランドで起動したら USB Bluetooth ...
USB Bluetooth アダプターを認識しているか確認します。
[root@abws1-0 (ttymxc1) ~]# hciconfig -a
hci0: Type: BR/EDR Bus: USB
BD Address: 00:09:DD:40:C8:E6 ACL MTU: 310:10 ...
UP RUNNING
RX bytes:1389 acl:0 sco:0 events:37 errors:0
TX bytes:382 acl:0 sco:0 commands:37 errors:0
Features: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'CSR8510 A10'
Class: 0x000000
Service Classes: Unspecified
Device Class: Miscellaneous,
HCI Version: 4.0 (0x6) Revision: 0x22bb
LMP Version: 4.0 (0x6) Subversion: 0x22bb
Manufacturer: Cambridge Silicon Radio (10)
自動で hci0 が up した状態になっています。~
(参考元記事にある dbus start や bluetooth start は設定し...
~
BLE 対応の状況を確認します。~
[root@abws1-0 (ttymxc1) ~]# hciconfig hci0 lestates
Supported link layer states:
YES Non-connectable Advertising State
YES Scannable Advertising State
YES Connectable Advertising State
YES Directed Advertising State
YES Passive Scanning State
YES Active Scanning State
YES Initiating State/Connection State in Master ...
YES Connection State in the Slave Role
YES Non-connectable Advertising State and Passiv...
YES Scannable Advertising State and Passive Scan...
YES Connectable Advertising State and Passive Sc...
YES Directed Advertising State and Passive Scann...
YES Non-connectable Advertising State and Active...
YES Scannable Advertising State and Active Scann...
YES Connectable Advertising State and Active Sca...
YES Directed Advertising State and Active Scanni...
YES Non-connectable Advertising State and Initia...
YES Scannable Advertising State and Initiating S...
YES Non-connectable Advertising State and Master...
YES Scannable Advertising State and Master Role ...
YES Non-connectable Advertising State and Slave ...
YES Scannable Advertising State and Slave Role c...
YES Passive Scanning State and Initiating State ...
YES Active Scanning State and Initiating State c...
YES Passive Scanning State and Master Role combi...
YES Active Scanning State and Master Role combin...
YES Passive Scanning State and Slave Role combin...
YES Active Scanning State and Slave Role combina...
YES Initiating State and Master Role combination...
scan して周囲の BLE デバイスの advertise を探索してみます。
[root@abws1-0 (ttymxc1) ~]# hcitool lescan
LE Scan ...
59:FF:59:55:45:CC (unknown)
59:FF:59:55:45:CC (unknown)
D9:9E:B9:CE:47:FD FNSensor
D9:9E:B9:CE:47:FD (unknown)
7D:FD:8D:EC:B2:4E (unknown)
7D:FD:8D:EC:B2:4E (unknown)
59:FF:59:55:45:CC (unknown)
59:FF:59:55:45:CC (unknown)
7D:FD:8D:EC:B2:4E (unknown)
7D:FD:8D:EC:B2:4E (unknown)
EB:49:99:58:22:49 (unknown)
EB:49:99:58:22:49 estimote
7D:FD:8D:EC:B2:4E (unknown)
7D:FD:8D:EC:B2:4E (unknown)
59:FF:59:55:45:CC (unknown)
59:FF:59:55:45:CC (unknown)
C2:A4:23:28:B1:6B FNSensor
C2:A4:23:28:B1:6B (unknown)
D9:9E:B9:CE:47:FD FNSensor
D9:9E:B9:CE:47:FD (unknown)
F4:C9:10:75:CB:91 fnColor
F4:C9:10:75:CB:91 (unknown)
正常にscanしてlistを取得できます。~
gatttool でそのうちの一つにインタラクティブモードで接続し...
[root@abws1-0 (ttymxc1) ~]# gatttool -i hci0 -b D9:9E:B9...
[D9:9E:B9:CE:47:FD][LE]> connect
Attempting to connect to D9:9E:B9:CE:47:FD
Connection successful
[D9:9E:B9:CE:47:FD][LE]> help
help Show this...
exit Exit inte...
quit Exit inte...
connect [address [address type]] Connect t...
disconnect Disconnec...
primary [UUID] Primary S...
included [start hnd [end hnd]] Find Incl...
characteristics [start hnd [end hnd [UUID]]] Character...
char-desc [start hnd] [end hnd] Character...
char-read-hnd <handle> Character...
char-read-uuid <UUID> [start hnd] [end hnd] Character...
char-write-req <handle> <new value> Character...
char-write-cmd <handle> <new value> Character...
sec-level [low | medium | high] Set secur...
mtu <value> Exchange ...
[D9:9E:B9:CE:47:FD][LE]> primary
attr handle: 0x0001, end grp handle: 0x0007 uuid: 000018...
attr handle: 0x0008, end grp handle: 0x0008 uuid: 000018...
attr handle: 0x0009, end grp handle: 0x000b uuid: 0000bc...
attr handle: 0x000c, end grp handle: 0xffff uuid: bc0000...
[D9:9E:B9:CE:47:FD][LE]>quit
[root@abws1-0 (ttymxc1) ~]#
プライマリ・サービス情報も正常に読みだせました。~
* 更新履歴 [#ke5d7093]
2015/12/08 初稿掲載 ~
RIGHT:Satoshi OTSUKA
終了行:
[[Armadillo]]~
[[Armadillo-Box WS1/BLE Gateway]]
#contents
*BLE対応 [#sf73fca9]
Armadillo-IoTで最新のbluezを使ってみる~
https://users.atmark-techno.com/blog/750/1552~
を参考に Armadillo-Box WS1 に Bluetooth Low Energy 対応を...
~
使用する USB Bluetooth アダプターは~
[[Bluetooth 4.0 対応 USB アダプタ Logitec LBT-UAN04C2BK:h...
です。
**カーネルのカスタマイズ [#l9fdf22d]
make menuconfig で vendor/Product を指定します。
(AtmarkTechno) Vendor
(Armadillo-Box WS1) AtmarkTechno Products
カーネルコンフィギュレーションで Bluetooth を有効にします。
Linux Kernel Configuration
[*] Networking support --->
--- Bluetooth subsystem support
<*> RFCOMM protocol support <-- チェックをい...
[*] RFCOMM TTY support <-- チェックをい...
<*> BNEP protocol support <-- チェックをい...
[*] Multicast filter support <-- チェックをい...
[*] Protocol filter support <-- チェックをい...
<*> HIDP protocol support <-- チェックをい...
Bluetooth device drivers --->
<*> HCI USB driver <-- チェックをい...
**ユーザーランドをコンフィギュレーション [#ybbb18be]
今回は使用しないので、サイズの大きい java を外してユーザ...
atmark dist は ramfs に展開されるので、他にも使用しないア...
可能な限り削ると使用可能メモリが増えます。
atmark@atde5:~/atmark-dist$ make menuconfig
Userland Configuration
Miscellaneous Applications --->
[ ] java ← チェックを外す
**Bluez クロスビルド [#ja2df1c6]
Bluez をビルドします。
Bluez のソースコードをダウンロードして展開します。(2015...
atmark@atde5:~$ wget https://www.kernel.org/pub/linux/bl...
atmark@atde5:~$ tar Jxf bluez-5.36.tar.xz
ATDE5 に libical のクロスパッケージをインストールします。
atmark@atde5:~$ wget http://ftp.jp.debian.org/debian/poo...
atmark@atde5:~$ dpkg-cross -v --build --arch armel libi...
atmark@atde5:~$ sudo dpkg -i libical0-armel-cross_0.48-2...
atmark@atde5:~$ wget http://ftp.jp.debian.org/debian/poo...
atmark@atde5:~$ dpkg-cross -v --build --arch armel libi...
atmark@atde5:~$ sudo dpkg -i libical-dev-armel-cross_0.4...
configure を実行します。
atmark@atde5:~$ cd bluez-5.36/
atmark@atde5:~/bluez-5.36$ ./configure --build=i686 --ho...
--disable-udev --disable-syst...
make を実行します。
atmark@atde5:~/bluez-5.36$ make
make install を実行し、atmark dist の ROM イメージディレ...
atmark@atde5:~/bluez-5.36$ make install DESTDIR=/home/at...
ドキュメント類など不要なファイルを削除します。
atmark@atde5:~/bluez-5.36$ rm -rf /home/atmark/atmark-di...
make install ではインストールされない gatttool を手動でイ...
atmark@atde5:~/bluez-5.36$ cp attrib/gatttool /home/atma...
**D-bus インストール [#o9fe40f1]
D-bus deb パッケージをダウンロードします。~
atmark@atde5:~/bluez-5.36$ cd
atmark@atde5:~$ wget http://ftp.gnome.org/mirror/cdimage...
D-bus deb パッケージを atmark dist の ROM イメージディレ...
atmark@atde5:~$ dpkg -x dbus_1.6.8-1+deb7u6_armel.deb at...
不要なドキュメントファイルなどを削除します。~
atmark@atde5:~$ rm -rf atmark-dist/romfs/usr/share/doc
atmark@atde5:~$ rm -rf atmark-dist/romfs/usr/share/man
D-bus パッケージが依存する init-funcions を含む lsb-base ...
ROM イメージディレクトリに展開し、不要な Document のみ削...
atmark@atde5:~$ wget http://ftp.jp.debian.org/debian/poo...
atmark@atde5:~$ dpkg -x lsb-base_4.1+Debian8+deb7u1_all....
atmark@atde5:~$ rm -rf atmark-dist/romfs/usr/share/doc
D-busデーモンを実行するユーザ/グループを追加します。~
ユーザー追加
atmark@atde5:~$ vi atmark-dist-20151026/vendors/AtmarkTe...
ファイル末尾に以下の行を追加します。~
messagebus:x:101:105::/var/run/dbus:/bin/false~
グループ追加
atmark@atde5:~$ vi atmark-dist-20151026/vendors/AtmarkTe...
ファイル末尾に以下の行を追加します。~
messagebus:x:105:~
**イメージ再作成 [#t6f0f383]
上記の作業で BLE 対応が含まれたカーネルとユーザーランドの...
atmark@atde5:~$ cd atmark-dist
atmark@atde5:~/atmark-dist$ make romfs
atmark@atde5:~/atmark-dist$ make image
atmark-dist/images/ の下のファイルが更新されていることを...
**動作確認 [#n0d7cd76]
Armadillo-Box WS1 がネットワークに接続してある場合に一番...
12.4. TFTPを使用してフラッシュメモリを書き換える~
http://manual.atmark-techno.com/armadillo-box-ws1/armadil...
でカーネルとユーザーランドを再作成したものに書き換えます。~
hermit> tftpdl 192.168.0.90 192.168.0.164 --blksize=1024...
hermit> tftpdl 192.168.0.90 192.168.0.164 --blksize=1024...
新しいカーネルとユーザーランドで起動したら USB Bluetooth ...
USB Bluetooth アダプターを認識しているか確認します。
[root@abws1-0 (ttymxc1) ~]# hciconfig -a
hci0: Type: BR/EDR Bus: USB
BD Address: 00:09:DD:40:C8:E6 ACL MTU: 310:10 ...
UP RUNNING
RX bytes:1389 acl:0 sco:0 events:37 errors:0
TX bytes:382 acl:0 sco:0 commands:37 errors:0
Features: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'CSR8510 A10'
Class: 0x000000
Service Classes: Unspecified
Device Class: Miscellaneous,
HCI Version: 4.0 (0x6) Revision: 0x22bb
LMP Version: 4.0 (0x6) Subversion: 0x22bb
Manufacturer: Cambridge Silicon Radio (10)
自動で hci0 が up した状態になっています。~
(参考元記事にある dbus start や bluetooth start は設定し...
~
BLE 対応の状況を確認します。~
[root@abws1-0 (ttymxc1) ~]# hciconfig hci0 lestates
Supported link layer states:
YES Non-connectable Advertising State
YES Scannable Advertising State
YES Connectable Advertising State
YES Directed Advertising State
YES Passive Scanning State
YES Active Scanning State
YES Initiating State/Connection State in Master ...
YES Connection State in the Slave Role
YES Non-connectable Advertising State and Passiv...
YES Scannable Advertising State and Passive Scan...
YES Connectable Advertising State and Passive Sc...
YES Directed Advertising State and Passive Scann...
YES Non-connectable Advertising State and Active...
YES Scannable Advertising State and Active Scann...
YES Connectable Advertising State and Active Sca...
YES Directed Advertising State and Active Scanni...
YES Non-connectable Advertising State and Initia...
YES Scannable Advertising State and Initiating S...
YES Non-connectable Advertising State and Master...
YES Scannable Advertising State and Master Role ...
YES Non-connectable Advertising State and Slave ...
YES Scannable Advertising State and Slave Role c...
YES Passive Scanning State and Initiating State ...
YES Active Scanning State and Initiating State c...
YES Passive Scanning State and Master Role combi...
YES Active Scanning State and Master Role combin...
YES Passive Scanning State and Slave Role combin...
YES Active Scanning State and Slave Role combina...
YES Initiating State and Master Role combination...
scan して周囲の BLE デバイスの advertise を探索してみます。
[root@abws1-0 (ttymxc1) ~]# hcitool lescan
LE Scan ...
59:FF:59:55:45:CC (unknown)
59:FF:59:55:45:CC (unknown)
D9:9E:B9:CE:47:FD FNSensor
D9:9E:B9:CE:47:FD (unknown)
7D:FD:8D:EC:B2:4E (unknown)
7D:FD:8D:EC:B2:4E (unknown)
59:FF:59:55:45:CC (unknown)
59:FF:59:55:45:CC (unknown)
7D:FD:8D:EC:B2:4E (unknown)
7D:FD:8D:EC:B2:4E (unknown)
EB:49:99:58:22:49 (unknown)
EB:49:99:58:22:49 estimote
7D:FD:8D:EC:B2:4E (unknown)
7D:FD:8D:EC:B2:4E (unknown)
59:FF:59:55:45:CC (unknown)
59:FF:59:55:45:CC (unknown)
C2:A4:23:28:B1:6B FNSensor
C2:A4:23:28:B1:6B (unknown)
D9:9E:B9:CE:47:FD FNSensor
D9:9E:B9:CE:47:FD (unknown)
F4:C9:10:75:CB:91 fnColor
F4:C9:10:75:CB:91 (unknown)
正常にscanしてlistを取得できます。~
gatttool でそのうちの一つにインタラクティブモードで接続し...
[root@abws1-0 (ttymxc1) ~]# gatttool -i hci0 -b D9:9E:B9...
[D9:9E:B9:CE:47:FD][LE]> connect
Attempting to connect to D9:9E:B9:CE:47:FD
Connection successful
[D9:9E:B9:CE:47:FD][LE]> help
help Show this...
exit Exit inte...
quit Exit inte...
connect [address [address type]] Connect t...
disconnect Disconnec...
primary [UUID] Primary S...
included [start hnd [end hnd]] Find Incl...
characteristics [start hnd [end hnd [UUID]]] Character...
char-desc [start hnd] [end hnd] Character...
char-read-hnd <handle> Character...
char-read-uuid <UUID> [start hnd] [end hnd] Character...
char-write-req <handle> <new value> Character...
char-write-cmd <handle> <new value> Character...
sec-level [low | medium | high] Set secur...
mtu <value> Exchange ...
[D9:9E:B9:CE:47:FD][LE]> primary
attr handle: 0x0001, end grp handle: 0x0007 uuid: 000018...
attr handle: 0x0008, end grp handle: 0x0008 uuid: 000018...
attr handle: 0x0009, end grp handle: 0x000b uuid: 0000bc...
attr handle: 0x000c, end grp handle: 0xffff uuid: bc0000...
[D9:9E:B9:CE:47:FD][LE]>quit
[root@abws1-0 (ttymxc1) ~]#
プライマリ・サービス情報も正常に読みだせました。~
* 更新履歴 [#ke5d7093]
2015/12/08 初稿掲載 ~
RIGHT:Satoshi OTSUKA
ページ名:
BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。