Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
informatica:debian:debian_krn [2025/06/01 15:48] – [Instalando el nuevo kernel] rab | informatica:debian:debian_krn [2025/06/15 17:26] (actual) – [Integrando los Módulos al nuevo kernel] rab | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== Kernel | + | ====== Kernel-6.14.11 |
{{: | {{: | ||
- | Actualmente podemos bajar el [[https:// | + | Actualmente podemos bajar desde [[https:// |
- | Para poder descargar el código fuente, debemos abrir un terminal, y debemos ejecutar los siguientes comandos: | + | Para poder descargar el código fuente, debemos abrir un terminal |
+ | # cd | ||
# mkdir kernel | # mkdir kernel | ||
# cd kernel | # cd kernel | ||
- | # wget https:// | + | # wget https:// |
- | # tar -Jxvf linux-6.15.tar.xz | + | # tar -Jxvf linux-6.14.11.tar.xz |
- | # cd linux-6.15 | + | # cd linux-6.14.11 |
Una vez que hayamos creado el directorio y tengamos descomprimido la versión del kernel, instalaremos todos los paquetes necesarios para compilar nuestro kernel, con los comandos siguientes: | Una vez que hayamos creado el directorio y tengamos descomprimido la versión del kernel, instalaremos todos los paquetes necesarios para compilar nuestro kernel, con los comandos siguientes: | ||
- | # apt install build-essential libncurses5-dev fakeroot libssl-dev gcc bc bison flex libelf-dev kmod cpio rsync python3 -y | + | # apt install build-essential libncurses5-dev fakeroot |
+ | | ||
+ | | ||
Esto nos instalará en nuestro sistema los paquetes y dependencias necesarias para compilar nuestro kernel, por lo que estaremos con nuestras herramientas disponible para lograrlo e instalarlo. | Esto nos instalará en nuestro sistema los paquetes y dependencias necesarias para compilar nuestro kernel, por lo que estaremos con nuestras herramientas disponible para lograrlo e instalarlo. | ||
Línea 26: | Línea 29: | ||
Una vez con la configuración copiada, lo que recomiendo es sacar la configuración de DEBUG que se encuentra activada por defecto en nuestra configuración del kernel, para ello editamos el archivo que acabamos de copiar y cambiamos las siguientes lineas a: | Una vez con la configuración copiada, lo que recomiendo es sacar la configuración de DEBUG que se encuentra activada por defecto en nuestra configuración del kernel, para ello editamos el archivo que acabamos de copiar y cambiamos las siguientes lineas a: | ||
+ | // Estas variables deben quedar así: | ||
CONFIG_DEBUG_INFO=n | CONFIG_DEBUG_INFO=n | ||
CONFIG_DEBUG_INFO_BTF=n | CONFIG_DEBUG_INFO_BTF=n | ||
CONFIG_DEBUG_INFO_BTF_MODULES=n | CONFIG_DEBUG_INFO_BTF_MODULES=n | ||
| | ||
+ | // Haciendo las modificaciones | ||
# sd CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO=n .config | # sd CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO=n .config | ||
# sd CONFIG_DEBUG_INFO_BTF=y CONFIG_DEBUG_INFO_BTF=n .config | # sd CONFIG_DEBUG_INFO_BTF=y CONFIG_DEBUG_INFO_BTF=n .config | ||
Línea 72: | Línea 76: | ||
- | root@athos: | + | root@athos: |
- | mkdir -p / | + | mkdir -p / |
INSTALL libsubcmd_headers | INSTALL libsubcmd_headers | ||
CALL scripts/ | CALL scripts/ | ||
Línea 80: | Línea 84: | ||
user 1m28,815s | user 1m28,815s | ||
sys | sys | ||
- | root@athos: | + | root@athos: |
Línea 86: | Línea 90: | ||
- | root@athos: | + | root@athos: |
| | ||
real 0m7,777s | real 0m7,777s | ||
user 2m25,998s | user 2m25,998s | ||
sys | sys | ||
- | root@athos: | + | root@athos: |
Línea 103: | Línea 107: | ||
<WRAP center round notice 80%> | <WRAP center round notice 80%> | ||
- | **IMPORTANTE** | + | **IMPORTANTE:** |
- | No reinicie su maquina, sin antes realizar los cambios | + | No reinicie su maquina, sin antes realizar los cambios |
</ | </ | ||
Línea 112: | Línea 116: | ||
- | nvim / | + | |
+ | |||
+ | // Valores por defecto: | ||
MODULES=most | MODULES=most | ||
COMPRESS=zstd | COMPRESS=zstd | ||
| | ||
- | Y las cambiamos por: | + | |
MODULES=dep | MODULES=dep | ||
COMPRESS=xz | COMPRESS=xz | ||
+ | o tambien puede ejecutar: | ||
+ | |||
+ | # sd MODULES=most | ||
+ | # sd COMPRESS=zstd COMPRESS=xz / | ||
+ | | ||
Con esto queda resuelto el problema del **Error: sin memoria**, pero además necesitamos que los cambios sean aplicados: | Con esto queda resuelto el problema del **Error: sin memoria**, pero además necesitamos que los cambios sean aplicados: | ||
Línea 126: | Línea 137: | ||
# update-grub2 | # update-grub2 | ||
+ | Una vez que haya ejecutado como **root** los comandos precedentes, | ||
===== Eliminar los kernels antiguos ===== | ===== Eliminar los kernels antiguos ===== | ||
Línea 150: | Línea 161: | ||
Y finalmente debemos reiniciar nuestra maquina, para que parte con el nuevo kernel que hemos compilado. | Y finalmente debemos reiniciar nuestra maquina, para que parte con el nuevo kernel que hemos compilado. | ||
+ | ===== Problemas de Compilacion con Driver NVidia ===== | ||
+ | Cuando compilamos un kernel nuevo y tenemos en nuestro sistema una tarjeta NVidia, lo normal es que al momento de realizar un //make install//, es dar un error al tratar de instalar ese kernel, independiente del tipo de version que este instalan. | ||
+ | |||
+ | El error que da, es similar a este: | ||
+ | |||
+ | # make install | ||
+ | INSTALL /boot | ||
+ | run-parts: executing / | ||
+ | dkms: running auto installation service for kernel 6.14.11. | ||
+ | Sign command: / | ||
+ | Signing key: / | ||
+ | Public certificate (MOK): / | ||
+ | | ||
+ | Building module: | ||
+ | Cleaning build area... | ||
+ | env NV_VERBOSE=1 make -j36 modules KERNEL_UNAME=6.14.11...(bad exit status: 2) | ||
+ | Error! Bad return status for module build on kernel: 6.14.11 (x86_64) | ||
+ | Consult / | ||
+ | Error! One or more modules failed to install during autoinstall. | ||
+ | Refer to previous errors for more information. | ||
+ | dkms: autoinstall for kernel: 6.14.11 failed! | ||
+ | run-parts: / | ||
+ | make[1]: *** [arch/ | ||
+ | make: *** [Makefile: | ||
+ | |||
+ | Estas enfrentando un problema comun cuando DKMS intenta compilar automaticamente los modulos del controlador NVIDIA tras instalar un nuevo kernel personalizado (en este caso, 6.14.11 en Debian 12). El proceso de //make install// falla debido a que el modulo de NVIDIA no es compatible o no puede compilarse correctamente con ese nuevo kernel. | ||
+ | |||
+ | El mensaje clave es: | ||
+ | |||
+ | Error! Bad return status for module build on kernel: 6.14.11 (x86_64) | ||
+ | Consult / | ||
+ | |||
+ | Puedes tratar de ver el error en los log's con el comando: | ||
+ | |||
+ | less / | ||
+ | |||
+ | Y buscar un error como: | ||
+ | |||
+ | * fatal error: xxxx.h: No such file or directory | ||
+ | * unknown symbol o problemas de API del kernel | ||
+ | |||
+ | Este log te dira si el modulo necesita parches o si es una incompatibilidad directa. | ||
+ | |||
+ | ==== Solucion que me funciono ==== | ||
+ | Una de las posibilidades de solucion es deshabilitar la compilacion automatica de los modulos (NVidia en este caso) al instalar el kernel, para deshabilitar usamos el comando: | ||
+ | |||
+ | # mv / | ||
+ | |||
+ | Una vez hecho esto, debemos volver a ejecutar: | ||
+ | |||
+ | # make install | ||
+ | |||
+ | Esto instalara el nuevo kernel sin tratar de compilar de nuevo el modulo de NVidia. | ||
+ | |||
+ | Una vez instalado el nuevo kernel, debemos reiniciar el computador, pero debemos tener en cuenta que el sistema no podra levantar el ambiente grafico porque no hemos instalado los modulos de NVidia. | ||
+ | |||
+ | Una vez que se ha reiniciado, nos presentara un terminal en texto, nos logearemos como root, nuevamente y ejecutaremos en el terminal: | ||
+ | |||
+ | # dkms autoinstall | ||
+ | |||
+ | Esto buscara los modulos de NVidia de la version del kernel-6.14.11 e instalara esos modulos en el nuevo kernel, hay que tener en cuenta que si usamos la ultima version del kernel de linux, es muy posible que los modulos de NVidia, aun no esten liberados para ser instalados en esa version del kernel, asi que hay que tener esto en cuenta. | ||
+ | |||
+ | Si este es tu caso, considera bajar a una version inmediatamente inferior del kernel y repetir el proceso. Es muy posible que ahi ya tengas los modulos liberados para ser instalados. | ||
+ | |||
+ | Ahora deberemos restaurar //dkms// al terminar este proceso, esto lo hacemos con: | ||
+ | |||
+ | # mv / | ||
+ | |||
+ | Este dejara habilitada la opción de la compilcion automatica de los modulos para el kernel. | ||