2012-09-27 14:24:48

by Jasmine Hassan

[permalink] [raw]
Subject: Re: broadcom-sta-dkms: to version >= 6.20.55.19 (r300276)

Update on 3.6-rc7 problems with wpasupplicant-1.0-2 and broadcom-sta
6.20.55.19 (r300276)
1. Fails to associate to AP (WPA encryption used) when wl.ko built with wext
2. Kernel bug when wl.ko built with nl/cfg80211

Apparently the wireless-bcm43142-dkms/Makefile was tripping due to
missing $(SUBLEVEL) in
/lib/modules/3.6-rc7.towo.1-siduction-amd64/build/Makefile

---
# make KERNELRELEASE=3.6-rc7.towo.1-siduction-amd64 -C
/lib/modules/3.6-rc7.towo.1-siduction-amd64/build M=`pwd`
make: Entering directory `/usr/src/linux-headers-3.6-rc7.towo.1-siduction-amd64'
/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
...
---

So it was building the "wl" module with WEXT rather than nl/CFG80211,
which is undesirable of course for such a recent (and 3.x) kernel. It
is actually now deprecated. See:
http://git.kernel.org/linus/10bab00afed042c1a38ed5ffb135e2aea5ce1277

And as the Makefile checks for API variable, this could be mitigated
by adding API=CFG80211 to the make command, and though the Makefile
still tries to check for SUBLEVEL and trips, it still builds with
CFG80211, as desired:

---
# make API=CFG80211 KERNELRELEASE=3.6-rc7.towo.1-siduction-amd64 -C
/lib/modules/3.6-rc7.towo.1-siduction-amd64/build M=`pwd`
make: Entering directory `/usr/src/linux-headers-3.6-rc7.towo.1-siduction-amd64'
/bin/sh: 1: [: Illegal number:
/bin/sh: 1: [: Illegal number:
CFG80211 API specified in command line
Using CFG80211 API
...
---

But this defeats the whole point of using a DKMS package in the first
place, and Dell/Broadcom hasn't provided a source-only package for
this version. The submitted dkms package is obviously missing readme
and license files, at least.

So I was able to get around this mess by creating a secondary patch
for the Makefile (there's a preexisting 0001-Makefile.patch) and
placing it in:
/usr/src/wireless-bcm43142-dkms-6.20.55.19~bdcom0602.0400.1000.0400/patches/0002-Makefile.patch
Patch Attached.

Edit the dkms.conf file, and add my new patch under the PATCH[0] line:
PATCH[1]="0002-Makefile.patch"

Then "dkms remove" and "dkms install" the module for the 3.6-rc7
kernel. Now wl.ko is built with nl/cfg80211

However, now I hit a kernel BUG at include/net/cfg80211.h:2473 caused
by wpa_supplicant

# apt policy wpasupplicant
wpasupplicant:
Installed: 1.0-2
Candidate: 1.0-2
Version table:
*** 1.0-2 0
500 http://mirror.rts-informatique.fr/linuxmint/debian/incoming/
testing/main amd64 Packages
100 /var/lib/dpkg/status

Details of running wpa_supplicant (1.0-2) in debugging mode when wl.ko
was built with WEXT, and the kernel BUG details re wpa_supplicant.

As this is a dev kernel release, adding linux-wireless to the loop.
And apologies if I shouldn't because this is regarding a proprietary,
unpublished broadcom driver.

Please let me know if you need any further information.

Best,
Jasmine


On Wed, Sep 26, 2012 at 12:42 AM, Jasmine Hassan <[email protected]> wrote:
> Package: broadcom-sta-dkms
> Version: 6.20.55.19
>
> Hello,
>
> My newish Dell Inspiron 15R 5520 shipped with ubuntu installed, and
> had this (apparently unreleased?) version of broadcom-sta-dkms, for
> the bcm43142 (Dell hybrid wifi/bluetooth adapter / 14e4:4365)
>
> # lspci -nn | tail -1
> 08:00.0 Network controller [0280]: Broadcom Corporation Device
> [14e4:4365] (rev 01)
>
> # dmesg | grep BCM
> eth0: Broadcom BCM4365 802.11 Hybrid Wireless Controller 6.20.55.19 (r300276)
>
> Someone (owner of Vostro 3460 laptop with the same card) kindly
> uploaded the original debs, at http://wielki.tk/vostro/
> The driver in question:
> http://wielki.tk/vostro/debs/wireless-bcm43142-oneiric-dkms_6.20.55.19~bdcom0602.0400.1000.0400-0somerville1_amd64.deb
>
> But it had at least two main issues that needed fixing:
>
> 1. Failed to compile on kernel 3.2.x. Solution: One-line change of the
> call 'ndo_set_multicast_list' to 'ndo_set_rx_mode', in wl_linux.c
>
> 2. Failed to compile on Kernel 3.4.x. Like broadcom-sta/5.100.82.112-7
> , this version also suffered issue with missing asm/system.h on 3.4.x
> (see bug #677193). Fixed in the same manner as that proposed in said
> bug.
>
> (Updated md5sum of wl_linux.c, per changes 1 & 2 above)
>
> 3. Removed "oneiric" (reference to Ubuntu 11.10) from package name,
> and all directory & path-names everywhere in the package contents, as
> it is no longer ubuntu/oneiric-specific.
>
> Updated deb: http://jas.gemnetworks.com/debian/wireless-bcm43142-dkms-6.20.55.19_amd64.deb
>
> Also tested on linux 3.5.0-4.dmz.1-liquorix-amd64, and it works for me
>
> Now, given a power regression in kernel 3.5, I was eager to test drive
> 3.6-rc6, and found rc7 out already!
> So yesterday I installed linux 3.6-rc7.towo.1-siduction-amd64, the
> "wl" module compiles and installs, and loads okay upon boot to
> 3.6-rc7. However, I'm unable to associate to my AP:
>
> Pointers in syslog
> Sep 25 21:34:10 terra wpa_supplicant[2787]: nl80211: 'nl80211' generic
> netlink not found
> Sep 25 21:34:10 terra wpa_supplicant[2787]: Failed to initialize
> driver 'nl80211'
> [..snip]
> Sep 25 21:34:31 terra wpa_supplicant[2787]: eth2: Trying to associate
> with 00:xx:xx:xx:xx:xx (SSID='xxxxxxx' freq=2452 MHz)
> Sep 25 21:34:31 terra wpa_supplicant[2787]: eth2: Association request
> to the driver failed
>
> As bcm43142 is fairly new, this proprietary driver is all that's there
> to support it. Sad face.
>
> Cheers,
> Jasmine


Attachments:
0002-Makefile.patch (907.00 B)
wpa_supplicant_debug (20.72 kB)
Download all attachments

2012-10-01 12:49:49

by Jasmine Hassan

[permalink] [raw]
Subject: Re: broadcom-sta-dkms: to version >= 6.20.55.19 (r300276)

And because, the log you're referencing, begins with:

# wpa_supplicant -d -Dnl80211,wext -ieth2 -u -s -O /var/run/wpa_supplicant

I obviously ran it with the same -D option used in functions.sh:
nl80211,wext (in the same order). Pointless, of course, as I know that
the wl.ko module loaded at the time was built with wext only. I guess
I could've just as well ran with -

On Mon, Oct 1, 2012 at 2:26 PM, Jasmine Hassan <[email protected]> wrote:
> Resend. Sorry, forgot to "reply all" on the last 2 emails
>
> because wpa_supplicant 1.0 (at least on LMDE/Debian testing) always
> tries nl80211 first
> # grep -i wext /etc/wpa_supplicant/*
> /etc/wpa_supplicant/functions.sh:# -D driver backend ('wext' if none given)
> /etc/wpa_supplicant/functions.sh:
> WPA_SUP_OPTIONS="$WPA_SUP_OPTIONS
> -D nl80211,wext"
> /etc/wpa_supplicant/functions.sh:
> wpa_msg stderr "using
> \"nl80211,wext\" wpa-driver instead ..."
> /etc/wpa_supplicant/functions.sh:
> WPA_SUP_OPTIONS="$WPA_SUP_OPTIONS
> -D nl80211,wext"
> /etc/wpa_supplicant/functions.sh: wpa_msg verbose "wpa-driver
> nl80211,wext (default)"
>
> --
>
> And to answer your other question, attached the complete snipped part
>
> --
> Jasmine
>
> On Mon, Oct 1, 2012 at 2:06 PM, Arend van Spriel <[email protected]> wrote:
>> On 09/27/2012 04:24 PM, Jasmine Hassan wrote:
>>>
>>> Update on 3.6-rc7 problems with wpasupplicant-1.0-2 and broadcom-sta
>>> 6.20.55.19 (r300276)
>>> 1. Fails to associate to AP (WPA encryption used) when wl.ko built with
>>> wext
>>> 2. Kernel bug when wl.ko built with nl/cfg80211
>>
>>
>> Commenting on issue 1 only, here.
>>
>>
>>>> Updated deb:
>>>> http://jas.gemnetworks.com/debian/wireless-bcm43142-dkms-6.20.55.19_amd64.deb
>>>>
>>>> Also tested on linux 3.5.0-4.dmz.1-liquorix-amd64, and it works for me
>>>>
>>>> Now, given a power regression in kernel 3.5, I was eager to test drive
>>>> 3.6-rc6, and found rc7 out already!
>>>> So yesterday I installed linux 3.6-rc7.towo.1-siduction-amd64, the
>>>> "wl" module compiles and installs, and loads okay upon boot to
>>>> 3.6-rc7. However, I'm unable to associate to my AP:
>>>>
>>>> Pointers in syslog
>>>> Sep 25 21:34:10 terra wpa_supplicant[2787]: nl80211: 'nl80211' generic
>>>> netlink not found
>>>> Sep 25 21:34:10 terra wpa_supplicant[2787]: Failed to initialize
>>>> driver 'nl80211'
>>>> [..snip]
>>
>>
>> Not sure what is snipped here. Your wpa_supplicant seems to try nl80211.
>> Maybe it goes and try WEXT instead, but that is missing from the log. Do you
>> recall or still have the entire syslog?
>>
>>
>>>> Sep 25 21:34:31 terra wpa_supplicant[2787]: eth2: Trying to associate
>>>> with 00:xx:xx:xx:xx:xx (SSID='xxxxxxx' freq=2452 MHz)
>>>> Sep 25 21:34:31 terra wpa_supplicant[2787]: eth2: Association request
>>>> to the driver failed
>>>>
>>>> As bcm43142 is fairly new, this proprietary driver is all that's there
>>>> to support it. Sad face.
>>>>
>>>> Cheers,
>>>> Jasmine
>>
>>
>> Gr. AvS
>>
>>

2012-10-01 12:06:18

by Arend van Spriel

[permalink] [raw]
Subject: Re: broadcom-sta-dkms: to version >= 6.20.55.19 (r300276)

On 09/27/2012 04:24 PM, Jasmine Hassan wrote:
> Update on 3.6-rc7 problems with wpasupplicant-1.0-2 and broadcom-sta
> 6.20.55.19 (r300276)
> 1. Fails to associate to AP (WPA encryption used) when wl.ko built with wext
> 2. Kernel bug when wl.ko built with nl/cfg80211

Commenting on issue 1 only, here.

>> Updated deb: http://jas.gemnetworks.com/debian/wireless-bcm43142-dkms-6.20.55.19_amd64.deb
>>
>> Also tested on linux 3.5.0-4.dmz.1-liquorix-amd64, and it works for me
>>
>> Now, given a power regression in kernel 3.5, I was eager to test drive
>> 3.6-rc6, and found rc7 out already!
>> So yesterday I installed linux 3.6-rc7.towo.1-siduction-amd64, the
>> "wl" module compiles and installs, and loads okay upon boot to
>> 3.6-rc7. However, I'm unable to associate to my AP:
>>
>> Pointers in syslog
>> Sep 25 21:34:10 terra wpa_supplicant[2787]: nl80211: 'nl80211' generic
>> netlink not found
>> Sep 25 21:34:10 terra wpa_supplicant[2787]: Failed to initialize
>> driver 'nl80211'
>> [..snip]

Not sure what is snipped here. Your wpa_supplicant seems to try nl80211.
Maybe it goes and try WEXT instead, but that is missing from the log. Do
you recall or still have the entire syslog?

>> Sep 25 21:34:31 terra wpa_supplicant[2787]: eth2: Trying to associate
>> with 00:xx:xx:xx:xx:xx (SSID='xxxxxxx' freq=2452 MHz)
>> Sep 25 21:34:31 terra wpa_supplicant[2787]: eth2: Association request
>> to the driver failed
>>
>> As bcm43142 is fairly new, this proprietary driver is all that's there
>> to support it. Sad face.
>>
>> Cheers,
>> Jasmine

Gr. AvS



2012-10-01 12:26:53

by Jasmine Hassan

[permalink] [raw]
Subject: Re: broadcom-sta-dkms: to version >= 6.20.55.19 (r300276)

Resend. Sorry, forgot to "reply all" on the last 2 emails

because wpa_supplicant 1.0 (at least on LMDE/Debian testing) always
tries nl80211 first
# grep -i wext /etc/wpa_supplicant/*
/etc/wpa_supplicant/functions.sh:# -D driver backend ('wext' if none given)
/etc/wpa_supplicant/functions.sh:
WPA_SUP_OPTIONS="$WPA_SUP_OPTIONS
-D nl80211,wext"
/etc/wpa_supplicant/functions.sh:
wpa_msg stderr "using
\"nl80211,wext\" wpa-driver instead ..."
/etc/wpa_supplicant/functions.sh:
WPA_SUP_OPTIONS="$WPA_SUP_OPTIONS
-D nl80211,wext"
/etc/wpa_supplicant/functions.sh: wpa_msg verbose "wpa-driver
nl80211,wext (default)"

--

And to answer your other question, attached the complete snipped part

--
Jasmine

On Mon, Oct 1, 2012 at 2:06 PM, Arend van Spriel <[email protected]> wrote:
> On 09/27/2012 04:24 PM, Jasmine Hassan wrote:
>>
>> Update on 3.6-rc7 problems with wpasupplicant-1.0-2 and broadcom-sta
>> 6.20.55.19 (r300276)
>> 1. Fails to associate to AP (WPA encryption used) when wl.ko built with
>> wext
>> 2. Kernel bug when wl.ko built with nl/cfg80211
>
>
> Commenting on issue 1 only, here.
>
>
>>> Updated deb:
>>> http://jas.gemnetworks.com/debian/wireless-bcm43142-dkms-6.20.55.19_amd64.deb
>>>
>>> Also tested on linux 3.5.0-4.dmz.1-liquorix-amd64, and it works for me
>>>
>>> Now, given a power regression in kernel 3.5, I was eager to test drive
>>> 3.6-rc6, and found rc7 out already!
>>> So yesterday I installed linux 3.6-rc7.towo.1-siduction-amd64, the
>>> "wl" module compiles and installs, and loads okay upon boot to
>>> 3.6-rc7. However, I'm unable to associate to my AP:
>>>
>>> Pointers in syslog
>>> Sep 25 21:34:10 terra wpa_supplicant[2787]: nl80211: 'nl80211' generic
>>> netlink not found
>>> Sep 25 21:34:10 terra wpa_supplicant[2787]: Failed to initialize
>>> driver 'nl80211'
>>> [..snip]
>
>
> Not sure what is snipped here. Your wpa_supplicant seems to try nl80211.
> Maybe it goes and try WEXT instead, but that is missing from the log. Do you
> recall or still have the entire syslog?
>
>
>>> Sep 25 21:34:31 terra wpa_supplicant[2787]: eth2: Trying to associate
>>> with 00:xx:xx:xx:xx:xx (SSID='xxxxxxx' freq=2452 MHz)
>>> Sep 25 21:34:31 terra wpa_supplicant[2787]: eth2: Association request
>>> to the driver failed
>>>
>>> As bcm43142 is fairly new, this proprietary driver is all that's there
>>> to support it. Sad face.
>>>
>>> Cheers,
>>> Jasmine
>
>
> Gr. AvS
>
>


Attachments:
snipped.txt (3.52 kB)