Núcleo/Configuración
Este artículo describe la configuración manual y puesta en marcha del núcleo Linux. Eche un vistazo al artículo genkernel para conocer un método que configura valores seguros por defecto.
Ajustar el enlace simbólico
El enlace simbólico /usr/src/linux debe apuntar siempre a los fuentes del núcleo que se está utilizando actualmente. Esto se puede hacer de tres formas:
1. Instalar los fuentes del núcleo con el ajuste USE symlink
activo. Esto hará que /usr/src/linux apunte a los nuevos fuentes del núcleo instalado. En caso necesario se puede modificar más tarde mediante los siguientes dos métodos:
2. Ajustar el enlace simbólico con la herramienta eselect:
root #
eselect kernel list
Available kernel symlink targets: [1] linux-3.3.8-gentoo [2] linux-3.4.9-gentoo
Esto muestra los fuentes del núcleo disponibles. El asterisco indica los fuentes seleccionados. Para cambiar estos fuentes, por ejemplo, a la segunda entrada, haga lo siguiente:
root #
eselect kernel set 2
3. Ajustar el enlace simbólico manualmente:
root #
ln -sf /usr/src/linux-3.4.9-gentoo /usr/src/linux
root #
ls -l /usr/src/linux
lrwxrwxrwx 1 root root 11 Aug 29 22:10 /usr/src/linux -> /usr/src/linux-3.4.9-gentoo
Configuración
Herramientas
El núcleo ofrece varias herramientas de usuario con las cuales se puede configurar.
Orden | Descripción |
---|---|
make config | Configuración basada en texto. Las opciones se solicitan una a continuación de otra. Se necesita responder a todas las opciones y no es posible acceder a las opciones en un orden distinto al que se muestran. |
make menuconfig | Un menú pseudográfico basado en ncurses (solo entrada en modo texto). Se puede navegar por el menú para modificar las opciones deseadas. |
make defconfig | Genera una nueva configuración con el valor por defecto para ARCH suministrado por el fichero de configuración por defecto. Utilice esta opción para volver a las opciones que se incluyen con los fuentes. |
make nconfig | Menú pseudográfico basado en ncurses. Requiere tener instalado sys-libs/ncurses. |
make xconfig | Menú gráfico que utiliza Qt5. Requiere tener instalado dev-qt/qtwidgets. |
make gconfig | Menú gráfico que utiliza GTK+. Requiere tener instalados x11-libs/gtk+, dev-libs/glib y gnome-base/libglade. |
make oldconfig | Revisa los cambios realizados entre versiones del núcleo y actualiza la configuración para crear un nuevo fichero .config para el núcleo. |
make olddefconfig | Genera una nueva configuración con los valores por defecto desde el fichero de configuración ARCH proporcionado, mientras que el mismo tiempo mantiene todas las opciones previas definidas en el fichero .config que se encuentra en /usr/src/linux/.config. Esto es un método rápido y seguro para actualizar un fichero de configuración que tiene todas las opciones de configuración que necesita para dar soporte al hardware y a la vez obtiene correcciones de errores y parches de seguridad. |
make allyesconfig | Habilita todas las opciones de configuración en el núcleo. Definirá todas las opciones del núcleo a * . ¡Asegúrese de tener una copia de seguridad de la configuración actual del núcleo antes de utilizar esta opción!
|
make allmodconfig | Habilita todos los módulos en el núcleo. |
También existen varios guiones para crear configuraciones por defecto de distintos tipos. Esto puede hacer que las configuración más complejas se realicen en menos tiempo. Lance la siguiente orden para mostrar una lista completa de las opciones de make:
root #
make help
El resto de este artículo describe la configuración mediante la herramienta make menuconfig, sin embargo, el procedimiento es similar para las otras herramientas de construcción del núcleo.
root #
cd /usr/src/linux
root #
make menuconfig
Utilización
En el menú mostrado, la barra azul indica la posición del cursor. Puede cambiar esta posición con las teclas de movimiento del cursor ↑ y ↓. La teclas de movimiento del cursor ← y → expanden la barra de menú hacia abajo y definen lo que ocurre cuando se pulsa la tecla Intro. Para la barra de menú de abajo, Select cambia a un submenú de las entradas de menú que terminan en ---> mientras que Exit sale de un submenú. Como alternativa, se puede pulsar la tecla Esc dos veces para salir de la aplicación.
Al pulsar una tecla asociada a una letra A-Z se moverá la posición del cursor a las líneas que tienen estos caracteres en negrita. Las teclas Y, M y N se excluyen de esta forma de navegación ya que se utilizan para otros propósitos. Si una línea comienza por una Y, M o N, el siguiente carácter se mostrará en negrita y se podrá saltar a esa línea. Por ejemplo, relativo a la posición actual del cursor, si la siguiente línea muestra "Network Device Support --->", al pulsar la tecla E, se moverá el cursor a esa línea.
Los siguientes símbolos pueden aparecer al comienzo de las entradas en los menús:
Símbolo(s) | Descripción |
---|---|
[ ], [*]
|
Las opciones entre corchetes se pueden activar o desactivar. El asterisco marca la entrada de menú como activada. El valor se puede cambiar con la tecla espacio. También se puede pulsar la tecla Y (Yes) para activarla o la tecla N (No) para desactivar la entrada seleccionada.
|
< >, <M>, <*>
|
Las opciones entre los símbolo menor que y mayor que se pueden activar o desactivar pero también se pueden activar como módulo (indicado con una M). Los valores se pueden modificar pulsando la la teclas Y/N como se describe arriba o pulsando la tecla M para activar esa característica o controlador como un módulo.
|
{M}, {*}
|
Las opciones entre llaves se pueden activar para ser construidas como parte del núcleo o como módulo pero no se pueden desactivar. Esto es debido a que otro controlador depende de esta característica. |
-M-, -*-
|
Las opciones entre guiones las activan de la forma mostrada otros controladores. No hay elección para ellas. |
Más aún, algunas entradas de menú tienen una etiqueta al final:
Etiqueta | Descripción |
---|---|
(NEW)
|
Este controlador es nuevo en el núcleo y probablemente no sea del todo estable. |
(EXPERIMENTAL)
|
Este controlador es experimental y seguramente no será del todo estable. |
(DEPRECATED)
|
Este controlador es obsoleto y no es necesario en la mayoría de los sistemas. |
(OBSOLETE)
|
Este controlador es obsoleto y no se debería activar. |
La mayoría de las opciones tienen una descripción que se puede ver pulsando la tecla H o eligiendo Help en la barra de menú.
Selección de controladores
Eche un vistazo al artículo sobre detección del hardware y a los artículos en la categoría Hardware.
Buscar módulos
Dentro de menuconfig
utilice la tecla / para buscar módulos por su nombre.
Tal y como se muestra abajo, el resultado de la búsqueda mostrará números delante de los resultados. Si se pulsa 1 en el ejemplo de abajo make menuconfig saltará hasta la opción Bluetooth device drivers en la estructura del menú.
Symbol: BT_HCIBTUSB [=m]
Type : tristate
Prompt: HCI USB driver
Location:
-> Networking support (NET [=y])
-> Bluetooth subsystem support (BT [=y])
(1) -> Bluetooth device drivers
Defined at drivers/bluetooth/Kconfig:5
Depends on: NET [=y] && BT [=y] && USB [=m]
Habilitar los ajustes comunes de Gentoo Linux
Existe una opción de configuración del núcleo llamada CONFIG_GENTOO_LINUX que se encuentra disponible únicamente en sys-kernel/gentoo-sources y otros núcleos mantenidos por el proyecto del núcleo. Por sí misma no hace nada, sin embargo define algunas opciones de configuración que necesitan las instalaciones típicas.
Este ajuste selecciona automáticamente el soporte para tmpfs
y devtmpfs
que es necesario para gestionar /dev en Gentoo Linux. En el futuro puede que se expanda para permitir otros ajustes obligatorios en un sistema Gentoo Linux. Para más información, lea la ayuda disponible en el sistema de configuración del núcleo del sistema tal y como se describió antes en esta guía.
Construcción
Después de haber realizado correctamente la configuración, compile el núcleo:
root #
make
Dependiendo de la velocidad y el número de núcleos de procesamiento disponibles en el sistema, la construcción del núcleo podría llevar algo de tiempo. Si se conoce el número de núcleos de CPU en el sistema, se puede usar la opción
-jN
(donde N
es el número de núcleos disponibles más 1) para acelerar el proceso de compilación. Por ejemplo, un procesador con dos núcleos contiene dos núcleos lógicos más uno (2 + 1). Una forma fácil de determinar el número de núcleos disponibles es lanzar la orden nproc:user $
nproc
3
root #
make -j3
Un sistema con cuatro núcleos contiene cuatro núcleos lógicos más uno (4 + 1):
root #
make -j5
Configuración
Si se activaron controladores como módulos, se deberían instalar:
root #
make modules_install
Los módulos se copiarán a un directorio de /lib/modules.
Para instalar el núcleo:
root #
make install
Esta orden lanza /sbin/installkernel, que es parte del paquete sys-apps/debianutils. El nuevo núcleo se instala en /boot/vmlinuz-{versión}. Si ya existe un enlace simbólico /boot/vmlinuz éste se refresca haciendo un enlace simbólico desde /boot/vmlinuz al nuevo núcleo y el núcleo previamente instalado estará disponible como /boot/vmlinuz.old. (Página del manual de installkernel). Ocurre lo mismo para los ficheros config y System.map. Estos enlaces simbólicos son muy útiles ya que apunta siempre al último núcleo que se ha construido sin necesidad de cambiar la ruta a los ficheros (por ejemplo, se pueden utilizar en la configuración del cargador de arranque).
Cargador de arranque
Cambie la configuración del cargador de arranque del sistema para cargar el núcleo cuando arranque el sistema.
Cuando haya terminado el paso del cargador de arranque, reinicie el sistema con el nuevo núcleo.
Comparar la configuración actual del núcleo con la configuración por defecto
Utilice el siguiente procedimiento para tener una visión general de los ajustes de configuración del núcleo que se desvían de la configuración por defecto. Recuerde que la modificación de un ajuste en la configuración puede conllevar ajustes de configuración adicionales.
root #
cd /usr/src/linux
root #
cp -p .config ../.config.working
root #
make defconfig
root #
mv .config ../.config.default
root #
cp -p ../.config.working .config
root #
cd ..
root #
/usr/src/linux/scripts/diffconfig .config.working .config.default > .config.diff
La función de búsqueda en make menuconfig se puede utilizar para buscar los símbolos y sus interpretaciones. Cuando haya terminado, limpie:
root #
cd /usr/src/
root #
rm .config.working .config.default .config.diff
Veáse también
- Genkernel
- Kernel/Configuration/Kernel_Seeds — pre-made kernel configuration files.
- Kernel/Gentoo Kernel Configuration Guide — tiene la finalidad de presentar conceptos sobre la configuración manual del núcleo y detallar algunos de los problemas de configuración más comunes.