Làm cách nào để bàn phím bluetooth của tôi được nhận diện trước khi đăng nhập?


7

Vì tôi cần sử dụng bàn phím để đăng nhập, tôi muốn cặp bàn phím của tôi tự động, đăng nhập trước.

Tôi đang sử dụng nén Debian, và tôi mới dùng linux. Tất cả các hướng dẫn mà tôi đã tìm thấy dường như yêu cầu gói HIDD, đã bị phản đối (tôi nghĩ) trên các bản phát hành Debian hiện tại.

Cài đặt Apt-get trả về một gói không tìm thấy trong phản hồi repo.

Có ai có một phương pháp để slove vấn đề này?

Nếu có vấn đề, tôi đang sử dụng Debian Squeeze trên Raspberry Pi và Bàn phím / Bàn phím Magic của Apple.

Câu trả lời:


6

Thỉnh thoảng tôi sử dụng đoạn script sau để thêm bàn phím bluetooth vào hệ thống của mình, nó thêm nó ở cấp hệ thống, thay vì cấp độ người dùng, có vẻ như làm cho mọi thứ hoạt động ngay từ khi khởi động và bàn phím của tôi có thể sử dụng được từ đăng nhập lời nhắc.

Như đã viết, bạn sẽ cần bash (v4.0 + hy vọng) và gói bluez , cung cấp các chương trình bluez-Simple-agent , bluez-test-device , bluez-test-input .

Hầu hết các mã dưới đây là để thực hiện một danh sách để cho phép bạn chọn thiết bị nào, nó thực sự chỉ dừng lại ở 6 dòng (không bình luận) cuối cùng, nếu bạn biết Địa chỉ MAC MAC của mình, bạn có thể thay thế tất cả các công cụ lựa chọn bằng một bài tập tĩnh.

#!/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"

Cảm ơn câu trả lời. Tôi mới dùng Linux. Bạn có thể vui lòng phân tích kịch bản và giải thích từng phần không? Đặc biệt là "6 dòng" cuối cùng mà bạn đề cập?
zenbike

Không. Đó là rất nhiều công việc, và không đủ chỗ ở đây. Thật dễ đọc, '#' bắt đầu một nhận xét, bạn có thể đọc những ... phần còn lại là các câu, thường tự giải thích. Tôi cho rằng đó là 10 dòng cuối cùng, bao gồm các bình luận, thực hiện tất cả các công việc thực tế, phần còn lại là khá tốt - để giúp việc chọn thiết bị trở nên dễ dàng. họ gọi các chương trình bluez để thêm, ghép nối và kết nối một thiết bị mong muốn, sử dụng Bluetooth ID (MAC) được phát hiện ở phần trên cùng của tập lệnh. Đọc các trang man cho các chương trình, đọc trang man BASH để biết cách tạo kịch bản với BASH. Học để khám phá và khám phá.
lornix

1
Hầu như MỌI lệnh chấp nhận -hhoặc --helptùy chọn để mô tả hoạt động của họ và hầu hết đều có mantrang ( man bash, man bluez-test-input... vv). Hãy thử mọi thứ, khám phá, học hỏi, khám phá. Đọc trang man BASH để được trợ giúp về kịch bản, các trang man cho các lệnh khác nhau, chủ yếu là các lệnh bluez -....
lornix
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.