起動時にBluetoothキーボードを自動接続するにはどうすればよいですか?


10

HTPC用のBluetoothキーボードを持っています。私はBluetooth経由でコンピューターとペアリングしましたが、正常に動作します。ただし、キーボードまたはコンピューターの電源をオフにすると、電源をオンにしたときに再度接続する必要があります(コンピューターとキーボードにパスコードを入力する必要があります)。私は多くのフォーラムを調べましたが、それを通して、一見重要であると思われるいくつかのbluetoothファイルが欠落していることがわかりました。

/etc/default/bluetooth

/etc/init.d/bluetooth

/etc/bluetooth/hcid.conf

これまでオンラインで見つけた説明では、これらのファイルの特定の行を変更する必要があります。それらが存在しないので、私はできません。

依存関係が欠けていますか?Bluemanのインストールも試しましたが、まったく役に立ちませんでした。

私はUbuntu 10.10(Maverick)を実行しています。

元の投稿:http : //ubuntuforums.org/showthread.php?t=1643386&highlight=bluetooth

回答:


11

この回答は、thetechdepo.comでAndrew Martinが作成したチュートリアルに基づいています。元の投稿については以下のリンクを参照してください。ただし、これは完全に書き直されています。アップルキーボード用に特別に書かれていますが、複数のデバイスで使用しているため、アップルやキーボード固有ではありません。単に指示に従うと、UbuntuでBluetoothデバイスが自動接続されます。

[システム設定]> [Bluetooth]に移動し、指示に従って、新しく接続したBluetoothデバイスを追加します。

指示に従い、要求されたときにピンを入力し、デバイスが接続されて機能したら、デバイスの電源を切ります。次に、自動接続パーツに移動します。

端末を開き、次のコマンドを入力します。

$ killall bluetooth-applet 
$ sudo /etc/init.d/bluetooth restart 
$ sudo hcitool dev

最後のコマンドは、次のようなデバイスの出力を表示します。

Devices:
    hci0    00:00:00:00:00:00

新しいパッケージをインストールして、コマンドラインからBluetoothに接続できるようにします。

$ sudo apt-get install bluez-compat

これが完了すると、hiddプログラムがインストールされます。この時点で、キーボードの電源を入れ、次のコマンドを入力します。以下に示すように、キーボードのMACアドレスが出力されます。これをコピーして、次のコマンドに貼り付ける必要があります。

$ hcitool scan        
Scanning ...
    AA:BB:CC:DD:EE:FF   Bluetooth Device Name
$ sudo hidd --connect AA:BB:CC:DD:EE:FF

次に、PCの起動時にデバイスを自動接続するためのスタートアップファイルを作成する必要があります。ターミナル経由...

$ gedit ~/.keyboard.sh

AA:BB:CC:DD:EE:FFを上記のハードウェアIDに置き換えて、次のテキストを入力します。最後に、ファイルを保存します。

#! /bin/bash

address="AA:BB:CC:DD:EE:FF"

while (sleep 1)
do
connected=`sudo hidd --show` > /dev/null
if [[ ! $connected =~ .*${address}.* ]] ; then
sudo hidd --connect ${address} > /dev/null 2>&1
fi
done

次に、新しい起動ファイルを作成します。選択したデバイス名を「キーボード」に置き換えます。これは単にファイルの名前です。

$ sudo gedit /etc/init.d/keyboard

以下を貼り付けます。これは、起動時に作成したファイルを実行するようUbuntuに指示します。

#!/bin/sh
/home/username/.keyboard.sh &

exit 0

次に、ターミナルを介して両方のファイル権限を実行可能に設定します。

$ sudo chmod +x /etc/init.d/keyboard
$ chmod +x ~/.keyboard.sh
$ sudo update-rc.d keyboard defaults

コンピューターを再起動すると、デバイスは自動接続し、何もしなくても機能します。

これが数人の人に役立つことを願っています。私の問題の解決策を見つけるのに長い時間がかかったので、このチュートリアルをWebに少し深く結び付けたかったのです。

元のリンクはここにあります


/usr/share/docs/bluez/NEWS.Debian.gzによると、hiddはbluez 4.0の時点でudevに代わって非推奨になっていると思いますが、bluez-compatなしでそれを行う方法に関するドキュメントは見つかりません。
tu-Reinstate Monica-dor duh

3

私もryandlfの答えを自分で試してみましたが、最終的に同じ作業を行う別の簡単なセットアップを見つけました。

主なアイデアは、リモートデバイスがペアリングされて信頼hcitool spinqされると、利用可能なすべてのデバイスを接続できるようにする定期的な問い合わせを開始することです。

まず、sudo Bluetoothctl -a以下の手順を開始して実行します。これらはArchLinux wikiからのものですが、Ubuntuでも同様に機能することが証明されています。

[bluetooth]# power on
[bluetooth]# agent KeyboardOnly
[bluetooth]# pairable on
[bluetooth]# scan on

最後のコマンドは、このような利用可能な(ペアリングを待機している)Bluetoothキーボードをすべて表示します。

Discovery started
[CHG] Controller 01:02:03:04:05:06 Discovering: yes

キーボードのアドレスに注意して続行してください。

[bluetooth]# pair 01:02:03:04:05:06
[bluetooth]# trust 01:02:03:04:05:06
[bluetooth]# connect 01:02:03:04:05:06
[bluetooth]# quit

次に、この簡単なスクリプトを /etc/init.d/keyboard

#! /bin/sh
sudo hcitool spinq
exit 0

次に、これらを実行します。

sudo chmod +x /etc/init.d/keyboard
sudo service keyboard enable
sudo update-rc.d keyboard defaults
sudo service keyboard start

それでおしまい。これで、Bluetoothキーボードをオンにするたびに、自動的にLinuxに接続されます。


$ sudo update-rc.d keyboard defaults insserv: script keyboard is not an executable regular file, skipped!解決するために、私は実行しましたsudo chmod +x /etc/init.d/keyboard。それから私は演奏したsudo update-rc.d keyboard defaults。警告を受け取りました:insserv: warning: script 'keyboard' missing LSB tags and overrides
orschiro 2016年

どうsudo service keyboard enableですか?
orschiro 2016年

はい、あなたはで正しくやりましたchmod +x
Ch.Idea

LSBタグの欠落エラーは無視できますが、このタスクではそれほど重要ではありません。必要に応じて、グーグルで検索して、ファイルの上に貼り付けます。彼らは単純な形です。
Ch.Idea

1

Apple BlueToothキーボードでも非常によく似た問題がありました。鍵の感触が好きで購入しました。しかし、接続を維持できませんでした。問題はキーボードの識別にあるようです。実際の名前が付けられた実際のMACコンピューターと一致すると、LinuxまたはWindowsへの接続に問題がなくなりました。現在、妻は問題なく使用しています。

これがあなたの状況でどのように転置されるかはわかりませんが、これが出発点になることがあります。他の友達からは、ここではデバイスの識別が主な問題のようです。


1

bluez 5.35(2015年9月)以降/etc/bluetooth/main.conf、を有効にして構成ファイルを変更するだけで十分AutoEnable=trueです。

端末から新しいデバイスをペアリングするに01:02:03:04:05:06は(ペアリングしようとしているデバイスのMACアドレスであると想定):

$ bluetoothctl
# power on
# agent KeyboardOnly
# default-agent
# pairable on
# scan on
# pair 01:02:03:04:05:06
# trust 01:02:03:04:05:06
# connect 01:02:03:04:05:06
# quit
$ exit

信頼部分は、起動時に自動再接続できるという点で違いがありました。
p1l0t

0

私はBluetoothキーボードを購入し、ここのこのページにアクセスして、ryandlfとCh.Ideaの提案を試しました。うまくいきませんでした。いくつかの分析と試行の後、私はこの組み合わせを見つけました:

まず、みんなが示唆したように、GUIから手動でデバイスを接続してみます。それが機能することを確認してください。次に、それを取り外し、電源を切ります。その後、手動でやり直します。

ルート権限を取得します。

su

次に:

hcitool scan

デバイス上のボタンなどを同時に押して、発見されたことを確認します。発見された場合、20:73:00:01:90:65などのアドレスと、Bluetoothキーボードなどのデバイスの説明を出力します。そのアドレスをクリップボードに取得します。

次に、接続する準備が整いました。インターネット上のすべての人が非表示になっていることをお勧めします。そのため、この作業を長く続けることができませんでした... hcitoolの人を調べた後、dbusなどを使用する必要のない便利なコマンドがたくさん見つかりました。したがって、それを接続するために、以下を発行します。

hcitool cc 20:73:00:01:90:65

以上です。

実験では、デバイスを一時的にオフにすると、自動的に再接続することさえありました。

パート2。

他の回答で示唆されているように、私はサービスも作成しました。まず、次の内容で/etc/init.d/keyboardファイルを作成しました。

#! /bin/sh
sudo hcitool cc 20:73:00:01:90:65
exit 0

次に、ルートとして:

chmod +x /etc/init.d/keyboard
service keyboard enable
update-rc.d keyboard defaults
service keyboard start

それでおしまい。それが役に立てば幸い。

ああ、それはDebian 9です。

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