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.