ฉันจะกำหนดค่า WakeOnUSB อย่างถูกต้องได้อย่างไร


13

ฉันจะกำหนดค่าWake-On-USBบนอูบุนตู 10.04 หรือ 10.10 ได้อย่างถูกต้อง (2.6.36 ขึ้นไปถ้าจำเป็น) (Wake-On-USB คือเมื่อคอมพิวเตอร์อยู่นอนหลับและตัวอย่างเหตุการณ์ USB คีย์บอร์ดตื่นขึ้นเครื่อง!) โน๊ตบุ๊คเป็นAcer Aspire Timeline X 1830T ฉันไม่รู้ว่า Linux Kernel รองรับคอนโทรลเลอร์อย่างไร

มีวิธีที่แตกต่างกันในการเข้าถึงสิ่งนี้เช่น / proc / acpi / wakeup ... หรือ UDEV ... หรือบางอย่างกับ HAL?

/proc/acpi/wakeup แสดงอุปกรณ์ทุกตัวใน S4 แต่ฉันต้องการ S3

Device S-state Status Sysfs node
P0P2 S4 *disabled
PEGP S4 *disabled
P0P1 S0 *disabled pci:0000:00:1e.0
EHC1 S4 *disabled pci:0000:00:1d.0
USB1 S4 *enabled
USB2 S4 *disabled
USB3 S4 *disabled
USB4 S4 *disabled
EHC2 S4 *disabled pci:0000:00:1a.0
USB5 S4 *disabled
USB6 S4 *disabled
USB7 S4 *disabled
HDEF S0 *disabled pci:0000:00:1b.0
RP01 S5 *disabled pci:0000:00:1c.0
PXSX S5 *disabled pci:0000:01:00.0
RP02 S0 *disabled pci:0000:00:1c.1
PXSX S5 *disabled pci:0000:02:00.0
RP03 S0 *disabled
PXSX S5 *disabled
RP04 S0 *disabled
PXSX S5 *disabled
RP05 S0 *disabled
PXSX S5 *disabled
RP07 S0 *disabled
PXSX S5 *disabled
RP08 S0 *disabled
PXSX S5 *disabled
GLAN S0 *disabled
PEG3 S4 *disabled
PEG5 S4 *disabled
PEG6 S4 *disabled
SLPB S3 *enabled
  • S4, ซึ่งเป็น Suspend-To-Disk afaik ... ดูเหมือนจะไม่ทำงานถ้าฉันก้อง USB1 ลงในตาราง Wakeup แค่ตั้งค่าธง S4
  • ฉันจะรับพอร์ต USB เป็น S3 ได้ไหม

ฉันต้องการทำให้เครื่องปลุกจาก Suspend-To-Ram (S3, ACPI standard) ในกรณีที่กดแป้นบนแป้นพิมพ์ภายนอกของฉัน มันจะกลับมาทำงานต่อเมื่อมีการกดคีย์บนแป้นพิมพ์แล็ปท็อปภายใน ... จาก Suspend To Ram ดูเหมือนว่าถ้าฉันเสียบเมาส์ USB แล้วว่าพอร์ต USB นั้นไม่ได้ใช้พลังงานเลย ฉันไม่มีตัวเลือก BIOS เพื่อเปลี่ยนแปลงสิ่งนี้

ข้อมูลเฉพาะเพิ่มเติมเกี่ยวกับอุปกรณ์:

usb-devices
T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 13 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=04d9 ProdID=1603 Rev=03.10
S: Manufacturer=
S: Product=USB Keyboard
C: #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=01 Driver=usbhid
I: If#= 1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid

root@underwater-laptop:/# lsusb
[...]
Bus 001 Device 013: ID 04d9:1603 Holtek Semiconductor, Inc.
Bus 001 Device 004: ID 0bda:0138 Realtek Semiconductor Corp.
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[...]

หากวิธีนี้ใช้ไม่ได้ฉันต้องอธิบายอย่างถูกต้องว่าทำไม :( - แต่ฉันคิดว่ามันยากที่จะวิจัยเคอร์เนลภายในนี้คำแนะนำใด ๆ สำหรับข้อมูลที่ดีที่นี่ฉันหวังว่ามันจะเป็นไปได้ ... ฉันแค่มองหาวิธีแก้ปัญหา .

แก้ไข: สิ่งนี้ตื่นขึ้นมาบน USB ทำงานบน Windows!

ขอบคุณมาก Marius


1
ถ้าอย่างที่คุณบอกว่าคุณไม่มีตัวเลือก BIOS ในการส่งสัญญาณของพอร์ต USB ภายนอกและหากอุปกรณ์ USB ภายนอกไม่สามารถจ่ายไฟได้ (ดูสมเหตุสมผลสำหรับโน้ตบุ๊กที่ใช้แบตเตอรี) - สิ่งนี้จะทำงานได้อย่างไรในโลก Ubuntu ไม่มีเวทย์ในการทำเช่นนี้
Takkat

มันทำงานบน Windws ดังนั้นฉันจึงคิดว่ามีตัวเลือกให้ส่งธงเฉพาะไปที่ HW ;) ฉันมีความคิด Top Gun เมื่อพูดถึงฮาร์ดแวร์และ Linux: ทุกคนสามารถบินเครื่องบินขนส่งและรัน Windows ได้ แต่มีเพียงไม่กี่คนเท่านั้นที่สามารถบินเครื่องบินรบและรัน Linux;)
Wishi

โอ้ใช่ Top Gun: ทุกคนสามารถพัง Windows ได้ แต่การทำลีนุกซ์เป็นงานที่ยากมากที่จะทำ ;-) หากการปลุกบน LAN ทำงานร่วมกับ Windows อุปกรณ์ USB ของคุณจะทำงานอย่างแน่นอน (อาจอยู่ในโหมดประหยัดพลังงาน)
Takkat

คำตอบ:


4

ดูเหมือนว่ามีบางอย่างผิดปกติกับตาราง ACPI ของระบบเนื่องจากไม่มีอุปกรณ์ USB * เชื่อมต่อกับบัส PCI

บนแล็ปท็อปของฉันเมื่อฉันเสียบแป้นพิมพ์ USB ของฉันฉันจะเห็นเส้นทาง pci 0000: 00: 1d.0ในdmesgผลลัพธ์:

input: ... as /devices/pci0000:00/0000:00:1d.0/usb6/6-2/6-2.3/6-2.3:1.0/input/input14

จากตรงนั้นฉันสามารถหาชื่ออุปกรณ์ ACPI /proc/acpi/wakeupและสะท้อนในเพื่อเปิดใช้งาน:

USB0  S3 enabled  pci:000:00:1d.0

ฉันจะสมมติว่าเนื่องจากการทำแผนที่ของ pci bus ไปยังอุปกรณ์ ACPI ขาดหายไปสำหรับระบบของคุณมันจะไม่สามารถทำงานได้ คุณอาจต้องเริ่มการดีบัก DSDT เพื่อให้ได้มากขึ้น http://acpi.sourceforge.net/dsdt/index.php


1

ฉันพบใน Ubuntu Lucid 10.04.3 กับ 2.6.32-37 ว่าการใช้/proc/acpi/wakeupไม่มีค่า ดูเหมือน/sysเป็นสิ่งเดียวที่สำคัญ

usb-wakeupสคริปต์ของฉันที่เชื่อมโยงด้านล่างนี้นำ/sysต้นไม้กลับด้านเพื่อเปิดใช้งานอุปกรณ์ usbhid หรือแป้นพิมพ์และเมาส์ นอกจากนี้ยังเปิดใช้งานฮับแม่และตัวควบคุม นี่คือสิ่งที่ฉันต้องใช้เพื่อให้มันทำงานได้ กฎ udev ทริกเกอร์สคริปต์ขณะบู๊ตและเมื่อเสียบอุปกรณ์ usbhid ใด ๆ

สคริปต์ udev ต้องการให้สคริปต์ทำงาน/usr/local/sbinและตรวจสอบให้แน่ใจว่าสคริปต์นั้นทำงานchmod 755 /usr/local/sbin/usb-wakeupได้


1

ใช้ lsusb เพื่อรับรหัสผลิตภัณฑ์และผู้จำหน่ายของอุปกรณ์ usb ของคุณ:

Bus 004 Device 002: ID 0458:002e KYE Systems Corp. (Mouse Systems)

ในกรณีของฉันเมาส์ที่มี ID 0458: 002e คุณจะสร้างกฎ udev ใหม่:

sudo nano /etc/udev/rules.d/90-keyboardwakeup.rules

ใส่รหัสนี้และแทนที่ idVendor และ idProduct ด้วยรหัสที่ถูกต้องจาก lsusb

SUBSYSTEM=="usb", ATTRS{idVendor}=="0458", ATTRS{idProduct}=="002e" RUN+="/bin/sh -c 'echo enabled > /sys$env{DEVPATH}/../power/wakeup'"

รีบูตและทดสอบ ทดสอบในวันที่ 11.04 และ 12.04 (อาจใช้ได้กับเวอร์ชั่นที่ต่ำกว่า) ฉันพบคำตอบในโพสต์ฟอรัมนี้(คำตอบจากederopaa )


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