Debian

如何讓我的藍牙鍵盤在登錄前被辨識?

  • October 6, 2013

因為我需要使用我的鍵盤登錄,所以我希望我的鍵盤自動配對,預先登錄。

我正在使用 Debian 擠壓,並且是 linux 新手。我發現的所有教程似乎都需要 HIDD 包,該包在目前的 Debian 版本中已被棄用(我認為)。

Apt-get install 返回一個在 repo 響應中找不到的包。

有沒有人有辦法解決這個問題?

如果重要的話,我在 Raspberry Pi 上使用 Debian Squeeze,還有一個 Apple 藍牙鍵盤/Magic Trackpad。

我偶爾使用以下腳本將藍牙鍵盤添加到我的系統,它在系統級別而不是使用者級別添加它,這似乎使事情從啟動開始就可以正常工作,並且我的鍵盤可以從登錄中使用迅速的。

如所寫,您將需要 bash(希望是 v4.0+)和bluez包,它提供bluez-simple-agentbluez-test-devicebluez-test-input程序。

下面的大部分程式碼是實現一個列表以允許您選擇哪個設備,它實際上只是歸結為最後 6 行(非註釋),如果您知道您的 BT MAC 地址,您可以將所有選擇的東西替換為靜態賦值。

#!/bin/bash
#
# L Nix <lornix@lornix.com>
# 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"

引用自:https://unix.stackexchange.com/questions/42526