Wie kann ich meine Bluetooth-Tastatur erkennen, bevor ich mich anmelde?

7

Da ich meine Tastatur zum Anmelden verwenden muss, möchte ich mein Tastaturpaar automatisch vorab anmelden.

Ich benutze Debian Squeeze und bin neu in Linux. Alle Tutorials, die ich gefunden habe, erfordern anscheinend das HIDD-Paket, das (glaube ich) in aktuellen Debian-Versionen veraltet ist.

Apt-get install gibt ein Paket zurück, das in der Repo-Antwort nicht gefunden wurde.

Hat jemand eine Methode, um dieses Problem zu lösen?

Wenn es darauf ankommt, verwende ich Debian Squeeze auf einem Raspberry Pi und einem Apple Bluetooth Keyboard / Magic Trackpad.

Zenbike
quelle

Antworten:

6

Ich verwende gelegentlich das folgende Skript, um meinen Systemen Bluetooth-Tastaturen hinzuzufügen. Es fügt es auf Systemebene und nicht auf Benutzerebene hinzu, wodurch die Dinge vom Start an direkt zu funktionieren scheinen, und meine Tastatur (en) können über die Anmeldung verwendet werden Prompt.

Wie geschrieben, benötigen Sie bash (v4.0 + hoffentlich) und das bluez- Paket, das die Programme bluez-simple-agent , bluez-test-device und bluez-test-input enthält.

Der größte Teil des folgenden Codes besteht darin, eine Liste zu implementieren, mit der Sie auswählen können, welches Gerät verwendet werden soll. Es läuft wirklich nur auf die letzten 6 Zeilen (ohne Kommentar) hinaus. Wenn Sie Ihre BT-MAC-Adresse kennen, können Sie alle ausgewählten Elemente durch ersetzen eine statische Zuordnung.

#!/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"
lornix
quelle
Danke für die Antwort. Ich bin neu in Linux. Können Sie bitte das Skript aufschlüsseln und erklären, was jeder Teil tut? Besonders die letzten '6 Zeilen', die Sie erwähnt haben?
Zenbike
Nein, das ist viel Arbeit und nicht genug Platz hier. Es ist leicht zu lesen, '#' startet einen Kommentar, Sie können diese lesen ... der Rest sind Aussagen, die im Allgemeinen selbsterklärend sind. Ich nehme an, es sind die letzten 10 Zeilen, einschließlich der Kommentare, die die gesamte eigentliche Arbeit erledigen. Der Rest ist ziemlich umfangreich, um die Auswahl eines Geräts zu vereinfachen. Sie rufen die bluez-Programme auf, um ein gewünschtes Gerät mithilfe der im oberen Teil des Skripts ermittelten Bluetooth-ID (MAC) hinzuzufügen, zu koppeln und zu verbinden. Lesen Sie die Manpages für die Programme und die BASH-Manpage, um zu erfahren, wie Skripte mit BASH funktionieren. Lernen Sie zu entdecken und zu erkunden.
Lornix
1
Fast JEDER Befehl akzeptiert die Optionen -hoder --help, um ihre Funktionsweise zu beschreiben, und die meisten haben manSeiten ( man bash, man bluez-test-input... usw.). Dinge ausprobieren, erforschen, lernen, entdecken. Lesen Sie die BASH-Manpage, um Hilfe zum Erstellen von Skripten zu erhalten, die Manpages für die verschiedenen Befehle, hauptsächlich die Befehle bluez -...
Lornix