端末でコード入力を必要とするBluetoothキーボードをペアリングするにはどうすればよいですか?


20

Ubuntu Touch Aquaris E4.5とペアリングするBluetooth ThinkPad 2 Tabletキーボードがあります。GUIの制限により、ターミナルでこれを実行したいと思います。このプロセスがUbuntu Desktopのプロセスと同様になることを期待しています。

Ubuntu Desktop 15.10では、キーボードをペアリングすると、GUIダイアログに次のメッセージが表示されます。

Please enter the following PIN on "ThinkPad keyboard" and press "Enter" on the keyboard:
<6-digit number>

Bluetoothキーボードで6桁のPINを入力してを押すEnterと、キーボードのペアリングが完了し、正常に機能します。Ubuntu Touchでキーボードをペアリングしようとしても、Bluetoothキーボードに入力するコードを表示するGUIダイアログは表示されません。だから、私は端末でキーボードをペアリングしてみてください。

私は次を試しました:

phablet@ubuntu-phablet:~$ hcitool scan
Scanning ...
        AB:CD:EF:GH:IJ:KL       ThinkPad Keyboard
phablet@ubuntu-phablet:~$ bluez-simple-agent AB:CD:EF:GH:IJ:KL
RequestPinCode (/org/bluez/863/hci0/dev_AB_CD_EF_GH_IJ_KL)
Enter PIN Code: 0000
Release
Creating device failed: org.bluez.Error.ConnectionAttemptFailed: Page Timeout
phablet@ubuntu-phablet:~$

次に何ができますか?

回答:


26

コマンドラインからbluetoothctlを実行して、デバイスがオンになっているか、検出する準備ができていることを確認できます。

$ bluetoothctl
[NEW] Controller AA:BB:CC:DD:EE:FF device-name [default]

その他のBluetoothデバイスはすべてここにリストされます。その後、[bluetooth]プロンプトが表示されます。

まず、Bluetoothの電源をオンにします(デバイスがオフの場合):

[bluetooth]# power on
Changing power on succeeded

次に、エージェントが登録されていることを確認します。

[bluetooth]# agent on
Agent registered

[bluetooth]# default-agent 
Default agent request successful

これで、コンソールからデバイスをスキャンできます。

[bluetooth]# scan on
Discovery started
[CHG] Controller AA:BB:CC:DD:EE:FF Discovering: yes
[NEW] Device FF:EE:DD:CC:BB:AA Someone's Keyboard

ここから手動でペアリングすることもできます。

[bluetooth]# pair FF:EE:DD:CC:BB:AA 
Attempting to pair with FF:EE:DD:CC:BB:AA 
[CHG] Device C8:E0:EB:04:52:55 Connected: yes

この時点で、ペアリングのPINコードを入力するように求められます。

Request PIN code
[agent] Enter PIN code: 12345

番号(例:12345)を入力すると、デバイスから同じ番号を入力するように求められます。

[Someone's Keyboard]# 12345

その後、キーボードがペアリングされたことを通知する必要があります。

[CHG] Device FF:EE:DD:CC:BB:AA Paired: yes

うまくいけば、これがあなたのために働くことを願っていますbluetoothctl


編集:Ubuntu Touch OTA9リリースにはBluez 5が含まれており、ThinkPadキーボードとのペアリングが可能です。これは、ほとんどパームトップとして機能する小さなBQ Aquaris E4.5です。


わかりました、愚かな質問:どのようにインストールしbluetoothctlますか?試しましたsudo add-apt-repository ppa:vidplace7/bluez5; sudo apt-get update; sudo apt-get install bluez bluez-tools
d3pd

...¯_(ツ)_ /¯-Bluezパッケージを見て、すでにマシン上にありました。他に持っているのはbluez-obexdand libbluetooth3だけです(ただし、bluez5.35を実行しています) fwiw)。
1nfiniti

これにご協力いただきありがとうございます。Ubuntu TouchにBlueZ 5をインストールする方法がわからない(そうしようとしているデバイスをブリック/リフラッシュする)ので、これについて別の質問をします。
d3pd

1
繰り返しになりますが、Ubuntu Touch OTA9リリースにはBluez 5が含まれており、ThinkPad Bluetoothキーボードとペアリングできるため、ソリューションの基本的なアイデアは正しかったのです。ご協力ありがとうございます。
d3pd

bluetoothctlを使用してMicrosoft Universal Foldable KeyboardをAquaris M10タブレットに接続し、成功しました。唯一の問題は、キーボードが切断されたときにUbuntu Touchが認識せず、再起動するまでOSKの提示を拒否することです。ペアリングプロセスを再度実行せずにbluetoothctlコマンドを使用してキーボードをデタッチする方法はありますか?ここに私のランチパッドのバグレポートを参照してください。bugs.launchpad.net/ubuntu/+source/ubuntu-system-settings/+bug/...
tomoqv

8

Ubuntu 16.04 amd64で1nfinitiの手順に従い、Logitech MX5000キーボードとマウスのコンボでうまく機能しました。しかし、コンピューターを再起動したとき、キーボードは再び入力しませんでした。接続されているように表示されましたが、Bluetooth設定でペアリングされていません。ただし、マウスは正常に機能しました。

bluetoothctlリファレンス(https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl)を見ると、一部のデバイスを正常に再接続できるようにするために、「ペア」コマンドの後に「信頼」コマンドが使用されていることがわかりました。

そこでbluetoothctlを起動し、キーボードの接続を解除してペアリングを解除し、再度接続してペアリングし、発行しました

[bluetooth]# trust [keyboard MAC Address]

次に、キーボードが信頼されていることが通知されました

Trusted

これでうまくいきました。コンピューターを起動/再起動するたびに、キーボードが問題なく接続されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.