ログインする前にBluetoothキーボードをどのように識別しますか?

ログインする前にBluetoothキーボードをどのように識別しますか?

ログインするにはキーボードを使用する必要があるため、キーボードを自動的にペアリングして事前ログインするようにしたいと思います。

私はDebian squeezeを使用しており、Linuxを初めて使用しています。私が見つけたすべてのチュートリアルは、現在のDebianリリースで廃止されたHIDDパッケージを必要とするようです。

apt-get install は、リポジトリ応答に見つからないパッケージを返します。

誰もがこの問題に対する解決策を持っていますか?

重要な場合は、Raspberry PiとApple Bluetoothキーボード/マジックトラックパッドでDebian Squeezeを使用しています。

答え1

私は時々次のスクリプトを使って私のシステムにBluetoothキーボードを追加します。ユーザーレベルではなくシステムレベルで追加されるので、起動時に問題がうまく機能し、私のキーボードはログイン時にすぐに使用できます。

作成したとおり、bash(v4.0+が望ましい)が必要です。ブルースパッケージとして提供されますbluez - シンプルなプロキシブルーズテスト機器bluez - テスト入力プログラム。

以下のコードのほとんどは、どのデバイスを選択できるかのリストを実装しており、実際には最後の6行(コメントではない)にまとめられています。 BT MAC アドレスがわかっている場合は、すべての選択肢を静的割り当てに置き換えることができます。

#!/bin/bash
#
# L Nix <[email protected]>
# setup-bt-kb : allow choosing & pairing a bluetooth keyboard from the console
#
declare -a addrlist
#
while [ 1 ]; do
    echo -n "Scanning for Bluetooth devices ... "
    readarray -n 10 -O 0 -t addrlist < <(hcitool scan|grep -v "^Scanning"|sed -e "s/^[ \t]//g" -e "s/\t/ /g" | head -n 9)
    echo
    echo
    length=${#addrlist[@]}
    a=1
    while [ ${a} -le ${length} ]; do
        echo "$a) ${addrlist[$a-1]}"
        a=$((a + 1))
    done
    echo
    while [ 1 ]; do
        if [ ${length} -gt 0 ]; then
            echo -n "Choose (1-${length}), or "
        fi
        echo -n "'R' to rescan: "
        read -n 1 REPLY
        echo
        case ${REPLY} in
            Q)
                # just quit
                exit 0
                ;;
            [0rR])
                echo
                REPLY=0
                break
                ;;
            [123456789])
                if [ ${REPLY} -le ${length} ]; then
                    echo "Got ${REPLY}"
                    break
                fi
                ;;
            *)
                ;;
        esac
    done
    if [ ${REPLY} -gt 0 ]; then
        break
    fi
done
#
device=${addrlist[${REPLY}-1]}
#
BTADDR=${device/% *}
BTNAME=${device/#??:??:??:??:??:?? }
#
echo "selecting '${BTNAME}' at ${BTADDR}"
#
echo "Pairing with ${BTNAME} (Generally '0000')"
bluez-simple-agent hci0 ${BTADDR}
#
echo "Setting trust level with ${BTNAME}"
bluez-test-device trusted ${BTADDR} yes
#
echo "Connecting to ${BTNAME}"
bluez-test-input connect ${BTADDR}
#
echo "Completed"

関連情報