# iwlwifi kernel 3.10.17. (sin wifi)

## Yczo

Hola muy buenas. El asunto que me trae aqui consiste en la imposibilidad de utilizar la wifi tras actualizar a un kernel superior al 3.8 (al menos para el driver iwlwifi con la Centrino N-1000). En este caso estoy probando con el 3.10.17 que por otro lado se supone que es uno de los últimos estables.

Para empezar, no hay interfaz, pero es que ni siquiera está el modulo cargado:

```

# lsmod

Module                  Size  Used by

xt_SECMARK              1303  0 

xt_CONNSECMARK          1479  0 

xt_mark                 1053  0 

wimax                  20624  0 

af_key                 26525  0 

xfrm6_mode_transport     1282  0 

crc7                     974  0 

libcrc32c                906  0 

rtl8187                52455  0 

dell_rbu                5175  0 

acpi_pad                4301  0 

ftdi_sio               35019  0 

usbserial              22709  1 ftdi_sio

mxm_wmi                 1307  0 

btusb                  15787  0 

bluetooth             207875  1 btusb

kcopy                   4932  0 

cifs                  205680  0 

fuse                   72525  0 

coda                   30876  0 

dcdbas                  5136  0 

nvidia              10565621  41 

coretemp                5750  0 

joydev                  9356  0 

i7core_edac            17159  0 

edac_core              35309  1 i7core_edac

xhci_hcd               84870  0 

sdhci_pci              10565  0 

jmb38x_ms               8001  0 

wmi                     7707  1 mxm_wmi

```

Creo que he seguido bien todos los pasos de configuración de la wiki; Aquí vienen los ajustes de mi kernel

----------

## quilosaq

La configuración del kernel parece estar bien.

 *Yczo wrote:*   

> ... 
> 
> pero es que ni siquiera está el modulo cargado:
> 
> ...
> ...

 Nunca podrás ver si el módulo se ha cargado porque has configurado el kernel para que no lo cree como módulo.

Para dar más información soble el problema podrías publicar la salida de:

```
ifconfig -a

uname -a

emerge --info

dmesg | grep wifi

```

----------

## gringo

igual me equivoco pero no era que había que compilar como módulo todo aquello que requiere un firmware A MENOS que se compile el firmware tambien dentro del kernel ?

en el kernel donde te funciona tienes el driver como módulo o dentro del kernel ?

saluetes

----------

## Yczo

Bueno, en primer lugar muchas gracias.

Vamos por partes. En los kernels anteriores tenia el driver dentro del kernel, me habeis hecho recordar la opcion enable blobs for the kernel o alo asi para meter firmwares en el. No he encontrado aun con esta opción en el nuevo kernel. A ver si con paciencia..

Por otro lado, aquí van las respuestas necesarias

```

# ifconfig -a 

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

        inet 192.168.0.101  netmask 255.255.255.0  broadcast 192.168.0.255

        inet6 fe80::f24d:a2ff:fe5a:6f0a  prefixlen 64  scopeid 0x20<link>

        ether f0:4d:a2:5a:6f:0a  txqueuelen 1000  (Ethernet)

        RX packets 88833  bytes 132431787 (126.2 MiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 42416  bytes 2634531 (2.5 MiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ip6gre0: flags=128<NOARP>  mtu 1448

        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 0  (UNSPEC)

        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

ip6tnl0: flags=128<NOARP>  mtu 1452

        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 0  (UNSPEC)

        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

ip_vti0: flags=128<NOARP>  mtu 1500

        tunnel   txqueuelen 0  (IPIP Tunnel)

        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

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

sit0: flags=128<NOARP>  mtu 1480

        sit  txqueuelen 0  (IPv6-in-IPv4)

        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

```

```

#uname -a 

Linux minienigma 3.10.17-gentoo #2 SMP PREEMPT Thu Nov 28 13:09:00 CET 2013 x86_64 Intel(R) Core(TM) i7 CPU Q 740 @ 1.73GHz GenuineIntel GNU/Linux

```

```

# emerge --info 

!!! Section 'x-portage' in repos.conf has location attribute set to nonexistent directory: '/tmp/portage'

!!! Section 'gentoo' in repos.conf has location attribute set to nonexistent directory: '/tmp/portage'

!!! Invalid Repository Location (not a dir): '/tmp/portage'

Portage 2.2.7 (unavailable, gcc-4.7.3, glibc-2.16.0, 3.10.17-gentoo x86_64)

=================================================================

System uname: Linux-3.10.17-gentoo-x86_64-Intel-R-_Core-TM-_i7_CPU_Q_740_@_1.73GHz-with-gentoo-2.2

KiB Mem:     8109852 total,   6555840 free

KiB Swap:          0 total,         0 free

Timestamp of tree: Unknown

ld GNU ld (GNU Binutils) 2.23.1

dev-lang/python:          2.7.5-r3, 3.2.5-r3, 3.3.2-r2

sys-devel/autoconf:       2.13, 2.69

sys-devel/automake:       1.11.6, 1.12.6, 1.13.4

sys-devel/binutils:       2.23.1

sys-devel/libtool:        2.4.2

sys-kernel/linux-headers: 3.9 (virtual/os-headers)

Repositories: 

ACCEPT_LICENSE="* -@EULA"

CFLAGS="-O3 -pipe -march=native -maes -msse4.1 -msse4.2"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"

CXXFLAGS="-O3 -pipe -march=native -maes -msse4.1 -msse4.2"

DISTDIR="/tmp/portage/distfiles"

FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"

GENTOO_MIRRORS="ftp://de-mirror.org/gentoo/"

PKGDIR="/usr/portage/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/tmp/portage"

PORTDIR_OVERLAY=""

USE="X a52 acpi alsa avi bluray caps cdr consolekit css cups cxx dbus divx dv dvd dvdr dvdread encode fame fortran gdbm git hal ipv6 kde matroska mjpeg mpeg msn mysql nls ogg opengl openmp policykit pulseaudio python qt4 quicktime sasl ssl subtitles subversion tcpd udev unicode v4l video vorbis xvid zlib"

Unset:  ACCEPT_KEYWORDS, EMERGE_DEFAULT_OPTS, PORTAGE_BUNZIP2_COMMAND

```

```

#dmesg | grep wifi 

[    1.432604] iwlwifi 0000:04:00.0: irq 47 for MSI/MSI-X

[    1.432863] iwlwifi 0000:04:00.0: request for firmware file 'iwlwifi-1000-5.ucode' failed.

[    1.445784] iwlwifi 0000:04:00.0: request for firmware file 'iwlwifi-1000-4.ucode' failed.

[    1.447500] iwlwifi 0000:04:00.0: request for firmware file 'iwlwifi-1000-3.ucode' failed.

[    1.449217] iwlwifi 0000:04:00.0: request for firmware file 'iwlwifi-1000-2.ucode' failed.

[    1.450878] iwlwifi 0000:04:00.0: request for firmware file 'iwlwifi-1000-1.ucode' failed.

[    1.467944] iwlwifi 0000:04:00.0: no suitable firmware found!

```

Bueno a priori ya se ve que el firmware no carga, pero los drivers están (al menos dos de ellos)

```

ls /lib/firmware/ |grep iwlwifi-1

iwlwifi-100-5.ucode

iwlwifi-1000-3.ucode

iwlwifi-1000-5.ucode

iwlwifi-105-6.ucode

iwlwifi-135-6.ucode

```

Saludos!

----------

## Yczo

bueno tengo esto así

```

 Generic Driver Options  --->    [*]   Include in-kernel firmware blobs in kernel binary                               

¿Que pongo aquí?  ===>         ()    External firmware blobs to build into the kernel binary  

¿iwlwifi por ejemplo?

```

y si hubiera que cargar varios?? solo admite poner uno

el problema es que no se que hacer para que cargue el driver adecuado. Antes lo cargaba automático. Supongo que los tiros van por aquí.

saludos.

----------

## Yczo

otra opción que no encuentro en este kernel es esta:

```

Prompt for development and/or incomplete code/drivers

```

----------

## gringo

si no te importa prueba con recompilar el kernel dejando el driver de la wifi como módulo, creo que así se soluciona todo.

 *Quote:*   

> Prompt for development and/or incomplete code/drivers 

 

esta opción ya no existe desde el kernel 3.9.

saluetes

----------

## Yczo

Eso es. A regañadientes, jeje pues yo prefería tenerlo dentro del núcleo, pero ahora esta funcionando como módulo

la pregunta es ¿Como es mejor y por que? Yo pensaba que dentro del kernel todo era mas rápido y menos proclive a cuelges.

Seguro que estoy equivocado y me poneís verde.. jjej, pero preguntando se aprende

----------

## gringo

 *Quote:*   

> la pregunta es ¿Como es mejor y por que? Yo pensaba que dentro del kernel todo era mas rápido y menos proclive a cuelges. 

 

no me voy a enrollar, si buscas un poco por la red encontarás 20 argumentos con fundamento a favor de tener todo en el kernel y otros tantos a tenerlo todo como módulos. Lo mejor es que leas un poco por tu cuenta y saques tus propias conclusiones.

A nivel de usuario normal creo que realmente no tienes mas alternativa que habilitar el poder cargar módulos, seguro que en algún momento encontrarás un driver, o un sistema de archivo o cualquier otra cosa que no está en el kernel y tendrás que compilarlo y cargar el driver como módulo. Si te fijas en las grandes distros p.ej. verás que casi todo está como módulo y en cuanto a que el kernel sea mas o menos estable o mas o menos rápido, creo que no es cuantificable o al menos palpable en el uso cotidiano.

De cualquier manera, si quieres de deshabilitar por completo el uso de módulos, puedes hacerlo. Tendrías que indicarle al kernel donde está el firmware para que lo incluya en el binario final y poco mas. Nunca lo he hecho pero seguro que encuentras manuales de como hacerlo sin romperte mucho la cabeza.

 *Quote:*   

> preguntando se aprende

 

exacto, tu no te cortes y pregunta  :Wink: 

saluetes

----------

