LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Networking (http://www.linuxquestions.org/questions/linux-networking-3/)
-   -   Slackware 13.1 WiFi trouble (Oh god, not again!?) (http://www.linuxquestions.org/questions/linux-networking-3/slackware-13-1-wifi-trouble-oh-god-not-again-861455/)

Krystah 02-08-2011 12:12 PM

Slackware 13.1 WiFi trouble (Oh god, not again!?)
 
Hello there. It seems I'm going to have to make my first post by bringing up the subject that I see around alot of different forums, the Linux WiFi, or more specifically, Slackware WiFi.

I installed Slackware 13.1 approx. 5 days ago, so I have spent these days figuring out very basic Linux stuff, as well has constantly, on the side, trying to get a working WiFi solution up & going, so I have been through ALOT of posts, FAQ's and guides, but no cigar, hence I came to you:

NB: It might be worth noticing that after the clean install of Slackware 13.1, the physical WiFi ON/OFF switch on my keyboard is no longer responding, and is showing no light(Off). Is the physical state of the light relevant to the actual state of the WiFi card (ie. if the light is off, will the card not work in any way until the button/light is fixed, or can this be changed through some settings in the system?

My ifconfig:
Code:

eth0      Link encap:Ethernet  HWaddr 00:23:5a:eb:ac:3b 
          inet addr:10.0.0.12  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::223:5aff:feeb:ac3b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:63133 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48964 errors:0 dropped:0 overruns:0 carrier:3
          collisions:0 txqueuelen:1000
          RX bytes:34361456 (32.7 MiB)  TX bytes:10644194 (10.1 MiB)
          Interrupt:30

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:264 errors:0 dropped:0 overruns:0 frame:0
          TX packets:264 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:13640 (13.3 KiB)  TX bytes:13640 (13.3 KiB)

I am able to do ifconfig eth0 on | off, but when I try to set essid in iwconfig, it results in this:
Code:

Error for wireless request "Set ESSID" (8B1A) :
    SET failed on device eth0 ; Operation not supported.

My iwconfig:
Code:

lo        no wireless extensions.

eth0      no wireless extensions.

wlan0    IEEE 802.11bg  Mode:Managed  Access Point: Not-Associated 
          Tx-Power=0 dBm 
          Retry  long limit:7  RTS thr:off  Fragment thr:off
          Encryption key:off
          Power Management:off

My iwlist scan:
Code:

lo        Interface doesn't support scanning.

eth0      Interface doesn't support scanning.

wlan0    Interface doesn't support scanning : Network is down

I also tried a code listed somewhere in these forums which was supposed to return 1 if the card was active, and 0 if it was inactive. Mine returned 1.

I also downloaded wicd, in hope of it providing any magical service to help me solve this, but it doesn't do much, it does not save my settings after I apply them, nor does it find any nearby networks, which leads me to believe the card is not activated.

I have an Acer Emachines E725 Laptop with a Broadcom BCM 4312 WiFi card.
I downloaded the correct drivers from SlackBuilds, un-tar'ed, compiled and installed the package according to the instructions.

My apologies for the lengthy post, but I thought it would be better to provide too much information than too little. Hope someone could take the time to read this T_T. Thanks in advance!

Krys

mostlyharmless 02-08-2011 02:04 PM

Just as a diagnostic step, I'd try booting a live CD of something else, Knoppix, for example, to see if the problem is Slackware specific. I presume prior to Slackware you were running Windows and had no problem with wifi? Or were you running something else and had no problems?

reed9 02-08-2011 02:38 PM

Can you give us the output of
Code:

lsmod
And when you say correct drivers, can you specify what exactly you installed? Was is this one?

Was the "1" output in response to something like
Code:

cat /sys/class/rfkill/rfkill*/state

Krystah 02-08-2011 02:57 PM

Thanks for the replies. =)

lsmod gives this:
Code:

Module                  Size  Used by
snd_seq_dummy          1487  0
snd_seq_oss            29884  0
snd_seq_midi_event      5620  1 snd_seq_oss
snd_seq                52643  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device          5459  3 snd_seq_dummy,snd_seq_oss,snd_seq
snd_pcm_oss            39907  0
snd_mixer_oss          15975  1 snd_pcm_oss
ipv6                  273462  18
cpufreq_ondemand        8453  2
acpi_cpufreq            6433  0
freq_table              2475  2 cpufreq_ondemand,acpi_cpufreq
ppdev                  6315  0
lp                    10049  0
parport_pc            21015  0
parport                29923  3 ppdev,lp,parport_pc
fuse                  59927  1
snd_hda_codec_realtek  257813  1
b43                  178613  0
mac80211              171226  1 b43
cfg80211              128711  2 b43,mac80211
rfkill                15860  1 cfg80211
led_class              2785  1 b43
wl                  2526280  0
lib80211                4022  1 wl
snd_hda_intel          21832  2
snd_hda_codec          65015  2 snd_hda_codec_realtek,snd_hda_intel
ssb                    47271  1 b43
i915                  294231  2
uvcvideo              60908  0
snd_hwdep              6420  1 snd_hda_codec
drm_kms_helper        24215  1 i915
snd_pcm                71871  3 snd_pcm_oss,snd_hda_intel,snd_hda_codec
snd_timer              19466  2 snd_seq,snd_pcm
mmc_core              54106  2 b43,ssb
drm                  163609  3 i915,drm_kms_helper
snd                    57142  15 snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
pcmcia                30280  2 b43,ssb
joydev                10293  0
i2c_algo_bit            5143  1 i915
videodev              37815  1 uvcvideo
thermal                12550  0
rtc_cmos                9278  0
intel_agp              27459  1
video                  18965  1 i915
atl1c                  31194  0
soundcore              5839  1 snd
processor              29915  3 acpi_cpufreq
thermal_sys            14118  3 thermal,video,processor
agpgart                29705  2 drm,intel_agp
v4l1_compat            15120  2 uvcvideo,videodev
hwmon                  1449  1 thermal_sys
pcmcia_core            29487  1 pcmcia
rtc_core              14766  1 rtc_cmos
psmouse                47158  0
wmi                    6275  0
evdev                  9114  15
battery                9884  0
button                  4922  1 i915
ac                      3171  0
snd_page_alloc          7145  2 snd_hda_intel,snd_pcm
output                  1964  1 video
rtc_lib                1922  1 rtc_core
v4l2_compat_ioctl32    11424  1 videodev
i2c_i801                8598  0
serio_raw              4654  0
i2c_core              18679  6 i915,drm_kms_helper,drm,i2c_algo_bit,videodev,i2c_i801
sg                    25890  0

For learning purposes, could you explain why you find this information helpful? (Unless it takes a very long explanation, I'm just being curious. ^^)

And yes, it was indeed
Code:

cat /sys/class/rfkill/rfkill*/state
that returned 1.

Yes, I'm a retired Windows-user, and the WiFi used to work in Windows, but I do not feel entirely safe installing another distro, but that is simply because I have never done it and am afraid to break something. When you install a distro, doesn't that work like installing Windows (which means it has to format the partition it installs to? Naturally I don't want to risk formatting my Slackware data.. :P)

I am still trying to grasp what the difference between Linux and Distributions is. Is Linux like, the "present" of a gift, while the distributions are the paper wrapping? If anyone can clear this up (It's silly to use Linux and don't know this, I know, but I haven't had much time to read Linux in general in these few hazy days of Slackware.

Thanks again for the replies!

Krys

reed9 02-08-2011 03:06 PM

Quote:

b43 178613 0
mac80211 171226 1 b43
cfg80211 128711 2 b43,mac80211
rfkill 15860 1 cfg80211
led_class 2785 1 b43
wl 2526280 0
First thing, you have both the b43 driver and the wl driver loading. b43 is the open source driver and only recently started supporting this card (with non-free firmware). Wl is the non-free driver released by Broadcom. You can only have one of these loaded or the device won't work.

Code:

ifconfig wlan0 down
modprobe -r b43
modprobe -r wl
modprobe wl
ifconfig eth1 up

EDIT: The above as root. Also, the wl driver usually names the wireless device eth1. Check the output of iwconfig to confirm what the name is and replace in the above as appropriate.

See if that gets the wireless going. And that is the reason the info is helpful as well. :)

Linux is arguably the kernel of the operating system. On top of that sit a variety of tools and applications. Most commonly in linux distros, the next layer is the GNU operating system. Most linux distros are closely related. Some take another distro as a base, like Ubuntu is based on Debian, and rebuild the packages or sometimes even use the parent distro's binary packages directly. Software frequently has a variety of configuration options (and the kernel itself has many many configuration options), so different distros can combine or build the various components in different ways, and provide different tools or applications.

Krystah 02-08-2011 04:33 PM

Thanks for the comprehensive reply :D Learning so much from this.. But I did not manage to make it work just yet - there might be some minor mistake involved. I am now, after the modprobing, able to assign a nick and ESSID to eth1, but it does not save / remember the ESSID, hence I am unable to enter the key for the essid. Even after using iwconfig eth1 commit it refuses to save it.

Code:

lo        no wireless extensions.

eth0      no wireless extensions.

eth1      IEEE 802.11bg  ESSID:""  Nickname:"NG"
          Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated 
          Bit Rate:54 Mb/s  Tx-Power:off 
          Retry min limit:7  RTS thr:off  Fragment thr:off
          Power Managementmode:All packets received
          Link Quality=5/5  Signal level=0 dBm  Noise level=0 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0  Missed beacon:0

As you can see, it has saved the nickname for the connection (NG), but the ESSID field remains empty. :/ And wicd is still not finding any networks at all, so it seems the computer isn't even scanning for nearby networks :P Again, thanks for the great reply, learned more from your reply than 8 hours of googling :)

reed9 02-08-2011 05:01 PM

I believe you said you've installed wicd. This would be an excellent time to use it. You'll need to go into the preferences bit and change the interface name to eth1 from wlan0.

For doing it from the command line, how are you putting in the essid? The general way to get wireless going from the console (assuming you do not have WPA encryption on your network) is
Code:

su -
iwconfig eth1 essid "my network" key s:wepkeystring
dhclient eth1

Removing the s: if the WEP key is not a string, but hex.

I don't know if Slackware uses dhclient or something else like dhcpcd.

I should note as well, you'll want to blacklist the b43 driver so it doens't keep loading at boot
Code:

su -
echo "blacklist b43" >> /etc/modprobe.d/blacklist.conf

Two >> are important. Just one and you'll overwrite the file. This way just appends the line to the file.

Krystah 02-08-2011 05:21 PM

Regarding this:
Code:

su -
iwconfig eth1 essid "my network" key s:wepkeystring
dhclient eth1

I can't perform it. The way it is now:

example: iwconfig eth1 essid thename returns nothing. No errors.

example: iwconfig eth1 key s:mypassword returns this:
Code:

Error for wireless request "Set Encode" (8B2A) :
    SET failed on device eth1 ; Invalid argument.

So the line above with essid and key in 1 results in the above error due to the key error. Silly essid just doesn't want to be remembered!

However, the modprobing process resulted in me losing my wired connection. Is it not possible to have an active Wired Connection and Wireless Connection simultaneously in Linux/Slackware? If there is, what caused me to lose my working wired network?

I have indeed installed wicd, but the problem with wicd is the same as with the iwconfig essid - it refuses to save my settings. I go into the preferences panel, make my changes, "Apply" then "Ok" then when I open the preferences panel again, it's all resetted to default settings. I got no clue where to go from here, I installed wicd according to the instructions and all. Weird stuff.. Thanks for your continued support =)

mostlyharmless 02-08-2011 10:20 PM

Sounds like you're making progress.

Just thought I'd clarify, using a "live CD" means booting from the CD/DVD drive but NOT installing anything to the disk or changing/breaking anything. Most distributions of Linux have similar software, but the system configuration differs. You probably have a configuration problem, not a software or hardware problem; booting a DVD only version of Linux would confirm that, if it worked properly. Slackware is an excellent distribution, but it's not quite as "out of the box" set up as automatically as Windows or e.g. Ubuntu, which is very popular for that very reason.

Btw, you can have wired, wireless, Bluetooth, and whatever interfaces simultaneously. You mentioned you had googled everything, so I presume you duplicated the steps in this thread:
http://www.linuxquestions.org/questi...-setup-837062/

Krystah 02-09-2011 02:07 AM

Good morning =) Yes, I have seen that thread a couple of days ago, but unfortunately, his case is not that similar to mine.

My main problem atm is that after all previous given help, it refuses to save my ESSID with iwconfig. Trying to set a password results in an error message.

What makes me wonder is that before I performed the modprobing commands that reed9 gave me, I would always get an error when trying to set an ESSID
to eth0 / eth1, but now I don't get any error messages, but it does not save it.

The guy in the other thread also, like so many others, got saved by the installation of wicd, but in my case, wicd is rendered completely useless, as it
does not save any changes, finds no networks, etc. It does not work in any way at all, but if that is related to my WiFi problems or not is beyond me =)

EDIT: Oh shucks, after blacklisting the b43 driver and restarting X, both my wlan0 and eth1 are gone, and I am stuck with eth0 and lo, both which are unchangeable. So I don't have any connections to work with. How could this have happened? Also, on a complete system reboot, I get a message during POST saying "Failed to initialize NIC, check your wired connection" (At this time I had a cable connected, the one that stopped working, after modprobes, though. :P)

Seems I have gotten myself into quite the little mess here. :D

Anyone knows if there is any hope for this situation?

Thanks!

Krys

Hangdog42 02-09-2011 06:59 AM

Quote:

What makes me wonder is that before I performed the modprobing commands that reed9 gave me, I would always get an error when trying to set an ESSIDto eth0 / eth1, but now I don't get any error messages, but it does not save it.
When iwconfig doesn't return anything, that is a good thing. It means the command has executed without any errors. Like many commands, iwconfig is silent unless something goes wrong. And just to be clear, the iwconfig command is incapable of saving anything, so you have to set all the wireless parameters every time you boot/reboot your computer. That is why programs like wicd are so popular, they will do the remembering and configuring for you. An alternative would be to write a simple script that has the iwconfig commands you need, then you would just run that script when you boot. However, I would HIGHLY recommend starting to use wicd, it makes wireless much, much easier.

Quote:

The guy in the other thread also, like so many others, got saved by the installation of wicd, but in my case, wicd is rendered completely useless, as it
does not save any changes, finds no networks, etc. It does not work in any way at all, but if that is related to my WiFi problems or not is beyond me =)
Then I suspect you're not using wicd correctly. When the wicd client starts up, it should show you a list of access points it sees, and if you configure those through the Properties button, wicd should remember. You should also be checking the box that lets wicd automatically connect to an SSID if it is one you use often.

Quote:

EDIT: Oh shucks, after blacklisting the b43 driver and restarting X, both my wlan0 and eth1 are gone, and I am stuck with eth0 and lo, both which are unchangeable. So I don't have any connections to work with. How could this have happened? Also, on a complete system reboot, I get a message during POST saying "Failed to initialize NIC, check your wired connection" (At this time I had a cable connected, the one that stopped working, after modprobes, though. :P)
Check the lsmod output and see if wl is loaded. If not, load it with the modprobe wl command. Or if it is, unload, then reload and see if that gets it back. That will also let you see if b43 somehow got loaded. By the way, it might be nice knowing what chipset you've got. If you look in the lspci output it should say.

And a final thing on b43, just so you know. The b43 driver in the kernel is incomplete because licensing prohibits distribution of the firmware it needs to run. So it looks like b43 is working because it loads and a network card shows up, but the card is completely non-functional. If for some reason you need b43, you do need to install firmware, which can be done using the b43-firmware and b43-fwcutter packages from Slackbuilds.org.

reed9 02-09-2011 08:00 AM

Regarding wicd, just to be sure, you've changed the interface name to eth1 in wicd, right?

Regarding neither wired nor wireless showing up, as said above, check that the wl module is loading. The wired interface shouldn't have been affected. Post the output of
Code:

lspci
Also, let's check whether the wireless is seeing networks
Code:

su -
iwlist eth1 scan


Krystah 02-09-2011 08:17 AM

Heya. :) I'd just like to say that I am currently reformatting my drives and reinstalling Slackware 13.1 from scratch again. Being the second time in a few days, this should be a rather quick procedure.
My first goal after the install will be to get the WiFi up and going, then proceed on to other subjects. If you, reed9, or Hangdog42 were to setup WiFi on a clean install, what would the procedure be?

- Should I update the kernel first?

- Should I update all installed packages?

- Is it necessary for me to download a driver? My WiFi card is, like mentioned, Broadcom BCM4312,
and I think I recall reading somewhere that the sufficient tools to make it work should already
be included since some earlier kernel release, I might be wrong though.

Last, but not least, I want you to know that you have not wasted your efforts on helping me just because I did a reinstall, I will be using it in half an hour when I start over :)

Thank you so much for taking your time to help out :D

/Krys

H_TeXMeX_H 02-09-2011 09:07 AM

For broadcom, you may want to try the more recently released drivers if they support your card:
http://lwn.net/Articles/404248/
because the old ones were quite bad.

reed9 02-09-2011 09:09 AM

You can use the default b43 driver, with firmware as mentioned above.
http://slackbuilds.org/repository/13.../b43-fwcutter/
http://slackbuilds.org/repository/13.../b43-firmware/

In addition, as I mentioned support for this card with b43 is fairly new. You need to pass a couple of options to the driver for it to work.

Code:

su -
echo "options b43 pio=1 qos=0" >> /etc/modprobe.d/modprobe.conf

This will make sure the options load at boot.

Without rebooting unload the module and reload with options
Code:

su -
modprobe -r b43
modprobe b43 pio=1 qos=0

If you are are using the broadcom wl driver, I would update the kernel first. It needs to be built against whatever kernel you're running. If not, it doesn't really matter.


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