LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Wired & Wireless networking interfering on Dell Inspiron 1300 (Slackware 13) (https://www.linuxquestions.org/questions/slackware-14/wired-and-wireless-networking-interfering-on-dell-inspiron-1300-slackware-13-a-775785/)

spudgunner 12-15-2009 08:28 AM

Wired & Wireless networking interfering on Dell Inspiron 1300 (Slackware 13)
 
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:

http://ubuntuforums.org/showthread.php?t=740632

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:

Code:

modprobe -r ndiswrapper
modprobe -r b44
modprobe ndiswrapper
modprobe b44

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.

Thanks

voyciz 12-15-2009 08:40 AM

Perhaps you're looking for /etc/modprobe.d directory

spudgunner 12-16-2009 12:12 PM

Ndiswrapper is indeed in the /etc/modprobe.d/ directory, and I'm assuming that's a good sign.

Now, for the output of lsmod and lspci:

lspci:

Code:

bash-3.1# lspci
00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03)
00:1c.3 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)
00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)
00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03)
02:00.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)
02:03.0 Network controller: Broadcom Corporation BCM4311 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (rev 02)

lsmod:
Code:

Module                  Size  Used by
sg                    24912  0
i915                  151464  1
drm                  137856  2 i915
snd_seq_dummy          2464  0
snd_seq_oss            29792  0
snd_seq_midi_event      5980  1 snd_seq_oss
snd_seq                47984  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device          6088  3 snd_seq_dummy,snd_seq_oss,snd_seq
snd_pcm_oss            37728  0
snd_mixer_oss          14300  1 snd_pcm_oss
ipv6                  243508  14
cpufreq_ondemand        6632  0
speedstep_lib          3840  0
freq_table              3420  1 cpufreq_ondemand
ppdev                  7200  0
lp                      9316  0
parport_pc            24036  0
parport                30700  3 ppdev,lp,parport_pc
fuse                  54008  3
snd_hda_codec_idt      56156  1
snd_hda_intel          23624  0
snd_hda_codec          53788  2 snd_hda_codec_idt,snd_hda_intel
joydev                  9504  0
snd_hwdep              6816  1 snd_hda_codec
b44                    27052  0
snd_pcm                68128  3 snd_pcm_oss,snd_hda_intel,snd_hda_codec
ssb                    38848  1 b44
snd_timer              19108  2 snd_seq,snd_pcm
pcmcia                33772  1 ssb
thermal                15096  0
intel_agp              25628  1
processor              38600  2 thermal
dell_laptop            3388  0
rtc_cmos              10124  0
snd                    50820  11 snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_hda_codec_idt,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
pcmcia_core            32016  2 ssb,pcmcia
video                  16492  0
agpgart                29256  3 drm,intel_agp
rtc_core              15992  1 rtc_cmos
soundcore              5824  1 snd
thermal_sys            10756  3 thermal,processor,video
output                  2396  1 video
rtc_lib                2332  1 rtc_core
psmouse                41676  0
mii                    4380  1 b44
rfkill                  9296  1 dell_laptop
snd_page_alloc          7972  2 snd_hda_intel,snd_pcm
button                  5708  0
ac                      3840  0
battery                9856  0
hwmon                  2104  1 thermal_sys
dcdbas                  7068  1 dell_laptop
serio_raw              5024  0
evdev                  9152  12

I'm stuck on what to do to get this to work... any suggestions?

Didier Spaier 12-16-2009 12:54 PM

What I would do is add b44 at the end of /etc/modprobe.d/blacklist.conf but add following lines at the end of /etc/rc.d/rc.local:
Code:

/sbin/modprobe b44
/etc/rc.d/rc.inet1 eth0_restart

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


spudgunner 12-16-2009 01:07 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?

Didier Spaier 12-16-2009 01:20 PM

/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.

GrapefruiTgirl 12-16-2009 01:26 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.

Sasha

spudgunner 12-16-2009 01:37 PM

Good stuff, I'll trying poking around more and see what I can do and let you know

Didier Spaier 12-16-2009 02:13 PM

I just tried, that was even simpler:
1) Add this line at the end of /etc/modprobe.d/blacklist.conf:
Code:

b44
2) Add this line at the end of /etc/rc.d/rc.local:
Code:

/sbin/modprobe b44
3) Make sure this file be executable:
Code:

chmod +x /etc/rc.d/rc.local
No need to restart rc.inet1.
And you shouldn't undergo any boot delay, so no need for my stupid script ;)

Slackware network scripts are really well designed after all :cool:

spudgunner 12-17-2009 07:31 AM

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).

voyciz 12-17-2009 07:58 AM

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

spudgunner 12-17-2009 01:31 PM

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.

Hangdog42 12-17-2009 03:54 PM

This may be a dumb question, but if you've got a 4311 based card, why aren't you using Broadcom's driver?

spudgunner 12-18-2009 07:16 AM

Not a dumb question, I never knew that existed. How long have they been making it for?

Hangdog42 12-18-2009 07:23 AM

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.


All times are GMT -5. The time now is 04:11 PM.