martes, noviembre 16, 2010

Kernel 2.6.36 tiene problemas con el wifi, este no inicia luego de suspender... ath: Couldn't reset chip

Al parecer los kernels mayores a 2.6.35 tienen este problema, yo creí que lo solucionaba compilando compat-wireless, pero no, al parecer rompieron algo en el kernel, esta es la salida normal, compilando el kernel 2.6.36:

[34432.470851] ath9k: Driver unloaded
[34434.707118] ath9k 0000:09:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[34434.833532] ath: timeout (100000 us) on reg 0x7044: 0xffffffff & 0x0000000f != 0x00000002
[34434.842047] ath: Couldn't reset chip
[34434.849972] ath: Unable to initialize hardware; initialization status: -5
[34434.857770] ath9k 0000:09:00.0: Failed to initialize device
[34434.865549] ath9k 0000:09:00.0: PCI INT A disabled
[34434.873565] ath9k: probe of 0000:09:00.0 failed with error -5
[34474.915507] ath9k: Driver unloaded
[34498.060299] ath9k 0000:09:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[34498.273298] ath: timeout (100000 us) on reg 0x7044: 0xffffffff & 0x0000000f != 0x00000002
[34498.361427] ath: Couldn't reset chip
[34498.450111] ath: Unable to initialize hardware; initialization status: -5
[34498.541027] ath9k 0000:09:00.0: Failed to initialize device
[34498.631793] ath9k 0000:09:00.0: PCI INT A disabled
[34498.722454] ath9k: probe of 0000:09:00.0 failed with error -5

Este es el kernel 2.6.36 con compat-wireless-2010-10-20:


[ 673.028905] Compat-wireless backport release: compat-wireless-2010-10-14-7-gab01eca
[ 673.035596] Backport based on linux-next.git next-20101020
[ 673.088724] cfg80211: Calling CRDA to update world regulatory domain
[ 673.225277] cfg80211: World regulatory domain updated:
[ 673.231990] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 673.238908] (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 673.245693] (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 673.252320] (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 673.258909] (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 673.265426] (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 673.357249] ath9k 0000:09:00.0: Refused to change power state, currently in D3
[ 673.438250] ath9k 0000:09:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[ 673.632550] ath: timeout (100000 us) on reg 0x7044: 0xffffffff & 0x0000000f != 0x00000002
[ 673.717231] ath: Couldn't reset chip
[ 673.802209] ath: Unable to initialize hardware; initialization status: -5
[ 673.888984] ath9k 0000:09:00.0: Failed to initialize device
[ 673.974819] ath9k 0000:09:00.0: PCI INT A disabled
[ 673.982361] ath9k: probe of 0000:09:00.0 failed with error -5
Después de matar y revivir a NEtworkManager
[ 825.903081] tg3 0000:03:00.0: PME# enabled
[ 825.990135] pcieport 0000:00:04.0: wake-up capability enabled by ACPI
[ 829.574538] pcieport 0000:00:04.0: wake-up capability disabled by ACPI
[ 829.581538] tg3 0000:03:00.0: PME# disabled
[ 829.599289] tg3 0000:03:00.0: irq 43 for MSI/MSI-X
[ 829.726577] ADDRCONF(NETDEV_UP): eth0: link is not ready

Al parecer tiene que ver con: ath9k 0000:09:00.0: Refused to change power state, currently in D3

-----------------------NO FUNCIONABA CUANDO LO PROBÉ, NO SÉ SI AHORA LO HAGA---------------------
Luego de suspender y resumir, obtenemos una PC lenta, lerda, sin wifi...

Cómo solucionamos el problema?
En mi caso he instalado el compat-wireless-2010-10-20, tan simple como:
./scripts-drivers ath
make
sudo make install
sudo make wlunload
sudo modprobe ath9k

Voilá!, tenemos wifi nuevamente y los errores ya no pasan...


NOTA: Esto parece haber sido corregido en la versión 2.6.37-RC2
http://www.kernel.org/pub/linux/kernel/v2.6/testing/ChangeLog-2.6.37-rc2
commit f119da3015712dc32bdf1c311652479e02dcb49a

2 comentarios:

José Luis | ArangeL dijo...

Muchísimas gracias. Joder, últimamente llevo ya 10 kernels publicados que SIEMPRE tienen algún error que otro que impide que algo que antes funcionaba bien vuelva a funcionar correctamente.

Antes problemas con ACPI, me costó horrores hacer que aceptaran el puto parche. Luego errores con SATA, aceptaron el parche y lo han vuelvo a olvidar a aplicar para 2.6.36 y vuelvo a recibir SATA softreset failed de nuevo :-@; y ahora el puto WIFI con ath9k (menudas pesadillas en 2.6.31, que enviaba paquetes falsos y mal formados que jodían literalmente a todos los que me rodeaban) ¬¬.

Maximiliano dijo...

Interesante, podrías publicar en tu blog los parches...

sabes algo acerca de que sucede con el wifi? porque no es un bug en particular de ath9k, sino que este bug es general, al parecer es el propio ath o algo más que está roto, esto pasa sobre gran variedad de tarjetas...
Intel, Broadcom, Atheros, etc...