Quiero crear un kernel personalizado en Ubuntu. Configuré y construí el nuevo kernel. El nuevo kernel no tiene inicio y proviene de una fuente vainilla. Construyo este nuevo núcleo monolítico sólo con los controladores que necesita.
Cuando intento iniciar el nuevo kernel, me quedo atascado en el mknod
paso. Intenta con mknod
nuevos dispositivos como /dev/sda1
/dev/vca4
. Falla porque la partición raíz está montada como de solo lectura.
Creo que el problema es que perdí algo de mi hardware. Si inicio con el kernel predeterminado de Ubuntu, no tengo ningún problema. ¿Alguien podría ayudarme a entender por qué sucede esto?
Respuesta1
Al arrancar, el sistema de archivos raíz casi siempre está montado en modo de solo lectura, para que pueda ejecutarlo fsck
. Una vez que haya terminado, es habitual volver a montar el sistema de archivos raíz de lectura y escritura usando algo como:
mount / -o remount,rw
Aunque, dado que estás usando Ubuntu, compilar un kernel debería ser mucho más simple que esto. Si aún no lo estás usando, te recomiendo usarlo kernel-package
para compilar el kernel. Simplemente obtenga el paquete y las fuentes del kernel, descomprímalo y diga algo como
make-kpkg -j3 --initrd binary
Esto luego creará .deb
paquetes que podrá instalar de la forma habitual ( dpkg -i SOME-FILE.deb
).
Respuesta2
Deberías tener un devtmpfs
o tmpfs
montado en /dev
y administrado por udev
; por lo tanto, se puede escribir en el directorio independientemente del estado de /
. En Ubuntu, esto normalmente lo configura initramfs; ¿Construiste y cargaste uno con tu kernel?