kernel update broke broadcom driver

Briefly describe your issue below:
Broken Wireless Driver

What version of Parrot are you running? (include version (e.g. 4.6), edition(e.g. Home//KDE/OVA, etc.), and architecture (currently we only support amd64)
4.6 Home
What method did you use to install Parrot? (Debian Standard / Debian GTK / parrot-experimental)
Standard
Configured to multiboot with other systems? (yes / no)
Yes / Ubuntu
If there are any similar issues or solutions, link to them below:
https://bugs.launchpad.net/ubuntu/+source/bcmwl/+bug/1757008
If there are any error messages or relevant logs, post them below:

DKMS make.log for broadcom-sta-6.30.223.271 for kernel 5.1.0-parrot1-3t-amd64 (x86_64)
Thu 23 May 2019 02:11:38 PM MDT
/bin/sh: 1: [: Illegal number:
/bin/sh: 1: [: Illegal number:
Wireless Extension is the only possible API for this kernel version
Using Wireless Extension API
KBUILD_NOPEDANTIC=1 make -C /lib/modules/5.1.0-parrot1-3t-amd64/build M=`pwd`
make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[1]: Entering directory '/usr/src/linux-headers-5.1.0-parrot1-3t-amd64'
CFG80211 API is prefered for this kernel version
Using CFG80211 API
Kernel architecture is X86_64
  CC [M]  /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/shared/linux_osl.o
  CC [M]  /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_linux.o
/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_linux.c: In function ‘wl_pci_probe’:
/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_linux.c:780:2: warning: this ‘if’ clause does not guard... [-Wmisleading-inden$
  if ((val & 0x0000ff00) != 0)
  ^~
/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_linux.c:782:3: note: ...this statement, but the latter is misleadingly indente$
   bar1_size = pci_resource_len(pdev, 2);
   ^~~~~~~~~
In file included from /usr/src/linux-headers-5.1.0-parrot1-3t-common/include/linux/bitmap.h:9,
                 from /usr/src/linux-headers-5.1.0-parrot1-3t-common/include/linux/cpumask.h:12,
                 from /usr/src/linux-headers-5.1.0-parrot1-3t-common/arch/x86/include/asm/cpumask.h:5,
                 from /usr/src/linux-headers-5.1.0-parrot1-3t-common/arch/x86/include/asm/msr.h:11,
                 from /usr/src/linux-headers-5.1.0-parrot1-3t-common/arch/x86/include/asm/processor.h:21,
                 from /usr/src/linux-headers-5.1.0-parrot1-3t-common/arch/x86/include/asm/cpufeature.h:5,
                 from /usr/src/linux-headers-5.1.0-parrot1-3t-common/arch/x86/include/asm/thread_info.h:53,
                 from /usr/src/linux-headers-5.1.0-parrot1-3t-common/include/linux/thread_info.h:38,
                 from /usr/src/linux-headers-5.1.0-parrot1-3t-common/arch/x86/include/asm/preempt.h:7,
                 from /usr/src/linux-headers-5.1.0-parrot1-3t-common/include/linux/preempt.h:78,
                 from /usr/src/linux-headers-5.1.0-parrot1-3t-common/include/linux/spinlock.h:51,
                 from /usr/src/linux-headers-5.1.0-parrot1-3t-common/include/linux/seqlock.h:36,
                 from /usr/src/linux-headers-5.1.0-parrot1-3t-common/include/linux/time.h:6,
                 from /usr/src/linux-headers-5.1.0-parrot1-3t-common/include/linux/stat.h:19,
                 from /usr/src/linux-headers-5.1.0-parrot1-3t-common/include/linux/module.h:10,
                 from /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/include/linuxver.h:40,
                 from /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_linux.c:27:
In function ‘strncpy’,
    inlined from ‘_wl_add_monitor_if’ at /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_linux.c:2977:2:
/usr/src/linux-headers-5.1.0-parrot1-3t-common/include/linux/string.h:256:9: warning: ‘__builtin_strncpy’ specified bound depends on the l$
  return __builtin_strncpy(p, q, size);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_linux.c: In function ‘_wl_add_monitor_if’:
/usr/src/linux-headers-5.1.0-parrot1-3t-common/include/linux/string.h:277:10: note: length computed here
   return __builtin_strlen(p);
          ^~~~~~~~~~~~~~~~~~~
  CC [M]  /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_iw.o
  CC [M]  /var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.o
/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_dev_ioctl’:
/var/lib/dkms/broadcom-sta/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.c:460:9: error: implicit declaration of function ‘get_ds’; did$```

Also my problems are on 4.6 KDE. I had plugged in a USB wifi adapter that I was using. After unpluggin the adapter and pluggin back in, it no longer works either.

The USB adapter Railink RT5572 uses RT2800 which is found in package “Firmware-misc-nonfree”. I tried re-installing this and got errors. I also noticed that this package contains broadcom and Nvidia drivers.

I have Parrot 4.6 Home Mate, updated, on another computer and don’t have any driver issues using the USB adapter.

DKMS problems fixed and soon will be rolled to the ParrotOS. Here is the fix-list: https://nest.parrotsec.org/h0tw4t3r/broadcom-fork-5.1.0-kernel/commit/9661e61c6e42e33fb591976ec15461ad45b71104

2 Likes

Awesome!!

Thanks for the quick reply

im a noob :slight_smile: ive downloaded the file how do i install/run it please

also seeing the same issue… updated today and Broadcom internal wireless working card has stopped working. USB dongle is fine

Installed updated code from GIT and I can confirm it works.

make
make install
insmod wl

can i ask how you installed it all ive reinstalled parrot this morning nd still the same thing after update no wifi driver as far as i can see just want to say a big THANK YOU to hotwater :slight_smile:

this is only a temp solution until the fix is pushed to the main release

so, clone the git repo…

cd to the dir when you cloned the code (should see a Makefile)
run: make
make install

*this should create the wl.ko file.
I then copied this to /lib/modules/5.1.0-parrot1-3t-amd64/kernel/net/wireless

I then did a cd to /lib/modules/5.1.0-parrot1-3t-amd64/kernel/net/wireless
run:

insmod *
insmod wl*

I’ve tried adding the wl.ko file to the /etc/modules file to make it perm load on boot. It does not seem to work.

Anyway, this is a temp workaround and seems to work for me.

Good luck!

1 Like

to make this permanent, copy the wl.ko file to /lib/modules/5.1.0-parrot1-3t-amd64

then run:

depmod

(make sure wl is added to /etc/modules)

This fix worked great to handle the WIFI portion of the Realtek/Broadcom combo card.
– Thank you for that!

If we can get the Bluetooth driver portion working stable it would be a perfect fix.

Hi. Sorry for not replying, haven’t got any notifications.

To use this temporary hack, go to /usr/src directory, backup dkms modules directories (I suggest simply copying to your home folder)
i.e:

cp /usr/src/nvidia-current-418.56 /usr/src/broadcom-sta-6.30.223.271 ~/dkms-backup

then jump to /usr/src directory and clone my repositories. i.e:

cd /usr/src && 
git clone https://nest.parrotsec.org/h0tw4t3r/broadcom-fork-5.1.0-kernel && 
git clone https://nest.parrotsec.org/h0tw4t3r/nvidia-current-418.56-fork-5.1rc

then rename it, just as the folders you backed up:

mv broadcom-fork-5.1.0-kernel broadcom-sta-6.30.223.271
mv nvidia-current-418.56-fork-5.1rc nvidia-current-418.56

After that dkms will catch up on modules from /usr/src so all you do is:

sudo dkms install nvidia-current/418.56 -k ${uname -r} &&
sudo dkms install broadcom/6.30.223.271 -k ${uname -r}

(I am not sure if it is possible to do in in one row, but however this will work).

That’s all.

I will take a look on bluetooth dkms module, could you please tell me what is it’s name?

1 Like

Your solution for the broadcom wifi worked perfectly – I don’t have an nvidia card, I have an Intel chipset so I could not comment on that…(there is a bug with this causing a flipping error in the Xorg.0.log which I will address elsewhere.)

The Broadcom/Realtek WIFI-BT 4.0 combo card (including BCM20702, BCM20703, BCM43142 chipsets and others) does require seperate driver for the BT to function correctly.

When you inserting Broadcom Bluetooth device Linux may not load it properly:

Bluetooth: hci1: BCM: chip id 63
Bluetooth: hci1: BCM20702A
Bluetooth: hci1: BCM20702A1 (001.002.014) build 0000
bluetooth hci1: Direct firmware load for brcm/BCM20702A1-0b05-17cb.hcd failed with error -2
Bluetooth: hci1: BCM: Patch brcm/BCM20702A1-0b05-17cb.hcd not found

The above was found at:
GitHub - winterheart/broadcom-bt-firmware: Repository for various Broadcom Bluetooth firmware

Below is what I have going on with mine atm:

sudo dmesg | grep -i Bluetooth
[sudo] password for dan:
[ 14.222295] Bluetooth: Core ver 2.22
[ 14.222310] Bluetooth: HCI device and connection manager initialized
[ 14.222314] Bluetooth: HCI socket layer initialized
[ 14.222315] Bluetooth: L2CAP socket layer initialized
[ 14.222319] Bluetooth: SCO socket layer initialized
[ 14.541304] Bluetooth: hci0: BCM: chip id 70
[ 14.542308] Bluetooth: hci0: BCM: features 0x06
[ 14.558332] Bluetooth: hci0: BCM43142A
[ 14.559350] Bluetooth: hci0: BCM43142A0 (001.001.011) build 0000
[ 14.765669] bluetooth hci0: firmware: failed to load brcm/BCM43142A0-0a5c-216c.hcd (-2)
[ 14.765678] bluetooth hci0: Direct firmware load for brcm/BCM43142A0-0a5c-216c.hcd failed with error -2
[ 14.765681] Bluetooth: hci0: BCM: Patch brcm/BCM43142A0-0a5c-216c.hcd not found
[ 16.905384] Bluetooth: hci0: command 0x1003 tx timeout
[ 24.332487] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 24.332490] Bluetooth: BNEP filters: protocol multicast
[ 24.332497] Bluetooth: BNEP socket layer initialized
[ 26.505385] Bluetooth: hci0: command 0x1003 tx timeout
[ 71.148192] Bluetooth: RFCOMM TTY layer initialized
[ 71.148199] Bluetooth: RFCOMM socket layer initialized
[ 71.148205] Bluetooth: RFCOMM ver 1.11

So here is the FIX I used on this:

sudo dmesg | grep -i Bluetooth

will give you the output needed, in my case as shown in my post above note
[ 14.765669] bluetooth hci0: firmware: failed to load brcm/BCM43142A0-0a5c-216c.hcd (-2)
[ 14.765678] bluetooth hci0: Direct firmware load for brcm/BCM43142A0-0a5c-216c.hcd failed with error -2
[ 14.765681] Bluetooth: hci0: BCM: Patch brcm/BCM43142A0-0a5c-216c.hcd not found

– So my “problem” is with the BCM43142A0-0a5c-216c.hcd
I searched for BCM43142 and eventually got to: I searched for BCM43142 and eventually got to:

** NOTE: make sure you find the correct file for YOUR system, don’t use this one unless it is correct for you.

From there I just download the right file, in my case it was BCM43142A0-0a5c-216c.hcd
Copy the file to the firmware directory:

sudo cp BCM43142A0-0a5c-216c.hcd /lib/firmware/brcm

Then I Renamed the file I downloaded file to BCM.hcd and copied that file as well to the firmware directory

sudo cp BCM.hcd /lib/firmware/brcm

I rebooted the system and all was well and BT works like a charm now.

1 Like

So glad you guys are on top of this issue, man this caused me some serious issues. The two people in my family I setup Parrot Home for had this issue and both of them are not easy for me to get to in order to help them fix the issue…
Nearly took one laptop in for repair before I discovered it was a software issue.

so you are all good now?

Broadcom and nvidia dkms drivers are fixed. Bluetooth problem mentioned here is an another level problem.

To apply fixes, upgrade the system:

sudo parrot-upgrade
3 Likes