ฉันจะตื่นจากโหมดสลีปโดยใช้แป้นพิมพ์บลูทู ธ ได้อย่างไร


8

ฉันมี Mac book pro และ Henge dock แท่นวางไม่มีอะไรมากไปกว่าอุปกรณ์เสริมที่ให้คุณเสียบอุปกรณ์ได้ง่าย ๆ เพื่อให้คุณสามารถ "เชื่อมต่อ" MBP ของคุณได้ ฉันยังมีคีย์บอร์ดไร้สายของ Apple แป้นพิมพ์เป็นบลูทู ธ

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

ดังนั้นฉันจะปลุก Mac Book Pro จากโหมดสลีปโดยใช้แป้นพิมพ์บลูทู ธ (แป้นพิมพ์แบบไร้สายของ Apple) หรือไม่ให้บังคับให้เชื่อมต่อใหม่เมื่อเครื่องดำเนินการต่อเพื่อให้ฉันสามารถพิมพ์รหัสผ่านได้

นี่คือรายละเอียดฮาร์ดแวร์ของฉัน

Mac Book Pro 6.2 (ฉันรู้ว่าปกติแล้วจะไม่ทำงาน แต่เป็นแพลตฟอร์มฮาร์ดแวร์แบบปิด)

อุปกรณ์ 001 บัส 008: รหัส 050d: 0017 ส่วนประกอบ Belkin B8T017 Bluetooth + EDR 2.1
อุปกรณ์ 001 บัส 007: รหัส 05ac: 8218 Apple, Inc. ตัวควบคุมโฮสต์บลูทู ธ ของ Apple

รุ่น Linux

Linux macbook 3.5.0-22-generic #34-Ubuntu SMP

Ubuntu 12.10

สิ่งที่ฉันได้ทำ:

จับคู่คีย์บอร์ด Apple Wireless ของฉันกับ Ubuntu

สิ่งที่ฉันคาดหวัง:

เมื่อฉันบดแป้นบนคีย์บอร์ดไร้สายของ Apple ระบบจะตื่นจากการหลับ

เกิดอะไรขึ้น:

เมื่อฉันบดแป้นบนคีย์บอร์ดไร้สายของ Apple ไม่มีอะไร .....

สิ่งที่ฉันคาดหวังจากคำตอบที่ยอมรับได้:

วิธีที่จะทำให้เป็นเช่นนั้นเมื่อฉันใส่รหัสแป้นพิมพ์แบบไร้สายของ Apple ของฉันคอมพิวเตอร์ของฉันตื่นจากโหมดสลีปและฉันสามารถดำเนินการต่อได้ในวันคอมพิวเตอร์ของฉัน

ของหมายเหตุ:

ฉันมักจะเกลียดที่เห็นสิ่งนี้และบอกว่ามัน แต่ .... มันใช้งานได้ใน Mac OS X และใน Windows ดังนั้นฉันรู้ว่าฮาร์ดแวร์สามารถทำสิ่งนี้ได้

คำตอบ:


7

สิ่งที่ฉันพบ

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

อย่างแรกวิทยุ Bluetooth ใน MBP คืออุปกรณ์ "USB" นี่เป็นเรื่องปกติในแล็ปท็อปและแม้แต่บางเดสก์ทอป เนื่องจากการที่ Linux ปฏิบัติต่อมันเป็นอุปกรณ์ USB และคุณสามารถกำหนดค่าให้เหมาะสม

ประการที่สองวิทยุ Bluetooth มีสองโหมดโหมด HID โดยเป็น "โปรไฟล์" พื้นฐานมากสำหรับแป้นพิมพ์และเมาส์เท่านั้น โหมดนี้เป็นสิ่งที่ช่วยให้คุณใช้แป้นพิมพ์ก่อนที่จะมีแอปพลิเคชันที่จัดการอุปกรณ์บลูทู ธ ตัวอย่างเช่นเมื่อคุณใช้แป้นพิมพ์บลูทู ธ ในเมนูด้วงนั่นคือโหมด HID แล็ปท็อปและแป้นพิมพ์ของคุณยังคงต้องจับคู่ แต่พวกเขาสามารถทำงานในระดับที่ต่ำมากนี้โดยไม่มีปัญหาหรือการแทรกแซง (อีกครั้งเมื่อจับคู่) อย่างไรก็ตามโหมด HID นั้นมี จำกัด มากและบางอย่างจะไม่ทำงาน เช่นระดับแบตเตอรี่ของแป้นพิมพ์จะไม่ทำงาน นอกจากนี้ในโหมด HID ฉันมีช่วงเวลาที่ยากลำบากกับปุ่มฟังก์ชั่นและปุ่มสื่อ (บนแป้นพิมพ์นี้พวกเขาเป็นปุ่มเดียวกันและสามารถสลับโดยซอฟต์แวร์)

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

ในที่สุด Linux, Ubuntu, Bluez หรือบางคนดูเหมือนว่าคิดว่าตัวควบคุมบลูทู ธ ทั้งหมดควรทำงานในโหมด HCI นี่อาจเป็นค่าเริ่มต้นที่มีสติเพราะแม้คีย์บอร์ดนี้จะมีข้อ จำกัด มากในโหมด HID และสิ่งอื่นนอกเหนือจากเมาส์และคีย์บอร์ดธรรมดา (เช่นโทรศัพท์มือถือหรือชุดหัว) จะต้องใช้โหมด HCI อย่างไรก็ตามโหมด HCI ต้องการซอฟต์แวร์ที่ทำงานเต็มรูปแบบและไม่สามารถเรียกใช้ในขณะที่แล็ปท็อปถูกระงับ / หลับ / ปิด ดังนั้นโดยค่าเริ่มต้นเมื่อแล็ปท็อปของคุณนอนมันจะตัดการเชื่อมต่อแป้นพิมพ์ของคุณและหยุดฟัง

ขั้นตอนจริงเพื่อให้มันทำงาน

ขั้นตอนที่ 0: วิธีแก้ปัญหา

เมื่อฉันทำสิ่งนี้ฉันรู้สึกหงุดหงิดมากกับความจริงที่ว่าฉันไม่สามารถทำอะไรเพื่อแก้ไขปัญหาได้ คุณไม่สามารถทำอะไรได้เลยเมื่อแล็ปท็อปหลับและอย่างน้อยที่สุดกับ Mac Book Pros คุณจะไม่สามารถปิดฝาเครื่องได้หากไม่เข้านอน ดังนั้นซ้ายของคุณกับสถานการณ์ที่ทั้งวิดีโอไม่ทำงาน (เพราะมันจะไปที่จอภาพภายนอกของคุณที่ไม่ได้เสียบปลั๊กเมื่อไม่ได้เสียบ) หรือคุณสามารถเห็นทุกอย่าง แต่ไม่มีแป้นพิมพ์ (เพราะมันไม่ทำงาน / จับคู่ / อะไรก็ตามและ ภายในไม่สามารถเข้าถึงได้) หากต้องการหลีกเลี่ยงสิ่งนี้คุณควรหลีกเลี่ยง ใช้แป้นพิมพ์เสมือนจริงที่หน้าจอเข้าสู่ระบบของ LDM หากคุณตื่นขึ้นมาพร้อมรับคำเตือนรหัสผ่านคุณควรจะสามารถคลิกสลับผู้ใช้จากนั้นใช้แป้นพิมพ์เสมือนเพื่อเข้าสู่ระบบ ตราบใดที่คุณเข้าสู่ระบบในฐานะผู้ใช้รายเดียวกันเซสชันของคุณจะไม่สูญหาย ที่กล่าวว่าฉันจะไม่

ขั้นตอนที่ 1: จับคู่คีย์บอร์ดของคุณล่วงหน้า

ในขณะที่ฉันกำลังทดสอบฉันสังเกตเห็นว่าต้องมีขั้นตอนนี้ อย่างไรก็ตามฉันไม่เข้าใจว่าทำไม Apple ทำสิ่งแปลก ๆ ดังนั้นฉันจะปล่อยมันไป

  1. รีเซ็ต PRAM / NVRAM ของคุณ วิธีนี้จะล้างการตั้งค่า OS X ปัจจุบันของคุณและอาจไม่จำเป็น แต่ควรเริ่มทำความสะอาด เว็บไซต์การสนับสนุนแอปเปิ้ลมีคำแนะนำ คุณไม่จำเป็นต้องรีเซ็ต PMU
  2. เริ่มหรือรีสตาร์ทเป็น OS X และจับคู่คีย์บอร์ดของคุณตามปกติ ฉันขอแนะนำให้ปิดอุปกรณ์บลูทู ธ อื่น ๆ ทั้งหมดของคุณและมุ่งเน้นไปที่คีย์บอร์ดของคุณ จากสิ่งที่ฉันสามารถบอกได้ว่าสิ่งนี้จะเก็บข้อมูลบางอย่างไว้ใน NVRAM และแป้นพิมพ์ทั้งหมดเพื่อสื่อสารกับแล็ปท็อปที่ใช้พลังงานต่ำ
  3. คลิกที่ขั้นสูง (ใน OS X เมื่อจับคู่แล้ว) และทำเครื่องหมาย "อนุญาตให้อุปกรณ์บลูทู ธ ปลุกคอมพิวเตอร์" เว็บไซต์สนับสนุน Apple อีกครั้งมีคำแนะนำ
  4. รีสตาร์ทคอมพิวเตอร์ใน Linux ที่ ReFIT / GRUB / ในขณะที่การบูทแป้นพิมพ์ควรจะทำงานได้ดี

ขั้นตอนที่ 2: การให้ Linux ทำงานกับแป้นพิมพ์

ด้วยเหตุผลบางอย่างแป้นพิมพ์จะหลวมมันจับคู่ในขณะที่คุณเข้าสู่ระบบ อาจเป็นเพราะคอนโทรลเลอร์บลูทู ธ เปลี่ยนเป็นโหมด HCI ในการแก้ไขปัญหานี้คุณต้องจับคู่ใน Linux วิธีนี้จะเป็นการหยุดการจับคู่ที่คุณทำในขั้นตอนที่ 1 แต่จะไม่หยุดโหมด HID เมื่อแล็ปท็อปปิดเครื่องหรือบูตเครื่อง ที่กล่าวว่าเมื่อคุณรีบูตแป้นพิมพ์ของคุณจะไม่ทำงานจนกว่าสแต็คบลูทู ธ ของคุณจะทำงานอีกครั้งในโหมด HCI นี่เป็นเพราะแป้นพิมพ์กำลังพยายามพูดในโหมด HCI แต่ไม่มีใครฟัง หากคุณปิดเครื่องและรอการเชื่อมต่อหมดเวลาแป้นพิมพ์จะทำงานอีกครั้งในโหมด HID

  1. ติดตั้ง bluez-compat โดยใช้sudo apt-get install bluez-compatสิ่งนี้จะช่วยให้คุณจับคู่ได้อย่างง่ายดาย หากไม่มีตัวจัดการบลูทู ธ ก็ล้มเหลวสำหรับฉัน
  2. จับคู่คีย์บอร์ดของคุณกับ Linux ตามปกติ เรียกใช้Bluetoothจาก Unity Dash แล้วคลิกเครื่องหมายบวก วางคีย์บอร์ดของคุณในโหมดจับคู่ (กดปุ่มเปิด / ปิดบนคีย์บอร์ด Apple Wireless) และทำตามคำแนะนำ ควรจับคู่ค่อนข้างราบรื่น ณ จุดนี้แป้นพิมพ์ของคุณควรทำงานได้ดีใน Linux และยังส่งสัญญาณไปยังตัวควบคุม HID เมื่อแล็ปท็อปหลับ

ขั้นตอนที่ 3: การบอก Linux จำเป็นต้องตื่นขึ้นมา

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

  1. ติดตั้งการอ้างอิงบางอย่าง sudo apt-get install notify-send zenity
  2. ดาวน์โหลดudev สคริปต์ต่อและคัดลอกไปยัง / usr / local / sbin / enable-wakeup
  3. ดาวน์โหลดสคริปต์การเลือกอุปกรณ์และคัดลอกไปยัง / usr / local / sbin / select-resume-devices
  4. ทำให้สคริปต์ปฏิบัติการ: และchmod a+x /usr/local/sbin/select-resume-deviceschmod a+x /usr/local/sbin/enable-wakeup
  5. รันด้วยการอนุญาตรูทของสคริปต์การเลือกอุปกรณ์ sudo /usr/local/sbin/select-resume-devices
  6. เลือกอย่างน้อยที่สุด "Apple, Inc. Bluetooth Host Controller", "Belkin Components B8T017 Bluetooth + EDR 2.1", "Apple Inc. คีย์บอร์ด / แทร็กแพดภายใน (ANSI)" ของ Apple Inc. และอุปกรณ์อื่น ๆ ที่คุณต้องการใช้เพื่อให้คอมพิวเตอร์ทำงานต่อ .
  7. คลิกตกลง
  8. ตรวจทานไฟล์ /etc/udev/rules.d/90-hid-wakeup-enable.rules และทำให้แน่ใจว่าเหมาะสม
  9. รีสตาร์ทคอมพิวเตอร์

ขั้นตอนที่ 4: การทดสอบและจับ

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

  1. เมื่อคอมพิวเตอร์อยู่ในโหมดสลีปจะค้นหาอุปกรณ์ HID ดังนั้นคีย์บอร์ดจึงเริ่มต้นในโหมด HID เมื่อคุณกลับมาทำงานต่อจากโหมดสลีป Linux จะมองหาอุปกรณ์ HCI แป้นพิมพ์ (ไม่ใช่แล็ปท็อป) จำเป็นต้องรีเซ็ตการเชื่อมต่อ สิ่งนี้จะเกิดขึ้นตามธรรมชาติหลังจากนั้นประมาณ 45 วินาที คุณสามารถบังคับได้โดยถอดแบตเตอรี่ออก แต่นั่นอาจทำให้การจับคู่เกิดความสับสน หากคุณไม่ได้ใช้แป้นพิมพ์เพื่อกลับมาทำงานต่อจากโหมดสลีปนี่ไม่ใช่ปัญหา
  2. เมื่อรีบูตเครื่องแป้นพิมพ์จะยังคงพยายามสื่อสารในโหมด HCI แต่แล็ปท็อปจะมองหาอุปกรณ์ HID เท่านั้น อีกครั้งหลังจากหมดเวลาแป้นพิมพ์จะได้รับมันและทำงานอย่างถูกต้องอีกครั้ง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.