Enabling WiFi Hardware on Dell Embedded Box PC 3000

Problem: OpenWrt does not recognize WiFi devices

Hardware: Dell Inc. Embedded Box PC 3000
Firmware: 21.02.1 r16325-88151b8303 (x86_64)

Per Dell, the correct drivers for wifi are "mwifiex_pcie. Dell driver page

Dell's page specifically refers to Ubuntu, but OpenWrt automatically installed packages with the same name (mwifiex-pcie-firmware and kmod-mwifiex-pcie), so I'm guessing the correct drivers are in place.

dmesg reports the following lines that appear relevant:

[    8.583937] mwifiex_pcie: PCI memory map Virt0: 0000000072c576f1 PCI memory map Virt2: 0000000065210b80
[    8.717479] mwifiex_pcie 0000:04:00.0: PCI-E is not the winner <0x6>
[    8.724205] mwifiex_pcie 0000:04:00.0: WLAN is not the winner! Skip FW dnld
[   25.004745] mwifiex_pcie 0000:04:00.0: FW failed to be active in time
[   25.011576] mwifiex_pcie 0000:04:00.0: info: _mwifiex_fw_dpc: unregister device
[   25.019985] mwifiex_pcie 0000:04:00.0: performing cancel_work_sync()...
[   25.026963] mwifiex_pcie 0000:04:00.0: cancel_work_sync() done

No wlan interfaces are defined, and no wlan devices show up in Luci under either device type or existing devices.

Installation did not generate a file at /etc/config/wireless. I created one with a single line: "disabled 0" after reading this article: [OpenWrt Wiki] How do I enable WiFi?

That didn't seem to be the problem.

After uninstalling and reinstalling the drivers, I tried:

service network reload
wifi config

with no result.

Any suggestions on what to try next?

Thanks

Are you able to Add?

I'm unable to add a wireless device or interface in luci, and no "Wireless" option appears in the "Network" menu.

I could try manually adding entries in "/etc/config/wireless," but haven't had to do that before.

Do I just make up values, like 'radio0' and 'radio1' and see if those will work, or will the same issue that prevented auto detection would also prevent use after manual config?

For example, I'm looking at the "/etc/config/wireless" from an OpenWrt AP with working wifi, and it includes the following option:

config wifi-device 'radio0'
        . . .
        option path 'platform/10300000.wmac'

There is indeed a file with that name at /sys/devices/platform//10300000.wmac on that OpenWrt AP.

On the machine without working wifi, I could not find a wmac file within /sys/devices. However, I did find a directory that matched the number in the dmesg error message. Directory contents:

sys/devices/pci0000:00/0000:00:1c.3/0000:04:00.0:
-r--r--r--    1 root     root          4096 Feb 17 09:55 ari_enabled
-rw-r--r--    1 root     root          4096 Feb 17 09:55 broken_parity_status
-r--r--r--    1 root     root          4096 Feb 17 09:55 class
-rw-r--r--    1 root     root           256 Feb 17 09:55 config
-r--r--r--    1 root     root          4096 Feb 17 09:55 consistent_dma_mask_bits
--w-------    1 root     root          4096 Feb 17 09:55 coredump
-r--r--r--    1 root     root          4096 Feb 17 09:55 current_link_speed
-r--r--r--    1 root     root          4096 Feb 17 09:55 current_link_width
-rw-r--r--    1 root     root          4096 Feb 17 09:55 d3cold_allowed
-r--r--r--    1 root     root          4096 Feb 17 09:55 device
-r--r--r--    1 root     root          4096 Feb 17 09:55 dma_mask_bits
lrwxrwxrwx    1 root     root             0 Feb 17 09:55 driver -> ../../../../bus/pci/drivers/mwifiex_pcie
-rw-r--r--    1 root     root          4096 Feb 17 09:55 driver_override
-rw-r--r--    1 root     root          4096 Feb 17 09:55 enable
lrwxrwxrwx    1 root     root             0 Feb 17 09:55 firmware_node -> ../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:3d/device:3e
-r--r--r--    1 root     root          4096 Feb 17 09:55 irq
-r--r--r--    1 root     root          4096 Feb 17 09:55 local_cpulist
-r--r--r--    1 root     root          4096 Feb 17 09:55 local_cpus
-r--r--r--    1 root     root          4096 Feb 17 09:55 max_link_speed
-r--r--r--    1 root     root          4096 Feb 17 09:55 max_link_width
-r--r--r--    1 root     root          4096 Feb 17 09:55 modalias
-rw-r--r--    1 root     root          4096 Feb 17 09:55 msi_bus
drwxr-xr-x    2 root     root             0 Feb 17 09:55 power
--w--w----    1 root     root          4096 Feb 17 09:55 remove
--w-------    1 root     root          4096 Feb 17 09:55 rescan
--w-------    1 root     root          4096 Feb 17 09:55 reset
-r--r--r--    1 root     root          4096 Feb 17 09:55 resource
-rw-------    1 root     root       1048576 Feb 17 09:55 resource0
-rw-------    1 root     root       1048576 Feb 17 09:55 resource0_wc
-rw-------    1 root     root       1048576 Feb 17 09:55 resource2
-rw-------    1 root     root       1048576 Feb 17 09:55 resource2_wc
-r--r--r--    1 root     root          4096 Feb 17 09:55 revision
lrwxrwxrwx    1 root     root             0 Feb 17 09:55 subsystem -> ../../../../bus/pci
-r--r--r--    1 root     root          4096 Feb 17 09:55 subsystem_device
-r--r--r--    1 root     root          4096 Feb 17 09:55 subsystem_vendor
-rw-r--r--    1 root     root          4096 Feb 17 09:55 uevent
-r--r--r--    1 root     root          4096 Feb 17 09:55 vendor

Is there something in this directory I should use to know what to put in /etc/config/wireless?

Thanks

Did you install the firmware package: mwifiex-pcie-firmware?

1 Like

Yes, those were auto installed

It might be easier to continue testing/ debugging on a general purpose linux distribution, e.g. the Ubuntu or Fedora live media. Those should have 'all' potential kernel modules enabled and many firmwares preinstalled, allowing you to check functionality, deduce from dmesg whats happening and then compare with OpenWrt which parts are needed or might be missing.

(Fedora has some experience with mwifiex due to OLPC and should be 'cleaner' than Ubuntu in regards to proprietary or out-of-tree modules, making it a fairer comparison with OpenWrt, Ubuntu has potentially a higher chance to 'just work' - test both).

1 Like

Thanks. I'll give that a try when there's some down time.