Weitere ähnliche Inhalte
Ähnlich wie 「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き継がれなくて困ったので調べた話」 (20)
Mehr von Kenichiro MATOHARA (20)
Kürzlich hochgeladen (10)
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き継がれなくて困ったので調べた話」
- 2. Kenichiro MATOHARA
● @matoken
● http://matoken.org/
● 興味
– Linux
– FLOSS
– OpenSteetMap
– 電子工作
– :
- 4. 鹿児島らぐ
● 今のところ鹿児島Linux勉強会を月1回開催
– 今回第6回で0回目から数えて7回目の開催
● 鹿児島Linux勉強会
– Linux読書会
– Linux関連の発表
– その他…
● これからの予定
– 来月オープンソースカンファレンス2014福岡出展
http://www.ospn.jp/osc2014-fukuoka/
– オープンソースアンカンファレンス鹿児島開催
– OSMもそろそろやりたい
- 9. 精度の高いGPSモジュールを利用
して位置測定をしたい
● OpenStreetMap Foundation Japanのmiurahrさ
んの小江戸らぐ9月のオフな集まり発表資料
を見る
● "技適な Bluetooth GNSS/GPS レシーバーの作成と活用● 面白そう
● BluethoothSPPモジュールは持ってないけれど
RaspberryPiやUSB Bluethoothモジュールはあるの
でこれで真似したい
● ついでにログ取りとかもするようにしたい
- 10. 用意したもの
● RaspberryPi B+(A/Bでもok)
● USB Bluethoothドングル
– 5種類くらい持っていてこれまでに使えなかった物
はないが,購入前に型番で検索して利用できるか
確認したほうが無難
● OSはRaspberryPi標準のRasbianを利用(DebianWheezy
ベース)
– GUIは重いのでCUIで設定
● Android端末にSPP接続が出来るBluetooth Terminal
を導入
- 13. Bluetooth デバイスの確認
$ hcitool dev
Devices:
hci0 E0:91:53:77:E8:99
$ hciconfig -a
hci0: Type: BR/EDR Bus: USB
BD Address: E0:91:53:77:E8:99 ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING PSCAN
RX bytes:10030 acl:8 sco:0 events:191 errors:0
TX bytes:1702 acl:8 sco:0 commands:111 errors:0
Features: 0xff 0xff 0x8f 0xfe 0x9b 0xbf 0x59 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'raspberrypi-0'
Class: 0x420100
Service Classes: Networking, Telephony
Device Class: Computer, Uncategorized
HCI Version: 3.0 (0x5) Revision: 0x1aa1
LMP Version: 3.0 (0x5) Subversion: 0x1aa1
Manufacturer: Cambridge Silicon Radio (10)
- 14. 周りのデバイス検索
$ hcitool scan
Scanning ...
78:DD:08:B0:1F:37 x201s-0
98:91:20:21:55:78 Bluetooth
Keyboard
※周りのデバイスは検索可能にしておく
- 15. ペアリングが可能なようにモード
を変更してペアリング
● ペアリング可能なようにモード変更
$ sudo hciconfig hci0 piscan
● ペアリング(ペアリングのキーはこの場合
4835)
$ sudo bluetooth-agent 4835
Confirmation request of 396777 for device
/org/bluez/2150/hci0/dev_70_F9_27_71_74_5
B
※ペア先のデバイスは検出可能にしておく
- 17. SPPで接続して通信を試みる
$ sudo rfcomm listen /dev/rfcomm0 22
Waiting for connection on channel 22
Connection from 70:F9:27:71:74:5B to
/dev/rfcomm0
Press CTRL-C for hangup
● これで /dev/rfcomm0 を通してSPP通信が出
来る
- 18. 実際に通信してみる
● 別端末で受信したり
$ cat /dev/rfcomm0
test
hello
hello pi
● 送信したり
$ echo "hello android" > /dev/rfcomm0
- 20. これから
● Bluethooth自動接続
● DiskのRO化(電源断に対処するため)
● GPSを接続(以前確認済み)
● GPSのデータをSPPに流すようにする
● GPSのデータをローカルに保存するようにする(領域
を分けて保存できるようにする)
● その他
– BUN/PAN等のプロトコルも試してみたい(Bluethoothモバイ
ルルータ化)
- 21. ● 参考URL
"ja/BluetoothUser - Debian Wiki"
https://wiki.debian.org/ja/BluetoothUser
"技適な Bluetooth GNSS/GPS レシーバーの
作成と活用"
https://dl.dropboxusercontent.com/u/90779460/Bluetooth_
- 25. 省電力の設定をする
● 必要ないデバイスは外す,停止する
– 無線ヘッドホン,BTアダプタ取り外し
– 液晶輝度を下げる
● CPUを絞る(cpufreq)
● デバイスを設定で省電力にする
– 今回はコレ
※以前小江戸らぐで発表したこちらも参考になるかも
"最近の身の回りの電力事情"
http://www.slideshare.net/matoken/ss-7961752
- 26. powertop
● Intel謹製電力消費状況測定ツール
● Intelプラットホーム向け
● CPUを頻繁に起床させるプロセスをTOPライク
に表示したり,省電力のアドバイスも
● アドバイスに従いデバイスの設定をすることで
省電力に
● 現在はpowertop2になっている
"PowerTOP | 01.org" https://01.org/powertop/
- 28. 先ずはキャリブレーション
● キャリブレーション
% sudo powertop –calibrate
– 確認したいデバイスが接続された状態かつバッ
テリ稼動状態で実行すること
– キャリブレーション中液晶の輝度が最低になっ
たりするけど正常な動作
実行例 >
https://gist.github.com/113921d37a0180a71bed
- 29. ● 起動
% sudo powertop
● タブキーで項目移動
- 32. その他コマンド
● 全項目の省電力設定を有効にする
% sudo powertop –auto-tune
– 内容に不満がないならおすすめ.rc.local辺りに書いてお
いても良さそう
● powertop の結果をhtmlに
% sudo powertop --html=powertop.html
● powertop の結果をcsvに
% sudo powertop --csv=powertop.csv
- 36. PCの本体を交換
● ストレージを引き継ぐ
● ネットワークデバイスのMACアドレスが変わ
り,デバイス名(wlan0->wlan1,2,3...)が変更になる
● これまで設定した接続情報が使えなくなる…
- 37. 回避策
● その1
– デバイス名を合わせて設定を引き継ぐ(前のマシ
ンに戻すと再度デバイス名の変更が必要)
● その2
– デバイスごとに設定し直す.面倒だが,前のマ
シンに戻しても使える.
- 38. udevでデバイス名を合わせる方法
● /etc/udev/rules.d/70-persistent-net.rules を編集
– 旧マシン設定
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="60:67:20:dd:d9:f8",
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
– 新マシン設定
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:23:15:28:93:80",
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan8"
● MACアドレスやデバイス名を編集する(旧マシンの設定はコメントアウト)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:23:15:28:93:80",
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
- 42. nm-cli
● 設定の一覧表示
% nmcli connection show
% nmcli c
% nmcli connection show |head
名前 UUID タイプ デバイス
自動 Ideos c2bba3db-bd60-4e92-982d-419bea2ffb17 bluetooth --
自動 Ideos 219f7cc1-9800-441a-8ba7-b94a4db8d8b3 bluetooth --
KU-SOFTPLAZA f0441dcc-0189-4f32-869a-197896610dfa 802-11-wireless --
自動 010C61FF5CACC 8fb78aef-8d13-4b16-97dc-9c5707411c03 802-11-wireless --
π 1ac42d31-8a32-42b0-a094-9b4e34bf8d5b 802-11-wireless --
自動 WARPSTAR-0F17A7-GW 2a34a574-20d2-4b01-813e-bbfe5890cc8f 802-11-wireless --
Nag-FreeSpot-WEP 640612cd-5e5d-4688-a0d6-fe7e8d9f8d8c 802-11-wireless --
FREESPOT 1 64703e39-7335-44e4-9dee-b2db03955ad3 802-11-wireless --
Wi2 c447c218-110f-44fe-bee5-7c1ae0bfc3df 802-11-wireless –
:
- 43. nm-cli
● 名前やUUID指定で詳細表示
% nmcli connection show 'KU-SOFTPLAZA'
connection.id: KU-SOFTPLAZA
connection.uuid: f0441dcc-0189-4f32-869a-197896610dfa
connection.interface-name: --
connection.type: 802-11-wireless
connection.autoconnect: yes
connection.timestamp: 1414157624
connection.read-only: no
:
● しかし,Passwordは表示され無い
- 44. nm-cli余録
● 接続
% nmcli connection up 接続名
● 切断
% nmcli connection down 接続名
● 接続状態表示
% nmcli device
※確認してないけど新規設定,設定変更など
もok
- 47. パスワードはどこに保存されてい
るのか?
● 恐らくGnomeKeyring(Seahorse/パスワード
と鍵)に保存されている?
● 普通に起動して鍵束の中を見ても載ってい無
さそう
● Keyringの中身を全部表示してみたが見当た
らない
- 48. Keyringのパスワードを表示する
Script
#!/usr/bin/env python
import pygtk
pygtk.require('2.0')
import gtk # sets app name
import gnomekeyring
def hack():
for keyring in gnomekeyring.list_keyring_names_sync():
for id in gnomekeyring.list_item_ids_sync(keyring):
item = gnomekeyring.item_get_info_sync(keyring, id)
print '[%s] %s = %s' % (
keyring, item.get_display_name(), item.get_secret())
else:
if len(gnomekeyring.list_item_ids_sync(keyring)) == 0:
print '[%s] --empty--' % keyring
if __name__ == '__main__':
hack()
- 50. 力技で探してみる…
% sudo sh -c 'find /etc -type f -print0 |
xargs -0 grep KU-SOFTPLAZA'
● /etc/NetworkManager/system-connections 以下に設定を
発見!
– 1接続1ファイルでファイル中に平文でパスワード
が書かれている
– UUID/MACを書き換えると一括で処理できそう?
要確認
● uuid=795e6e6c-0f34-4367-91b9-59f750968033
● mac-address=00:23:15:28:93:80
- 51. % sudo cat KU-SOFTPLAZA
[connection]
id=KU-SOFTPLAZA
uuid=f0441dcc-0189-4f32-869a-197896610dfa
type=wifi
[wifi]
ssid=KU-SOFTPLAZA
mode=infrastructure
mac-address=00:23:15:28:93:80
[wifi-security]
key-mgmt=wpa-psk
auth-alg=open
psk=XXXXXXXXXXXX
[ipv4]
method=auto
[ipv6]
method=auto