빌드루트 제로 파워 무선

빌드루트 제로 파워 무선

Raspberry Pi Zero W의 빌드 루트에서 Wi-Fi를 사용하는 사람이 있나요? 온라인 메모나 연습을 찾을 수 없습니다.

이것라즈베리 파이 0_defconfig합리적으로 잘 작동하지만 무선 기능은 포함되지 않습니다.

저는 최신 버전의 buildroot인 2017-08을 사용하고 있습니다. rpi-wifi-firmware를 추가했습니다. WiFi 네트워크에 연결하는 데 필요한 최소 소프트웨어 패키지는 무엇입니까?

답변1

또한 RPi Zero W에 대한 "최소 무선"을 찾기 위해 buildroot를 사용하려고 시도했기 때문에 이 Q&A가 검색 결과에서 상위에 올랐습니다. 원래 답변이 어느 정도 도움이 되었지만 확실히 최선의 답변은 아니므로 제가 찾은 내용을 공유할 가치가 있다고 생각했습니다.

빌드루트 사용 2018.02.2

make raspberrypi0_defconfig

구성을 정리하세요. 그 다음에(메뉴 구성하기그리고) 다음을 선택하세요대상 패키지:

Hardware Handling -> Firmware -> rpi-wifi-firmware
Networking applications -> wpa_supplicant
Networking applications -> wpa_supplicant - Enable 80211 support

필요한 다른 모든 항목은 이미 미리 선택되어 있어야 합니다.

그럼 안으로/etc/네트워크/인터페이스

auto wlan0
iface wlan0 inet dhcp
  pre-up wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B
  post-down killall -q wpa_supplicant

그리고/etc/wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
ap_scan=1

network={
   ssid="My WLAN"
   psk="my_wlan_password"
}

이제 우리는 여전히 비밀 요소를 놓치고 있습니다: 네트워크 초기화 스크립트가 시작되기 전에 Wi-Fi 드라이버를 로드해야 합니다.할 수 있다 WCHAR 지원 활성화(Toolchain-Menu에서)유데프~처럼/개발 관리(시스템 구성 - 메뉴) 드라이버 로딩을 자동으로 처리합니다. 실제로 UBS 장치를 RPi에 연결하는 경우 이렇게 하는 것이 좋습니다...

...그렇지 않은 경우 수정해 주세요./etc/inittab그리고모드 프로브 brcmfmacrc 스크립트를 직접 실행하기 전에:

...
# Load Wifi driver
::sysinit:/sbin/modprobe brcmfmac 

# now run any rc scripts
::sysinit:/etc/init.d/rcS
...

그게 다야.


업데이트 2022.03.21. 최신 buildroot를 사용하면 git://git.buildroot.net/buildroot몇 가지 변경 사항이 있는 것 같습니다 .

  1. rpi-wifi-firmware이름이 바뀌었고 brcmfmac-sdio-firmware-rpi-wifi하드웨어 처리에서 찾을 수 있습니다.brcmfmac_sdio-firmware-rpi
  2. 라인은 ctrl_interface=/var/run/wpa_supplicantwpa_supplicant.conf이상 유효하지도 필요하지도 않은 것 같습니다(작동한 경우).

또한 SSH를 통해 Wi-Fi에 액세스해야 하는 경우 더 빠른 무작위 생성기 초기화를 위해 OpenSSH이를 페어링해야 한다는 사실도 발견했습니다. haveged그렇지 않으면 부팅 시간이 몇 분 정도 걸릴 수 있습니다!

직접 헤드리스 액세스를 위해 보드를 완전히 준비하고 위의 모든 사항을 고려하기 위해 Wi-Fi 설정에서 SSH 구성까지 필요한 모든 구성을 처리하는 rpi-wifi 패키지를 사용하여 외부 빌드 루트 라이브러리를 만들었습니다.

rpi-wifi는 내 buildroot-externals 저장소에 있습니다.

답변2

잘못된 /etc/network/interfaces 및/또는 /etc/wpa_supplicant가 범인인 것으로 밝혀졌습니다. 저는 빌드 사이에 추가 패키지를 추가해 왔기 때문에 이것이 필요한지 100% 확신할 수는 없지만, 그럼에도 불구하고 제가 포함시킨 것은 다음과 같습니다.

하드웨어 처리 Hardware Handling -> Firmware -> linux-firmware -> Broadcom BRCM bcm43xxx Hardware Handling -> Firmware -> rpi-firmware (extended 'x' firmware) Hardware Handling -> Firmware -> Install DTB overlays Hardware Handling -> Firmware -> rpi-wifi-firmware Hardware Handling -> dbus Hardware Handling -> dbus-glib

인터넷 신청 Networking applications -> dhcpd Networking applications -> ifupdown scripts Networking applications -> iproute2 Networking applications -> iptables Networking applications -> wireless-tools (+install shared lib) Networking applications -> wpa_supplicant Networking applications -> wpa_supplicant - Enable 80211 support Networking applications -> wpa_supplicant - Enable EAP Networking applications -> wpa_supplicant - Install wpa_cli binary Networking applications -> wpa_supplicant - Install wpa_client shared library Networking applications -> wpa_supplicant - Install wpa_passphrase binary

WiFi 네트워크와 관련된 다른 카테고리는 없다고 생각합니다.

/etc/네트워크/인터페이스 auto lo iface lo inet loopback allow-hotplug wlan0 iface wlan0 inet manual wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

/etc/wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant update_config=1 network={ ssid="OpenWrt" psk=<your psk key here> }

부팅 후 다음을 실행합니다. wpa_supplicant -B -i wlan0 -W -D nl80211, wext -c /etc/wpa_supplicant.conf wpa_cli -B -i wlan0 -p /var/run/wpa_supplicant -a /sbin/wpa_action dhcpcd -q -w

Linux가 내장되어 있기 때문에 부팅 후 네트워크가 제대로 시작되기를 원하며 먼저 시작해야 할 몇 가지 중요한 사항이 있습니다. 그래서 출시 후 스크립트 어딘가에 추가하겠습니다. 시작 시 인터페이스가 시작되도록 하려면 시작 프로세스의 어딘가에 추가하십시오. 나는 이것을 이 질문의 범위를 넘어서는 것으로 간주할 것입니다.

따라서 이것은 효과가 있고 완벽하지는 않지만 나처럼 막힌 사람에게는 좋은 출발점이 될 것입니다. 언급된 모든 패키지가 최소 패키지이고 /sbin/wpa_action이 존재하지 않는 것은 확실하지만 무시하면 대화형 모드가 됩니다. 이 답변을 더 잘 이해하게 되면 답변을 개선하겠습니다. 제안을 환영합니다!

관련 정보