Conflict between Ndiswrapper and ssb

Bug #188621 reported by RedBass on 2008-02-03
36
This bug affects 2 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Medium
Unassigned
Hardy
Undecided
Andy Whitcroft
ndiswrapper (Ubuntu)
Undecided
Unassigned
Hardy
Undecided
Unassigned

Bug Description

I have a pcmcia wireless card (ASUS WL-100g) with Broadcom Corporation BCM4306 802.11b/g controller. On my laptop i had upgrade the system to hardy (last update) and linux kernel 2.6.24-5-generic.

The wireless card works good with Ndiswrapper, but at startup this module doesn't work. I must remove the module ndiswrapper, ssb and ohci_hcd. Later reload, in this orher, ndiswrapper, ssb and ohci_hcd.
Why i must do these steps?

p.s. I have resolve the bug making a bash script at startup like this:

#! /bin/sh
### BEGIN INIT INFO
# Provides: ndiswrapper
# Required-Start:
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: enable to load ndiswrapper
# Description: enable to load ndiswrapper
### END INIT INFO

rmmod ohci_hcd
rmmod ssb
rmmod ndiswrapper
modprobe ndiswrapper
modprobe ssb
modprobe ohci_hcd

Andreas Gnau (rondom) wrote :

Thanks for taking your time and reporting this bug.
Could you please paste the output of dmesg (when it doesn't work i.e. you didn't reload the modules and when it works (when you have reloaded the modules)).

MasterAslan (brianmichaelh) wrote :

I am having the same problem and can confirm the above commands worked for me too. I don't know how to add this script to start up so I had to sudo each of the above commands in terminal and then I get my network up. I have attached my dmesg before running. Can you tell me how to add this to start up so I can add the dmesg after output?

Thanks

MasterAslan (brianmichaelh) wrote :

Sorry about the double post. I figured out how to add the script and I have attached the output files requested. Let me know if you require anything more.

Changed in ndiswrapper:
status: New → Confirmed
Andreas Gnau (rondom) wrote :

It looks like this is ssb's fault and not ndiswrapper's (though this is only a vague guess).
Do you still have a gutsy-installation at hand? If you do, try the latest ndiswrapper with the gutsy kernel.

MasterAslan (brianmichaelh) wrote :

Well I can confirm that yesterday using Gutsy ndiswrapper was working fine. I had used the ndiswrapper 1.51 not the new 1.52 though. In order to try it on gutsy unfortunately I would need to install it again.

RedBass (redbass) wrote :

For MasterAslan:

1) U must create a file in /etc/init.d/ndiswrapper:

sudo nano /etc/init.d/ndiswrapper

1.a) and paste in it this text:

#! /bin/sh
### BEGIN INIT INFO
# Provides: ndiswrapper
# Required-Start:
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: enable to load ndiswrapper
# Description: enable to load ndiswrapper
### END INIT INFO

rmmod ohci_hcd
rmmod ssb
rmmod ndiswrapper
modprobe ndiswrapper
modprobe ssb
modprobe ohci_hcd

############# end file ############

2) then set file access permissions:

sudo chmod 755 /etc/init.d/ndiswrapper

3) check if permissions are ok. Type:

ls -l /etc/init.d/ndiswrapper

[... ]
-rwxr-xr-x 1 root root 4388 2008-02-03 14:57 /etc/init.d/ndiswrapper
[... ]

4) last, create a symbolic link call S99ndiswrapper in the folder /etc/rc2.d, from /etc/init.d/ndiswrapper:

sudo ln -s /etc/init.d/ndiswrapper /etc/rc2.d/S99ndiswrapper

5) unplug your usb devices and pcmicia card and then reboot your machine.
6) when GDM start (the login screen), plug all USB device and pcmica cards that U want.

RedBass (redbass) wrote :

I have install ndiswrapper 1.51 with modules 2.6.24-5-generic

mikislate (mikislate) wrote :

The same thing happened to me updating to kernel 2.6.24, on Suse 10.3 - ndiswrapper 1.51. I also can work around it by unloading and reloading modules.

Juan Matias Granda (insulae) wrote :

the same problem, i am using:
Ubuntu Hardy (development branch) with 2.6.24-7-generic x86_64 and ndiswrapper 1.51, with the bash script the wireless card work fine.

Adam Williamson (awilliamson) wrote :

Hi all. We have this same issue on Mandriva (I'm encountering it on my personal system and trying to figure it out; I'm not a kernel hacker, just bashing away as best I can).

I have half of it figured out.

ssb is being loaded because ohci_hcd is being loaded. ohci_hcd has a dependency on ssb as long as the kernel build has:

CONFIG_USB_OHCI_HCD_SSB=y

so a quick fix would probably be to disable that option.

However, what I can't figure out is why ohci_hcd is being loaded at all. On my system, it is not listed in any modprobe configuration file, and I have verified with lspci -k that no hardware in my system is considered by the kernel to be supported by ohci_hcd. I also checked manually that none of my hardware has a modalias matching the modalias'es associated with ohci_hcd , according to modinfo ohci_hcd . And to do the obvious test - all my USB ports and hardware still work with ohci_hcd not loaded at all.

So I really cannot figure out what is causing ohci_hcd to be loaded on my system. It would seem to be something in the upstream kernel / modprobe stuff, if the problem occurs in both Mandriva and Ubuntu.

Others have reported that blacklisting ohci_hcd has no effect. This would make sense given my tests above, but I haven't tested this specifically on my system yet. I will do the next time I reboot.

Adam Williamson (awilliamson) wrote :

Okay, further research. On Mandriva, ohci_hcd is apparently loaded on all systems in the initrd, due to a change in mkinitrd. I suspect this is the same in Ubuntu.

Basically this boils down to: CONFIG_USB_OHCI_HCD_SSB=y is just wrong for a general-purpose distribution. From the help for that option:

"Support for the Sonics Silicon Backplane (SSB) attached Broadcom USB OHCI core.

This device is present in some embedded devices with Broadcom based SSB bus.

If unsure, say N."

So it's apparently only useful for supporting a USB controller that only exists in "some embedded devices". There's therefore no reason to enable it for a general-purpose distro. I guess you guys should assign this bug to your kernel team and have them disable that option. That's what I'm doing for MDV.

Marco Cimmino (cimmo) wrote :

and maybe stop to write into a duplicate bug report and instead use the original one wdyt?

Adam Williamson (awilliamson) wrote :

Sorry, I got this reference from a forum thread. Didn't know it was a dupe. What's the original? Why hasn't this been resolved as a dupe of it?

Marco Cimmino (cimmo) wrote :

Adam have you noticed the link at the top that says "This bug is a duplicate of ..."? Haven't noticed the message stamped above the textbox that says:
"Remember, this bug report is a duplicate. Comment here only if you think the duplicate status is wrong." ?

Adam Williamson (awilliamson) wrote :

Honestly? Nope. I actually went and looked specifically for such a thing after reading your last message, and it either wasn't there or wasn't noticeable. I see the one above the comment box now, but it still took me about thirty seconds to find the one at the top of the page today.

(Partly the fault of me forcing my own GTK+ color scheme on pages in Firefox, admittedly. If I turn that off, the yellow background makes it more visible). Sorry about that.

michelem (michele-marcucci) wrote :

I can confirm the problem with an Hardy Heron upgraded from Gutsy, loading ndiswrapper before ssb solves the problem but it is only a workaround.

Robert Nasiadek (robzon) wrote :

Same bug here.

The bug 197558 seems to be the same.

Kristopher Ives (nullmind) wrote :

My workaround for this bug is to create an init.d script (similar to the original posters) with:

#!/bin/bash

rmmod b43 # Unloads the bad b43 driver
rmmod b44 # Unloads the ethernet driver temporarily since we are unplugin ssb
rmmod ohci_hcd # (this is a bad kernel dependency, fix bug!)
rmmod ssb # temporarily remove the broadcom service
rmmod ndiswrapper # ensure ndiswrapper is GONE
modprobe ndiswrapper # plug ndiswrapper (notice it has to happen before ssb)
modprobe ssb # replug ssb now that ndiswrapper is there
modprobe ohci_hcd # ... blah
modprobe b44 # make sure we have ethernet again

TFrog (stgparris) wrote :

I have tried this and other different work arounds. Neither ndiswrapper nor the b43 driver are working on my Compaq R4125US laptop with Broadcom 4318 chip. Since I don't have access to a "wired lan" I've had to do a lot of my work back and forth via Windows then Kubuntu. I've currently given up and am waiting for the final release of Kubuntu 8.04. I'm hoping that they get the b43 driver working correctly as when I did get it to work in an early Alpha it worked even better than with ndiswrapper. However, if I have to use ndiswrapper again, I'll be more than happy to as it's worked well in the past.

have you tried the following?

https://bugs.launchpad.net/ubuntu/+bug/184976/comments/15

I am not a wifi expert but ... probably you just have to run the skript refered in bug #184976. I can't understand why this skript has not not been integrated in the Restricted Drivers Manager yet. By every fresh install of Hardy alpha.. or beta I had to run the refered skript manually.

I see there are a lot of different bugs related to broadcom 43xx and I suppose the most of them are incorrectly declared as duplicates. If simple patches like the skript that solved my issue aren't implemented as quick as possible, people with such bugs will post comments in other not related more complicated bugs and so it all gets more and more confusing.

TFrog please let me now if I am right about your problem.

SireeBob (sireebob) wrote :

The duplicate status is wrong. The bug this is linked to is about an authentication problem having nothing to do with ssb or ndiswrapper. This bug and the following bugs seem awfully similar:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/218763
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/197558

What makes them separate issues is beyond me.

Tayroni Alves (tay-fisica) wrote :

Conffirmed on Hardy Release Candidate at least for me

semon (simon-renard) wrote :

confirmed for me too on hardy Rc.

Card :4312 rev 1

b43 works but with ultra low rates (1 mb/s) and i'm 1 meter away from my AP.
ndiswrapper won't launch.

Tayroni Alves (tay-fisica) wrote :

The workaround on rc is to load ndiswrapper BEFORE ssb. When is ssb loaded on boot? Is there a clean way to make ndiswrapper loaded before ssb?

Tayroni Alves (tay-fisica) wrote :

I make ndiswrapper works with a broadcom wirelles board with a following procedure on a clean install of hardy

First, install the packages ndis and ndiswrapper-utils-1.9

Second, install driver from broadcom using

sudo ndiswrapper -i bcmwl5.inf
sudo ndiswrapper -l

you should see a message that says driver present, hardware detected

THE RELEVANT PART: Install aliases on /etc/modprobe.d

sudo ndiswrapper -ma

AGAIN, It's "-ma", NOT "-m". Finally add ndiswrapper to /etc/modules

Tayroni Alves (tay-fisica) wrote :

Sorry, the packages are NDISGTK and ndiswrapper-utils-1.9

Tayroni Alves (tay-fisica) wrote :

And I forgot to say that the free drivers for broadcom has to be blacklisted by adding these lines on /etc/modprobe.d/blacklist

blacklist bcm43xx
blacklist b43
blacklist b43legacy
blacklist b44

Hi everyone,

Would anyone care to confirm this is still an issue with the latest Alpha for the upcoming Intrepid Ibex 8.10 - http://www.ubuntu.com/testing. Please let us know your results. Thanks.

Changed in linux:
status: New → Incomplete

The Ubuntu Kernel Team is planning to move to the 2.6.27 kernel for the upcoming Intrepid Ibex 8.10 release. As a result, the kernel team would appreciate it if you could please test this newer 2.6.27 Ubuntu kernel. There are one of two ways you should be able to test:

1) If you are comfortable installing packages on your own, the linux-image-2.6.27-* package is currently available for you to install and test.

--or--

2) The upcoming Alpha5 for Intrepid Ibex 8.10 will contain this newer 2.6.27 Ubuntu kernel. Alpha5 is set to be released Thursday Sept 4. Please watch http://www.ubuntu.com/testing for Alpha5 to be announced. You should then be able to test via a LiveCD.

Please let us know immediately if this newer 2.6.27 kernel resolves the bug reported here or if the issue remains. More importantly, please open a new bug report for each new bug/regression introduced by the 2.6.27 kernel and tag the bug report with 'linux-2.6.27'. Also, please specifically note if the issue does or does not appear in the 2.6.26 kernel. Thanks again, we really appreicate your help and feedback.

Jason Wigg (jw5801) wrote :

This issue is still present in 2.6.27-2-generic. I've attached some test output (removing ndiswrapper, loading ssb then reloading ndiswrapper) which shows the device being claimed by the ssb module.

As an aside, it appears that the module `pcspkr' has been compiled into this kernel. I tend to disable my system bell by blacklisting this module, which I can't do if it hasn't been compiled as a module.

Jason Wigg (jw5801) wrote :

It appears I hadn't posted my earlier findings on this bug report either.

At least in my case, ssb was part of the initrd by default due to a desire for eth0 to be up immediately (presumably for a network boot, if desired). This requires b44 to be in the initrd which in turn requires ssb to be loaded. This all happens regardless of whether /etc/initramfs-tools/initramfs.conf has BOOT=local instead of BOOT=nfs. It can be prevented by changing the DEVICE field to `lo' however. Doing this and then blacklisting b44, b43 and ssb allowed me to cleanly load ndiswrapper during boot. It has the consequence of requiring me to manually load b44 when I need to bring up my wired interface, but that's easily done in /etc/network/interfaces.

Changed in linux:
assignee: nobody → ubuntu-kernel-team
importance: Undecided → Medium
status: Incomplete → Triaged
Przemek K. (azrael) wrote :

If blacklisting ssb doesn't work for you then run sudo update-initramfs -u
See bug #227158 for details.

Per a decision made by the Ubuntu Kernel Team, bugs will longer be assigned to the ubuntu-kernel-team in Launchpad as part of the bug triage process. The ubuntu-kernel-team is being unassigned from this bug report. Refer to https://wiki.ubuntu.com/KernelTeamBugPolicies for more information. Thanks.

This STILL is present in Ubuntu Intrepid (2.6.27-9). In my case b44 (wired connection) loads ssb before ndiswrapper (wifi). Blacklisting ssb does not work because then wired connections fail, and update-initramfs -u does nothing for me.

However, A far easier fix to the issue for end users is to edit the "/etc/rc.local file" and add the following before the "exit 0" line:

rmmod b43
rmmod b44
rmmod ssb
rmmod ndiswrapper
modprobe ndiswrapper
modprobe ssb
modprobe b44

Jason Wigg (jw5801) wrote :

Agreed, I tend to recommend adding scripts to /etc/rc.local, as it is a touch simpler, however creating a new init script is equally valid. This bug is due to the initramd set up that Ubuntu uses, as explained in my earlier post. For update-initramfs to actually do anything, it needs a change in config file so that it knows to do something.

For a cleaner fix (ie. removing the bug, instead of an ugly workaround), edit your /etc/initramfs-tools/initramfs.conf and ensure the BOOT variable is set to local, and then change the DEVICE variable from eth0 to lo. The variable is actually irrelevant unless a network boot is occurring, in which case networking would need to be available immediately. Once you've done that, run update-initramfs -u, remove the junk you've put in /etc/rc.local, blacklist b43 and b44 (b43 should be blacklisted anyway, you shouldn't be removing it in /etc/rc.local, as it should never be loaded), and add ndiswrapper to /etc/modules. Then you'll get a proper clean boot. b44 may not be necessary to blacklist, it may get auto-loaded after ndiswrapper anyway, and you'll need to load it if you need to bring up your wired interface, but that should happen automatically.

The best option by far is to compile your own kernel, and compile b44/ssb as a part of the kernel rather than modules and don't compile b43 at all. Then none of this is an issue.

Andy Whitcroft (apw) wrote :
Download full text (4.7 KiB)

This bug was marked as a duplicate of bug #182716 as that bug also necessitated the removal of that config option. It was closed FIX RELEASED by the upload replicated below:

linux (2.6.24-12.19) hardy; urgency=low

  * Re-upload of -12.18 to fix build failures
  * Fixup binary-custom configs
  * Fixup xen patch to cope with kvm changes

  [Amit Kucheria]

  * Move Marvell 8686 and 8688 to LUM
  * Poulsbo: Sync patches with moblin/ume-hardy tree
  * Break if a patch fails to apply
  * SAUCE: implement smarter atime updates support
    - LP: #199427
  * Enable USB_PERSIST to allow devices with /root on usb to work with
    suspend
  * Enable USB_PERSIST across the board

  [Ben Collins]

  * build/config: Really fix ide on smp ppc configs
  * build/configs: Enable relatime config option for all flavors
  * build/abi: Ignore ide-core module for ppc, moved to built-in

  [Colin Ian King]

  * fix reversed logic for bbuild check leads to -j1 default
    - LP: #197040
  * Enable IDE_PMAC for powerpc-smp
    - LP: #196686
  * Disable CONFIG_USB_OHCI_HCD_SSB
    - LP: #182716
  * SAUCE: fix arcmsr + archttp64 calls dma_free_coherent() with irqs
    disabled - dmesg filled with warnings
    - LP: #194207

  [Jorge Boncompte [DTI2]]

  * Fix Messed multicast lists after dev_mc_sync/unsync
    - LP: #193468

  [Stefan Bader]

  * Add support for Apple Aluminium keyboards.
    - LP: #162083
  * SAUCE: Restore VT fonts on switch

  [Upstream Kernel Changes]

  * [NET]: Messed multicast lists after dev_mc_sync/unsync
  * KVM: x86 emulator: add support for group decoding
  * KVM: x86 emulator: group decoding for group 1A
  * KVM: x86 emulator: Group decoding for group 3
  * KVM: x86 emulator: Group decoding for groups 4 and 5
  * KVM: x86 emulator: add group 7 decoding
  * KVM: constify function pointer tables
  * KVM: Only x86 has pio
  * KVM: x86 emulator: group decoding for group 1 instructions
  * KVM: MMU: Decouple mmio from shadow page tables
  * KVM: Limit vcpu mmap size to one page on non-x86
  * KVM: VMX: Enable Virtual Processor Identification (VPID)
  * KVM: Use CONFIG_PREEMPT_NOTIFIERS around struct preempt_notifier
  * KVM: Disable pagefaults during copy_from_user_inatomic()
  * KVM: make EFER_RESERVED_BITS configurable for architecture code
  * KVM: align valid EFER bits with the features of the host system
  * KVM: allow access to EFER in 32bit KVM
  * kvm: i386 fix
  * KVM: export information about NPT to generic x86 code
  * KVM: MMU: make the __nonpaging_map function generic
  * KVM: export the load_pdptrs() function to modules
  * KVM: MMU: add TDP support to the KVM MMU
  * KVM: x86 emulator: Fix 'jmp abs'
  * KVM: x86 emulator: fix group 5 decoding
  * KVM: Fix kvm_arch_vcpu_ioctl_set_sregs so that set_cr0 works properly
  * KVM: Make the supported cpuid list a host property rather than a vm
    property
  * KVM: emulate access to MSR_IA32_MCG_CTL
  * KVM: remove the usage of the mmap_sem for the protection of the memory
    slots.
  * KVM: SVM: allocate the MSR permission map per VCPU
  * KVM: make MMU_DEBUG compile again
  * KVM: paravirtualized clocksource: host part
  * KVM: Add missing semicolon
  * KVM: x86 emulator: add ad_mask...

Read more...

Changed in ndiswrapper (Ubuntu):
status: Confirmed → Invalid
Changed in ndiswrapper (Ubuntu Hardy):
status: New → Won't Fix
Tim Gardner (timg-tpi) on 2009-04-14
Changed in ndiswrapper (Ubuntu Hardy):
status: Won't Fix → Invalid
Andy Whitcroft (apw) wrote :

As this bug was reported and fixed in Hardy I have nominated it there and moved it FIX RELEASED. As the bug no longer existed in Intrepid and later am moving the development task INVALID.

Changed in linux (Ubuntu Hardy):
assignee: nobody → Andy Whitcroft (apw)
status: New → Fix Released
Changed in linux (Ubuntu):
status: Triaged → Invalid
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers