Bug 904025

Summary: make it easier to get broadcom wlan firmware
Product: [openSUSE] openSUSE Distribution Reporter: macias - <bluedzins>
Component: Upgrade ProblemsAssignee: Bernhard Wiedemann <bwiedemann>
Status: RESOLVED WONTFIX QA Contact: Jiri Srain <jsrain>
Severity: Normal    
Priority: P5 - None CC: bwiedemann, chcao, forgotten_BKMp2T8sOt, Larry.Finger
Version: 13.2   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description macias - 2014-11-05 13:12:06 UTC
"Do something", because I don't want even to say what it should be -- it could be good readme, driver itself, anything -- but something that works.

This issue is not new -- it is a constant problem for years now.

And the story goes like this:
* version X
* battle with given network card to set it up
* upgrade to X.1
* no network card --> no internet
* use other computer to google, download, cry, finally make the network work
* repeat

My network card is BCM 4312, it was working, today I upgraded OS to 13.2, it does not work anymore, I googled, I downloaded the source packages, they won't compile, I googled more, I downloaded the patch, there is no patch installed by default, I installed patch, patch does not work, more googling...

So please, please, do something with it -- for now it takes 2 computers to install OS on one of them, and a lot of time on per each version of OS. It is a waste.
Comment 1 Bernhard Wiedemann 2014-11-05 16:29:51 UTC
http://wireless.kernel.org/en/users/Drivers/b43#openSUSE
suggests to do
sudo zypper install b43-fwcutter
sudo /usr/sbin/install_bcm43xx_firmware

unfortunately, this firmware can not be included in openSUSE for copyright reasons
so in this particular example, there is not much we can be improved software-wise
but maybe documentation-wise.
Comment 2 Larry Finger 2014-11-05 18:01:54 UTC
When an openSUSE kernel tries to start driver b43, and the necessary firmware has not been installed, it logs the following message:

Please open a terminal and enter the command
"sudo /usr/sbin/install_bcm43xx_firmware" to download the correct firmware for this driver version. For an off-line installation, go to
http://en.opensuse.org/HCL/Network_Adapters_(Wireless)/Broadcom_BCM43xx and follow the instructions in the "Installing firmware from RPM packages" section.

Is that message not sufficient for you to know what to do, or is the problem that you do not know that you should inspect the logs when a problem occurs?

If the latter, then the command "dmesg | less" will supply the info in a paged format. In case you do not know about less, use the command "man less" to see the manual.

I know this is a pain, but for openSUSE to include the firmware would violate the "open" part of the philosophy of the system. In addition, it would subject openSUSE to the threat of legal action by Broadcom. The developers of b43 have taken a lot of care to supply a method (fwcutter) that satisfies the Broadcom legal requirements.

If you wish to avoid the problem in future releases, copy the contents of /lib/firmware/b43/ to a USB stick. Whenever a new release is installed, you should restore those files.
Comment 3 Bernhard Wiedemann 2014-11-30 05:13:13 UTC
*** Bug 907697 has been marked as a duplicate of this bug. ***
Comment 4 macias - 2014-11-30 07:29:38 UTC
@Larry,

> Is that message not sufficient for you to know what to do, or is the problem 
> that you do not know that you should inspect the logs when a problem occurs?

How could I know I have to look at logs for missing driver info?

> For an off-line installation, go to
> http://en.opensuse.org/HCL/Network_Adapters_(Wireless)/Broadcom_BCM43xx and 
> follow the instructions in the "Installing firmware from RPM packages" section.

Page is deleted.

> Please open a terminal and enter the command
> "sudo /usr/sbin/install_bcm43xx_firmware" to download the correct firmware for 
> this driver version. 

You cannot download anything without the network. It is like saying the manual for opening the box is inside the box.

Second problem -- openSUSE is rpm-based distro, not script base. So to install anything there should be "zypper in ...". And if there is some action to do it, there is post install section in rpm spec.

@Bernhard

If this really works, it should and could be a meta rpm package, which just wraps those commands. rpm package could also display a not for the user, all this, while not perfect (far from it), is more useful for user than leaving him/her alone with the problem and guessing what to do.
Comment 5 Bernhard Wiedemann 2014-11-30 14:34:16 UTC
my first try:
https://build.opensuse.org/request/show/263517

This will download the firmware by itself,
provided you get network by some other means (e.g. ethernet).
It tries to download it on package install and on boot (after network is up)
Comment 6 Chenzi Cao 2015-02-11 10:10:34 UTC
Hi Bernhard, if you have make this issue fixed, would you please help to close it? Thank you!
Comment 7 Bernhard Wiedemann 2015-03-23 14:51:52 UTC
submitted
https://build.opensuse.org/request/show/292473 Factory pullin-bcm43xx-firmware
Comment 8 Larry Finger 2015-03-23 15:33:05 UTC
Bernhard,

I'm not that good at reading the build files. In relatively simple terms, what does this change do?

Larry
Comment 9 Bernhard Wiedemann 2015-03-24 10:20:03 UTC
(In reply to Larry Finger from comment #8)
> I'm not that good at reading the build files. In relatively simple terms,
> what does this change do?

It adds a service, that pulls in the broadcom firmware files
(if they are not yet there)
assuming you can get network up by some other means.

So far, the service only runs on boot
and on package install, not every time the network comes up,
but it still can make things better.

or quoting from my submit:
this can make it easier for users to get their broadcom WLAN working
without finding+reading+understanding+executing the relevant docs
Comment 10 Larry Finger 2015-03-24 14:38:48 UTC
Thanks for the explanation. Running the service on boot and at package installation should be sufficient.

The b43 developer is planning on writing a firmware installation script that could be used by all distros. His writeup is at https://wireless.wiki.kernel.org/en/users/drivers/b43/firmware. Once that effort is complete, we may want to update the script that your service runs.
Comment 11 Tomáš Chvátal 2018-04-12 13:52:09 UTC
This version of openSUSE changed to end-of-life (EOL [1]) status. As such
it is no longer maintained, which means that it will not receive any
further security or bug fix updates.
As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
openSUSE, or consider the bug still valid, please feel free to reopen this
bug against that version, or open a new ticket.

Thank you for reporting this bug and we are sorry it could not be fixed
during the lifetime of the release.

[1] https://en.opensuse.org/Lifetime