Buildroot Zero-W sem fio

1

Alguém tem WiFi trabalhando em buildroot para o Raspberry Pi Zero W? Não consigo encontrar anotações ou orientações on-line sobre isso.

O raspberrypi0_defconfig funciona razoavelmente bem, mas não inclui wireless.

Estou usando a última iteração do buildroot, 2017-08. Eu adicionei o rpi-wifi-firmware. Quais pacotes são necessários no mínimo para se conectar a uma rede WiFi?

    
por svenema 04.10.2017 / 21:52

2 respostas

0

Descobriu-se que um incorreto / etc / network / interfaces e / ou / etc / wpa_supplicant era o culpado. Entre os builds eu tenho adicionado pacotes adicionais, então não tenho 100% de certeza se são todos necessários, mas de qualquer forma, esses são os que eu incluí:

Manipulação de hardware 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

Aplicativos de rede 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

Não acredito que outras categorias sejam relevantes para a rede Wi-Fi.

/ etc / network / interfaces 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> }

Depois da inicialização, corro: 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

Eu quero que a rede surja bem depois da inicialização, já que é um linux embutido e algumas coisas mais importantes precisam ser iniciadas primeiro. Portanto, vou adicioná-lo a algum script de inicialização de postagem em algum lugar. Se você quer ter sua interface na inicialização, adicione-os ao seu processo de inicialização em algum lugar. Vou considerar isso fora do escopo desta questão.

Então, isso funciona, não é perfeito, mas será um bom ponto de partida para aqueles que, como eu, lutaram. Eu tenho certeza que nem todos os pacotes mencionados são o mínimo, também / sbin / wpa_action não existe, mas ao sair, você entrará no modo interativo. Eu estarei refinando esta resposta uma vez que eu tenha uma melhor compreensão dela. Sugestões são bem vindas!

    
por 05.10.2017 / 15:19
2

Eu também tentei encontrar o "mínimo sem fio" para o RPi Zero W usando buildroot, então este Q & A ficou bem alto nos resultados da pesquisa. Embora a resposta original tenha sido um pouco útil, ela definitivamente não é a melhor, então acho que valeria a pena compartilhar minhas próprias descobertas:

Usando o buildroot 2018.02.2

make raspberrypi0_defconfig

para limpar sua configuração. Então ( make menuconfig e) selecione o seguinte em Pacotes de destino :

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

Tudo o que é necessário já deve estar pré-selecionado.

Então, em / etc / network / interfaces

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

e em /etc/wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
ap_scan=1

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

e agora ainda estamos perdendo o ingrediente secreto: o driver wifi deve ser carregado antes dos init-scripts de rede entrarem. Você pode Habilitar suporte a WCHAR (em Toolkit - menu) para ter eudev como / dev management (no menu de configuração do sistema) que iria automaticamente tratar do carregamento do driver. Na verdade eu recomendo isso se você for conectar dispositivos UBS ao seu RPi ....

... mas se não, edite / etc / inittab e modprobe brcmfmac você mesmo antes dos scripts rc serem executados:

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

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

É isso.

    
por 07.06.2018 / 21:37