hola. ya sabe alguien como recompilar el kernel en suse 9.1 sin entrar en conflicto con los directorios, es decir sin sobreescribir los modulos??? -- Xavier Callejas IT Deparment Manager International Bonded Couriers E-Mail + msn: xcallejas at ibcinc.com.sv icq: 33336224 ----------------------------------------- Open your Mind, use Open Source.
El Viernes, 20 de Agosto de 2004 14:47, Xavier Callejas escribió:
ya sabe alguien como recompilar el kernel en suse 9.1 sin entrar en conflicto con los directorios, es decir sin sobreescribir los modulos???
Si editas el fichero /usr/src/linux[2.6.x]/Makefile verás que al principio pone algo así: VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 7 EXTRAVERSION = win4lin Esto te crearía el kernel "2.6.7-win4lin" y sus módulos estarían en el directorio '/lib/modules/2.6.7-winlin' Si deseas crear un kernel con el que experimentar pon, por ejemplo, EXTRAVERSION = test, entonces tendrás los módulos experimentales en '/lib/modules/2.6.7-test', sin sobreescribir los anteriores. Digamos que el kernel es muy listo y que sabe en que directorio buscar los módulos que le quedan bien, pero tendrás que acordarte de crear una entrada nueva en el gestor de inicio (grub, lilo) sin eliminar la actual para que, en caso de que algo no funcione bien, puedas volver a lanzar la versión que tienes ahora. Acuerdate también de generar el initrd adecuado a tu kernel. Saludos. Miquel.
El 2004-08-20 a las 16:50 +0200, Miquel A. Noguera escribió:
ya sabe alguien como recompilar el kernel en suse 9.1 sin entrar en conflicto con los directorios, es decir sin sobreescribir los modulos???
Si editas el fichero /usr/src/linux[2.6.x]/Makefile verás que al principio pone algo así:
VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 7 EXTRAVERSION = win4lin
Esto te crearía el kernel "2.6.7-win4lin" y sus módulos estarían en el directorio '/lib/modules/2.6.7-winlin'
Correcto. Sin embargo, en el kernel de SuSE 9.1 hay un problema. El Makefile tiene puesto: EXTRAVERSION = -$(shell echo $(CONFIG_RELEASE)-$(CONFIG_CFGNAME)) En vez de tocar ahí directamente, se supone que hay que hacerlo en en la configuración del kernel: Build options ---> (CER) Configuration name Eso provoca el cambio correspondiente en el fichero .config: CONFIG_CFGNAME="CER" CONFIG_RELEASE="7.75" Esto tiene el resultado esperado de generar las imagen correspondiente, los modulos en sus sitios, etc. Sin embargo, al rebotar, el kernel, aún cargando el nuevo recien compilado, sin embargo no reporta correctamente la versión: cer@nimrodel:~> uname -a Linux nimrodel 2.6.5-7.75-default #2 Tue Jun 29 16:45:32 CEST 2004 i686 i686 i386 GNU/Linux cer@nimrodel:~> cat /proc/version Linux version 2.6.5-7.75-default (geeko@buildhost) (gcc version 3.3.3 (SuSE Linux)) #2 Tue Jun 29 16:45:32 CEST 2004 Es decir, sigue reportando que el kernel es el original de SuSE, no el compilado; y si que es el compilado, lo se por las fechas y por el "#2". Y lo que es peor, al cargar los modulos, los carga del arbol equivocado: es decir, carga la imagen nueva y los modulos antiguos. ¿Alguien sabe porqué? -- Saludos Carlos Robinson
El Viernes, 20 de Agosto de 2004 21:41, Carlos E. R. escribió:
Sin embargo, en el kernel de SuSE 9.1 hay un problema. El Makefile tiene puesto:
EXTRAVERSION = -$(shell echo $(CONFIG_RELEASE)-$(CONFIG_CFGNAME))
En vez de tocar ahí directamente, se supone que hay que hacerlo en en la configuración del kernel:
Esa es una "mejora" más que cuestionable. Yo lo que haría sería ignorar el sistema SuSE y usar el método tradicional (comentando la línea con un # delante) y creando una nueva línea con lo que te interese poner. Otra alternativa es aprovechar la coyuntura e intentar compilar un kernel oficial en lugar de usar el de SuSE. Esa es la alternativa que yo escogí y ahora mi sistema corre sobre un 2.6.7, sin el más mínimo problema. Saludos. Miquel.
participants (3)
-
Carlos E. R.
-
Miquel A. Noguera
-
Xavier Callejas