arch linuxでのbluetoothテザリングを簡単にする関数の作成

テザリング

wifiテザリングは、bluetoothテザリングよりも端末が熱くなりバッテリーを消耗します。usbテザリングは、低速でも充電されるのがバッテリーの寿命に影響するのではないかと考えてしまいます。なので、私はbluetoothテザリングをすることに決めました。

bluetooth接続

guiフロントエンドを出来ることなら使いたくないけど、楽にbluetooth接続したいです。
使用するたびに対話的なコマンドであるbluetoothctlを使って接続するのは億劫です。

bluetoothテザリング

dbus-sendのあまりも長いコマンドを打つのが憂鬱です。macアドレスを控えておくのも辛いです。

関数

1つの関数を実行するだけで、bluetoothのサービスが起動しbluetoothの接続を行いインターフェースを立ち上げネットワークの接続が行えるようにします。

function bt() {
  typeset -r addr='AC:CF:85:B7:9D:9A'

  [[ $(systemctl status bluetooth | sed '/Active:/!d;s/[^:]*: //;s/ .*//') == 'inactive' ]] && sudo systemctl start bluetooth.service
  (){ echo 'power on'; sleep 1; echo "connect $1"; sleep 3; echo 'quit'; } ${addr} | bluetoothctl
  /usr/bin/dbus-send --system --type=method_call --dest=org.bluez /org/bluez/hci0/dev_${addr//:/_} org.bluez.Network1.Connect string:'nap'
  sudo dhcpcd bnep0
}

addrはスマホのmacアドレスです。
dbus-sendをフルパスで書いているのは、anacondaにもdbus-sendがありそれを使うのを防ぐためです。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.