สิ่งที่ฉันพบ
ฉันจะใช้เวลาอธิบายบางสิ่งที่ฉันค้นพบ สิ่งนี้จะช่วยให้ผู้คนเข้าใจว่าเหตุใดจึงเป็นกระบวนการที่ซับซ้อนและสิ่งที่พวกเขาสามารถทำได้เพื่อช่วยทำให้ดีขึ้นอย่างน้อยพวกเขา
อย่างแรกวิทยุ Bluetooth ใน MBP คืออุปกรณ์ "USB" นี่เป็นเรื่องปกติในแล็ปท็อปและแม้แต่บางเดสก์ทอป เนื่องจากการที่ Linux ปฏิบัติต่อมันเป็นอุปกรณ์ USB และคุณสามารถกำหนดค่าให้เหมาะสม
ประการที่สองวิทยุ Bluetooth มีสองโหมดโหมด HID โดยเป็น "โปรไฟล์" พื้นฐานมากสำหรับแป้นพิมพ์และเมาส์เท่านั้น โหมดนี้เป็นสิ่งที่ช่วยให้คุณใช้แป้นพิมพ์ก่อนที่จะมีแอปพลิเคชันที่จัดการอุปกรณ์บลูทู ธ ตัวอย่างเช่นเมื่อคุณใช้แป้นพิมพ์บลูทู ธ ในเมนูด้วงนั่นคือโหมด HID แล็ปท็อปและแป้นพิมพ์ของคุณยังคงต้องจับคู่ แต่พวกเขาสามารถทำงานในระดับที่ต่ำมากนี้โดยไม่มีปัญหาหรือการแทรกแซง (อีกครั้งเมื่อจับคู่) อย่างไรก็ตามโหมด HID นั้นมี จำกัด มากและบางอย่างจะไม่ทำงาน เช่นระดับแบตเตอรี่ของแป้นพิมพ์จะไม่ทำงาน นอกจากนี้ในโหมด HID ฉันมีช่วงเวลาที่ยากลำบากกับปุ่มฟังก์ชั่นและปุ่มสื่อ (บนแป้นพิมพ์นี้พวกเขาเป็นปุ่มเดียวกันและสามารถสลับโดยซอฟต์แวร์)
ถัดไปคุณจะต้องใช้แป้นพิมพ์เพื่อส่ง "บางสิ่ง" ไปยังแล็ปท็อป คุณต้องใช้แล็ปท็อปเพื่อรับ "บางอย่าง" จากนั้นคุณต้องผูกมันเข้าด้วยกันเพื่อให้แล็ปท็อปตื่นขึ้นมาจริงๆ
ในที่สุด Linux, Ubuntu, Bluez หรือบางคนดูเหมือนว่าคิดว่าตัวควบคุมบลูทู ธ ทั้งหมดควรทำงานในโหมด HCI นี่อาจเป็นค่าเริ่มต้นที่มีสติเพราะแม้คีย์บอร์ดนี้จะมีข้อ จำกัด มากในโหมด HID และสิ่งอื่นนอกเหนือจากเมาส์และคีย์บอร์ดธรรมดา (เช่นโทรศัพท์มือถือหรือชุดหัว) จะต้องใช้โหมด HCI อย่างไรก็ตามโหมด HCI ต้องการซอฟต์แวร์ที่ทำงานเต็มรูปแบบและไม่สามารถเรียกใช้ในขณะที่แล็ปท็อปถูกระงับ / หลับ / ปิด ดังนั้นโดยค่าเริ่มต้นเมื่อแล็ปท็อปของคุณนอนมันจะตัดการเชื่อมต่อแป้นพิมพ์ของคุณและหยุดฟัง
ขั้นตอนจริงเพื่อให้มันทำงาน
ขั้นตอนที่ 0: วิธีแก้ปัญหา
เมื่อฉันทำสิ่งนี้ฉันรู้สึกหงุดหงิดมากกับความจริงที่ว่าฉันไม่สามารถทำอะไรเพื่อแก้ไขปัญหาได้ คุณไม่สามารถทำอะไรได้เลยเมื่อแล็ปท็อปหลับและอย่างน้อยที่สุดกับ Mac Book Pros คุณจะไม่สามารถปิดฝาเครื่องได้หากไม่เข้านอน ดังนั้นซ้ายของคุณกับสถานการณ์ที่ทั้งวิดีโอไม่ทำงาน (เพราะมันจะไปที่จอภาพภายนอกของคุณที่ไม่ได้เสียบปลั๊กเมื่อไม่ได้เสียบ) หรือคุณสามารถเห็นทุกอย่าง แต่ไม่มีแป้นพิมพ์ (เพราะมันไม่ทำงาน / จับคู่ / อะไรก็ตามและ ภายในไม่สามารถเข้าถึงได้) หากต้องการหลีกเลี่ยงสิ่งนี้คุณควรหลีกเลี่ยง ใช้แป้นพิมพ์เสมือนจริงที่หน้าจอเข้าสู่ระบบของ LDM หากคุณตื่นขึ้นมาพร้อมรับคำเตือนรหัสผ่านคุณควรจะสามารถคลิกสลับผู้ใช้จากนั้นใช้แป้นพิมพ์เสมือนเพื่อเข้าสู่ระบบ ตราบใดที่คุณเข้าสู่ระบบในฐานะผู้ใช้รายเดียวกันเซสชันของคุณจะไม่สูญหาย ที่กล่าวว่าฉันจะไม่
ขั้นตอนที่ 1: จับคู่คีย์บอร์ดของคุณล่วงหน้า
ในขณะที่ฉันกำลังทดสอบฉันสังเกตเห็นว่าต้องมีขั้นตอนนี้ อย่างไรก็ตามฉันไม่เข้าใจว่าทำไม Apple ทำสิ่งแปลก ๆ ดังนั้นฉันจะปล่อยมันไป
- รีเซ็ต PRAM / NVRAM ของคุณ วิธีนี้จะล้างการตั้งค่า OS X ปัจจุบันของคุณและอาจไม่จำเป็น แต่ควรเริ่มทำความสะอาด เว็บไซต์การสนับสนุนแอปเปิ้ลมีคำแนะนำ คุณไม่จำเป็นต้องรีเซ็ต PMU
- เริ่มหรือรีสตาร์ทเป็น OS X และจับคู่คีย์บอร์ดของคุณตามปกติ ฉันขอแนะนำให้ปิดอุปกรณ์บลูทู ธ อื่น ๆ ทั้งหมดของคุณและมุ่งเน้นไปที่คีย์บอร์ดของคุณ จากสิ่งที่ฉันสามารถบอกได้ว่าสิ่งนี้จะเก็บข้อมูลบางอย่างไว้ใน NVRAM และแป้นพิมพ์ทั้งหมดเพื่อสื่อสารกับแล็ปท็อปที่ใช้พลังงานต่ำ
- คลิกที่ขั้นสูง (ใน OS X เมื่อจับคู่แล้ว) และทำเครื่องหมาย "อนุญาตให้อุปกรณ์บลูทู ธ ปลุกคอมพิวเตอร์" เว็บไซต์สนับสนุน Apple อีกครั้งมีคำแนะนำ
- รีสตาร์ทคอมพิวเตอร์ใน Linux ที่ ReFIT / GRUB / ในขณะที่การบูทแป้นพิมพ์ควรจะทำงานได้ดี
ขั้นตอนที่ 2: การให้ Linux ทำงานกับแป้นพิมพ์
ด้วยเหตุผลบางอย่างแป้นพิมพ์จะหลวมมันจับคู่ในขณะที่คุณเข้าสู่ระบบ อาจเป็นเพราะคอนโทรลเลอร์บลูทู ธ เปลี่ยนเป็นโหมด HCI ในการแก้ไขปัญหานี้คุณต้องจับคู่ใน Linux วิธีนี้จะเป็นการหยุดการจับคู่ที่คุณทำในขั้นตอนที่ 1 แต่จะไม่หยุดโหมด HID เมื่อแล็ปท็อปปิดเครื่องหรือบูตเครื่อง ที่กล่าวว่าเมื่อคุณรีบูตแป้นพิมพ์ของคุณจะไม่ทำงานจนกว่าสแต็คบลูทู ธ ของคุณจะทำงานอีกครั้งในโหมด HCI นี่เป็นเพราะแป้นพิมพ์กำลังพยายามพูดในโหมด HCI แต่ไม่มีใครฟัง หากคุณปิดเครื่องและรอการเชื่อมต่อหมดเวลาแป้นพิมพ์จะทำงานอีกครั้งในโหมด HID
- ติดตั้ง bluez-compat โดยใช้
sudo apt-get install bluez-compat
สิ่งนี้จะช่วยให้คุณจับคู่ได้อย่างง่ายดาย หากไม่มีตัวจัดการบลูทู ธ ก็ล้มเหลวสำหรับฉัน
- จับคู่คีย์บอร์ดของคุณกับ Linux ตามปกติ เรียกใช้
Bluetooth
จาก Unity Dash แล้วคลิกเครื่องหมายบวก วางคีย์บอร์ดของคุณในโหมดจับคู่ (กดปุ่มเปิด / ปิดบนคีย์บอร์ด Apple Wireless) และทำตามคำแนะนำ ควรจับคู่ค่อนข้างราบรื่น ณ จุดนี้แป้นพิมพ์ของคุณควรทำงานได้ดีใน Linux และยังส่งสัญญาณไปยังตัวควบคุม HID เมื่อแล็ปท็อปหลับ
ขั้นตอนที่ 3: การบอก Linux จำเป็นต้องตื่นขึ้นมา
ตอนนี้เราต้องบอก Linux ให้ตื่นถ้าอุปกรณ์บลูทู ธ ได้รับ "บางอย่าง" การทำเช่นนี้ค่อนข้างง่ายด้วยสคริปต์ที่ไซต์นี้ คำแนะนำพื้นฐานด้านล่าง แต่คุณควรอ่านเว็บไซต์หากมีสิ่งใดไม่ชัดเจน เกือบทั้งหมดนี้มาจากเว็บไซต์ที่เชื่อมโยง
- ติดตั้งการอ้างอิงบางอย่าง
sudo apt-get install notify-send zenity
- ดาวน์โหลดudev สคริปต์ต่อและคัดลอกไปยัง / usr / local / sbin / enable-wakeup
- ดาวน์โหลดสคริปต์การเลือกอุปกรณ์และคัดลอกไปยัง / usr / local / sbin / select-resume-devices
- ทำให้สคริปต์ปฏิบัติการ: และ
chmod a+x /usr/local/sbin/select-resume-devices
chmod a+x /usr/local/sbin/enable-wakeup
- รันด้วยการอนุญาตรูทของสคริปต์การเลือกอุปกรณ์
sudo /usr/local/sbin/select-resume-devices
- เลือกอย่างน้อยที่สุด "Apple, Inc. Bluetooth Host Controller", "Belkin Components B8T017 Bluetooth + EDR 2.1", "Apple Inc. คีย์บอร์ด / แทร็กแพดภายใน (ANSI)" ของ Apple Inc. และอุปกรณ์อื่น ๆ ที่คุณต้องการใช้เพื่อให้คอมพิวเตอร์ทำงานต่อ .
- คลิกตกลง
- ตรวจทานไฟล์ /etc/udev/rules.d/90-hid-wakeup-enable.rules และทำให้แน่ใจว่าเหมาะสม
- รีสตาร์ทคอมพิวเตอร์
ขั้นตอนที่ 4: การทดสอบและจับ
ทุกอย่างจะทำงานได้ดีในขณะที่คุณรีสตาร์ทคอมพิวเตอร์ เมื่อคุณกลับเข้าสู่ระบบให้คอมพิวเตอร์ของคุณอยู่ในโหมดสลีป กดแป้นบนคีย์บอร์ดของคุณและแล็ปท็อปควรกลับมาทำงานต่อ อย่างไรก็ตามมีจับไม่กี่
- เมื่อคอมพิวเตอร์อยู่ในโหมดสลีปจะค้นหาอุปกรณ์ HID ดังนั้นคีย์บอร์ดจึงเริ่มต้นในโหมด HID เมื่อคุณกลับมาทำงานต่อจากโหมดสลีป Linux จะมองหาอุปกรณ์ HCI แป้นพิมพ์ (ไม่ใช่แล็ปท็อป) จำเป็นต้องรีเซ็ตการเชื่อมต่อ สิ่งนี้จะเกิดขึ้นตามธรรมชาติหลังจากนั้นประมาณ 45 วินาที คุณสามารถบังคับได้โดยถอดแบตเตอรี่ออก แต่นั่นอาจทำให้การจับคู่เกิดความสับสน หากคุณไม่ได้ใช้แป้นพิมพ์เพื่อกลับมาทำงานต่อจากโหมดสลีปนี่ไม่ใช่ปัญหา
- เมื่อรีบูตเครื่องแป้นพิมพ์จะยังคงพยายามสื่อสารในโหมด HCI แต่แล็ปท็อปจะมองหาอุปกรณ์ HID เท่านั้น อีกครั้งหลังจากหมดเวลาแป้นพิมพ์จะได้รับมันและทำงานอย่างถูกต้องอีกครั้ง