No wireless networks displayed for broadcom BCM43142

Bug #1821823 reported by fossfreedom
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Release Notes for Ubuntu
Fix Released
Undecided
Unassigned
dkms (Ubuntu)
Fix Released
High
Łukasz Zemczak
Disco
Fix Released
High
Unassigned

Bug Description

[Impact]

The dkms version available in disco regressed in behavior in comparison to earlier series, causing `dkms uninstall` removing the module from the built tree instead of only uninstalling it. Per the dkms manpage, an uninstall operation should leave the module in the 'built' state, while currently it ends up only in the 'added' state.

This breaks our current shim-signed logic, since on postinst we're uninstalling every dkms module, checking if we uninstalled it correctly by making sure it's in the 'built' state and then signing it if everything is ok. And this is now broken.

This seemed to have been introduced unintentionally as the manpage still notes for `dkms uninstall`:
"Uninstalls an installed module/module-version combo from the kernel/arch passed in the -k option, or the current kernel if the -k option was not passed upon. After uninstall completion, the driver will be left in the built state.
To completely remove a driver, the remove action should be utilized."

The bug has been made visible with the bcmwl-kernel-source driver, which, if installed before shim-signed, will then become uninstalled and not reinstalled again (because of the failed status check before signing).

[Test Case]

An easy way of checking if the uninstall logic has been reverted:

 1. On a disco system, install the dkms and bcmwl-kernel-source packages (-proposed disabled).
 2. Check the version of the module installed `dkms status`.
 3. Once the installation completes, uninstall the bcmwl dkms module from the system:
 `dkms uninstall bcmwl/<VERSION>`
 4. Checks that the status is not reported as 'built' (should be something like 'added' only):
 `dkms status bcmwl`
 5. Enable disco-proposed and upgrade dkms.
 6. Re-install the bcmwl-kernel-source package.
 7. Once again uninstall the bcmwl dkms module:
 `dkms uninstall bcmwl/<VERSION>`
 8. Check the status and notice that it is now reported as 'built':
 `dkms status bcmwl`

Another way would be checking on a secureboot-enabled system that has Broadcom wireless installing the -proposed dkms, then bcmwl-kernel-source and finally shim-signed (reinstalling if necessary). This operation should result in the broadcom dkms module still being installed and active. But this test should be counted as an optional 'additional test'.

[Regression Potential]

Since this does change the dkms uninstall behavior, there is always some risk involved. One of the potential regressions could be related to kernel uninstallation, as we are reverting parts of the kernel prerm scripts along with the revert - but the risk should be low as we're actually reverting to the state we had in all series prior to disco. In overall the uninstall command of dkms might have regressed its behavior in case some other place started assuming the removals of modules from the built directory, but seeing the disco diff it's highly improbable.

[Original Description]

For 19.04 UB did a minimal install. I selected the ubiquity proprietary option and expected the broadcom driver to be found and installed.

On reboot I could not see any wireless networks. I went to the Additional Drivers window and it stated that the computer was indeed using Broadcom 802.11 Linux STA wireless driver and was in use.

This is a regression - in both 18.04 and 18.10, the same steps also installed the driver, and wireless networks were found and could be connected to.

ProblemType: BugDistroRelease: Ubuntu 19.04
Package: linux-image-5.0.0-7-generic 5.0.0-7.8
ProcVersionSignature: Ubuntu 5.0.0-7.8-generic 5.0.0
Uname: Linux 5.0.0-7-generic x86_64
ApportVersion: 2.20.10-0ubuntu23
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: dad 1060 F.... pulseaudio
CurrentDesktop: Budgie:GNOME
Date: Wed Mar 27 00:25:09 2019
InstallationDate: Installed on 2019-03-27 (0 days ago)
InstallationMedia: Ubuntu-Budgie 19.04 "Disco Dingo" - Alpha amd64 (20190326.1)
IwConfig:
 lo no wireless extensions.

 enp3s0 no wireless extensions.
Lsusb:
 Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
 Bus 001 Device 004: ID 0a5c:216d Broadcom Corp. BCM43142A0 Bluetooth 4.0
 Bus 001 Device 003: ID 05c8:022a Cheng Uei Precision Industry Co., Ltd (Foxlink)
 Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. Hub
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
MachineType: HP HP Notebook
ProcFB: 0 EFI VGA
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-5.0.0-7-generic root=UUID=25581458-0e76-468f-8318-628c1a279716 ro nomodeset quiet splash
RelatedPackageVersions:
 linux-restricted-modules-5.0.0-7-generic N/A
 linux-backports-modules-5.0.0-7-generic N/A
 linux-firmware 1.178
RfKill:
 0: hci0: Bluetooth
  Soft blocked: no
  Hard blocked: noSourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
WifiSyslog:

dmi.bios.date: 02/15/2016
dmi.bios.vendor: Insyde
dmi.bios.version: F.1F
dmi.board.asset.tag: Type2 - Board Asset Tag
dmi.board.name: 80BF
dmi.board.vendor: HP
dmi.board.version: 95.16
dmi.chassis.asset.tag: Chassis Asset Tag
dmi.chassis.type: 10
dmi.chassis.vendor: HP
dmi.chassis.version: Chassis Version
dmi.modalias: dmi:bvnInsyde:bvrF.1F:bd02/15/2016:svnHP:pnHPNotebook:pvr:rvnHP:rn80BF:rvr95.16:cvnHP:ct10:cvrChassisVersion:
dmi.product.family: 103C_5335KV G=N L=CON B=HP
dmi.product.name: HP Notebook
dmi.product.sku: N9S73EA#ABU
dmi.sys.vendor: HP

Revision history for this message
fossfreedom (fossfreedom) wrote :
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote : Status changed to Confirmed

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
Kai-Heng Feng (kaihengfeng) wrote :

Please run `sudo apt install bcmwl-kernel-source`.

Revision history for this message
fossfreedom (fossfreedom) wrote :

Odd. That was already installed.

I then ran a apt --reinstall install for that package and this time wireless started.

Thus it appears the kernel module wasn't successfully installed by ubiquity?

Changed in linux (Ubuntu):
status: Confirmed → Invalid
Revision history for this message
Ubuntu QA Website (ubuntuqa) wrote :

This bug has been reported on the Ubuntu ISO testing tracker.

A list of all reports related to this bug can be found here:
http://iso.qa.ubuntu.com/qatracker/reports/bugs/1821823

tags: added: iso-testing
description: updated
tags: added: rls-dd-incoming
Revision history for this message
Brian Murray (brian-murray) wrote :

Could you add the ubiquity log file to the bug report or try and the beta iso image and then include the ubiquity log file?

Changed in ubiquity (Ubuntu):
status: New → Incomplete
Revision history for this message
fossfreedom (fossfreedom) wrote :

Just rerun this on the same iso as above (beta) and this time wireless was found.

Putting this down as a glitch.

Changed in ubiquity (Ubuntu):
status: Incomplete → Invalid
Revision history for this message
fossfreedom (fossfreedom) wrote :

ok - decided to reopen this.

Have retested todays release candidate ISO

For this laptop - I did not connect via a wired connection.

I did choose the restricted drivers option in the installer and during the installation I saw that it said it installed the bcmwl-kernel-source

On restart no wifi was available.

I connected via wired and ran sudo apt install --reinstall bcmwl-kernel-source and immediately after completion wifi was available.

I repeated the whole installation again as above and again no wifi was available after an install.

Attached is the installer syslog file found in /var/log/installer

Changed in ubiquity (Ubuntu):
status: Invalid → New
Revision history for this message
Brian Murray (brian-murray) wrote :

The log file wasn't actually attached, could you find it again and add it?

Changed in ubiquity (Ubuntu):
status: New → Incomplete
Revision history for this message
fossfreedom (fossfreedom) wrote :
Changed in ubiquity (Ubuntu):
status: Incomplete → New
no longer affects: linux (Ubuntu)
Revision history for this message
Adam Conrad (adconrad) wrote :

It looks like 'dkms uninstall' is removing the built tree, instead of just removing the files from /lib/modules, leaving the driver in state "added", not the "built" state that shim-signed is expecting. If the manpage is to be believed, this is a bug in dkms.

Revision history for this message
Łukasz Zemczak (sil2100) wrote :

Weird, looks like during shim-signed installation, when the bcmwl dkms module is uninstalled to be signed, a check for the dkms status fails expectations. For some reasons shim-signed expects the uninstalled module to return status 'built' (which it does on my cosmic system here), but on disco this seems to result in something else. It feels to me that the behavior of dkms changed between cosmic and disco and now either dkms uninstall removes the module completely (not resulting in being 'built' after the uninstall) or maybe dkms reports the status wrongly (differently).

Changed in ubiquity (Ubuntu):
assignee: nobody → Łukasz Zemczak (sil2100)
status: New → Confirmed
Revision history for this message
Łukasz Zemczak (sil2100) wrote :

So essentially this is the change that 'broke' dkms:

https://github.com/dell/dkms/commit/0c19129b5d1f8e03498f6f2455ad9f7e14e9e606

I think per expected behavior we should actually *not* be removing modules from the dkms tree on uninstall, right? This is a regression, not sure why someone actually got that in. Reverting it fixes the world.

Changed in ubiquity (Ubuntu):
status: Confirmed → In Progress
importance: Undecided → High
Changed in dkms (Ubuntu):
status: New → In Progress
Changed in ubiquity (Ubuntu):
status: In Progress → Invalid
Changed in dkms (Ubuntu):
importance: Undecided → High
assignee: nobody → Łukasz Zemczak (sil2100)
Revision history for this message
Łukasz Zemczak (sil2100) wrote :

I have prepared and uploaded a fix for that into the disco queue. We are reverting this change as it seems to be a regression from expected behavior - even man dkms (or checking the manpage on their github upstream repo) mentions `dkms uninstall` leaving the module in the 'built' state. I suspect that for us this change should be relatively safe. But who knows.

Not sure if it'll make it for the disco release though. In case we're respinning, we'll be sure to get that in along with the other changes (after review).

Thanks for reporting this!

Changed in dkms (Ubuntu):
status: In Progress → Fix Committed
description: updated
Revision history for this message
Steve Langasek (vorlon) wrote : Please test proposed package

Hello fossfreedom, or anyone else affected,

Accepted dkms into disco-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/dkms/2.6.1-4ubuntu2 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-disco to verification-done-disco. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-disco. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in dkms (Ubuntu Disco):
status: New → Fix Committed
tags: added: verification-needed verification-needed-disco
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package dkms - 2.6.1-4ubuntu2

---------------
dkms (2.6.1-4ubuntu2) disco; urgency=medium

  * d/p/revert-removal-of-modules-from-dkms-built-tree.patch:
    - Revert the upstream change that caused dkms uninstall remove the modules
      from the built tree, as that seems wrong. The uninstall operation should
      leave the module in the 'built' state as per design (LP: #1821823).

 -- Łukasz 'sil2100' Zemczak <email address hidden> Wed, 17 Apr 2019 11:30:19 +0100

Changed in dkms (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
fossfreedom (fossfreedom) wrote :

On disco.

 2.6.1-4ubuntu2

Followed the test case and this reported the results (built)

Then reinstalled with secure boot enabled.

Repeated and enrolled the mok key. Rebooted and wireless was available

tags: added: verification-done verification-done-disco
removed: verification-needed verification-needed-disco
Revision history for this message
Łukasz Zemczak (sil2100) wrote :

Thanks fossfreedom for the verification!
I have also submitted this fix and they were ok with the change (PR has been merged to master):
https://github.com/dell/dkms/pull/77

So we should be good to go.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package dkms - 2.6.1-4ubuntu2

---------------
dkms (2.6.1-4ubuntu2) disco; urgency=medium

  * d/p/revert-removal-of-modules-from-dkms-built-tree.patch:
    - Revert the upstream change that caused dkms uninstall remove the modules
      from the built tree, as that seems wrong. The uninstall operation should
      leave the module in the 'built' state as per design (LP: #1821823).

 -- Łukasz 'sil2100' Zemczak <email address hidden> Wed, 17 Apr 2019 11:30:19 +0100

Changed in dkms (Ubuntu Disco):
status: Fix Committed → Fix Released
Revision history for this message
Brian Murray (brian-murray) wrote : Update Released

The verification of the Stable Release Update for dkms has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Mathew Hodson (mhodson) wrote :

This was added to the release notes for Disco: "For secure-boot enabled systems with Broadcom wireless, even after selecting the proprietary drivers during the installation, the bcmwl dkms module can end up left uninstalled after reboot (resulting in no working wifi). This is caused by a dkms tooling regression. As a workaround the bcmwl-kernel-source package needs to be reinstalled on the target system sudo apt-get install --reinstall bcmwl-kernel-source. (bug 1821823)"

no longer affects: ubiquity (Ubuntu)
Changed in ubuntu-release-notes:
status: New → Fix Released
Mathew Hodson (mhodson)
Changed in dkms (Ubuntu Disco):
importance: Undecided → High
tags: added: patch-accepted-upstream
removed: rls-dd-incoming
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.