SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
So I'm new to Slackware but I've been using Ubuntu for a few years... I've always had challenges with the wireless drivers on the Dell Inspiron 1300 with a Dell 1470 Dual-Band Mini-PCI wireless card in it.
Here's a link to the thread in the Ubuntu forums that helped me solve it:
As I don't have internet access at home and can't bring my computer to work, I'll post the outputs of lsmod and lspci tomorrow for reference.
Basically, what it's come down (in Ubuntu) to is that I need ndiswrapper, but the wired network module b44 interferes with ndiswrapper. In Ubuntu I had to add ndiswrapper to /etc/modules (loads up extra modules that are needed) which doesn't exist in Slackware, and I'm assuming there's an equivalent file somewhere, I tried /etc/rc.d/rc.modules but that looked nothing like the file I am used to on Ubuntu.
In Ubuntu, I needed to blacklist b43, rfkill_input, mac80211. I tried different combinations of these in Slackware, and I've found that I still need these blacklisted for ndiswrapper to work.
Lastly, I discovered that the order in which ndiswrapper and b44 are loaded seems to come into play (after doing all this stuff above). If b44 is loaded before ndiswrapper, the wireless network will not work. So in Ubuntu, I added a small script rc.local to remove both b44 and ndiswrapper and then start ndiswrapper before b44 and that made everything work:
However, when I do this in Slackware, the wired network card isn't re-enabled (although the wireless card does work).
So given all the background info here, I guess I'm asking where to add the module ndiswrapper since /etc/modules doesn't exist in that form in Slackware, and what I'm doing wrong with modprobe, ndiswrapper, and b44 (possibly configuration after enabling b44?)
If you can come up with suggestions without the outputs of lsmod and lspci, I'd appreciate it... if not, it'll be posted tomorrow.
Of course /etc/rc.d/rc.local should be executable. This could work as /etc/rc.d/rc.local is the last script executed in the boot sequence.
Only caveat I think of: if you use DHCP for you wired connection this connection will fail during execution of /etc/rc.d/rc.inet1; that's not important but that will delay booting, I guess.
To avoid that delay maybe you could add somewhere some test like this one:
Code:
lsmod|grep b44 > /tmp/b44
if [ ! -s /tmp/b44 ]
then
rm /tmp/b44
exit
fi
rm /tmp/b44
Last edited by Didier Spaier; 12-16-2009 at 02:20 PM.
Just like you suggested, one of the first suggestions from the Ubuntu forums (during my Ubuntu days) was to blacklist b44, but if I do that, then the wired connection doesn't work. But I'll try it tonight, just in case. I'm not too concerned about the boot delay either, but I'll record that small script... I would add the the rc.local right? Or rc.inet1?
/etc/rc.d/rc.inet1 tries to bring up all network interfaces set up in /etc/rc.d/rc.inet1.conf, be they wired or wireless. So I think that if one can't be brought up for whatever reason, this do not prevent others to be brought up.
[EDIT]Re-reading your last post I should have added that the wired connection should be brought up during execution of rc.local: that's the purpose of "/etc/rc.d/rc.inet1 eth0_restart" command
[EDIT 2]No need for "/etc/rc.d/rc.inet1 eth0_restart", see my next post
I will try and report what I get. About where to put the proposed script (or something smarter, which should be easy) I'll try to figure that out.
[EDIT 2]See my next post.
Last edited by Didier Spaier; 12-16-2009 at 02:16 PM.
Just curious, maybe I'm missing some key element here, but why not configure the interfaces (on Slackware or Ubuntu, it should work the same) by making a .conf file in /etc/modprobe.d to tell modprobe which driver to use for what device?
An example (assuming wlan0 is the wireless, and assuming eth0 is the ethernet and used b44):
/etc/modprobe.d/net-devices.conf
Code:
alias wlan0 ndiswrapper
alias eth0 b44
And if need be, you can still blacklist the b44 driver so it will not get auto modprobed until this .conf file is read.
So I tried everything that's been suggested in as many different combinations as I could think of but none of it worked. It still remains that eth0 shows up after boot but wlan0 only shows up when I use modprobe to disable b44 and ndiswrapper and re-enable ndiswrapper after logging in (at which point eth0 doesn't show up anymore).
Take a look at the responses people made to this: https://bugs.launchpad.net/ubuntu/+bug/214917
One topic that sticks out to me is the blacklisting of other modules that b44 relies on, such as ssb and bcm43xx
I started the discussion on that bug after some people from the Ubuntu team suggested I post it on launchpad (I'm 2k3autococker in the posting)... kinda forgot about it until you linked to it... I'll definitely have to play around more with this new information.
I think it has been out for a year or two, maybe a bit longer. It appeared when the Linux netbooks started becoming popular. I suspect that the manufacturers twisted Broadcom's arm more than a little bit on this one.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.