# what broke my wireless (iwl3945)?

## ichbinsisyphos

I have a intel 3945ABG wireless card in my laptop. One of the last updates must have introduced some bug.

I'm still using gentoo-sources 2.6.28-r2 and the iwl3945-ucode-15.28.1.8

ifconfig wlan0 up gives the error:

```
SIOCSIFFLAGS: No such device
```

----------

## nixnut

What's the output of ifconfig -a?

----------

## ichbinsisyphos

wlan0 is listed there, if that's what you want to know.

eth0, lo, wlan0 and wmaster0.

----------

## doctork

You may need to go the a newer version of the microcode.  I just fought a battle with my 3945 on gentoo-sources-2.6.29-gentoo-r1

eix 3945 shows two version of the microcode:

```
fino linux # eix iwl3945-ucode

* net-wireless/iwl3945-ucode

     Available versions:

        (0)     2.14.1.5 15.28.1.6 15.28.1.8

        (1)     ~15.28.2.8

     Homepage:            http://intellinuxwireless.org/?p=iwlwifi

     Description:         Intel (R) PRO/Wireless 3945ABG Network Connection ucode

```

The (0) version did not work for me.

--

doc

----------

## ichbinsisyphos

 *doctork wrote:*   

> You may need to go the a newer version of the microcode.  I just fought a battle with my 3945 on gentoo-sources-2.6.29-gentoo-r1
> 
> eix 3945 shows two version of the microcode:
> 
> ```
> ...

 

yes, 15.28.1.8 for kernel <2.6.29

and 15.28.2.8 for kernel >=2.6.29

I'm using the right one. 15.28.1.6 doesn't work here either btw. I'm not really feeling like updating to 2.6.29 just for fun right now, because the laptop also has an Intel graphics chip.

----------

## doctork

 *ichbinsisyphos wrote:*   

> 
> 
> yes, 15.28.1.8 for kernel <2.6.29
> 
> and 15.28.2.8 for kernel >=2.6.29
> ...

 

Ah, I skipped the 2.6.28 series.  Fortunately(?), my laptop has Nvidia graphics.  Also, I seldom use wireless.

--

doc

----------

## d2_racing

Do you have any message when you run :

```

# dmesg

```

The command ifconfig wlan0 up should return something.

----------

## ichbinsisyphos

 *d2_racing wrote:*   

> Do you have any message when you run :
> 
> ```
> 
> # dmesg
> ...

 

this looks interesting:

```
...

iwl3945: Radio disabled by HW RF Kill switch

iwl3945 0000:0c:00.0: PCI INT A disabled

...
```

WTF is a Kill switch? Maybe the chip is turned off by some energy saving thing?

----------

## doctork

 *Quote:*   

> WTF is a Kill switch? Maybe the chip is turned off by some energy saving thing?

 

Some laptops have a switch that allows you to disable wireless (and on mine, bluetooth as well).

Search for RFKILL in your kernel config and turn off the capabilty.

--

doc

----------

## ichbinsisyphos

 *doctork wrote:*   

>  *Quote:*   WTF is a Kill switch? Maybe the chip is turned off by some energy saving thing? 
> 
> Some laptops have a switch that allows you to disable wireless (and on mine, bluetooth as well).
> 
> Search for RFKILL in your kernel config and turn off the capabilty.
> ...

 It's not optional, I can just choose between compiled in and module. Also I would rather like to fix it instead of disable it.

----------

## doctork

 *ichbinsisyphos wrote:*   

> It's not optional, I can just choose between compiled in and module. Also I would rather like to fix it instead of disable it.

 

It is an option for iwl3945:

```
t6 linux # egrep -i 'IWL3945' .config

CONFIG_IWL3945=m

# CONFIG_IWL3945_RFKILL is not set <<<<<<<<<<<<<<<<<

CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y

CONFIG_IWL3945_LEDS=y

# CONFIG_IWL3945_DEBUG is not set

```

Granted, that's for a 2.6.29 .config, but the option also existed in 2.6.27. 

--

doc

----------

## d2_racing

You need to run this actually :

```

# cd /usr/src/linux

# cat .config | grep -i kill

```

You need to disable the killswitch option that is inside Networking support

```

RF switch subsystem support  --->  

```

----------

## ichbinsisyphos

 *d2_racing wrote:*   

> ...

 

 *doctork wrote:*   

> It is an option for iwl3945:
> 
> ...
> 
> Granted, that's for a 2.6.29 .config, but the option also existed in 2.6.27.

 

Well, the option is there, but I can't select "n", only "y" and "m".

It's probably forced by some other option I haven't found yet, but ... why do I need to disable the option? Isn't that an useful feature that helps to save energy and prolongs battery life?

Isn't there a way to make it work like it is supposed to? Is this a new option? I never noticed the rfkill-module on my system before, but I usually don't spend much attention on such stuff.

Why did the problem occur only now? The reason has to be some userspace program update, since it worked before and I don't remember changing the kernel .config.

----------

## doctork

I was refferring to the option for the iwl3945 module, not the kernel option.  It appears as the next item after the iwl3945 module, at least it does when I run "make xconfig"  It has only Y or N options, no module option.  There's also a kernel option called RFKILL.  I'm not sure of the relationship among the various RFKILL options.

--

doc

----------

## ichbinsisyphos

So, I found the time to recompile the kernel now without the RFKILL option. The module is gone now, but wireless is still down, with the same error message.

----------

## d2_racing

Can you reboot and post this :

```

# lsmod

# ifconfig -a

# iwconfig

# ifconfig wlan0 up

# iwlist scan

# dmesg | tail

# rmmod iwl3945

# modprobe iwl3945

# dmesg | tail

```

----------

## ichbinsisyphos

 *d2_racing wrote:*   

> Can you reboot and post this :
> 
> ```
> 
> # lsmod
> ...

 

Where does this "disabled by the HW RF Kill switch" come from? The rfkill module doesn't exist anymore.

----------

## ichbinsisyphos

I've upgraded to gentoo-sources-2.6.29 and the problem persists. module "lib80211" is new, "iwl3945" is still there, "rfkill" is not.

dmesg says, HW RF Kill switch disables Radio.

----------

## d2_racing

Are you sure that your wifi switch on the laptop is enable ?

Play with it and double check the dmesg.

----------

## Dagger

on some laptops you turn on/off killswitch by FN+F2 combination (or FN + random key - which has wifi logo on it).

----------

## ichbinsisyphos

Ok, if anybody has an idea how to end this thread without letting me look like an complete idiot, let me know  :Laughing: 

thanks to all.

----------

## d2_racing

Ok, try this :

```

# ifconfig -a

# ifconfig wlan0 up

# dmesg | tail

```

Now push your Wifi button on your laptop and retry this :

```

# ifconfig -a

# ifconfig wlan0 up

# dmesg | tail

```

----------

## Simba7

 *ichbinsisyphos wrote:*   

> Ok, if anybody has an idea how to end this thread without letting me look like an complete idiot, let me know 
> 
> thanks to all.

 

 :Laughing:  Don't worry. I'm sure some of us suffer from cerebral flatulence every now and then.

----------

## d2_racing

For the record, wifi is not always a walk in a park.

----------

## szmytson

 *ichbinsisyphos wrote:*   

> I've upgraded to gentoo-sources-2.6.29 and the problem persists. module "lib80211" is new, "iwl3945" is still there, "rfkill" is not.
> 
> dmesg says, HW RF Kill switch disables Radio.

 

I think that RFKILL is useful and you schuld build it as a module (as well as RFKILL_INPUT).

From kernel config help:

 *Quote:*   

> CONFIG_RFKILL:
> 
>  Say Y here if you want to have control over RF switches
> 
>  found on many WiFi and Bluetooth cards.

 

 *Quote:*   

> 
> 
> CONFIG_RFKILL_INPUT:
> 
>  Say Y here if you want kernel automatically toggle state
> ...

 

On my laptop the kernel/driver (b43) doesn't recognize the state of the switch at boot time (it always claims that the RF-kill button is off).

I have to turn the radio off and on after the driver has been loaded to get my wifi card up and running.

----------

## d2_racing

You should try that too, I didn't this bug actually.

----------

## ichbinsisyphos

Maybe I should have made it more clear ... my problem is solved. I never used the wifi switch on the bottom of the laptop case and completely forgot about it. Somehow I must have accidentally switched it off.

Now I only need some time to compile the rfkill module again.

----------

## d2_racing

Nice  :Razz: 

----------

