LAN9512 비활성화


35

LAN9512는 이더넷 및 USB 포트를 제어하는 ​​하드웨어 장치입니다. 이 칩은 거의 200mA를 소비하며 USB 또는 이더넷이 필요하지 않을 때 에너지를 절약하기 위해 비활성화하는 것이 매우 유용합니다. LAN9512 데이터 시트는 에너지 절약을위한 장치의 일부 상태를 설명합니다. 이러한 모드는 SUSPEND2, SUSPEND1 및 SUSPEND0입니다. 따라서 가능할 것 같습니다.

이미 부분적인 해결책을 찾았습니다.

  • echo 0x0 > /sys/devices/platform/bcm2708_usb/buspower효과적으로 장치를 비활성화 echo 0x1하고 동일한 파일로 다시 깨 웁니다 . 그러나 장치가 중지되고 특정 횟수만큼 시작되면 다음에 운영 체제를 다시 부팅 할 때까지 장치가 다시 켜지지 않습니다.

LAN9512를 비활성화하고 다시 안정적으로 시작하는 방법이 있습니까? (LAN9512를 제어하는 ​​일부 드라이버를 다시로드 할 수 있습니까?)

자극

라즈베리 파이 모델 B가 유휴 상태 일 때 400mA를 소비합니다. 스트레스를 받으면 470mA. LAN9512가 비활성화되면 유휴 상태에서 200mA를 소비하고 260mA 스트레스를받습니다.

기타

  • LAN9512를 비활성화하고 USB 장치를 마운트하여 활동 및 재부팅을 확인하는 스크립트를 사용하여 "버스 파워"를 통해 칩을 비활성화하는 기능을 테스트했습니다. 지금까지 raspberry pi는 오류없이 9222 번 재부팅되었습니다.
  • echo 1 > /sys/devices/platform/bcm2708_usb/bussuspendLAN9512를 비활성화하지만 echo 0동일한 파일을 수행 할 때 다시 깨우지 않습니다 . 비활성화하면 라즈베리 파이가 최대 4의로드 평균을보고하는 속도가 매우 느려집니다.

1
그냥 호기심; 위 명령 중 하나를 사용하여 비활성화하면 전력 소비가 감소합니까?
— Gerben

2
예! buspower 및 bussuspend 파일 모두 소비 전력 200mA를 줄입니다. 라즈베리 파이가 유휴 상태 일 때 400mA를 소비합니다. 스트레스를 받으면 470mA. 칩을 비활성화하면 유휴 상태에서 200mA, 스트레스시 260mA가 소비됩니다.
— aleixrocks

정말 좋아요 감사합니다. 도와 드릴 수 없어서 죄송합니다
— Gerben

궁금한 점 : USB와 이더넷을 비활성화하면 wakeup 명령을 어떻게 보내나요? cron-job 또는 수면 후?
— Moshe Katz

나는 단순성을 위해 수면을 선호합니다. 디버깅하는 동안 "echo 0x0> / sys / devices / platform / bcm2708_usb / buspower; sleep 2; echo 0x1> / sys / devices / platform / bcm2708_usb / buspower; sleep 30; reboot"를 사용합니다. 따라서 USB가 깨어나지 않으면 자동으로 다시 시작됩니다. "sleep 2"는 하드웨어가 반응 할 시간을주는 것입니다.
— aleixrocks

답변:


7

내 자신의 실험을 한 후 실험을 위해 다음을 수행했습니다.

멀티 미터를 통한 5V USB-TTL / 디버그 케이블.

전원과 네트워크 만 연결된 상태에서 로그인 화면에서 정상 부팅은 약 420-380Ma입니다.

나는 먼저 네트워킹을 껐다 /etc/init.d/networking stop가 칩을 켜고 echo 0 > /sys/devices/platform/bcm2708_usb/buspower실제로 ~ 240Ma로 내려갔습니다.

나는 또한 구글 핑에 실패했습니다! (어느 것이 좋니)

그런 다음 1을 버스 전원으로 반향하고 네트워크 시작 명령을 실행하여 다시 켭니다. 그리고 다시 한번 나는 약 370-420ma로 돌아갔다. Pinging Google이 작동했습니다.

그런 다음 이것을 반복되는 SH 파일에 넣고 재부팅 할 필요없이 10 회 이상 지속되었습니다. 당신의 명령에서 나는 당신이 reboot 명령을 넣은 것에 관계없이 매번 재부팅하는 것을 볼 수있었습니다.

테스트 코드 는 자동 재부팅 코드의 @ Ubuntu Paste에서 찾을 수 있습니다 .

그런 다음 간단히 중지하고 시작할 수 있습니다. 첫 번째 부분은 중지 명령으로, 두 번째 부분은 시작 명령으로 수행 할 수 있습니다.

나는 또한이 @ 내 블로그 의 전체 쓰기를했다


그것은 단지 문제입니다. LAN9512가 작동을 멈추기 때문에 조만간 재부팅해야합니다. 재부팅 할 필요가없는 솔루션을 찾고 있습니다. (내 스크립트에 나는 때마다 재부팅하는 경우에만 키보드 정지 작업, 바로 재부팅 전에 수동으로 스크립트를 죽일 그것은 키보드가 나는 + C Ctrl 키와 함께 죽일 수 작동 시도하기 때문에 그렇지 않을 경우, 그것은 단지 재부팅..)
— aleixrocks

내가 말했듯이 네트워크 핑을 위해 하나씩 작동하는 일정한 루프에서 결국 50 회 이상 테스트했습니다. 키보드를 다시 연결해야하거나 USB를 재설정해야합니까? 다른 사람들이 말했듯이 그것은 그것을 위해 설계된 것이 아닙니다. 그것이 보너스가 될 수 있다면. 따라서 모델 A의 이유 중 하나
— Ryan Walmsley

필자의 경우 스크립트를 실행할 때마다 10 루프를 넘지 않습니다. USB를 다시 연결하려고 시도했지만 여전히 작동하지 않습니다. 왜이 차이가 내 라즈베리 파이인지 모릅니다. 다른 누군가가 더 노력할 수 있다면 그것은 위대 할 것입니다.
— aleixrocks

3

LAN9512 트로프를 비활성화 및 활성화하는 기능 :

  • echo 0x0> / sys / devices / platform / bcm2708_usb / buspower (비활성화)
  • echo 0x1> / sys / devices / platform / bcm2708_usb / buspower (활성화)

최신 커널에서 디버깅되었으며 수정없이 완벽하게 작동합니다. 테스트 할 스크립트를 몇 개 만들었습니다.

첫 번째 목적은 소프트웨어 기능을 통해 비활성화를 테스트하는 것입니다. 이 스크립트는 LAN9512를 비활성화하고 USB 장치를 마운트하려고합니다. 가능하면 테스트에 실패합니다. 그렇지 않은 경우 테스트가 성공합니다. 마지막으로 재부팅하고 다시 시작하십시오. 이 스크립트는 4 일 동안 실행되었으며 raspbian 2013-9-25에서 실패없이 8039 재부팅을보고했습니다.

두 번째 스크립트는 활성화 기능을 테스트하기위한 것입니다. 우선, 스크립트는 LAN9512를 비활성화합니다. 그런 다음 파이가 휴식을 취하기 위해 몇 초 기다립니다. 다음으로 LAN9512를 활성화하고 마지막으로 "lsusb"명령을 실행합니다. 모든 USB 장치가 나열됩니다. 커널이 모든 USB 장치를 인식 할 수 있으면 LAN9512가 다시 작동하는 것입니다. 그렇지 않으면 테스트가 실패한 것입니다. 이 테스트는 일주일 내내 진행되었으며 raspbian 2013 년 1 월 25 일에서 raspbian 2013 년 1 월 25 일 및 5374 번 루프에서 7209 개의 루프가 오류없이보고되었습니다.

커널 및 펌웨어

라즈 비안 2014-1-7 :

커널 : Linux raspberrypi 3.10.25+ # 622 PREEMPT 1 월 3 일 금요일 18:41:00 GMT 2014 armv6l GNU / LINUX 펌웨어 : b00bb3ae73bd2799df0e938b7a5f17f45303fb53 (깨끗한) (릴리스)

라즈 비아 어 2013-9-25

커널 : Linux raspberrypi 3.6.11+ # 538 PREEMPT 8 월 30 일 금요일 20:42:08 BST 2013 armv61 GNU / LINUX 펌웨어 : 4f9d19896166f46a3255801bc1834561bf092732 (깨끗한) (릴리스)


"LAN9512 비활성화 및 활성화 기능은 최신 커널에서 디버깅되었습니다." 수천 번의 휴면 / 깨우기주기를 허용하는 커널 및 펌웨어를보고 할 수 있습니까? 감사! 좀 더 잠들 수있는 Pi를 향한 진전에 관심이 있습니다!
— Tai Viinikka

1

위의 답변은 제공되었을 때 정확했지만 2015 년에 Raspbian이 변경 한 후 관심있는 사용자가 관련 컨트롤을 찾아야했습니다.

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

사용자 Adrian에게 감사합니다! https://raspberrypi.stackexchange.com/users/37611/adrian


안녕 타이! 관심있는 사용자를위한 참고 자료를 제공해 주시겠습니까? 어떤 라즈베리 파이를 사용하고 있습니까?
— aleixrocks
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.