# wifi help Intel Ultimate-N 6300 AGN

## Reltub

I have just installed Gentoo on a Dell Precision M4600. Now for the longest I did not have a wireless option when I checked ifconfig until I realized I needed to update the:

```
 /etc/init.d

ln -s net.lo net.wlp3s0

rc-update add net.wlp3s0 default
```

Now WIFI turns on at boot. But in XFCE4 wpa_gui does not see an adapter. so I can not connect with the DWM gui interface. Any ideas how to get this resolved?

----------

## vasettoo

Hi, what says:

```
dmesg | grep wifi
```

Is the correct firmware loaded in the kernel also? Recent kernels need firmware blob to be specified in. Have you installed sys-firmware/iwl6000-ucode?

----------

## Reltub

 *vasettoo wrote:*   

> Hi, what says:
> 
> ```
> dmesg | grep wifi
> ```
> ...

 

dmesg | grep wifi

```

[    9.074168] iwlwifi 0000:03:00.0: can't disable ASPM; OS doesn't have ASPM control

[    9.074296] iwlwifi 0000:03:00.0: irq 27 for MSI/MSI-X

[    9.074964] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-6000-6.ucode failed with error -2

[    9.074976] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-6000-5.ucode failed with error -2

[    9.078690] iwlwifi 0000:03:00.0: loaded firmware version 9.221.4.1 build 25532 op_mode iwldvm

[    9.091895] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEBUG disabled

[    9.091897] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEBUGFS disabled

[    9.091898] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEVICE_TRACING disabled

[    9.091900] iwlwifi 0000:03:00.0: Detected Intel(R) Centrino(R) Ultimate-N 6300 AGN, REV=0x74

[    9.091981] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled

[   10.073451] iwlwifi 0000:03:00.0 wlp3s0: renamed from wlan0

[   24.412692] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled

[   24.412906] iwlwifi 0000:03:00.0: Radio type=0x0-0x3-0x1

[   24.633883] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled

[   24.634096] iwlwifi 0000:03:00.0: Radio type=0x0-0x3-0x1

```

emerge --ask sys-firmware/iwl6000-ucode

```

Also I tried to install firmware but it says BLOCKED PACKAGES:

 * IMPORTANT: 3 config files in '/etc/portage' need updating.

 * See the CONFIGURATION FILES section of the emerge

 * man page to learn how to update config files.

These are the packages that would be merged, in order:

Calculating dependencies  ... done!

[ebuild  N     ] sys-firmware/iwl6000-ucode-9.221.4.1 

[blocks B      ] sys-firmware/iwl6000-ucode ("sys-firmware/iwl6000-ucode" is blocking sys-kernel/linux-firmware-20140902)

```

ERROR the above package contains packages which cannot be installed at the same time on the same system.

sys-firmware/iwl6000-ucode-9.221.4.1 ebuild scheduled for merge

sys-kernel/linux-fimeware-20140902 installed pulled in by sys-kernel/linux-firmware required by @selected

edit: formatting

----------

## charles17

Did you read this thread?

----------

## vasettoo

CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not recommended to be set to yes - you need it disabled. The right way to use your wifi card is to integrate the path to your firmware ucode file in the kernel and rebuild it. As you have installed the whole package for linux firmware there must be already iwl6000-ucode under directory /lib/firmware. So put the path to this file in the CONFIG_EXTRA_FIRMWARE field in kernel config and also specify the directory for firmware location in CONFIG_EXTRA_FIRMWARE_DIR. My config for Intel Dual Band Wireless AC 7260 looks like this:

```
# Generic Driver Options

#

CONFIG_UEVENT_HELPER=y

CONFIG_UEVENT_HELPER_PATH=""

CONFIG_DEVTMPFS=y

# CONFIG_DEVTMPFS_MOUNT is not set

CONFIG_STANDALONE=y

CONFIG_PREVENT_FIRMWARE_BUILD=y

CONFIG_FW_LOADER=y

CONFIG_FIRMWARE_IN_KERNEL=y

CONFIG_EXTRA_FIRMWARE="iwlwifi-7260-10.ucode"

CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"

CONFIG_FW_LOADER_USER_HELPER=y

# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set

CONFIG_ALLOW_DEV_COREDUMP=y

# CONFIG_DEBUG_DRIVER is not set

# CONFIG_DEBUG_DEVRES is not set

# CONFIG_SYS_HYPERVISOR is not set

# CONFIG_GENERIC_CPU_DEVICES is not set

CONFIG_GENERIC_CPU_AUTOPROBE=y

CONFIG_DMA_SHARED_BUFFER=y

# CONFIG_FENCE_TRACE is not set

```

Good luck!

----------

## Reltub

 *charles17 wrote:*   

> Did you read this thread?

 

No I had not read it, but thank you. 

 *vasettoo wrote:*   

> CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not recommended to be set to yes - you need it disabled. The right way to use your wifi card is to integrate the path to your firmware ucode file in the kernel and rebuild it. As you have installed the whole package for linux firmware there must be already iwl6000-ucode under directory /lib/firmware. So put the path to this file in the CONFIG_EXTRA_FIRMWARE field in kernel config and also specify the directory for firmware location in CONFIG_EXTRA_FIRMWARE_DIR. My config for Intel Dual Band Wireless AC 7260 looks like this:
> 
> ```
> # Generic Driver Options
> 
> ...

 

Where do you see a file like this? my genkernel makeconfig does not have any of these under Generic Driver Options.

EDIT: Ohhh that is my /usr/src/linux.config . Mine says DO NO EDIT

----------

## charles17

 *Reltub wrote:*   

> Where do you see a file like this? my genkernel makeconfig does not have any of these under Generic Driver Options.
> 
> EDIT: Ohhh that is my /usr/src/linux.config . Mine says DO NO EDIT

 So you are using genkernel? Your /usr/src/linux/.config will be changed by genkernel with menuconfig.

----------

## Reltub

 *charles17 wrote:*   

>  *Reltub wrote:*   Where do you see a file like this? my genkernel makeconfig does not have any of these under Generic Driver Options.
> 
> EDIT: Ohhh that is my /usr/src/linux.config . Mine says DO NO EDIT So you are using genkernel? Your /usr/src/linux/.config will be changed by genkernel with menuconfig.

 

Right, and the closest option I see to what you guys wrote about is:

DEVICE DRIVERS --->

      GENERIC DRIVER OPTIONS --->

            External firmware bobs to build into the kernel binary > Please enter a string value I guess firmware target.

EDIT: Added information on /lib/firmware

I have all of these potential firmwars for my wifi car in /lib/firmware: iwlwifi-6000-4.ucode , iwlwifi-6000g2a-5.ucode, iwlwifi-6000g2a-6.ucode, iwlwifi-6000g2b-5.ucode, iwlwifi-6000g2b-6.ucode

----------

## charles17

What about FW_LOADER_USER_HELPER_FALLBACK as mentioned earlier?

```
   Symbol: FW_LOADER_USER_HELPER_FALLBACK [=y]

   Type  : boolean

   Prompt: Fallback user-helper invocation for firmware loading

     Location:

       -> Device Drivers

   (1)   -> Generic Driver Options

     Defined at drivers/base/Kconfig:154

     Depends on: FW_LOADER [=y]

     Selects: FW_LOADER_USER_HELPER [=y]
```

----------

## vasettoo

 *Reltub wrote:*   

>  *charles17 wrote:*    *Reltub wrote:*   Where do you see a file like this? my genkernel makeconfig does not have any of these under Generic Driver Options.
> 
> EDIT: Ohhh that is my /usr/src/linux.config . Mine says DO NO EDIT So you are using genkernel? Your /usr/src/linux/.config will be changed by genkernel with menuconfig. 
> 
> Right, and the closest option I see to what you guys wrote about is:
> ...

 

I would look at the output from dmesg command in your previous post

```
...

[    9.074964] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-6000-6.ucode failed with error -2

[    9.074976] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-6000-5.ucode failed with error -2 

...
```

and choose one of these to enter in CONFIG_EXTRA_FIRMWARE field.

To be on the safe side I would: 

```
#emerge -C sys-kernel/linux-firmware

echo "sys-firmware/iwl6000-ucode" >> /etc/portage/package.accept_keywords

echo "sys-firmware/iwl6000-ucode ipw3945" >> /etc/portage/package.license

emerge -av sys-firmware/iwl6000-ucode
```

This way you can use the right firmware from /lib/firmware in kernel config.

Good luck!

----------

## Reltub

 *vasettoo wrote:*   

> 
> 
> I would look at the output from dmesg command in your previous post
> 
> ```
> ...

 

OK I did what you said. Now where do I go to CONFIG_EXTRA_FIRMWARE ? Or is that what I just did?

I also have this at the end of the last emerge:

```
*IMPORTANT: 3 config files in '/etc' need updating

*See the CONFIGURATION FILES section of the emerge

*man page to learn how to update config files.
```

OK I am going to try to operate the mn page.... lol

----------

## vasettoo

More on the topic: https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi

Now look in /lib/firmware folder - there has to be iwlwifi-6000<version>.ucode. Pick up the most recent numbering if there are more than one and build your kernel. 

```
#make menuconfig
```

If your are using genkernel:

```
#genkernel --menuconfig all
```

Then look under 'Device drivers > Generic drivers':

```
 [*] Support for uevent helper                                    │ │  

  │ │    ()    path to uevent helper                                      │ │  

  │ │    -*- Maintain a devtmpfs filesystem to mount at /dev              │ │  

  │ │    [ ]   Automount devtmpfs at /dev, after the kernel mounted the ro│ │  

  │ │    [*] Select only drivers that don't need compile-time external fir│ │  

  │ │    [*] Prevent firmware from being built                            │ │  

  │ │    -*- Userspace firmware loading support                           │ │  

  │ │    [*]   Include in-kernel firmware blobs in kernel binary          │ │  

  │ │    (iwlwifi-7260-10.ucode) External firmware blobs to build into the│ │  

  │ │    (/lib/firmware) Firmware blobs root directory  
```

You can see the field 'External firmware blobs to build into the kernel binary' and 'Firmware blobs root directory' - just hit enter and type in the corresponding paths for the ucode file and firmware directory. Mine is for different wifi card but the paths are supposed to be the same for you too. Check the other options to be selected also like the ones above. Exit menuconfig and save the changes, then rebuild your kernel:

```
#make && make modules_install && make install
```

For genkernel it is automatically done with first command. Rebuild modules in the end:

 *Quote:*   

> #emerge @module-rebuild

 

Update grub for booting the new kernel:

 *Quote:*   

> #grub2-mkconfig -o /boot/grub/grub.cfg

 

Reboot and see if wifi is present and connectable. Check once again output of dmesg for wifi firmware.

Good luck!

P.S. I would wipe the kernel and relevant files for the active kernel in /boot directory before execution of menuconfig as it tends to rebuild incorrectly if there are present kernels with the same numbering.Last edited by vasettoo on Fri Mar 13, 2015 5:59 pm; edited 1 time in total

----------

## Reltub

 *vasettoo wrote:*   

> 
> 
> P.S. I would wipe the kernel and relevant files for the active kernel in /boot directory before execution of menuconfig as it tends to rebuild incorrectly if there are present kernels with the same numbering.

 

Thanks, I will try all thus stuff later today. If I get this wifi card up, I will be able to test gentoo and see what I like for the next, non genkernel install. 

On your last part, how do I clean the old kernels out of /boot dir?

----------

## vasettoo

Just remove the files related to the working kernel which is to be rebuild.

```
#rm -v -i /boot/*-3.18.7-gentoo
```

----------

## Reltub

ok after 

```
genkernel --menuconfig all
```

..and External firmware blobs to build into the kernel binary' and 'Firmware blobs root directory

I get:

```
ERROR: Failed to compile the "bzimage" target...

--Grepping Log...--

LD      sound/soundcore.o

  LD      sound/built-in.o

make[1]: *** No rule to make target 'firmware//lib/firmware/iwlwifi-6000-4.ucode', needed by 'firmware//lib/firmware/iwlwifi-6000-4.ucode.gen.o'.  Stop.

make[1]: *** Waiting for unfinished jobs....

  MK_FW   firmware//lib/firmware/iwlwifi-6000-4.ucode.gen.S

Makefile:937: recipe for target 'firmware' failed

make: *** [firmware] Error 2

make: *** Waiting for unfinished jobs....

  CC      fs/binfmt_script.o

  CC      fs/binfmt_elf.o

  CC      fs/compat_binfmt_elf.o

  CC      fs/mbcache.o

  CC      fs/posix_acl.o

  CC      fs/coredump.o

  CC      fs/drop_caches.o

  LD      fs/built-in.o

* Gentoo Linux Genkernel; Version 3.4.49.2[0m

* Running with options: --menuconfig all

* Using genkernel.conf from /etc/genkernel.conf

* Sourcing arch-specific config.sh from /usr/share/genkernel/arch/x86_64/config.sh ..

* Sourcing arch-specific modules_load from /usr/share/genkernel/arch/x86_64/modules_load ..

* ERROR: Failed to compile the "bzImage" target...

* 

* -- Grepping log... --

* 

* 

* -- End log... --

* 

* Please consult /var/log/genkernel.log for more information and any

* errors that were reported above.

* 

* Report any genkernel bugs to bugs.gentoo.org and

* assign your bug to genkernel@gentoo.org. Please include

* as much information as you can in your bug report; attaching

* /var/log/genkernel.log so that your issue can be dealt with effectively.

* 

* Please do *not* report compilation failures as genkernel bugs!

* 
```

If you want all 2098 lines ..... https://bpaste.net/show/24ef1e8a77ee

would this be easier if I had just done normal kernel? I mean crap, I will do another install now if that would help..... 

i

----------

## Reltub

OK UPDATE

I did the 

```
rm -v -i /boot/*-3.18.7-gentoo
```

 and rebooted. Then after trying your steps again it compiled. But still there is no adapter in the wpa supplicant gui. Do I need to set up a wifi config file before it will work?

EDIT: added information....

OK I am also checking the wireless section of the handbook. And for what it is worth, maybe it will help here is my /etc/conf.d/net:

```
# Configure eth0

config_eno1="dhcp"

#wifi Configure

#modules="wpa-supplicant"

modules_wlp3s0=wpa_supplicant"

wpa_supplicant_wlp3s0="Dnl80211"

config_wlp3s0="dhcp"
```

I do not seem to have one of these: /etc/wpa_supplicant/wpa_supplicant.conf

Also according to the handbook:

 *Quote:*   

> Important
> 
> It is necessary to have CONFIG_PACKET enabled in the kernel for wpa_supplicant to work. To see if it is enabled on the current kernel, try:
> 
> root #zgrep CONFIG_PACKET /proc/config.gz
> ...

 

root #zgrep CONFIG_PACKET /proc/config.gz = 

```
CONFIG_PACKET=y

# CONFIG_PACKET_DIAG is not set

```

same for root #grep CONFIG_PACKET /usr/src/linux/.config

my ifconfig is:

```
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.0.xxx  netmask 255.255.255.0  broadcast 192.168.0.255

        inet6 fsf0::d737:eb6f:ff35:cyfb  prefixlen 64  scopeid 0x20<link>

        ether d0:67:e5:35:cd:fb  txqueuelen 1000  (Ethernet)

        RX packets 149  bytes 12495 (12.2 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 18  bytes 1664 (1.6 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

        device interrupt 20  memory 0xef500000-ef520000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        loop  txqueuelen 0  (Local Loopback)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp3s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

        ether 24:77:03:04:23:ac  txqueuelen 1000  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
```

----------

## charles17

 *Reltub wrote:*   

> But still there is no adapter in the wpa supplicant gui. Do I need to set up a wifi config file before it will work?

 Does your firmware now load without errors?

```
$ dmesg | grep -i  '0000:03:00.0\|iwlwifi'
```

Regarding wpa_supplicant you might find some helpful information in the wiki article.

----------

## Reltub

OK, just a quick update, as I know all of you want to know....lol. After a little more help from DasGregor, my wifi does start auto on boot. I set it up to connect to my network. And I am now posting this wireless from my gentoo Dell Precision M4600. 

wpa_supplicant gui is still messed up.

----------

