SiS900 - SIOCSIFFLAGS: Invalid argument [Solucionado]

Hola, chicos. A ver si podeis echarme una mano (siento no tener acentos, pero ahora mismo tengo el teclado americano :P).

El caso es que hasta ahora tenia instalada una debian stable por razones de fiabilidad que no vienen al caso, y hace unos dias instale una unstable. El caso es que con el kernel precompilado que trae por defecto la netinstall (un 2.6.18) funciona todo correctamente, pero con el precompilado que me instala al hacer upgrade a unstable (un 2.6.26) me deja de funcionar la red.

En cualquier caso, para instalar los drivers de la nvidia necesito recompilar el kernel, asi que me baje por medio de apt las sources del 2.6.24 (apt-get install linux-sources-2.6.24), lo configure y lo compile al estilo debian (make-kpkg -initrd kernel_image modules_image).

El kernel en cuestion funciona correctamente (salvo que no me reconoce los discos SATA, pero bueno, supongo que eso sera un problema menor, culpa mia). Sin embargo tampoco le funciona la tarjeta de red al igual que pasa con el precompilado 2.6.26.

Los sintomas son estos:

Citar

fenix:/home/sparkster# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:118 errors:0 dropped:0 overruns:0 frame:0
TX packets:118 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:7312 (7.1 KiB) TX bytes:7312 (7.1 KiB)

Citar

fenix:/home/sparkster# ifup eth0
SIOCSIFFLAGS: Invalid argument
SIOCSIFFLAGS: Invalid argument
Failed to bring up eth0.

Citar

fenix:/home/sparkster# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.0.5 Bcast:192.168.0.255 Mask:255.255.255.0
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:17 Base address:0x9800

Citar

fenix:/home/sparkster# more /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.5
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

Mi tarjeta de red es una SiS900 integrada en una placa base asus P4S8X.
Evidentemente, en el kernel esta seleccionado el modulo de la tarjeta:

Citar

SiS 900/7016 PCI Fast Ethernet Adapter support

Tambien tengo seleccionado el modulo de hotplug, aunque creo que no me hace falta para nada :P

Citar

Support for PCI Hotplug (EXPERIMENTAL) --->

Por si las moscas, probe a cargar manualmente el modulo de la tarjeta, por si habia fallado algo, a grito de modprobe sis900, pero el resultado es el mismo.

Agradeceria cualquier tipo de ayuda, que este problema me tiene un poco desesperado. Gracias, chicos.

Actualizo con otra observacion. Como los kernel veintipico (todos) me fallan con la red, pero el 18 no, probe a descargar con apt las sources del 18 (apt-get install linux-sources-2.6.18), cargar la configuracion del 24 (si, es un poco cutre, pero bueno xD) e intentar compilarlo. Me da el mismo problema que me dieron todos los 18 que intente compilar con distintas configuraciones:

Citar

LD arch/i386/lib/built-in.o
CC arch/i386/lib/bitops.o
AS arch/i386/lib/checksum.o
CC arch/i386/lib/delay.o
AS arch/i386/lib/getuser.o
CC arch/i386/lib/memcpy.o
AS arch/i386/lib/putuser.o
CC arch/i386/lib/strstr.o
CC arch/i386/lib/usercopy.o
AR arch/i386/lib/lib.a
GEN .version
CHK include/linux/compile.h
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
kernel/built-in.o: In function `getnstimeofday':
(.text+0xb78c): undefined reference to `__umoddi3'
kernel/built-in.o: In function `getnstimeofday':
(.text+0xb7ac): undefined reference to `__udivdi3'
kernel/built-in.o: In function `do_gettimeofday':
(.text+0xb8b3): undefined reference to `__udivdi3'
kernel/built-in.o: In function `do_gettimeofday':
(.text+0xb8ce): undefined reference to `__umoddi3'
kernel/built-in.o: In function `do_timer':
(.text+0xc14c): undefined reference to `__umoddi3'
kernel/built-in.o: In function `do_timer':
(.text+0xc16c): undefined reference to `__udivdi3'
make[1]: *** [.tmp_vmlinux1] Error 1
make[1]: se sale del directorio `/usr/src/linux-source-2.6.18'
make: *** [debian/stamp/build/kernel] Error 2

Nivel de desesperacion aumentando...

Vale, creo que localice la causa del problema. Como se puede ver en el ifconfig que tengo en el primer post, mi MAC es detectada como 00:00:00:00:00:00. Esto tambien me pasa con el kernel que me funciona (pero antes no me pasaba xD). ?Alguna pista de por que pasa eso?

Al final, yo me lo guiso, yo me lo como (un hilo sólo con post míos, curioso). La mac de mi tarjeta de red se borró (que alguien me lo explique, porque yo no entiendo por qué) y se puso a 00:00:00:00:00:00, y los kernel nuevos entienden ésto como un parámetro incorrecto.
La solución fue crear un script para ejecutar en el arranque, y que cambie la mac de la tarjeta, además de levantar de nuevo la red. Fácil, sencillo y para toda la familia.

Relacionado con SiS900 - SIOCSIFFLAGS: Invalid argument [Solucionado]