Mailinglist Archive: opensuse-factory (1324 mails)

< Previous Next >
Re: [opensuse-factory] WLAN-Firmware (Broadcom 43224 chipset) can't be loaded by Kernel
On 10/25/2015 07:34 PM, Thomas Michalka (MLs) wrote:
luna:~ # dmesg | grep -C 5 brcm
[82833.698696] brcmsmac bcma0:1: Direct firmware load for
brcm/bcm43xx-0.fw failed with error -2
[82833.698704] ieee80211 phy0: brcmsmac: fail to load firmware
brcm/bcm43xx-0.fw

The firmware failed to load. If the firmware is actually available, this kind of failure might occur if the wireless driver is built in. That could only happen if this is a kernel that you generated.

[83645.205746] dell_wmi: Unknown WMI event type 0x11: 0xffd0
[96233.286573] dell_wmi: Unknown WMI event type 0x11: 0xffd1
[98124.774221] dell_wmi: Unknown WMI event type 0x11: 0xffd0
[98634.310827] dell_wmi: Unknown WMI event type 0x11: 0xffd1
[98649.005079] PM: Syncing filesystems ... done.
--
[98657.879654] acpi PNP0501:00: Still not present
[98659.185869] e1000e: em1 NIC Link is Up 1000 Mbps Full Duplex, Flow
Control: Rx
[99017.799315] dell_wmi: Unknown WMI event type 0x11: 0xffd0
[115832.007038] Broadcom 43xx driver loaded [ Features: PMNLS ]
[115851.225196] Broadcom 43xx-legacy driver loaded [ Features: PLID ]
[124827.903046] brcmsmac bcma0:1: Direct firmware load for
brcm/bcm43xx-0.fw failed with error -2
[124827.903055] ieee80211 phy0: brcmsmac: fail to load firmware
brcm/bcm43xx-0.fw
[124906.050108] brcmsmac bcma0:1: Direct firmware load for
brcm/bcm43xx_hdr-0.fw failed with error -2
[124906.050116] ieee80211 phy0: brcmsmac: fail to load firmware
brcm/bcm43xx_hdr-0.fw
[125017.557339] ieee80211 phy0: brcms_check_firmwares: non integral fw
hdr file size 5062/12
[126600.795112] Broadcom 43xx driver loaded [ Features: PMNLS ]
[126607.609767] Broadcom 43xx-legacy driver loaded [ Features: PLID ]
[126655.731072] ieee80211 phy0: brcms_check_firmwares: non integral fw
hdr file size 5062/12
[150906.829264] dell_wmi: Unknown WMI event type 0x11: 0xffd1
[150913.254961] PM: Syncing filesystems ... done.
[150913.292446] PM: Preparing system for sleep (mem)
[150913.292755] Freezing user space processes ... (elapsed 0.001
seconds) done.
[150913.294751] Freezing remaining freezable tasks ... (elapsed 0.000
seconds) done.
--
[150914.967016] acpi PNP0501:00: Still not present
[150916.182851] e1000e: em1 NIC Link is Up 1000 Mbps Full Duplex, Flow
Control: Rx
[151274.879192] dell_wmi: Unknown WMI event type 0x11: 0xffd0
[151764.379460] ISO 9660 Extensions: Microsoft Joliet Level 3
[151764.477008] ISO 9660 Extensions: RRIP_1991A
[152113.452527] ieee80211 phy0: brcms_check_firmwares: out of bounds fw
file size 640352
[152393.740381] Broadcom 43xx driver loaded [ Features: PMNLS ]
[152396.654661] Broadcom 43xx-legacy driver loaded [ Features: PLID ]
[152433.328664] ieee80211 phy0: brcms_check_firmwares: out of bounds fw
file size 640352
[154132.614161] PM: Syncing filesystems ... done.
[154132.652233] PM: Preparing system for sleep (mem)
[154132.652511] Freezing user space processes ... (elapsed 0.002
seconds) done.
[154132.654590] Freezing remaining freezable tasks ... (elapsed 0.001
seconds) done.
[154132.655618] PM: Suspending system (mem)
--
[156670.825619] dell_wmi: Unknown WMI event type 0x11: 0xffd1
[157030.857571] dell_wmi: Unknown WMI event type 0x11: 0xffd0
[164745.783949] dell_wmi: Unknown WMI event type 0x11: 0xffd1
[165280.386126] dell_wmi: Unknown WMI event type 0x11: 0xffd0
[169316.886288] dell_wmi: Unknown WMI event type 0x11: 0xffd1
[169578.162647] ieee80211 phy0: brcms_check_firmwares: out of bounds fw
file size 640352
[170031.304630] dell_wmi: Unknown WMI event type 0x11: 0xffd0


Your device needs firmware from /lib/firmware/brcm/.

Quite clear meanwhile.

That firmware is released by Broadcom and may be redistributed by
openSUSE and other distros. Note that script
/usr/sbin/install_bcm43xx_firmware is used for firmware for older
devices, which Broadcom has refused to allow to be redistributed.

That restriction of redistribution (but why allowed for openwrt.org and
lwfinger.com?) is new to me but it was soon clear that the kernel wants
to load firmware with other file names. Those weren't loaded into the
directories /lib/firmware/b43 and /lib/firmware/b43legacy, but after
installing the kernel-firmware package into /lib/firmware/brcm.

The sites you refer to are distributing drivers that have the firmware built in. Yes, it is a legal distinction, but a very impportant one. Those drivers are used by other operating systems than Linux. We extract the firmware from those drivers as a means of getting around the Broadcom restrictions, but they distribute these files with no restrictions.

But why then has the package pullin-bcm43xx-firmware been installed at all?
Because my device is perhaps an older one? My notebook is about 4 years
old -- a good device age in IT.

It is a small package that is not a hardship to install.

The function of that script is to download a driver file with
firmware embedded and use b43-fwcutter to extract that content.

I've got it, meanwhile.

That firmware will never be used by your device.

Might this depend on the kernel version? My log clearly says that the
kernel (4.2.1) wants to load brcm/bcm43xx-0.fw and brcm/bcm43xx_hdr-0.fw.
But the question is: Why did the installer not install the package
kernel-firmware then?
And where (installer/config file or whatever?) the decision whether my
wifi hardware belongs to an older or a newer generation is made and what
is the right firmware to be installed thus?

The firmware files needed depend on hardware type, not on kernel version. The PCI ID determines the driver, and it determines the firmware.


My suggestion is that you use YaST to replace the kernel-firmware package

With modprobe -r br43 and modprobe -r br43legacy I wanted the kernel to
also load the firmware from /lib/firmware/brcm because it explicitely
says in the older log parts that "Direct firmware load for
brcm/bcm43xx-0.fw failed with error -2".

and reboot.

May I draw the conclusion, because the kernel wants to _directly_ load
the firmware, that it is in fact able to install the FW and make it
working without a reboot?

You at least need to unload and reload the driver if the firmware was made available after the system was started. I usually recommend a reboot.

Sorry about all my questions, but I'm so curious and want to know as
much as possible about how all this works.

That should clear up the missing firmware message.

Has been cleared up -- the firmware isn't missed any longer, but now
there's another problem which appears to be logged and it looks this:

Oct 24 18:58:05 luna kernel: ieee80211 phy0: brcms_check_firmwares: non
integral fw hdr file size 5062/12

with version 20150907git-1.1.

It seems to be something wrong with the file bcm43xx_hdr-0.fw, may be
with the file size? Or may be the kernel version 4.2.1 is too new?

Aah ... you wrote "replace" above. Got version 20150925git-1.1 now. The
log now reads

Oct 26 00:35:24 luna kernel: ieee80211 phy0: brcms_check_firmwares: out
of bounds fw file size 640352

Now it's the other firmware file that is likely out of bounds.
Possibly just a reboot will actually get the situation under control ...

If not, please reportback the message from the log and a long listing
of /lib/firmware/brcm.

For another reason I have to leave the system running for a few hours yet.

A complete listing of the firmware directory:

luna:~ # l /lib/firmware/brcm/
total 9644
drwxr-xr-x 2 root root 4096 Oct 26 00:34 ./
drwxr-xr-x 74 root root 12288 Oct 26 00:34 ../
-rw-r--r-- 1 root root 269595 Sep 24 16:07 bcm4329-fullmac-4.bin
-rw-r--r-- 1 root root 96224 Sep 24 16:07 bcm43xx-0.fw
-rw-r--r-- 1 root root 180 Sep 24 16:07 bcm43xx_hdr-0.fw
-rw-r--r-- 1 root root 385067 Sep 24 16:07 brcmfmac43143-sdio.bin
-rw-r--r-- 1 root root 397312 Sep 24 16:07 brcmfmac43143.bin
-rw-r--r-- 1 root root 348160 Sep 24 16:07 brcmfmac43236b.bin
-rw-r--r-- 1 root root 455745 Sep 24 16:07 brcmfmac43241b0-sdio.bin
-rw-r--r-- 1 root root 403855 Sep 24 16:07 brcmfmac43241b4-sdio.bin
-rw-r--r-- 1 root root 408682 Sep 24 16:07 brcmfmac43241b5-sdio.bin
-rw-r--r-- 1 root root 479232 Sep 24 16:07 brcmfmac43242a.bin
-rw-r--r-- 1 root root 253748 Sep 24 16:07 brcmfmac4329-sdio.bin
-rw-r--r-- 1 root root 222126 Sep 24 16:07 brcmfmac4330-sdio.bin
-rw-r--r-- 1 root root 451566 Sep 24 16:07 brcmfmac4334-sdio.bin
-rw-r--r-- 1 root root 397378 Sep 24 16:07 brcmfmac43340-sdio.bin
-rw-r--r-- 1 root root 569291 Sep 24 16:07 brcmfmac4335-sdio.bin
-rw-r--r-- 1 root root 219557 Sep 24 16:07 brcmfmac43362-sdio.bin
-rw-r--r-- 1 root root 493599 Sep 24 16:07 brcmfmac4339-sdio.bin
-rw-r--r-- 1 root root 488193 Sep 24 16:07 brcmfmac43455-sdio.bin
-rw-r--r-- 1 root root 591837 Sep 24 16:07 brcmfmac4354-sdio.bin
-rw-r--r-- 1 root root 593956 Sep 24 16:07 brcmfmac4356-pcie.bin
-rw-r--r-- 1 root root 557056 Sep 24 16:07 brcmfmac43569.bin
-rw-r--r-- 1 root root 550333 Sep 24 16:07 brcmfmac43570-pcie.bin
-rw-r--r-- 1 root root 588940 Sep 24 16:07 brcmfmac43602-pcie.ap.bin
-rw-r--r-- 1 root root 590544 Sep 24 16:07 brcmfmac43602-pcie.bin


After reboot you'll get my journalctl log as well as a new dmesg report
and, of course, if the problem is still remaining or not.

My listing of that directory is

-rw-r--r-- 1 root root 269595 Oct 9 2014 bcm4329-fullmac-4.bin
-rw-r--r-- 1 root root 96224 Oct 9 2014 bcm43xx-0.fw
-rw-r--r-- 1 root root 180 Oct 9 2014 bcm43xx_hdr-0.fw
-rw-r--r-- 1 root root 397312 Oct 9 2014 brcmfmac43143.bin
-rw-r--r-- 1 root root 385067 Oct 9 2014 brcmfmac43143-sdio.bin
-rw-r--r-- 1 root root 348160 Oct 9 2014 brcmfmac43236b.bin
-rw-r--r-- 1 root root 455745 Oct 9 2014 brcmfmac43241b0-sdio.bin
-rw-r--r-- 1 root root 403855 Oct 9 2014 brcmfmac43241b4-sdio.bin
-rw-r--r-- 1 root root 253748 Oct 9 2014 brcmfmac4329-sdio.bin
-rw-r--r-- 1 root root 222126 Oct 9 2014 brcmfmac4330-sdio.bin
-rw-r--r-- 1 root root 451566 Oct 9 2014 brcmfmac4334-sdio.bin
-rw-r--r-- 1 root root 569291 Oct 9 2014 brcmfmac4335-sdio.bin
-rw-r--r-- 1 root root 219557 Oct 9 2014 brcmfmac43362-sdio.bin
-rw-r--r-- 1 root root 507752 Oct 9 2014 brcmfmac4354-sdio.bin


The files in question seem to be the same size. To check content,

md5sum /lib/firmware/brcm/*

c53608f5818b702c46a012c57b4196ee /lib/firmware/brcm/bcm4329-fullmac-4.bin
b0736e3590b05d27284fbb8a3efd50e1 /lib/firmware/brcm/bcm43xx-0.fw
5e51778ee011badcb42f1e2cb4ab3956 /lib/firmware/brcm/bcm43xx_hdr-0.fw
2be9d4da43aba729bfa3417829e011df /lib/firmware/brcm/brcmfmac43143.bin
dc78f76883f5a0df9f13fad30d78442b /lib/firmware/brcm/brcmfmac43143-sdio.bin
f579673b5dc45640c814a9c68abcaf55 /lib/firmware/brcm/brcmfmac43236b.bin
3575f0473cd9082d5b03f0e2549a998f /lib/firmware/brcm/brcmfmac43241b0-sdio.bin
62dffd52291975a60b2c079f2b671c06 /lib/firmware/brcm/brcmfmac43241b4-sdio.bin
ff610cee869375a2d0c0be6b97b107fb /lib/firmware/brcm/brcmfmac4329-sdio.bin
4ec6341cbe351f13d787aaea99141bea /lib/firmware/brcm/brcmfmac4330-sdio.bin
0e5d2b9bfaaf3b6c43077405cfe92632 /lib/firmware/brcm/brcmfmac4334-sdio.bin
678ed027a1bac420318cd54daa1e1579 /lib/firmware/brcm/brcmfmac4335-sdio.bin
ce95e81aa95f9dc1a32fb8acf691dbd8 /lib/firmware/brcm/brcmfmac43362-sdio.bin
a3a73454d750f6b01170c7cbaa02c952 /lib/firmware/brcm/brcmfmac4354-sdio.bin


Larry

--
To unsubscribe, e-mail: opensuse-factory+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-factory+owner@xxxxxxxxxxxx

< Previous Next >