Vô hiệu hóa LAN9512


35

LAN9512 là thiết bị phần cứng điều khiển cổng Ethernet và USB. Con chip này tiêu thụ gần 200mA và sẽ rất hữu ích để vô hiệu hóa nó để tiết kiệm năng lượng khi tôi không cần USB hoặc Ethernet. Bảng dữ liệu LAN9512 giải thích một số trạng thái của thiết bị để tiết kiệm năng lượng - các chế độ này là SUSPEND2, SUSPEND1 và SUSPEND0. Do đó, nó dường như là có thể.

Tôi đã tìm thấy một giải pháp một phần:

  • echo 0x0 > /sys/devices/platform/bcm2708_usb/buspowersẽ vô hiệu hóa thiết bị một cách hiệu quả và đánh thức lại thiết bị với echo 0x1cùng một tệp. Tuy nhiên, một khi thiết bị đã bị dừng và bắt đầu một số lần nhất định, nó sẽ không thức dậy nữa cho đến khi khởi động lại hệ điều hành tiếp theo.

Có một phương pháp để vô hiệu hóa LAN9512 và bắt đầu lại một cách đáng tin cậy không? (Có lẽ tôi có thể tải lại một số trình điều khiển LAN9512 không?)

Động lực

Khi một mô hình pi mâm xôi B không hoạt động, nó tiêu thụ 400 mA. Khi nó căng thẳng, 470mA. Khi LAN9512 bị vô hiệu hóa, nó tiêu thụ 200mA khi không hoạt động và nhấn mạnh 260mA.

Khác

  • Tôi đã kiểm tra tính khả thi của việc vô hiệu hóa chip thông qua "buspower" bằng cách sử dụng tập lệnh vô hiệu hóa LAN9512, cố gắng gắn thiết bị usb để kiểm tra hoạt động và khởi động lại. Cho đến hiện tại, pi mâm xôi đã khởi động lại 9222 lần mà không gặp lỗi.
  • echo 1 > /sys/devices/platform/bcm2708_usb/bussuspendVô hiệu hóa LAN9512 Nhưng sẽ không đánh thức lại khi thực hiện echo 0cùng một tệp. Sau khi vô hiệu hóa nó, pi mâm xôi cực kỳ chậm báo cáo trung bình tải lên tới 4.

1
Chỉ vì tò mò; Tiêu thụ điện năng có giảm khi bạn tắt nó, sử dụng một trong các lệnh trên không?
Gerben

2
Vâng! Cả hai tập tin buspower và bussuspend đều giảm mức tiêu thụ 200mA. Khi một quả mâm xôi pi không hoạt động, nó tiêu thụ 400 mA. Khi nó căng thẳng, 470mA. Với chip bị vô hiệu hóa, nó tiêu thụ 200mA khi không hoạt động và nhấn mạnh 260mA.
aleixrocks

Thực sự tốt đẹp. Cảm ơn bạn. Xin lỗi tôi không thể giúp mặc dù
Gerben

Chỉ tò mò: nếu bạn tắt USB và Ethernet, làm thế nào để bạn gửi lệnh đánh thức? Với một công việc định kỳ hay sau một giấc ngủ?
Moshe Katz

Tôi thích ngủ cho đơn giản. Trong khi gỡ lỗi, tôi sử dụng "echo 0x0> / sys / thiết bị / nền tảng / bcm2708_usb / buspower; ngủ 2; echo 0x1> / sys / thiết bị / nền tảng / bcm2708_usb / buspower; ngủ 30; khởi động lại". Do đó, nếu USB không thức dậy, nó sẽ tự động khởi động lại. "Ngủ 2" chỉ là để dành thời gian cho phần cứng phản ứng.
aleixrocks

Câu trả lời:


7

Sau khi thực hiện một số thử nghiệm của riêng tôi, tôi đã làm như sau để thử nghiệm:

Cáp USB đến TTL / Gỡ lỗi với 5V qua đồng hồ vạn năng.

Khởi động bình thường ở màn hình đăng nhập chỉ với nguồn và mạng được kết nối là khoảng 420-380Ma

Lần đầu tiên tôi tắt mạng thông qua /etc/init.d/networking stopvà sau đó là chip echo 0 > /sys/devices/platform/bcm2708_usb/buspowervà thực sự nó đã giảm xuống ~ 240Ma

Tôi cũng có thể ping thành công google! (Cái nào tốt)

Sau đó tôi bật lại bằng cách lặp lại 1 với nguồn điện xe buýt và chạy lệnh khởi động mạng. Và một lần nữa tôi đã trở lại khoảng 370-420ma. Ping google sau đó làm việc.

Sau đó tôi đặt tệp này vào một tệp SH đã lặp và nó tồn tại hơn 10 lần mà không cần phải khởi động lại. Trong lệnh của bạn, tôi có thể thấy nó khởi động lại mọi lúc bất kể điều gì do bạn đặt lệnh khởi động lại.

Mã cho bài kiểm tra có thể được tìm thấy @ Ubuntu Paste của mã khởi động lại tự động.

Điều này sau đó có thể đơn giản được sử dụng để dừng lại và bắt đầu. Bạn có thể thực hiện phần đầu tiên của nó dưới dạng lệnh dừng và phần thứ hai là lệnh bắt đầu.

Tôi cũng đã viết đầy đủ về điều này @ Blog của tôi


Đó chỉ là vấn đề. Sớm hay muộn, bạn cần khởi động lại vì LAN9512 ngừng hoạt động. Tôi đang tìm kiếm một giải pháp không cần phải khởi động lại. (Trên kịch bản của tôi, tôi khởi động lại mỗi lần chỉ khi làm việc bàn phím dừng, bởi vì ngay trước khi khởi động lại tôi đã cố gắng để giết bằng tay kịch bản Nó bàn phím làm việc tôi có thể giết nó với ctrl + c Nếu không, nó chỉ khởi động lại..)
aleixrocks

Cũng giống như tôi đã nói, tôi đã thử nghiệm nó hơn 50 lần trong một vòng lặp liên tục với mỗi vòng lặp hoạt động cho ping mạng. Có lẽ bàn phím chỉ cần cắm lại hoặc USB cần đặt lại? Giống như những người khác đã nói nó không được thiết kế cho nó. Nếu nó có thể là một phần thưởng. Do đó, một trong những lý do cho Mô hình A
Ryan Walmsley

Trong trường hợp của tôi, nó kéo dài không quá 10 vòng trong tất cả các lần tôi thực hiện tập lệnh của bạn. Tôi đã thử cắm lại USB và vẫn không hoạt động. Không biết tại sao sự khác biệt này có thể là pi mâm xôi của tôi. Sẽ thật tuyệt nếu người khác có thể thử.
aleixrocks

3

Tính năng vô hiệu hóa và kích hoạt máng LAN9512:

  • echo 0x0> / sys / thiết bị / nền tảng / bcm2708_usb / buspower (tắt)
  • echo 0x1> / sys / thiết bị / nền tảng / bcm2708_usb / buspower (enable)

Đã được gỡ lỗi trên các hạt nhân mới hơn và hiện đang hoạt động hoàn hảo mà không cần sửa đổi. Tôi đã thực hiện một vài kịch bản để kiểm tra nó.

Mục đích của việc đầu tiên là kiểm tra việc vô hiệu hóa thông qua tính năng phần mềm. Tập lệnh vô hiệu hóa LAN9512 và cố gắng gắn thiết bị USB. Nếu nó có thể, thì thử nghiệm thất bại. Nếu không thì thử nghiệm thành công. Cuối cùng khởi động lại và bắt đầu lại. Kịch bản đã chạy được bốn ngày và đã báo cáo 8039 lần khởi động lại mà không gặp sự cố trên raspbian 2013-9-25.

Kịch bản thứ hai có nghĩa là để kiểm tra tính năng kích hoạt. Trước hết, tập lệnh vô hiệu hóa LAN9512. Sau đó đợi vài giây để cho pi nghỉ ngơi. Tiếp theo, nó kích hoạt LAN9512 và cuối cùng nó cố gắng thực thi lệnh của lsusb. Nó liệt kê tất cả các thiết bị USB. Nếu hạt nhân có thể nhận ra tất cả các thiết bị USB, thì LAN9512 đang hoạt động trở lại. Nếu không, thử nghiệm đã thất bại. Bài kiểm tra đã được thực hiện trong một tuần và báo cáo 7209 vòng không có lỗi trên raspbian 2013-9-25 và 5374 vòng trên raspbian 2014-1-7.

Nhân và phần cứng

Trên raspbian 2014-1-7:

kernel: Linux raspberrypi 3.10.25+ # 622 PREEMPT Thứ Sáu, ngày 3 tháng 1 lúc 18 giờ 41 phút GMT 2014 firmware firmware GNU / LINUX: b00bb3ae73bd2799df0e938b7a5f17f45303fb53 (sạch)

Trên mâm xôi 2013-9-25

kernel: Linux raspberrypi 3.6.11+ # 538 PREEMPT Thứ Sáu, ngày 30 tháng 8 20:42:08 BST 2013 armv61 GNU / LINUX firmware: 4f9d19896166f46a3255801bc1834561bf092732 (sạch) (phát hành)


"Tính năng vô hiệu hóa và kích hoạt LAN9512 đã được gỡ lỗi trên các hạt nhân mới hơn." Bạn có thể báo cáo kernel và firmware nào bạn đã thấy cho phép hàng ngàn chu kỳ ngủ / thức thành công không? Cảm ơn! Tôi quan tâm đến tiến trình hướng tới một Pi dễ ngủ hơn!
Tai Viinikka

1

Những câu trả lời trên là chính xác khi được đưa ra, nhưng một thời gian trong năm 2015, Raspbian đã thực hiện các thay đổi và người dùng quan tâm phải tìm kiếm các điều khiển có liên quan.

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

Cảm ơn người dùng của tôi! https://raspberrypi.stackexchange.com/users/37611/adrian


Chào tài! Bạn có thể cung cấp một số tài liệu tham khảo cho người dùng quan tâm? Mà bạn đang sử dụng pi mâm xôi?
aleixrocks
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.