Hi,

I tried brcmfmac on a Raspberry Pi 4 with OpenWrt master and ran into some problems.

By default the following /etc/config/wireless is generated:
----------
config wifi-device 'radio0'
        option type 'mac80211'
option path 'platform/soc/fe300000.mmcnr/mmc_host/mmc1/mmc1:0001/mmc1:0001:1'
        option channel '36'
        option band '5g'
        option htmode 'VHT80'
        option disabled '1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'
----------

When I activate this configuration I get some error messages:
        uci set wireless.@wifi-device[0].disabled=0
------------------
19:34:43 2021 daemon.notice netifd: radio0 (1261): command failed: No error information (-524) 19:34:43 2021 daemon.notice netifd: radio0 (1261): command failed: I/O error (-5) 19:34:44 2021 daemon.notice hostapd: Configuration file: /var/run/hostapd-phy0.conf (phy wlan0) --> new PHY 19:34:44 2021 kern.info kernel: [ 25.561489] br-lan: port 2(wlan0) entered blocking state 19:34:44 2021 kern.info kernel: [ 25.566824] br-lan: port 2(wlan0) entered disabled state 19:34:44 2021 daemon.notice hostapd: wlan0: interface state UNINITIALIZED->HT_SCAN 19:34:44 2021 kern.info kernel: [ 25.572438] device wlan0 entered promiscuous mode 19:34:44 2021 daemon.err hostapd: nl80211: kernel reports: (extension) channel is disabled
19:34:44 2021 daemon.err hostapd: Could not set channel for kernel driver
19:34:44 2021 daemon.err hostapd: Interface initialization failed
19:34:44 2021 daemon.notice hostapd: wlan0: interface state HT_SCAN->DISABLED
19:34:44 2021 daemon.notice hostapd: wlan0: AP-DISABLED
19:34:45 2021 daemon.err odhcpd[746]: Failed to send to ff02::1%lan@br-lan (Address not available)
19:34:45 2021 daemon.notice netifd: Wireless device 'radio0' is now up
------------------

The "command failed" error messages are not a problem, they are caused by these iw commands:
        iw phy "$phy" set antenna $txantenna $rxantenna >/dev/null 2>&1
and
        iw phy "$phy" set txpower auto

The real problem is this here:
19:34:44 2021 daemon.err hostapd: nl80211: kernel reports: (extension) channel is disabled

The driver supports the following frequencies:
------------------
iw phy phy0 info
......
             Frequencies:
                     * 5170 MHz [34] (disabled)
                     * 5180 MHz [36] (20.0 dBm)
                     * 5190 MHz [38] (disabled)
                     * 5200 MHz [40] (20.0 dBm)
                     * 5210 MHz [42] (disabled)
                     * 5220 MHz [44] (20.0 dBm)
                     * 5230 MHz [46] (disabled)
                     * 5240 MHz [48] (20.0 dBm)
                     * 5260 MHz [52] (20.0 dBm) (no IR, radar detection)
                     * 5280 MHz [56] (20.0 dBm) (no IR, radar detection)
                     * 5300 MHz [60] (20.0 dBm) (no IR, radar detection)
                     * 5320 MHz [64] (20.0 dBm) (no IR, radar detection)
......
-------------------

My hostapd configuration in /tmp/run/hostapd-phy0.conf contains this setting:
        vht_oper_centr_freq_seg0_idx=42
This channel is not allows by the firmware used on this chip.

When I set the htmode to VHT20, it does not use vht_oper_centr_freq_seg0_idx and hostapd get further.
        uci set wireless.@wifi-device[0].htmode="VHT20"

It would be nice if the default configuration would work, we could detect if the vht center frequency is not allowed and use VHT20 otherwise, but I do not really know how to implement this here:
package/kernel/mac80211/files/lib/wifi/mac80211.sh


Now I get the next problem. ;-)

----------------
19:48:13 2021 kern.info kernel: [ 40.258130] device wlan0 entered promiscuous mode
19:48:13 2021 daemon.err hostapd: Failed to initialize QoS Map
19:48:13 2021 daemon.warn hostapd: wlan0: Could not connect to kernel driver
19:48:13 2021 daemon.err hostapd: Interface initialization failed
19:48:13 2021 daemon.notice hostapd: wlan0: interface state UNINITIALIZED->DISABLED
19:48:13 2021 daemon.notice hostapd: wlan0: AP-DISABLED
----------------

The brcmfmac driver does not implement the set_qos_map callback and hostapd fails. If this feature is supported by the driver it is returned by the iw-full in "iw phy phy0 info".

When I deactivate the iw_qos_map_set the wifi interface finally starts up:
        uci set wireless.@wifi-iface[0].iw_qos_map_set="none"

When I use psk2 encryption I am able to connect to the AP, I haven't tried open AP.

When I use the sae-mixed encryption, I am unable to connect to the AP with an old Intel card and a Pixel 3A phone. When when I change it back to psk2 I am still unable to connect. I have to reboot the Raspberry Pi 4 to make the AP work again.

I do not really plan to further debug this I just want to document my findings. This was done with OpenWrt r18161.

Hauke

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to