เป็นไปได้หรือไม่ที่จะปิดไฟ LED ของโน้ตบุ๊กชั่วคราว? (HDD พลังงานการชาร์จ)


10

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

ฉันมี LED สำหรับ CAPS, NUM และ WiFi ซึ่งปิดอยู่แล้ว แต่เมื่อมันมืดมันน่ารำคาญมากเมื่อ LED แสดงสถานะการใช้ HDD กะพริบตลอดเวลา
นอกจากนี้ยังมีไฟ LED สีน้ำเงิน / แดงที่ส่องสว่างอย่างต่อเนื่องและไฟแสดงการชาร์จที่ฉันต้องการปิด

ดังนั้นฉันต้องการเขียนสคริปต์ที่ปิดใช้งาน (และอีกอันหนึ่งที่เปิดใช้งาน) LEDs เหล่านั้นหากเป็นไปได้ พวกเขาถูกควบคุมโดยซอฟต์แวร์หรือฮาร์ดแวร์? แล็ปท็อปของฉันอาจเป็นรุ่นที่ไม่มีชื่ออายุประมาณ 10 ปี (MaxData Pro 6100 iw) มันทำงานบน Ubuntu 14.10 (Utopic Unicorn)


4
เทปพันสายไฟสีดำ?
oldfred

@oldfred หากฉันสนใจวิธีแก้ปัญหาแบบนั้นฉันจะโพสต์คำถามลงในLifehacks ! ไม่ฉันต้องการโซลูชันซอฟต์แวร์ถ้าเป็นไปได้ ฉันยังมีสคริปต์ที่ปิดหน้าจอด้วยทางลัดและฉันต้องการเพิ่มคำสั่งลงในนั้นด้วย
ผู้บัญชาการไบต์

2
ความเข้าใจของฉันคือไฟแต่ละดวงเหล่านี้มีการจัดการแยกต่างหากโดยไดรเวอร์ที่แตกต่างกัน มีเกือบแน่นอนไม่มี "หนึ่งขนาดเหมาะกับทุกโซลูชัน"
เซท

ฉันสามารถรันคำสั่งจำนวนมากซึ่งไม่ใช่ปัญหา ฉันจะมีความสุขกับ LED ทุกตัวที่ฉันสามารถควบคุมได้ด้วยตนเอง ... :-)
ผู้บัญชาการ Byte

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

คำตอบ:


5

LED บางตัวเป็นฮาร์ดแวร์เท่านั้นและไม่มีวิธีการเปลี่ยนสถานะโดยทางโปรแกรม

คนที่สามารถควบคุมได้สามารถเข้าถึงได้ผ่านทางระบบแฟ้มเสมือนที่sysfs/sys/class/leds/

ไม่ว่าจะเป็น LED เฉพาะสามารถควบคุมได้ทางโปรแกรมหรือไม่ขึ้นอยู่กับฮาร์ดแวร์เฉพาะ ตัวอย่างเช่นเครื่องเดสก์ท็อปของฉันมีไฟ LED ไม่กี่ตัว แต่ดูเหมือนว่ามันจะไม่สามารถควบคุมได้ ฉันได้ทดลองกับแล็ปท็อปสองเครื่องและในขณะที่มีรายการไม่กี่รายการ/sys/class/leds/ฉันไม่สามารถควบคุมสถานะของ LED ได้ซึ่งหมายความว่าฉันคิดว่าไดรเวอร์เคอร์เนลบางตัวไม่อนุญาตให้ควบคุมด้วยตนเอง ไฟ LED ให้อินเตอร์เฟซแบบอ่านอย่างเดียว นี่คือสิ่งที่ฉันพยายามไม่มีผล:

# cd /sys/class/leds/
# ls
ath9k-phy0
# cd ./ath9k-phy0
# ls
brightness  device  max_brightness  power  subsystem  trigger  uevent
# cat ./trigger 
[none] AC-online BAT0-charging-or-full BAT0-charging BAT0-full BAT0-charging-blink-full-solid usb-gadget usb-host cpu0 cpu1 rfkill1 phy0rx phy0tx phy0assoc phy0radio phy0tpt rfkill4 
# echo 'AC-online' > ./trigger 
# cat ./trigger 
none [AC-online] BAT0-charging-or-full BAT0-charging BAT0-full BAT0-charging-blink-full-solid usb-gadget usb-host cpu0 cpu1 rfkill1 phy0rx phy0tx phy0assoc phy0radio phy0tpt rfkill4 
# echo 'none' > ./trigger 
# echo 'phy0rx' > ./trigger 
# echo 'none' > ./trigger 
# cat ./trigger 
[none] AC-online BAT0-charging-or-full BAT0-charging BAT0-full BAT0-charging-blink-full-solid usb-gadget usb-host cpu0 cpu1 rfkill1 phy0rx phy0tx phy0assoc phy0radio phy0tpt rfkill4 
# cat ./brightness 
0
# cat ./max_brightness 
255
# echo 255 > ./brightness 

ในทางทฤษฎีแล้วสิ่งที่คล้ายกับที่กล่าวมานี้ช่วยให้คุณสามารถควบคุมไฟ LED ที่ได้รับการสนับสนุนโดยเคอร์เนลไดรเวอร์สำหรับฮาร์ดแวร์เฉพาะ หากไม่มีการสนับสนุนสำหรับการควบคุม LED เฉพาะในเคอร์เนลแล้วสั้น ๆ ของการเขียนโมดูลเคอร์เนลมีไม่มากที่คุณสามารถทำได้

นี่คือข้อมูลเพิ่มเติมเกี่ยวกับหัวเรื่องที่ superuser

นี่คือแหล่งที่มาที่ดีที่สุด: เอกสารเคอร์เนล


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