RPi3にubuntu16.04(2) bluetoothとwi-fiを使う
Bluetooth関連パッケージのインストール
pi3上のbluetoothを使うために、raspbianではbluez-firmware
とpi-bluetooth
パッケージが追加されていますが、これらはubuntuには含まれていません。
あちこち探してみると、ubuntu-pi-flavour-makerというプロジェクトが見つかりました。
ubuntuをベースに、pi2/3のubuntu MATE、lubuntu、xbuntuなどをリリースしていて、いずれもpi3のbluetoothとwifiに対応しています。
このubuntu-pi-flavour-makerのPPAを追加して、bluetoothとwifi関連のパッケージをインストールします。
1 2 3 |
sudo add-apt-repository ppa:ubuntu-pi-flavour-makers/ppa sudo apt-get update sudo apt-get install bluez bluetooth libbluetooth3 bluez-firmware pi-bluetooth |
インストールが完了したら、hciconfig
コマンドでbluetoothレシーバが認識されているか確認します。
1 2 3 4 5 6 |
ubuntu@ubuntu:~$ hciconfig hci0: Type: BR/EDR Bus: UART BD Address: C2:58:90:B8:27:EB ACL MTU: 1021:8 SCO MTU: 64:1 UP RUNNING RX bytes:820 acl:0 sco:0 events:53 errors:0 TX bytes:1850 acl:0 sco:0 commands:49 errors:0 |
bluetoothキーボードのペアリングと自動接続
本体側の準備ができたらキーボードを接続します。今回使用したのはiBuffaloのBSKBB24BKです。
設定はbluetoothctl
コマンドで行います。
1 2 3 |
ubuntu@ubuntu:~$ sudo bluetoothctl [NEW] Controller C2:58:90:B8:27:EB ubuntu [default] [bluetooth]# |
レシーバが認識されています。
キーボードのペアリングボタンを押して待機状態にしたら、scan on
と入力してデバイスをスキャンします。
1 2 3 4 5 |
[bluetooth]# scan on Discovery started [CHG] Controller C2:58:90:B8:27:EB Discovering: yes [NEW] Device EF:D0:89:DC:2C:26 BSKBB24 [bluetooth]# |
デバイスが見付かったらpair
コマンドでペアリングします。
1 2 3 4 5 6 7 8 9 10 11 |
[bluetooth]# pair EF:D0:89:DC:2C:26 Attempting to pair with EF:D0:89:DC:2C:26 [CHG] Device EF:D0:89:DC:2C:26 Connected: yes [CHG] Device EF:D0:89:DC:2C:26 Modalias: usb:v0A5Cp4502d011B [CHG] Device EF:D0:89:DC:2C:26 UUIDs: 00001000-0000-1000-8000-00805f9b34fb [CHG] Device EF:D0:89:DC:2C:26 UUIDs: 00001124-0000-1000-8000-00805f9b34fb [CHG] Device EF:D0:89:DC:2C:26 UUIDs: 00001200-0000-1000-8000-00805f9b34fb [CHG] Device EF:D0:89:DC:2C:26 Paired: yes Pairing successful [CHG] Device EF:D0:89:DC:2C:26 Connected: no [bluetooth]# |
ペアリングされたデバイスは、paired-devices
コマンドで確認できます。
1 2 3 |
[bluetooth]# paired-devices Device EF:D0:89:DC:2C:26 BSKBB24 [bluetooth]# |
ペアリングはrpiを再起動しても維持されます。デバイスにはconnect
コマンドで接続します。
1 2 3 4 5 |
[bluetooth]# connect EF:D0:89:DC:2C:26 Attempting to connect to EF:D0:89:DC:2C:26 [CHG] Device EF:D0:89:DC:2C:26 Connected: yes Connection successful [BSKBB24]# |
プロンプトが[bluetooth]
から[BSKBB24]
に変わっています。以降はデバイスを指定しなければBSKBB24に対するコマンドと解釈されます。
trust
コマンドを実行して、以降は自動で接続するようにしておきます。
1 2 3 4 |
[BSKBB24]# trust [CHG] Device EF:D0:89:DC:2C:26 Trusted: yes Changing trust succeeded [BSKBB24]# |
たぶん、ここまでの操作はUSBキーボードかsshで行っているのではないでしょうか。
一度接続を切って再起動し、自動的に接続するか試してみましょう。
1 2 3 4 5 6 7 |
[BSKBB24]# disconnect Attempting to disconnect from EF:D0:89:DC:2C:26 Successful disconnected [CHG] Device EF:D0:89:DC:2C:26 Connected: no [bluetooth]# exit [DEL] Controller C2:58:90:B8:27:EB ubuntu [default] ubuntu@ubuntu:~$ sudo reboot |
wifi設定
まずはrpiのwifiを有効にします。
/etc/network/interfaces
にwlan0
の設定を追記します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # Source interfaces # Please check /etc/network/interfaces.d before changing this file # as interfaces may have been defined in /etc/network/interfaces.d # See LP: #1262951 source /etc/network/interfaces.d/*.cfg auto wlan0 iface wlan0 inet manual |
追加したwlan0
を起動してifconfig
で確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
ubuntu@ubuntu:~$ sudo ifup wlan0 ubuntu@ubuntu:~$ ifconfig enxb827eb683af2 Link encap:Ethernet HWaddr b8:27:eb:68:3a:f2 inet addr:192.168.2.41 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::ba27:ebff:fe68:3af2/64 Scope:Link inet6 addr: 2408:13:11c8:cc00:ba27:ebff:fe68:3af2/64 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:280 errors:0 dropped:0 overruns:0 frame:0 TX packets:182 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:29416 (29.4 KB) TX bytes:26209 (26.2 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:160 errors:0 dropped:0 overruns:0 frame:0 TX packets:160 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:11840 (11.8 KB) TX bytes:11840 (11.8 KB) wlan0 Link encap:Ethernet HWaddr b8:27:eb:3d:6f:a7 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) ubuntu@ubuntu:~$ |
wifi関連のパッケージ、wpasupplicant
、wireless-tools
、iw
をインストールします。
1 |
sudo apt-get install wpasupplicant wireless-tools iw |
iwlist
コマンドでアクセスポイントを検索します。
1 2 3 4 5 6 7 8 9 10 |
ubuntu@ubuntu:~$ sudo iwlist wlan0 scan | grep ESSID ESSID:"WARPSTAR-01504C" ESSID:"WARPSTAR-01504C-W" ESSID:"aterm-8deeda-gw" ESSID:"elecom2g-1788A8" ESSID:"e-timer-1788A8" ESSID:"auhome_bXvkCh" ESSID:"catch22" ESSID:"Buffalo-G-5538" ubuntu@ubuntu:~$ |
この例ではcatch22
に接続します。
wpa_passphrase
コマンドで接続キーを生成して/etc/wpa_supplicant/catch22.conf
に保存します。接続先はcatch22
、パスフレーズはsortie50
です。
1 |
sudo sh -c "wpa_passphrase catch22 sortie50 > /etc/wpa_supplicant/catch22.conf" |
生成された/etc/wpa_supplicant/catch22.conf
の内容はこのようになっています。
1 2 3 4 5 |
network={ ssid="catch22" #psk="sortie50" psk=81a7fe6297535368a04df23b1cb2fadca7e058436deacd13c7136ea8fa949f1c } |
3行目に生のパスフレーズがコメントアウトされています。必要なければこの行は削除しておきましょう。
ネットワーク起動時にcatch22.conf
を読み込んでdhcp接続するように/etc/network/interfaces
を変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # Source interfaces # Please check /etc/network/interfaces.d before changing this file # as interfaces may have been defined in /etc/network/interfaces.d # See LP: #1262951 source /etc/network/interfaces.d/*.cfg auto wlan0 #iface wlan0 inet manual iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/catch22.conf iface default inet dhcp |
設定は以上です。
wlan0
を再起動してアクセスポイントに接続します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
ubuntu@ubuntu:~$ sudo ifdown wlan0 && sudo ifup wlan0 Internet Systems Consortium DHCP Client 4.3.3 Copyright 2004-2015 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/wlan0/b8:27:eb:3d:6f:a7 Sending on LPF/wlan0/b8:27:eb:3d:6f:a7 Sending on Socket/fallback DHCPRELEASE on wlan0 to 192.168.3.1 port 67 (xid=0x6a770bf0) Internet Systems Consortium DHCP Client 4.3.3 Copyright 2004-2015 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/wlan0/b8:27:eb:3d:6f:a7 Sending on LPF/wlan0/b8:27:eb:3d:6f:a7 Sending on Socket/fallback DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 3 (xid=0x7210bc27) DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5 (xid=0x7210bc27) DHCPREQUEST of 192.168.3.3 on wlan0 to 255.255.255.255 port 67 (xid=0x27bc1072) DHCPOFFER of 192.168.3.3 from 192.168.3.1 DHCPACK of 192.168.3.3 from 192.168.3.1 bound to 192.168.3.3 -- renewal in 13411 seconds. ubuntu@ubuntu:~$ |
アクセスポイントのIPアドレスは192.168.3.1
です。dhcpで192.168.3.3
のアドレスが割り当てられました。
ifconfig
で確認してみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
ubuntu@ubuntu:~$ ifconfig enxb827eb68f23a Link encap:Ethernet HWaddr b8:27:eb:68:3a:f2 inet addr:192.168.2.41 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::ba27:ebff:fe68:3af2/64 Scope:Link inet6 addr: 2408:13:11c8:cc00:ba27:ebff:fe68:3af2/64 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:382 errors:0 dropped:0 overruns:0 frame:0 TX packets:260 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:32372 (32.3 KB) TX bytes:41483 (41.4 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:160 errors:0 dropped:0 overruns:0 frame:0 TX packets:160 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:11840 (11.8 KB) TX bytes:11840 (11.8 KB) wlan0 Link encap:Ethernet HWaddr b8:27:eb:3d:6f:a7 inet addr:192.168.3.3 Bcast:192.168.3.255 Mask:255.255.255.0 inet6 addr: fe80::ba27:ebff:fe3d:6fa7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:52 errors:0 dropped:2 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:20278 (20.2 KB) TX bytes:1868 (1.8 KB) ubuntu@ubuntu:~$ |