Làm cách nào tôi có thể Tự động kết nối bàn phím Bluetooth khi khởi động?


10

Tôi có một bàn phím bluetooth cho HTPC của tôi. Tôi ghép nối nó với máy tính của tôi qua bluetooth và nó hoạt động tốt. Tuy nhiên, khi tôi tắt bàn phím hoặc máy tính, nó phải kết nối lại (yêu cầu tôi nhập mật mã trên máy tính và bàn phím) khi tôi bật lại. Tôi đã xem qua nhiều diễn đàn và qua đó tôi thấy rằng tôi đang thiếu một số tệp bluetooth có vẻ quan trọng:

/etc/default/bluetooth

/etc/init.d/bluetooth

/etc/bluetooth/hcid.conf

Trong các hướng dẫn mà tôi đã tìm thấy trực tuyến cho đến nay, tôi phải thay đổi một số dòng nhất định trong bất kỳ tệp nào trong số này. Tôi không thể, vì chúng không tồn tại.

Tôi đang thiếu một người phụ thuộc hay cái gì đó? Tôi cũng đã thử cài đặt Blueman nhưng điều đó không giúp được gì cả.

Tôi đang chạy Ubuntu 10.10 (Maverick).

Bài đăng gốc: http://ubuntuforums.org/showthread.php?t=1643386&highlight=bluetooth

Câu trả lời:


11

Câu trả lời này xuất phát từ một hướng dẫn được viết bởi Andrew Martin trên thetechdepo.com. Xem liên kết dưới đây cho bài viết gốc, tuy nhiên đây là một bản viết lại hoàn chỉnh. Nó được viết riêng cho một bàn phím apple, tuy nhiên tôi đã sử dụng nó cho nhiều thiết bị nên nó không phải là apple hay bàn phím cụ thể. Chỉ cần làm theo hướng dẫn và bạn sẽ có bất kỳ thiết bị bluetooth nào tự động kết nối trong Ubuntu.

Truy cập Cài đặt hệ thống> Bluetooth và làm theo hướng dẫn để thêm thiết bị bluetooth mới được kết nối của bạn.

Làm theo hướng dẫn và nhập mã pin khi được yêu cầu, sau đó sau khi thiết bị được kết nối và hoạt động, tắt nguồn thiết bị. Bây giờ vào phần kết nối tự động.

Mở terminal của bạn và nhập các lệnh sau:

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

Lệnh cuối cùng sẽ hiển thị đầu ra cho thiết bị của bạn, chẳng hạn như:

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

Cài đặt gói mới để cho phép bạn kết nối bluetooth thông qua dòng lệnh.

$ sudo apt-get install bluez-compat

Một khi điều này đã hoàn thành, bây giờ bạn sẽ có chương trình hidd được cài đặt. Tại thời điểm này, bật bàn phím của bạn và nhập lệnh sau. Nó sẽ xuất Địa chỉ MAC của bàn phím của bạn, mà bạn sẽ cần sao chép và dán vào lệnh tiếp theo, như được thấy dưới đây:

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

Bây giờ chúng ta phải tạo một tệp khởi động để tự động kết nối thiết bị khi máy tính khởi động. Qua thiết bị đầu cuối ...

$ gedit ~/.keyboard.sh

Nhập văn bản sau, thay thế AA: BB: CC: DD: EE: FF bằng ID phần cứng bạn đã thấy ở trên. Cuối cùng, lưu tập tin.

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

Bây giờ tạo một tệp khởi động mới. Thay thế "bàn phím" cho bất kỳ tên thiết bị nào bạn chọn. Đây chỉ đơn giản là tên của tập tin.

$ sudo gedit /etc/init.d/keyboard

Dán đoạn sau, thông báo cho Ubuntu của bạn chạy tệp bạn vừa tạo khi khởi động.

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

exit 0

Bây giờ đặt cả hai quyền cho tập tin thực thi thông qua thiết bị đầu cuối.

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

Khởi động lại máy tính và thiết bị của bạn sẽ tự động kết nối và hoạt động mà không cần bạn phải làm gì cả.

Tôi hy vọng điều này sẽ giúp được một vài người, tôi đã mất một thời gian dài để tìm ra giải pháp cho vấn đề của mình và tôi muốn hướng dẫn sâu hơn một chút vào web.

Các liên kết ban đầu có thể được tìm thấy ở đây .


Tôi tin rằng hidd hiện không được chấp nhận vì bluez 4.0 có lợi cho udev, theo /usr/share/docs/bluez/NEWS.Debian.gz nhưng tôi không thể tìm thấy bất kỳ tài liệu nào về cách thực hiện mà không cần bluez-compat.
tu-Tái lập Monica-dor duh

3

Tôi cũng đã tự mình thử câu trả lời của ryandlf nhưng thấy một thiết lập dễ dàng khác cuối cùng sẽ thực hiện công việc tương tự.

Ý tưởng chính là một khi thiết bị từ xa được ghép nối và tin cậy, hcitool spinqsẽ bắt đầu cuộc điều tra định kỳ sẽ cho phép mọi thiết bị có sẵn được kết nối.

Đầu tiên, bắt đầu sudo Bluetoothctl -avà làm theo các bước dưới đây. Đây là từ wiki ArchLinux nhưng cũng được chứng minh là hoạt động tương tự trong Ubuntu.

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

Lệnh cuối cùng sẽ hiển thị tất cả các bàn phím bluetooth có sẵn (đang chờ ghép nối) như thế này.

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

Lưu ý địa chỉ bàn phím của bạn và tiếp tục với nó.

[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

Bây giờ đặt tập lệnh đơn giản này vào /etc/init.d/keyboard

#! /bin/sh
sudo hcitool spinq
exit 0

Sau đó thực hiện những điều này.

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

Đó là nó. Bây giờ bất cứ khi nào bạn bật bàn phím Bluetooth, nó sẽ tự động được kết nối với Linux của bạn.


$ sudo update-rc.d keyboard defaults insserv: script keyboard is not an executable regular file, skipped!Để giải quyết, tôi thực hiện sudo chmod +x /etc/init.d/keyboard. Sau đó tôi biểu diễn sudo update-rc.d keyboard defaults. Nhận được cảnh báo : insserv: warning: script 'keyboard' missing LSB tags and overrides.
orschiro

Thế còn sudo service keyboard enable?
orschiro

Vâng, bạn đã làm đúng với chmod +x.
Ch.Idea

Lỗi thẻ LSB có thể bị bỏ qua và không thực sự quan trọng trong nhiệm vụ này. Nếu bạn muốn, hãy tìm kiếm nó bằng cách googling và dán lên trên cùng của tập tin. Chúng ở dạng đơn giản.
Ch.Idea

1

Tôi gặp vấn đề rất giống với bàn phím Apple BlueTooth. Tôi mua nó vì tôi thích cảm giác của các phím. Tuy nhiên, tôi không thể giữ kết nối. Vấn đề dường như nằm ở việc xác định bàn phím. Khi nó được khớp với một máy tính MAC thực tế, nơi nó có tên thật, tôi không còn gặp vấn đề gì với việc kết nối nó với Linux hoặc Windows. Vợ tôi bây giờ sử dụng nó không có vấn đề.

Tôi không biết làm thế nào điều này có thể được chuyển đổi trong tình huống của bạn, nhưng đây có thể là điểm khởi đầu. Từ những người bạn khác, dường như việc nhận dạng thiết bị là vấn đề chính ở đây.


1

Kể từ bluez 5.35 (tháng 9 năm 2015), nó sẽ đủ để sửa đổi tệp cấu hình /etc/bluetooth/main.confbằng cách bật AutoEnable=true.

Để ghép nối một thiết bị mới từ một thiết bị đầu cuối (giả sử đó 01:02:03:04:05:06là địa chỉ mac của thiết bị bạn đang cố gắng ghép nối):

$ 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

Vâng, phần tin tưởng là điều tạo nên sự khác biệt cho tôi khi có thể tự động kết nối khi khởi động.
p1l0t

0

Tôi đã mua một bàn phím bluetooth, và hạ cánh trên trang này ở đây, và thử những gì ryandlf và những gì Ch.Idea đề xuất. Nó không hoạt động. Sau một số phân tích và thử nghiệm, tôi tìm thấy sự kết hợp này:

Đầu tiên, như mọi người đề xuất, hãy thử kết nối thiết bị theo cách thủ công từ GUI. Hãy chắc chắn rằng nó hoạt động. Sau đó ngắt kết nối và tắt. Chúng tôi sẽ bắt đầu lại bằng tay sau đó.

Nhận quyền root:

su

Sau đó:

hcitool scan

và đồng thời nhấn nút hoặc bất cứ thứ gì trên thiết bị và đảm bảo rằng nó được phát hiện. Nếu được phát hiện, nó sẽ in một địa chỉ của nó, ví dụ 20: 73: 00: 01: 90: 65 và mô tả về thiết bị, ví dụ: bàn phím Bluetooth. Lấy địa chỉ đó vào clipboard.

Tiếp theo, chúng tôi đã sẵn sàng để kết nối. MỌI NGƯỜI TẤT CẢ CÁC NỀN TẢNG INTERNET TUYỆT VỜI, MÀ CÒN LẠI NHƯ VẬY NÓ KHÔNG HIỆN TẠI NÀO. Đó là lý do tại sao tôi không thể làm cho công việc này quá lâu ... Sau khi nhìn vào người đàn ông của hcitool, tôi đã tìm thấy rất nhiều lệnh hữu ích, và không cần phải sử dụng dbus hay bất cứ điều gì. Vì vậy, để kết nối nó, chúng tôi phát hành:

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

và đó là nó.

Các thí nghiệm cho thấy nó thậm chí còn tự động kết nối lại, khi tôi tạm thời tắt thiết bị.

PHẦN 2.

Tôi cũng tạo ra một dịch vụ, như những người đề nghị trong các câu trả lời khác. Đầu tiên, tôi đã tạo một tập tin /etc/init.d/keyboard, với nội dung này:

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

Sau đó, là root:

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

Đó là nó. Hy vọng nó giúp.

Ồ, và đó là Debian 9.

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.