Need advice: kmod-wl and akmod-wl with kernel >= 3.6.0

Nicolas Viéville nicolas.vieville at univ-valenciennes.fr
Wed Nov 7 21:04:08 CET 2012


Hello community,

I currently have to face some bug reports against the Broadcom kmod-wl
package for kernel >= 3.6.0 in F-16 and F-17, since I switched that
module to the new kernel wireless API CFG80211. The old one, aka WEXT,
will be dropped in future kernels
(https://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=10bab00afed042c1a38ed5ffb135e2aea5ce1277).

The problem is that some platforms work out of the box with the current
packages, and some others need some tweaks.

The two tweaks are:
- include lib80211 lib80211_crypt_tkip wl modules in kernel initramfs in
  order to avoid a kernel panic at boot time.
- revert to WEXT API.

The first one seems to be relatively direct to handle. Add
a /etc/dracut.conf.d/20-wl.conf file with correct directive in it
(add_drivers+="lib80211 lib80211_crypt_tkip wl") in the package, and
appropriate %post and %postun section containing dracut command in the
package spec file. 
Any tips on this part of the packaging are welcome.

The second one is not so trivial to handle as to be complete on this
subject same Broadcom devices (lspci reports) on different laptops give
different results. So I imagined that it would be left to the user to
choose the correct module API to install. But as the choice between the
two API is made at build time, the only way to achieve this goal for the
user is to install only the akmod-wl package (no kmod-wl package),
modify a configuration file manually, relaunch akmods command to get the
correct API for that module. The Makefile included in the sources will
be modified to include the configuration file at build time and to
adjust build settings correctly.

My question: 
Do you think this method to resolve the issue is the good one? 
How long the WEXT API will be available?
Any comments on this are welcome.

One caveat of these two methods is that dracut configuration file and
akmod API configuration file would be provided with standard kmod-wl
packages.

I provide as attachments the fedora.readme file and the dracut
configuration file I intend to add to the package if I opt for these
solutions. Thanks for reviewing them since my natural language is not
English.

What are the other precautions that I could have missed?

Thanks in advance for your responses.

Cordially,


-- 
Nicolas Viéville
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 20-wl.conf
Type: text/x-matlab
Size: 1374 bytes
Desc: not available
URL: <https://lists.rpmfusion.org/pipermail/rpmfusion-developers/attachments/20121107/010b9f29/attachment.bin>
-------------- next part --------------
This file provides some basic information about Broadcom STA wireless 
driver configuration files on Fedora with RPMFusion packages.
------------------------------------------------------------------------
Version 0.1 - Tue Nov 06 2012 - initial release
------------------------------------------------------------------------


0. Cautions
===========

The files mentioned in this document should not be used in a wireless
operational system. 
Use them at your own risk and only if your system could not boot 
properly or if your Broadcom wireless device doesn't work correctly.


1. Choosing between WEXT or CFG80211 API
========================================

Some configurations require the user to choose between the WEXT API or 
CFG80211 API in order to get Broadcom STA wireless driver properly 
loaded, and correctly usable by third-party softwares.
Since this driver cannot be configured on-the-fly, the only solution is
to use RPMFusion akmod-wl package only and set the 
/etc/akmods/akmod-wl/api file correctly.
No RPMFusion kmod-wl package installed will take care of the settings 
provided in the /etc/akmods/akmod-wl/api file, and using this file 
requires an exclusive usage of the akmod-wl package.

/etc/akmods/akmod-wl/api file should contain only one line depending on 
the API choosen:

API=WEXT

to force building the module with WEXT API or 

API=CFG80211

to force building the module with CFG80211 API or

#API=WEXT

or 

#API=CFG80211

to let the Broadcom included Makefile do the right choice according to 
your current kernel version.

#API=WEXT is the default setting.

Once this file modified, one should rebuild current kmod-wl package for
the current kernel by typing this command:

akmods --force --kernel `uname -r` --akmod wl

Reboot should be needed in order to get last wl module correctly loaded.


2. Initramfs configuration file usage
=====================================

Please read comments in /etc/dracut.conf.d/20-wl.conf file in order to 
configure loading modules needed by the Broadcom STA wireless driver in
kernel's init ramdisks.

Edit the /etc/dracut.conf.d/20-wl.conf file and comment/uncomment the 
one line "add_drivers+=" directive depending on your choice.

For example

# nano /etc/dracut.conf.d/20-wl.conf

or 

# sudo nano /etc/dracut.conf.d/20-wl.conf

should let you to modify this file, ctrl+o would save the file, and
ctrl+x should quit nano.

Then use dracut command to rebuild your current kernel initramfs file.
See http://people.redhat.com/harald/dracut.html#id489921 and 
http://people.redhat.com/harald/dracut.html#dracutconf5 for complete 
explanations on using dracut.


3. Support
==========

Support only about these configuration files will be provided on:

https://bugzilla.rpmfusion.org/enter_bug.cgi?product=Fedora


More information about the rpmfusion-developers mailing list