Lost wireless after Kernel update (Broadcom 4313)

I’m setting up a netbook for my wife. She got tired of lugging around her huge 17" laptop.

A little history: I loaded 11.3 & KDE 4.5.2 but found that she had no wireless until I installed all the updates, one of which updated the kernel to 2.6.34.7-0.3-desktop. That resolved the wireless issues fine but left the touchpad and keyboard unusable. The touchpad was so senstive that even using the nearby space bar caused the cursor to go flying to random locations on screen. (See my post on the laptop forum if interested.) After a great deal of research I learned that the solution to the touchpad issues would be yet another kernel update, so after a certain amount of soul searching, I downloaded, compiled and installed 2.6.35.7-0.3-desktop which solved the touchpad issues wonderfully but left the wireless no longer working.

Here’s some data on the current status:

Hardware: Acer Aspire One D255, Broadcom 4313 Wireless card
OS: OpenSUSE 11.3
kernel: 2.6.35.7-0.3-desktop
Desktop: KDE 4.5.2

lspci shows:
“02:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g LP-PHY (rev 01)”

dmesg | grep firmware finds the firmware for the touchpad only

The following are installed using YAST:

b43-firmware 4.174.64.19-3.pm.3.1
b43-fwcutter 012-6.1
broadcom-wl 5.60.48.36.7.pm.8.7
broadcom-wl-kmp-desktop 5.60.48.36._k2.6.34.7_0.3-7.pm.8.7

The wireless card is ID’d correctly at Yast>Network Devices>Network Settings but can’t find a network.

I’d appreciate some guidance. I suspect that maybe broadcom-wl-kmp-desktop 5.60.48.36._k2.6.34.7_0.3-7.pm.8.7 is incompatible with the new kernel, but I’m not sure and wouldn’t know what to do about it even if I’m right.

Absolutely correct.

Download the respective Source-RPM (src.rpm) and rebuild it against your running kernel, you will need packages needed for compilation of kernel modules (install pattern “devel_kernel” via YaST/zypper) and the kernel headers for your running kernel.

Read

man rpmbuild

to get more information about rebuilding RPMs from Source-RPMs.

Any idea where I can get these for the newer kernel? They’re not available through YAST using the usual basic repos.

If you mean tools for compilation (make, gcc, etc.), they are independent of your kernel version.

If you mean headers for your 2.6.35, it depends where you got that from:

  • if you got it from some openSUSE-Repo (in OBS, the suffix “desktop” indicated that, as it is a typical suffix for openSUSE-kernels), then they should be there in the same repo

  • if you compiled your kernel from vanilla sources, I don’t know how to adapt that to the openSUSE build system for RPM packages, so … good luck.

:slight_smile:

…compiled your kernel from vanilla sources, I don’t know how to adapt that to the openSUSE build system for RPM packages, so … good luck.

That’s what I was afraid you’d say :wink:

Thanks for your quick responses, very informative.

BTW. Would it have been possible to find such a recent kernel in an OpenSUSE repo? I didn’t find it, but maybe I just didn’t know where to look.

Did you try the wl driver?

Install Broadcom Drivers from Packman

Well, maybe there is a better solution (and one, which is a little more interesting at least for me).

Building a newer kernel because one piece of hardware is not working as expected is not necessary in most cases.

If there is a problem with a kernel driver, then “backporting” this kernel module from a newer kernel to the older version can solve the problem without the negative side effects you just have.

Then even building your own RPM package would be possible therefore not having to bypass the package manager.

To have any chance of success, one would need more information on why you actually built the new kernel (i.e. USB/PCI-ID of the problematic device, which kernel module needs to be updated/backported, etc.).

There is no guarantee here, but if it works it is certainly cleaner an easier to maintain than dirty hacks (and building your own kernel from source -maybe only because one needed to update a single kernel module- is a dirty hack I would try to avoid by all means).

But maybe I am a not “neutral” here, as my contribution to OBS consists mainly in backporting kernel modules (especially for wireless devices) to older kernels.

Sorry to have disappeared in the middle of this dialog. I was called away on personal matters that could not be ignored.

@ caf4926 Thanks for the suggestion but no luck. The first kernel that gave me the ability to control the touchpad was 2.6.35.7-0.3-desktop, but the newest broadcom-wl-kmp-desktop at Packman was for 2.6.34…

@ Akoellh It’s a little over my head, but I think I understand what you’re suggesting. I’d be quite willing to try your approach with your help. I have to go back on the road briefly (In fact I’m late now), but I’ll reply later with the data you’ve asked for.

@ Akoellh

one would need more information on why you actually built the new kernel (i.e. USB/PCI-ID of the problematic device, which kernel module needs to be updated/backported, etc.).

The wireless worked fine with 2.6.34.7-0.3-desktop, so I suspect that’s the kernel I’d want to stay with/go back to. (It came from on-line update.)

The first kernel version that recognized and controlled the touchpad acceptably did not provide wireless. That was 2.6.35.7-0.3-desktop, so I assume it’s the module from this version that you’d suggest “backporting” the touchpad module to 2.6.34.7-0.3

Working on the basis that that assumption is correct I’ve tried to gather some data I think might be helpful.

Note: The device is a PS/2 so nothing shows up with lspci or lsusb:

Under 2.6.34… the original, clearly bogus, ID of the trackpad shows up as

~> grep -i mouse /var/log/Xorg.0.log
 30.213] (==) intel(0): Silken mouse enabled
 30.486] (II) config/udev: Adding input device ImPS/2 Logitech Wheel Mouse (/dev/input/event1)
 30.486] (**) ImPS/2 Logitech Wheel Mouse: Applying InputClass "evdev pointer catchall"
 30.486] (**) ImPS/2 Logitech Wheel Mouse: always reports core events
 30.486] (**) ImPS/2 Logitech Wheel Mouse: Device: "/dev/input/event1"
 30.490] (II) ImPS/2 Logitech Wheel Mouse: Found 3 mouse buttons
 30.490] (II) ImPS/2 Logitech Wheel Mouse: Found scroll wheel(s)
 30.490] (II) ImPS/2 Logitech Wheel Mouse: Found relative axes
 30.490] (II) ImPS/2 Logitech Wheel Mouse: Found x and y relative axes
 30.490] (II) ImPS/2 Logitech Wheel Mouse: Configuring as mouse
 30.490] (**) ImPS/2 Logitech Wheel Mouse: YAxisMapping: buttons 4 and 5
 30.490] (**) ImPS/2 Logitech Wheel Mouse: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
 30.490] (II) XINPUT: Adding extended input device "ImPS/2 Logitech Wheel Mouse" (type: MOUSE)
 30.490] (**) ImPS/2 Logitech Wheel Mouse: (accel) keeping acceleration scheme 1
 30.490] (**) ImPS/2 Logitech Wheel Mouse: (accel) acceleration profile 0
 30.490] (**) ImPS/2 Logitech Wheel Mouse: (accel) acceleration factor: 2.000
 30.490] (**) ImPS/2 Logitech Wheel Mouse: (accel) acceler ation threshold: 4
 30.490] (II) ImPS/2 Logitech Wheel Mouse: initialized for relative axes.
 30.491] (II) config/udev: Adding input device ImPS/2 Logitech Wheel Mouse (/dev/input/mouse0)

Under 2.6.35… the trackpad is

# grep -i mouse /var/log/Xorg.0.log
    21.770] (==) intel(0): Silken mouse enabled
    22.780] (II) config/udev: Adding input device ETPS/2 Elantech Touchpad (/dev/input/mouse0)

entry in /proc/bus/input/devices under 2.6.35… is

I

: Bus=0011 Vendor=0002 Product=000e Version=0000
N: Name=“ETPS/2 Elantech Touchpad”
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input1
U: Uniq=
H: Handlers=mouse0 event1
B: EV=b
B: KEY=6420 0 30000 0 0 0 0 0 0 0 0
B: ABS=f0003

How do I determine “which kernel module needs to be updated/backported, etc.”?

I’m in over my head here, but I’m good at following directions, so thanx in advance for any assistance you can offer.

Did you try reactive bluetooth, in my Dell on last Kernel update seems that occurred it, I just switch on bluetooth and now works!!!

Thanx for the suggestion, however this PC doesn’t have bluetooth.

Have you tried the kernel from here
Index of /repositories/Kernel:/HEAD/openSUSE_11.3

Just be sure you know how to get back if it doesn’t work

@ caf4926

Thanx for the tip. I’d actually tried 2.6.36-rc7 from there, but found that it resolved the wireless issue at the expense of no longer containing the solution to the touchpad issues that started this whole adventure in the first place. (The post about that issue is here.)

Now I see that the HEAD repo has rc8. I’m gonna try to do some reading to see what’s different.

About the idea of “backporting” the respective driver from 2.6.35 to 2.6.34 and maybe build kmp-Package.

The basic idea is quite simple (and might get real hard, but I’ll talk about that a little later).

The basic principle:

  • You have a kernel module inside your kernel which maybe is buggy or does not support a certain device yet or even is not yet in your kernel but was added later.

  • You take the sources of that same kernel module from a later kernel version, patch it if necessary and build it against the sources/header of your installed (older) kernel.

  • You get a module with new functions for your old kernel which you install in the correct directory (i.e. /lib/modules/<kernel version>/updates) so it will be preferred over the module inside the kernel.

Advanced

  • You build a package (kmp-RPM) and distribute that package over OBS (this part is what I actually do with quite a few modules, mainly wireless drivers).

In a nutshell, you “backported” a kernel module.

Potential Problems:

Newer kernel versions change a lot “under the hood” and the code does not always compile against an older version, this becomes more likely if there is a big difference between the running kernel and the version you want to backport from. Sometimes this can be fixed by adding patches, sometimes it is not that easy and depends on the programming skills (for kernel modules that’s mainly C) of the respective packager (in my case, not really a lot of them).

However, there is one “showstopper” (at least to the best of my knowledge) or in other words one important prerequisite to make this possible.

The respective driver must be either deactivated or compiled as a lodable module for the running kernel, otherwise you can not replace it with your backported module.

And here’s the “party pooper”:

grep PS2 /boot/config-*
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
**CONFIG_MOUSE_PS2_ELANTECH=y**
CONFIG_MOUSE_PS2_TOUCHKIT=y
CONFIG_SERIO_PCIPS2=m
CONFIG_SERIO_LIBPS2=y

This is just a guess (marked bold), but nearly all other PS2-mouse drivers are also compiled directly into the kernel (the “Y” indicates that) and therefore can not be replaced by a loadable module (at least to the best of my knowledge, if that is not true, then correct me).

update: Sorry I haven’t been participating lately, I’m still on the road and won’t have time to get back to this 'til next week when I’ll finally be back home. For now I needed a quick fix and reloaded 11.3 from live CD (via thumb drive). That gives us wireless. We’re living with the “plain vanilla” load and the hypersenstive touchpad until we can give our full attention to coming up with a more satisfactory resolution.

On 10/29/2010 10:06 AM, caprus wrote:
>
> update: Sorry I haven’t been participating lately, I’m still on the road
> and won’t have time to get back to this 'til next week when I’ll finally
> be back home. For now I needed a quick fix and reloaded 11.3 from live
> CD (via thumb drive). That gives us wireless. We’re living with the
> “plain vanilla” load and the hypersenstive touchpad until we can give
> our full attention to coming up with a more satisfactory resolution.

This seems a good point to reinforce the following:

If your system requires an out-of-kernel driver that comes from a proprietary
source (wl, etc.) or a backported driver (bcrm80211, etc.), updating your kernel
will break that device. The reason is that every driver MUST be built for the
kernel under which it is running. Accordingly, NEVER allow your kernel to be
updated unless you are in a position to obtain the correct driver for the new
kernel.

I’m finally able to get back to this problem. (We flew home several days ago, but I’d thrown my back out putting a bag in the overhead bin, and couldn’t even sit up 'til today.)

Here’s a progress report to date. I’d been thrashing and crashing around on this PC so long I finally decided to reload 11.3 w/ 2.6.34 & KDE 4.5.3 . That initially gave me back wireless, but at the expense of losing control of the touchpad. This was not acceptable, as the keyboard is unusable that way. The cursor jumps all around the screen whenever one hits the spacebar.

I then upgraded to kernel 2.6.36-90-desktop (using YAST, from HEAD repo). That solves every problem ex. one. I’m now without wireless again. I’m pretty sure I know why, but I’m still just newbie enough to not know how best to solve the problem.

after the upgrade Yast showed that broadcom-wl-kmp-default was checked, so I unchecked that and checked broadcom-wl-kmp-desktop

after reboot YAST>Network Devices>Network Settings shows the Broadcom WLAN controller, and KDE’s networkmanager doesn’t show the wireless tab grayed out, but I cannot scan for an available network.

then I realized that the broadcom-wl-kmp-desktop entry reads 5.60.246.2_k2.6.34.7_0.5-7.pm.8.1

uname -r confirms that my kernel is 2.6.36-90-desktop

So, I assume that my broadcom-wl-kmp-default is incompatible with my kernel. That’s as far as I can get without help. I’ve no desire to roll back to an earlier kernel version, as I’ve already spent too many wasted days proving that using the Elantech touchpad is not practical without the control I finally got with 2.6.36. (a Google search on elantech and linux yields 85,000 hits, almost all reports of similar problems!)

Could someone please offer a simple howto that’ll get wireless going on this system with 2.6.36? Thanx

sorry, that’s a typo, should say “broadcom-wl-kmp-desktop”

Remove broadcom packages because they are not for that kernel.

Did you try the b43 driver.

Do this with your wired connection active

sudo /usr/sbin/install_bcm43xx_firmware
modprobe b43

reboot
what shows now in

/sbin/lspci -nnk
~> /sbin/lspci -nnk
00:00.0 Host bridge [0600]: Intel Corporation N10 Family DMI Bridge [8086:a010] (rev 02)
        Subsystem: Acer Incorporated [ALI] Device [1025:0349]
        Kernel driver in use: agpgart-intel
00:02.0 VGA compatible controller [0300]: Intel Corporation N10 Family Integrated Graphics Controller [8086:a011] (rev 02)
        Subsystem: Acer Incorporated [ALI] Device [1025:0349]
        Kernel driver in use: i915
00:02.1 Display controller [0380]: Intel Corporation N10 Family Integrated Graphics Controller [8086:a012] (rev 02)
        Subsystem: Acer Incorporated [ALI] Device [1025:0349]
00:1b.0 Audio device [0403]: Intel Corporation N10/ICH 7 Family High Definition Audio Controller [8086:27d8] (rev 02)
        Subsystem: Acer Incorporated [ALI] Device [1025:0349]
        Kernel driver in use: HDA Intel
00:1c.0 PCI bridge [0604]: Intel Corporation N10/ICH 7 Family PCI Express Port 1 [8086:27d0] (rev 02)
        Kernel driver in use: pcieport
00:1c.1 PCI bridge [0604]: Intel Corporation N10/ICH 7 Family PCI Express Port 2 [8086:27d2] (rev 02)
        Kernel driver in use: pcieport
00:1d.0 USB Controller [0c03]: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 [8086:27c8] (rev 02)
        Subsystem: Acer Incorporated [ALI] Device [1025:0349]
        Kernel driver in use: uhci_hcd
00:1d.1 USB Controller [0c03]: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 [8086:27c9] (rev 02)
        Subsystem: Acer Incorporated [ALI] Device [1025:0349]
        Kernel driver in use: uhci_hcd
00:1d.2 USB Controller [0c03]: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 [8086:27ca] (rev 02)
        Subsystem: Acer Incorporated [ALI] Device [1025:0349]
        Kernel driver in use: uhci_hcd
00:1d.3 USB Controller [0c03]: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 [8086:27cb] (rev 02)
        Subsystem: Acer Incorporated [ALI] Device [1025:0349]
        Kernel driver in use: uhci_hcd
00:1d.7 USB Controller [0c03]: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller [8086:27cc] (rev 02)
        Subsystem: Acer Incorporated [ALI] Device [1025:0349]
        Kernel driver in use: ehci_hcd
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev e2)
00:1f.0 ISA bridge [0601]: Intel Corporation NM10 Family LPC Controller [8086:27bc] (rev 02)
        Subsystem: Acer Incorporated [ALI] Device [1025:0349]
00:1f.2 SATA controller [0106]: Intel Corporation N10/ICH7 Family SATA AHCI Controller [8086:27c1] (rev 02)
        Subsystem: Acer Incorporated [ALI] Device [1025:0349]
        Kernel driver in use: ahci
00:1f.3 SMBus [0c05]: Intel Corporation N10/ICH 7 Family SMBus Controller [8086:27da] (rev 02)
        Subsystem: Acer Incorporated [ALI] Device [1025:0349]
        Kernel driver in use: i801_smbus
01:00.0 Ethernet controller [0200]: Atheros Communications AR8152 v1.1 Fast Ethernet [1969:2060] (rev c1)
        Subsystem: Acer Incorporated [ALI] Device [1025:0349]
        Kernel driver in use: atl1c
02:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11b/g LP-PHY [14e4:4727] (rev 01)
        Subsystem: Broadcom Corporation Device [14e4:0510]

still no wireless though