# [Solved]Wireless not working[Solved]

## amaltheia

I am having trouble getting my wireless working. When I run lspci -k it says that my driver is working. When I run iwconfig it says there are no wireless extensions. I even have wicd installed and it is unable to find any wireless connections. If I type it in as a hidden network it is still not able to find it. I have followed the wireless tutorials and have tried to manually set up the wireless but I think that I did something wrong and can't figure out how to fix it.

I have both wpa_supplicant and wirelesstools installed and can't get either one to help me connect.Last edited by amaltheia on Tue Dec 09, 2014 3:02 am; edited 1 time in total

----------

## khayyam

amaltheia ...

You're missing the WEXT compatibility layer (CONFIG_CFG80211_WEXT) for NL80211. WEXT has been depreciated and tools like wicd, wireless-tools, and others, require it. So, either enable it in the kernel or switch to tools which use NL80211 natively (ie, net-wireless/iw).

As far as wpa_supplicant is concerned it supports NL80211 natively, but you may have set '-Dwext' as the driver ... use '-Dnl80211' ...

/etc/conf.d/net

```
wpa_supplicant_wlan0="-Dnl80211"
```

HTH & best ... khay

----------

## amaltheia

Okay, I went back and enabled cfg80211 wireless extensions compatibility in my kernel and saved it. Do I have to make another kernel and save it to grub2, or will it make the necessary changes for my current system?

I also added 

```
wpa_supplicant_wlan0="-Dnl80211"
```

 to /etc/conf.d/net so hopefully something will work.

I am just wondering if I really need cfg80211 because my wireless is an Intel pro 3945ABG.

----------

## khayyam

 *amaltheia wrote:*   

> Okay, I went back and enabled cfg80211 wireless extensions compatibility in my kernel and saved it. Do I have to make another kernel and save it to grub2, or will it make the necessary changes for my current system?

 

amaltheia ... yes, the kernel needs to be rebuilt and the resulting bzImage placed as /boot/bzImage-{version}

 *amaltheia wrote:*   

> I am just wondering if I really need cfg80211 because my wireless is an Intel pro 3945ABG.

 

Intel works to provide good linux support for their chipsets and so will use kernel provided features (such as KFKILL, CFG80211). The iwl3945 driver (which I assume you're using) has probably switched to the new driver API as WEXT is being depreciated.

HTH & best ... khay

----------

## amaltheia

Okay, I added cfg80211 to the kernel and ran:

```
make && make modules_install
```

```
make install
```

Then I added the new modules to /etc/conf.d/modules.

After all this my wireless is still not working and I noticed when I restarted the computer that is said that my wlp12s0 (the name of my wireless card) failed to start. However, when I ran 

```
lspci -k
```

it said that my wireless card driver is in use. Is there something else that I am missing? Not sure what else I am supposed to do.

You mentioned something about "CONFIG_CFG80211_WEXT", am I supposed to add that to my .config file? If I am, where do I find it? I thought that enabling that in my kernel was sufficient.

----------

## khayyam

 *amaltheia wrote:*   

> 
> 
> ```
> make install
> ```
> ...

 

amaltheia ... I take it your /boot was mounted at the time, or that /boot is not a seperate partition? Can you check that you are in fact booted with this newly built kernel.

```
# uname -v

#1 SMP PREEMPT Mon May 5 15:05:09 CEST 2014
```

The "#1" denotes the build, and the date string the date/time at which it was built. If this is the second time you've built that kernel it should say "#2", and the date/time should match when you built it.

 *amaltheia wrote:*   

> You mentioned something about "CONFIG_CFG80211_WEXT", am I supposed to add that to my .config file? If I am, where do I find it? I thought that enabling that in my kernel was sufficient.

 

That is a kernel option, so you select it via menuconfig (Networking support => Wireless => CONFIG_CFG80211_WEXT). Anyhow, you're confusing me because ".config" is generated by "enabling that in [the] kernel".

I initally answered to the question why you would get the error "no wireless extensions", and why wicd wouldn't work ... if there is a problem other than that then you need to provide details as to what is happening, how your configuration is currently setup, and logs.

So, for instance, does dmesg show the card initalised correctly, what does /etc/conf.d/net look like, are you using wpa to connect to the wireless router, and if so how it wpa_supplicant configured, what does 'iwconfig' currently show, does the interface as its currently configured exist? The more useful information you provide the better it is for those reading to get some idea of what the issue is. 

best ... khay

----------

## amaltheia

Sorry for not giving more info. Hope the following help get a better picture.

my /boot directory is set up as /dev/sda2 on my first partition. I did not mount it as I did not realize that I needed to. 

```
uname -v

#1 SMP Mon Dec 1 10:34:15 2014
```

Looks like I am still using my original kernel. I thought that my reconfiguration of the kernel which was saved in /etc/boot would be the one that I booted.

```
 /etc/boot: 

-rw-r--r-- 1 root root   94245 Dec  7 15:55 config-3.16.5-gentoo

-rw-r--r-- 1 root root   94223 Dec  6 21:30 config-3.16.5-gentoo.old

-rw-r--r-- 1 root root   93739 Dec  4 00:52 q

-rw-r--r-- 1 root root 2939467 Dec  7 15:55 System.map-3.16.5-gentoo

-rw-r--r-- 1 root root 3042305 Dec  6 21:30 System.map-3.16.5-gentoo.old

-rw-r--r-- 1 root root 5450208 Dec  7 15:55 vmlinuz-3.16.5-gentoo

-rw-r--r-- 1 root root 5661536 Dec  6 21:30 vmlinuz-3.16.5-gentoo.old
```

However, dmesg shows that my firmware is not working.

```
 dmesg:

[  858.031216] iwl3945 0000:0c:00.0: Could not read microcode: -12

[ 1038.756363] cc1 (3480) used greatest stack depth: 12912 bytes left

[ 1063.030714] iwl3945 0000:0c:00.0: Direct firmware load failed with error -2

[ 1063.030721] iwl3945 0000:0c:00.0: Falling back to user helper

[ 1063.031851] iwl3945 0000:0c:00.0: iwlwifi-3945-2.ucode firmware file req failed: -12

[ 1063.031856] iwl3945 0000:0c:00.0: Could not read microcode: -12
```

That surprised me because lspci -k says that it was in use:

```
 lspci -k

0c:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)

        Subsystem: Intel Corporation Device 1020

        Kernel driver in use: iwl3945

        Kernel modules: iwl3945
```

----------

## Jaglover

So you need firmware. 

iwlwifi-3945-2.ucode

Put it into /lib/firmware

----------

## amaltheia

Here is some more info to see what else I have screwed up.

```
 /etc/conf.d/net:

dns_domain_lo=""

config_wlp12s0=""

routes_wlp12s0=""

config_wlp12s0="dhcp"

# Prefer iwconfig over wpa_supplicant

modules="wpa_supplicant"

#Driver

wpa_supplicant_wlp12s0="iwl3945"

#wep keys

key_ESSID1="[1] s key [1] enc open"

preferred_aps="'ESSID1'"

wpa_supplicant_wlp12s0="Dn180211"
```

```
 iwconfig:

enp9s0    no wireless extensions.

wlp12s0   no wireless extensions.

sit0      no wireless extensions.

lo        no wireless extensions.
```

Here is the config file wor wpa_supplicant. Looking at it now it looks as if it is incomplete. Not sure what I need to do to fix it. 

```
 /etc/wpa_supplicant/wpa_supplicant.conf:

# Do not change below or wpa_supplicant will not work

ctrl_interface=/var/run/wpa_supplicant

# Only root can use it

ctrl_interface_group=0

# Lep wpa_supplicant take care of scanning and AP selection

ap_scan=1

# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers

network={

        ssid=""

        psk=""

        priority=5

}

# For networks that refuse scanning

network={

        ssid=second

#Allow users in the 'wheel' group to control wpa_supplicant

ctrl_interface_DIR=/var/run/wpa_supplicant GROUP=wheel

#Make this file writable for wpa_gui

update_config=1
```

If I can give you any more information just please ask. Hope this helps to figure out where things went wrong.Last edited by amaltheia on Sun Dec 14, 2014 11:02 pm; edited 1 time in total

----------

## amaltheia

 *Jaglover wrote:*   

> So you need firmware. 
> 
> iwlwifi-3945-2.ucode
> 
> Put it into /lib/firmware

 

Thanks, just saw this. Will do it right now.

Edit: I tried to use emerge but I couldn't find the firmware. Does that mean that I have to download it and put it in /firmware that I create in /lib? I googled it and did not find a place to download it.

----------

## amaltheia

After more searching I found that in:

```
 /lib/modules/3.16.5-gentoo/kernel/drivers/net/wireless/iwlegacy
```

I have the following modules:

```
iwl3945.ko  iwlegacy.ko
```

Can I just copy those into /lib/firmware?

----------

## charles17

 *amaltheia wrote:*   

> Edit: I tried to use emerge but I couldn't find the firmware. Does that mean that I have to download it and put it in /firmware that I create in /lib? I googled it and did not find a place to download it.

 You just need to install sys-kernel/linux-firmware. *Quote:*   

> $ equery f linux-firmware | grep 3945
> 
> /lib/firmware/iwlwifi-3945-2.ucode

 

----------

## khayyam

 *amaltheia wrote:*   

> Here is some more info to see what else I have screwed up.

 

amaltheia ... honestly, it just seems you're not being carefull as they abound with typo's, duplicate vars, and other errors.

/etc/conf.d/net

```
dns_domain_lo="christophel"

config_wlp12s0="dhcp" # dhcp is the default, so this needn't be defined.

wpa_supplicant_wlp12s0="-Dnl80211 -qq"
```

/etc/wpa_supplicant/wpa_supplicant.conf

```
ctrl_interface_DIR=/run/wpa_supplicant GROUP=wheel

update_config=1

network={

        ssid="ATT970"

        psk="8267006095"

        priority=90 # higher values equal higher priority

}
```

best ... khay

----------

## amaltheia

 *khayyam wrote:*   

>  *amaltheia wrote:*   Here is some more info to see what else I have screwed up. 
> 
> amaltheia ... honestly, it just seems you're not being carefull as they abound with typo's, duplicate vars, and other errors.

 

Well thats good to know. I was trying to be careful, but I guess not careful enough. I will just have to go back through all those files and redo everything and check and correct my mistakes. 

Thanks for pointing that out!Last edited by amaltheia on Sun Dec 14, 2014 11:04 pm; edited 1 time in total

----------

## amaltheia

Okay I fixed it! I reconfigured my kernel and then loaded it into /boot and then into /grub. Once I rebooted into the new kernel wicd found my wireless device and I was able to connect to my wifi.

I am still planning on going back and fixing those files that I configured for wpa_supplicant. I want to make those correct and not keep around sloppy configured files.

Thanks for all your help!

----------

## charles17

 *amaltheia wrote:*   

> I am still planning on going back and fixing those files that I configured for wpa_supplicant. I want to make those correct and not keep around sloppy configured files.

 You might want to have a look at https://wiki.gentoo.org/wiki/Dhcpcd and its references.  That way config files may become somewhat cleaner.

----------

## khayyam

 *amaltheia wrote:*   

> Okay I fixed it! I reconfigured my kernel and then loaded it into /boot and then into /grub. Once I rebooted into the new kernel wicd found my wireless device and I was able to connect to my wifi.

 

amaltheia ... ok, good.

 *amaltheia wrote:*   

> I am still planning on going back and fixing those files that I configured for wpa_supplicant. I want to make those correct and not keep around sloppy configured files.

 

well, if you're using wicd then the above configuration isn't used, that setup would be for net.wlp12s0 (which once started would run wpa_supplicant and then, once authenticated, request an IP via dhcp). I've not used wicd but I'm fairly sure its configuration is seperate.

 *amaltheia wrote:*   

> Thanks for all your help!

 

No problem ... you're welcome.

best ... khay

----------

