201.2 - Comandos clave: Compilacion del kernel

Comandos de configuracion

ComandoFuncionEjemplo
make menuconfigConfiguracion interactiva con ncurses (TUI)make menuconfig
make xconfigConfiguracion grafica con Qtmake xconfig
make gconfigConfiguracion grafica con GTKmake gconfig
make nconfigConfiguracion TUI mejoradamake nconfig
make configConfiguracion pregunta a preguntamake config
make oldconfigActualizar .config preguntando solo opciones nuevasmake oldconfig
make olddefconfigActualizar .config con defaults para opciones nuevasmake olddefconfig
make defconfigCrear configuracion por defectomake defconfig
make allmodconfigTodo como modulo donde sea posiblemake allmodconfig

Comandos de compilacion e instalacion

ComandoFuncionEjemplo
make bzImageCompilar imagen del kernel comprimidamake bzImage -j4
make modulesCompilar modulos del kernelmake modules -j$(nproc)
make modules_installInstalar modulos en /lib/modules/<ver>/make modules_install
make installInstalar kernel en /boot/make install
make allCompilar kernel + modulosmake all -j$(nproc)
makeEquivalente a make allmake -j4

Comandos de limpieza

ComandoQue eliminaConserva .config
make cleanArchivos objeto y compilacionSi
make mrproperTodo incluyendo .config y backupsNo
make distcleanmrproper + archivos de editor y parchesNo

Herramientas de initramfs/initrd

ComandoDistribucionEjemplo
mkinitramfsDebian/Ubuntumkinitramfs -o /boot/initrd.img-5.15.60 5.15.60
update-initramfsDebian/Ubuntuupdate-initramfs -u -k 5.15.60
mkinitrdLegacy (RHEL antiguo)mkinitrd /boot/initrd-5.15.60.img 5.15.60
dracutRed Hat/Fedora/SUSEdracut /boot/initramfs-5.15.60.img 5.15.60
lsinitrdRed Hat/Fedoralsinitrd /boot/initramfs-5.15.60.img
lsinitramfsDebian/Ubuntulsinitramfs /boot/initrd.img-5.15.60

Comandos DKMS

ComandoFuncionEjemplo
dkms addRegistrar modulo en DKMSdkms add -m driver -v 1.0
dkms buildCompilar modulo para un kerneldkms build -m driver -v 1.0 -k 5.15.60
dkms installInstalar modulo compiladodkms install -m driver -v 1.0 -k 5.15.60
dkms removeEliminar modulo de DKMSdkms remove -m driver -v 1.0 --all
dkms statusVer estado de modulos DKMSdkms status

Archivos y directorios importantes

RutaFuncion
/usr/src/linux/Codigo fuente del kernel (enlace simbolico)
/usr/src/linux/.configConfiguracion de compilacion
/usr/src/linux/MakefileReglas de compilacion y version
/usr/src/linux/arch/x86/boot/bzImageImagen compilada (x86)
/boot/vmlinuz-<version>Kernel instalado
/boot/config-<version>Configuracion del kernel instalado
/boot/System.map-<version>Tabla de simbolos
/boot/initrd.img-<version>Imagen initramfs
/lib/modules/<version>/Modulos instalados
/usr/src/linux-headers-<version>/Headers para modulos externos
/lib/modules/<version>/buildEnlace a headers/fuente
/usr/src/<modulo>-<version>/dkms.confConfiguracion DKMS del modulo

Secuencia completa de compilacion

PasoComandoDescripcion
1make mrproperLimpieza total (solo si necesario)
2cp /boot/config-$(uname -r) .configCopiar config existente
3make oldconfigActualizar config para nuevo kernel
4make menuconfigAjustar opciones si es necesario
5make -j$(nproc)Compilar kernel y modulos
6make modules_installInstalar modulos
7make installInstalar kernel
8dracut / mkinitramfsGenerar initramfs
9update-grub / grub2-mkconfigActualizar bootloader