ฉันจะเชื่อมต่อ Bluetooth Keyboard Auto-Connect ตอนเริ่มต้นได้อย่างไร


10

ฉันมีแป้นพิมพ์บลูทู ธ สำหรับ HTPC ของฉัน ฉันจับคู่กับคอมพิวเตอร์ผ่านบลูทู ธ และทำงานได้ดี อย่างไรก็ตามเมื่อฉันปิดแป้นพิมพ์หรือคอมพิวเตอร์ของฉันจะต้องเชื่อมต่ออีกครั้ง (ซึ่งฉันต้องป้อนรหัสผ่านบนคอมพิวเตอร์และแป้นพิมพ์) เมื่อฉันเปิดใช้งานอีกครั้ง ฉันได้ดูฟอรัมมากมายและฉันพบว่ามีไฟล์บลูทู ธ บางส่วนที่ขาดหายไป:

/etc/default/bluetooth

/etc/init.d/bluetooth

/etc/bluetooth/hcid.conf

ในคำแนะนำที่ฉันพบทางออนไลน์ฉันต้องเปลี่ยนบางบรรทัดในไฟล์เหล่านี้ ฉันไม่สามารถทำได้เนื่องจากไม่มีอยู่จริง

ฉันขาดการพึ่งพาหรืออะไรบางอย่าง? ฉันได้ลองติดตั้ง Blueman แล้ว แต่นั่นก็ไม่ได้ช่วยอะไรเลย

ฉันใช้ Ubuntu 10.10 (ไม่ฝักใฝ่ฝ่ายใด)

โพสต์ต้นฉบับ: http://ubuntuforums.org/showthread.php?t=1643386&highlight=bluetooth

คำตอบ:


11

คำตอบนี้มาจากบทช่วยสอนที่เขียนโดย Andrew Martin ใน thetechdepo.com ดูลิงค์ด้านล่างสำหรับโพสต์ต้นฉบับอย่างไรก็ตามนี่เป็นการเขียนใหม่ทั้งหมด มันเขียนโดยเฉพาะสำหรับแป้นพิมพ์ apple แต่ฉันได้ใช้กับอุปกรณ์หลายเครื่องดังนั้นจึงไม่ใช่ apple หรือแป้นพิมพ์เฉพาะ เพียงทำตามคำแนะนำและคุณจะมีอุปกรณ์บลูทู ธ เชื่อมต่ออัตโนมัติใน Ubuntu

ไปที่การตั้งค่าระบบ> บลูทู ธ และทำตามคำแนะนำเพื่อเพิ่มอุปกรณ์บลูทู ธ ที่เชื่อมต่อใหม่ของคุณ

ทำตามคำแนะนำและป้อนรหัส PIN เมื่อมีการร้องขอจากนั้นหลังจากอุปกรณ์เชื่อมต่อและทำงานแล้วให้ปิดอุปกรณ์ ตอนนี้เข้าสู่ส่วนเชื่อมต่ออัตโนมัติ

เปิดเทอร์มินัลของคุณและป้อนคำสั่งต่อไปนี้:

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

คำสั่งสุดท้ายจะแสดงผลลัพธ์สำหรับอุปกรณ์ของคุณเช่น:

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

ติดตั้งแพ็คเกจใหม่เพื่อให้คุณเชื่อมต่อบลูทู ธ ผ่านทางบรรทัดคำสั่ง

$ sudo apt-get install bluez-compat

เมื่อเสร็จสิ้นตอนนี้คุณจะได้ติดตั้งโปรแกรม hidd ถึงจุดนี้ให้เปิดแป้นพิมพ์ของคุณแล้วป้อนคำสั่งต่อไปนี้ มันจะส่งออกที่อยู่ MAC ของแป้นพิมพ์ของคุณซึ่งคุณจะต้องคัดลอกและวางลงในคำสั่งที่ตามมาดังที่แสดงด้านล่าง:

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

ตอนนี้เราต้องสร้างไฟล์เริ่มต้นเพื่อเชื่อมต่ออุปกรณ์โดยอัตโนมัติเมื่อพีซีเริ่ม ผ่านทางสถานี ...

$ gedit ~/.keyboard.sh

ป้อนข้อความต่อไปนี้แทน AA: BB: CC: DD: EE: FF พร้อม ID ฮาร์ดแวร์ที่คุณเห็นด้านบน สุดท้ายให้บันทึกไฟล์

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

ตอนนี้สร้างไฟล์เริ่มต้นใหม่ แทนที่ "keyboard" สำหรับชื่ออุปกรณ์ใด ๆ ที่คุณเลือก นี่เป็นเพียงชื่อของไฟล์

$ sudo gedit /etc/init.d/keyboard

วางต่อไปนี้ซึ่งบอกให้ Ubuntu ของคุณเรียกใช้ไฟล์ที่คุณเพิ่งสร้างเมื่อเริ่มต้น

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

exit 0

ตอนนี้ตั้งค่าการอนุญาตไฟล์ทั้งสองให้เรียกใช้ผ่านเทอร์มินัล

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

รีสตาร์ทคอมพิวเตอร์และอุปกรณ์ของคุณควรเชื่อมต่ออัตโนมัติและทำงานได้โดยไม่ต้องทำอะไรเลย

ฉันหวังว่านี่จะช่วยคนไม่กี่คนฉันใช้เวลานานในการหาทางออกให้กับปัญหาของฉันและฉันต้องการที่จะทำให้การกวดวิชานี้ลึกเข้าไปในเว็บมากขึ้น

การเชื่อมโยงเดิมสามารถพบได้ที่นี่


ฉันเชื่อว่าตอนนี้ hidd ไม่ได้รับการสนับสนุนจาก bluez 4.0 เพื่อประโยชน์ของ udev ตาม /usr/share/docs/bluez/NEWS.Debian.gz แต่ฉันไม่สามารถหาเอกสารใด ๆ เกี่ยวกับวิธีการที่ไม่มี Bluez-compat
tu-Reinstate Monica-dor duh

3

ฉันลองใช้คำตอบของ ryandlf ด้วยตัวเอง แต่พบการตั้งค่าง่าย ๆ ซึ่งในที่สุดก็จะทำงานเดียวกัน

แนวคิดหลักคือเมื่ออุปกรณ์ระยะไกลจับคู่และเชื่อถือได้hcitool spinqจะเริ่มสอบถามรายละเอียดเพิ่มเติมเป็นระยะซึ่งจะช่วยให้ทุกอุปกรณ์ที่มีเชื่อมต่อ

ก่อนอื่นให้เริ่มsudo Bluetoothctl -aและทำตามขั้นตอนด้านล่าง สิ่งเหล่านี้มาจากArchLinux wikiแต่พิสูจน์แล้วว่าทำงานได้เหมือนกันใน Ubuntu เช่นกัน

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

คำสั่งสุดท้ายจะแสดงคีย์บอร์ดบลูทู ธ ที่มีอยู่ทั้งหมด (กำลังรอการจับคู่)

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

โปรดทราบว่าที่อยู่ของแป้นพิมพ์ของคุณและดำเนินการต่อด้วย

[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

ตอนนี้ใส่สคริปต์ง่ายๆนี้เข้าไป /etc/init.d/keyboard

#! /bin/sh
sudo hcitool spinq
exit 0

จากนั้นดำเนินการเหล่านี้

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

แค่นั้นแหละ. ตอนนี้เมื่อใดก็ตามที่คุณเปิดแป้นพิมพ์บลูทู ธ มันจะเชื่อมต่อกับ Linux โดยอัตโนมัติ


$ sudo update-rc.d keyboard defaults insserv: script keyboard is not an executable regular file, skipped!sudo chmod +x /etc/init.d/keyboardเพื่อแก้ปัญหาผมดำเนินการ sudo update-rc.d keyboard defaultsแล้วฉันจะดำเนินการ คำเตือนที่ได้รับ: insserv: warning: script 'keyboard' missing LSB tags and overrides.
orschiro

เกี่ยวกับsudo service keyboard enableอะไร
orschiro

chmod +xใช่คุณได้ทำถูกต้องด้วย
Ch.Idea

ข้อผิดพลาดที่หายไปของแท็ก LSB สามารถถูกละเว้นได้และไม่สำคัญมากในงานนี้ หากคุณต้องการค้นหาโดย googling และวางที่ด้านบนของไฟล์ พวกมันอยู่ในรูปแบบที่เรียบง่าย
Ch.Idea

1

ฉันมีปัญหาคล้ายกันมากกับแป้นพิมพ์ Apple BlueTooth ฉันซื้อมันเพราะฉันชอบความรู้สึกของกุญแจ อย่างไรก็ตามฉันไม่สามารถเชื่อมต่อได้ ปัญหาดูเหมือนจะอยู่ในการระบุแป้นพิมพ์ เมื่อมันถูกจับคู่กับคอมพิวเตอร์ MAC จริงซึ่งมีชื่อจริงฉันก็ไม่มีปัญหาอีกต่อไปที่จะเชื่อมต่อกับ Linux หรือ Windows ตอนนี้ภรรยาของฉันใช้มันโดยไม่มีปัญหา

ฉันไม่ทราบวิธีการนี้สามารถ transposed ในสถานการณ์ของคุณ แต่นี่อาจเป็นจุดเริ่มต้น จากเพื่อนคนอื่น ๆ ดูเหมือนว่าการระบุอุปกรณ์เป็นปัญหาหลักที่นี่


1

ตั้งแต่bluez 5.35 (กันยายน 2015) ก็ควรจะเพียงพอที่จะปรับเปลี่ยนการตั้งค่าไฟล์โดยการเปิดใช้/etc/bluetooth/main.confAutoEnable=true

หากต้องการจับคู่อุปกรณ์ใหม่จากเทอร์มินัล (สมมติว่า01:02:03:04:05:06เป็นที่อยู่ mac ของอุปกรณ์ที่คุณพยายามจับคู่):

$ 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

ใช่ส่วนที่ไว้วางใจคือสิ่งที่สร้างความแตกต่างสำหรับฉันที่จะสามารถเชื่อมต่ออัตโนมัติเมื่อเริ่มต้น
p1l0t

0

ฉันซื้อแป้นพิมพ์บลูทู ธ และลงที่นี่ที่นี่และลองทำในสิ่งที่ ryandlf และสิ่งที่ Ch.Idea แนะนำ มันไม่ทำงาน หลังจากการวิเคราะห์และการทดลองฉันพบชุดค่าผสมนี้:

ก่อนอื่นตามที่คนแนะนำให้ลองเชื่อมต่ออุปกรณ์ด้วยตนเองจาก GUI ตรวจสอบให้แน่ใจว่ามันใช้งานได้ จากนั้นตัดการเชื่อมต่อแล้วปิด เราจะเริ่มต้นใหม่ด้วยตนเองแล้ว

รับสิทธิ์รูท:

su

แล้ว:

hcitool scan

และกดปุ่มหรืออะไรก็ได้บนอุปกรณ์พร้อมกันและตรวจสอบให้แน่ใจว่ามันถูกค้นพบ หากค้นพบควรพิมพ์ที่อยู่ของมันเช่น 20: 73: 00: 01: 90: 65 และคำอธิบายของอุปกรณ์เช่นแป้นพิมพ์บลูทู ธ คว้าที่อยู่นั้นไปที่คลิปบอร์ด

ต่อไปเราพร้อมที่จะเชื่อมต่อ ทุกคนทั่วอินเทอร์เน็ตซ่อนความร้อนมากที่สุดซึ่งไม่ถูกต้องเหมือนอย่างที่มันเป็นปัจจุบันไม่ได้อีกต่อไป นั่นเป็นเหตุผลที่ฉันไม่สามารถทำงานนี้ได้นานนัก ... หลังจากมองดู hcitool ฉันพบคำสั่งที่มีประโยชน์มากมายและไม่จำเป็นต้องใช้ dbus หรืออะไรก็ตาม ดังนั้นในการเชื่อมต่อเราจึงออก:

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

และนั่นคือมัน

การทดลองแสดงให้เห็นว่ามันเชื่อมต่อใหม่โดยอัตโนมัติเมื่อฉันปิดอุปกรณ์ชั่วคราว

ส่วนที่ 2

ฉันยังสร้างบริการตามที่คนแนะนำในคำตอบอื่น ๆ ก่อนอื่นฉันสร้างไฟล์ /etc/init.d/keyboard พร้อมเนื้อหานี้:

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

จากนั้นเป็นราก:

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

แค่นั้นแหละ. หวังว่ามันจะช่วย

โอ้และมันก็เป็น Debian 9

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.