ปิดการใช้งาน LAN9512


35

LAN9512 เป็นอุปกรณ์ฮาร์ดแวร์ที่ควบคุมพอร์ต Ethernet และ USB ชิปนี้กินเนื้อที่เกือบ 200mA และจะมีประโยชน์มากในการปิดการใช้งานเพื่อประหยัดพลังงานเมื่อฉันไม่ต้องการ USB หรืออีเธอร์เน็ต แผ่นข้อมูล LAN9512 อธิบายบางสถานะของอุปกรณ์เพื่อประหยัดพลังงาน - โหมดเหล่านี้ ได้แก่ SUSPEND2, SUSPEND1 และ SUSPEND0 ดังนั้นดูเหมือนว่าจะเป็นไปได้

ฉันได้พบวิธีแก้ปัญหาบางส่วนแล้ว:

  • echo 0x0 > /sys/devices/platform/bcm2708_usb/buspowerจะปิดการใช้งานอุปกรณ์อย่างมีประสิทธิภาพและปลุกอีกครั้งด้วยecho 0x1ไฟล์เดียวกัน อย่างไรก็ตามเมื่ออุปกรณ์หยุดทำงานและเริ่มทำงานตามจำนวนครั้งที่กำหนดอุปกรณ์จะไม่ปลุกอีกจนกว่าจะรีบูตระบบปฏิบัติการครั้งต่อไป

มีวิธีการปิดการใช้งาน LAN9512 และเริ่มต้นอีกครั้งอย่างน่าเชื่อถือ? (ฉันอาจจะโหลดไดรเวอร์บางตัวที่ควบคุม LAN9512 อีกครั้งได้ไหม)

แรงจูงใจ

เมื่อราสเบอร์รี่ pi รุ่น B ไม่ได้ใช้งานจะใช้ 400 mA เมื่อมันเครียด 470mA เมื่อปิดการใช้งาน LAN9512 จะใช้งาน 200mA เมื่อไม่ได้ใช้งานและมีการแจ้งเตือน 260mA

คนอื่น ๆ

  • ฉันได้ทดสอบความน่าเชื่อถือของการปิดใช้งานชิปผ่าน "buspower" โดยใช้สคริปต์ที่ปิดการใช้งาน LAN9512 พยายามติดตั้งอุปกรณ์ usb เพื่อตรวจสอบกิจกรรมและการรีบูต จนถึงขณะนี้ราสเบอร์รี่ pi รีบูต 9222 ครั้งโดยไม่มีข้อผิดพลาด
  • echo 1 > /sys/devices/platform/bcm2708_usb/bussuspendปิดใช้งาน LAN9512 แต่จะไม่ตื่นขึ้นมาอีกครั้งเมื่อทำecho 0ไปยังแฟ้มเดียวกัน หลังจากปิดใช้งาน raspberry pi จะรายงานช้ามากอย่างมากถึงค่าเฉลี่ยการโหลดสูงสุด 4

1
เพิ่งออกมาจากความอยากรู้; การใช้พลังงานลดลงหรือไม่เมื่อคุณปิดการใช้งานโดยใช้หนึ่งในคำสั่งด้านบน
Gerben

2
ใช่ ทั้งไฟล์ buspower และ bussuspend จะลดปริมาณการใช้ 200mA เมื่อราสเบอร์รี่ปี่ไม่ได้ใช้งานจะใช้ 400 mA เมื่อมันเครียด 470mA เมื่อปิดการใช้งานชิพจะใช้งาน 200mA เมื่อไม่ได้ใช้งานและเน้นที่ 260mA
aleixrocks

ดีจริงๆ. ขอบคุณ. ขออภัยฉันไม่สามารถช่วยได้
Gerben

แค่อยากรู้: ถ้าคุณปิดการใช้งาน USB และ Ethernet คุณจะส่งคำสั่ง wakeup ได้อย่างไร? ด้วยงาน cron หรือหลังการนอนหลับ?
Moshe Katz

ฉันชอบนอนเพื่อความเรียบง่าย ในขณะที่การดีบักฉันใช้ "echo 0x0> / sys / อุปกรณ์ / platform / bcm2708_usb / buspower; sleep 2; echo 0x1> / sys / อุปกรณ์ / แพลตฟอร์ม / bcm2708_usb / buspower; sleep 30; reboot" ดังนั้นหาก USB ไม่ตื่นขึ้นมาเครื่องจะรีสตาร์ทโดยอัตโนมัติ "sleep 2" เป็นเพียงการให้เวลากับฮาร์ดแวร์ในการตอบสนอง
aleixrocks

คำตอบ:


7

หลังจากทำการทดลองของฉันเองฉันได้ทำสิ่งต่อไปนี้เพื่อทดลอง:

สาย USB to TTL / Debug พร้อม 5V ผ่านมัลติมิเตอร์

การบู๊ตปกติที่หน้าจอเข้าสู่ระบบโดยมีเพียงพลังงานและการเชื่อมต่อเครือข่ายอยู่ที่ประมาณ 420-380Ma

ฉันปิดเครือข่ายครั้งแรกผ่าน/etc/init.d/networking stopชิปจากecho 0 > /sys/devices/platform/bcm2708_usb/buspowerนั้นก็ลงไปที่ ~ 240Ma

ฉันยังสามารถ ping google ไม่สำเร็จ (สิ่งไหนดี)

จากนั้นฉันก็เปิดมันอีกครั้งโดยการสะท้อน 1 ถึงกำลังของบัสและเรียกใช้คำสั่งเริ่มต้นของเครือข่าย และอีกครั้งที่ฉันกลับไปประมาณ 370-420ma ส่ง Ping ไปที่ google แล้ว

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

รหัสสำหรับการทดสอบสามารถพบได้ที่ @ Ubuntu Paste ของรหัสรีบูทอัตโนมัติ

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

ฉันได้เขียนบทความเต็มของ @ My Blog นี้


นั่นเป็นเพียงปัญหา ไม่ช้าก็เร็วคุณต้องรีบูตเพราะ LAN9512 หยุดทำงาน ฉันกำลังค้นหาโซลูชันที่ไม่จำเป็นต้องรีบูต (ในสคริปต์ของฉันฉันรีบูตทุกครั้งเฉพาะเมื่อแป้นพิมพ์หยุดทำงานเพราะก่อนที่จะรีบูตฉันพยายามที่จะฆ่าสคริปต์ด้วยตนเองมันแป้นพิมพ์ทำงานฉันสามารถฆ่ามันด้วย ctrl + c ถ้าไม่มันรีบูต)
aleixrocks

เช่นเดียวกับที่ฉันบอกว่าฉันทดสอบมันออกมาได้ดีกว่า 50 เท่าในตอนท้ายของลูปคงที่โดยแต่ละอันทำงานให้กับเครือข่าย ping บางทีแป้นพิมพ์อาจต้องต่อสายอีกครั้งหรือต้องการตั้งค่า USB ใหม่? เช่นเดียวกับคนอื่น ๆ บอกว่ามันไม่ได้ออกแบบมาสำหรับมัน ถ้ามันสามารถโบนัส ดังนั้นหนึ่งในเหตุผลสำหรับรุ่น A
Ryan Walmsley

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

3

คุณสมบัติการปิดใช้งานและเปิดใช้งานราง LAN9512:

  • echo 0x0> / sys / อุปกรณ์ / แพลตฟอร์ม / bcm2708_usb / buspower (ปิดใช้งาน)
  • echo 0x1> / sys / อุปกรณ์ / platform / bcm2708_usb / buspower (เปิดใช้งาน)

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

วัตถุประสงค์ของคนแรกคือการทดสอบการปิดการใช้งานผ่านคุณสมบัติซอฟต์แวร์ สคริปต์ปิดใช้งาน LAN9512 และพยายามเชื่อมต่ออุปกรณ์ USB หากสามารถทำได้การทดสอบก็จะล้มเหลว ถ้าไม่เช่นนั้นการทดสอบจะสำเร็จ ในที่สุดเริ่มต้นใหม่และเริ่มต้นอีกครั้ง สคริปต์ทำงานเป็นเวลาสี่วันและได้รายงานการรีบูต 8039 ครั้งโดยไม่มีความล้มเหลวใน raspbian 2013-9-25

สคริปต์ที่สองมีขึ้นเพื่อทดสอบคุณสมบัติการเปิดใช้งาน ก่อนอื่นสคริปต์จะปิดใช้งาน LAN9512 จากนั้นรอสักครู่เพื่อให้ส่วนที่เหลือ Pi ถัดไปจะเปิดใช้งาน LAN9512 และในที่สุดก็พยายามเรียกใช้คำสั่ง“ lsusb” มันแสดงรายการอุปกรณ์ USB ทั้งหมด หากเคอร์เนลสามารถรับรู้อุปกรณ์ USB ทั้งหมดได้แสดงว่า LAN9512 ทำงานได้อีกครั้ง ถ้าไม่การทดสอบล้มเหลว การทดสอบดำเนินไปตลอดสัปดาห์และรายงาน 7209 ลูปโดยไม่มีข้อผิดพลาดใน raspbian 2013-9-25 และ 5374 loops ใน raspbian 2014-1-7

เมล็ดและเฟิร์มแวร์

บน Raspbian 2014-1-7:

เคอร์เนล: Linux raspberrypi 3.10.25+ # 622 PREEMPT ศุกร์ 3 มกราคม 18:41:00 GMT 2014 armv6l เฟิร์มแวร์ GNU / LINUX: b00bb3ae73bd2799df0e938b7a5f17f45303fb53 (ทำความสะอาด) (รีลีส)

เกี่ยวกับราสเบียน 2013-9-25

เคอร์เนล: Linux raspberrypi 3.6.11+ # 538 PREEMPT ศุกร์ 30 สิงหาคม 20:42:08 BST 2013 armv61 เฟิร์มแวร์ GNU / LINUX: 4f9d19896166f46a3255801bc1834561bf092732 (ล้าง) (ปล่อย)


"คุณสมบัติการปิดใช้งานและเปิดใช้งาน LAN9512 ได้รับการแก้ไขในเคอร์เนลรุ่นใหม่" คุณสามารถรายงานว่าเคอร์เนลและเฟิร์มแวร์ตัวใดที่คุณเห็นว่าอนุญาตให้มีรอบการนอนหลับ / ปลุกที่สำเร็จนับพันครั้ง ขอบคุณ! ฉันสนใจที่จะก้าวไปสู่ ​​Pi ที่นอนหลับได้มากกว่า!
Tai Viinikka

1

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

Off:  echo 0x0 > /sys/devices/platform/soc/20980000.usb/buspower   
 On:  echo 0x1 > /sys/devices/platform/soc/20980000.usb/buspower

ขอบคุณเอเดรียผู้ใช้ของฉัน! https://raspberrypi.stackexchange.com/users/37611/adrian


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