-1

I am trying to build a working embedded system for Raspberry Pi Zero W with Buildroot. I'm testing it in QEMU for now. The system boots OK from sdcard.img, but the wifi drivers will not load. I am loading the wifi kernel module in an init script /etc/init.d/S39wifidrivers:

#!/bin/sh
# Load Wifi driver
printf "Loading Wifi Driver: "
/sbin/modprobe brcmfmac
[ $? = 0 ] && echo "OK" || echo "FAIL"

But on boot I get the error message:

modprobe: can't change directory to '4.4.34+'. No such file or directory

If I recompile using mdev instead of the above script, I get the same error. I'm also getting two other boot errors that might be related -

Starting network: Successfully initialized wpa_supplicant 
n180211: 'n180211' generic netlink not found
Failed to initialize driver 'n180211'
wlan0: Unsupported driver 'n180211'

And,

/bin/sh: can't access tty; job control turned off

Which prevents me from logging in to the getty. Any suggestions would be greatly appreciated, as I'm pretty far out of my depth here!

Here's my defconfig:

BR2_arm=y
BR2_arm1176jzf_s=y
BR2_CCACHE=y
BR2_KERNEL_HEADERS_4_4=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
BR2_ROOTFS_USERS_TABLES="../br-external/board/users.config"
BR2_ROOTFS_OVERLAY="../br-external/board/rootfs_overlay"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi0w/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi0w/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="--add-pi3-miniuart-bt-overlay"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,83b36f98e1a48d143f0b466fcf9f8c4e382c9a1c)/linux-83b36f98e1a48d143f0b466fcf9f8c4e382c9a1c.tar.gz"
BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2708-rpi-0-w"
BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_RPI_WIFI_FIRMWARE=y
BR2_PACKAGE_DNSMASQ=y
BR2_PACKAGE_OPENSSH=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="80M"
# BR2_TARGET_ROOTFS_TAR is not set
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MTOOLS=y

And my ../br-external/board/rootfs_overlay/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

And my ../br-external/board/users.config:

jez -1 jezgroup -1 =passwd /home/jez /bin/sh tty Comment

The output of ls output/target/lib/modules/:

4.14.95

I tried changing that to 4.4.34+ just to see what would happen and the modprobe error went away, but it was followed by other errors complaining about the same thing.

Thanks in advance!!!!!!

  • 1
    QEMU is out of scope here. Have you tried to run it on the Raspberry Pi Zero W? – Ingo May 26 at 11:07
1

In retrospect, this was a dumb question - trying to run an embedded Raspberry Pi OS on QEMU is not supported. Those who run Raspbian on QEMU use a custom kernel specifically designed for QEMU.

The reason I was doing this is because the serial and HDMI adapters I ordered for my Pi are still in the mail (any month now).

There's a silver lining - I just flashed the SD and put it in my Pi0w and the wifi access point actually appeared. So I've gone straight to a wifi access point with a SSH login with no serial or HDMI debugging - how's that for dumb luck.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.