PDF de programación - Compilar el nucleo de Linux

Imágen de pdf Compilar el nucleo de Linux

Compilar el nucleo de Linuxgráfica de visualizaciones

Publicado el 30 de Abril del 2020
568 visualizaciones desde el 30 de Abril del 2020
369,0 KB
23 paginas
Creado hace 19a (24/05/2004)
PRÁCTICA
OBJETIVOS

TRABAJO

CONFIGURAR EL NÚCLEO
•Configurar y modificar características del núcleo
dinámicamente
•Conocer y manejar utilidades de configuración
•Estudio de parámetros del núcleo

•Utilizar la utilidad de configuración config
•Utilizar la utilidad de configuración menuconfig
•Utilizar la utilidad de configuración xconfig
•Estudiar en cada una de ellas los parámetros de
configuración del sistema.
•Estudio y recorrido del seudo sistema de ficheros
/proc/sys. Estudio de los parámetros del sistema que
contiene este sistema de ficheros y realizar algunos
cambios de parámetros del sistema modificando los
ficheros pertinentes.

DOCUMENTA-
CION

Leer help de config, menuconfig y xconfig

1

Configurar el núcleo

Linux permite configurar y cambiar ciertas características

del núcleo dinamicamente (.config), esto es, sin
recompilar e iniciar el núcleo, mediante:

• utilidades
• llamada al sistema sysctl
• sistema de archivos virtual /proc

Hay que tener privilegios de root.
¡Mas vale prevenir que curar!

• Crear un disco de arranque si no se ha hecho.
• Realizar antes una copia del núcleo.
cp /boot/vmlinuz /boot/vmlinuz.old

2

Utilidades para configurar el núcleo
• Situarse en el directorio de los fuentes del núcleo

• Ejecutar alguna de las tres utilidades para configurar el

/usr/src/linux

núcleo

make config
make menuconfig
make xconfig

difieren en la forma de presentación, pero las tres permiten
modificar los mismos parámetros modificando el fichero
.config del núcleo:

• parámetros generales del núcleo
• parámetros relativos a la memoria virtual
• parámetros del sistema de red
• parámetros del sistema de fichero
• otros

3

make config

• utilidad en modo carácter
• la mas fea y larga en presentación
• consume pocos recursos precisa el shell
• requiere contestar con un carácter

y – respuesta afirmativa para incluir esa característica.
n – respuesta negativa para no incluir esa característica.
m – compilar como un modulo.
Ctrl+c elimina todos las respuesta y comienza de nuevo.
? - para mostrar un menú de ayuda.

4

make menuconfig

• aplicación basada en un terminal de

consola.

• requiere las librerías curses (manejo de

cursores).

• nos movemos por las opciones mediante

los cursores.

• es sencilla de utilizar.
• esta estructurada en bloques.
• tiene una ayuda.

5

make menuconfig

6

make xconfig

• requiere un terminal x
• requiere interfase X Windows.
• es el mas agradable por su forma gráfica.
• utiliza un menú con ventanas.
• esta estructurada por bloques.
• tiene una ayuda para cada opción.

7

make xconfig

8

make oldconfig

• Actualiza a una nueva configuración partiendo

del viejo .config, es rápida, solo hace unas
pocas preguntas para los nuevos cambios.

Llamada al sistema sysctl (kernel/sysctl.c)

• Esta llamada al sistema es muy potente y

permite configurar mediante programa,
dinámicamente ciertos parámetros del sistema.

9

Sistema de archivos /proc/sys

• Todos los parámetros que son cambiables, son

accesibles en forma de un archivo en el directorio
/proc/sys.

• ejemplo

/proc/sys/kernel/hostname - nombre de la máquina





los parámetros son leídos al leer en el correspondiente
fichero.
los parámetros son cambiados al escribir en el
correspondiente fichero.

• muchos usuarios pueden leer pero solo el root puede

escribir.

10

/proc/sys

debug

dev

kernel

net

fs

proc

vm

domainnamel

hostname osrelease ostype versión

...

inode-nr

inode-state inode-max

file-nr

file-max

...

dbflush

buffermem freepages pagecache overcommit

_

..

11

PRÁCTICA

COMPILAR EL NÚCLEO

OBJETIVOS

TRABAJO

DOCUMENTA-
CION

•Aprender a compilar el núcleo
•Utilizar el comando Make
•Comprender los tipos de compilación

•Realice una copia del núcleo original antes de
modificar y o recompilar
•Compile el núcleo como un núcleo monolítico, sin
módulos cargables.
•Configure el cargador del núcleo LILO para que
permita seleccionar un núcleo particular, uno de los
cuales será la copia original del núcleo, modificando
el fichero /etc/lilo.conf
•Generar un disquete de arranque con el nuevo
núcleo con make bzdisk. para permitir iniciar el
sistema desde disquete.
•Traer una nueva versión del núcleo y compilarlo.
README en el directorio Fuentes de linux

12

COMPILAR EL NÚCLEO
• La disponibilidad de los fuentes de linux en

/usr/src/linux... permite modificar, compilar y
crear un nuevo núcleo de linux.

• Esto hace que Linux sea muy atractivo pues

permite:

• Optimizar el núcleo.
• Eliminar funciones o manejadores no utilizados.
• Añadir mejoras al núcleo y nuevas versiones.
• Añadir nuevas utilidades y funciones.
• Saber que contiene que hace y como lo hace.

13

¿Cuando hay que realizar una actualización del núcleo?

• Añadir una característica de mucha importancia.
• Quitar algún fallo detectado en la versión.
• Pasar a una nueva versión.
• Añadir un nuevo manejador.
• Tapar algún agujero de seguridad.

¡Si no esta roto, no lo arregle!

• Antes de instalarlo en un sistema probar en otra
máquina que las aplicaciones usadas soportan
los cambios.

14

Directorio /usr/src/linux..

los fuentes de Linux

Está dividido en subdirectorios:

• documentation – para almacenar la información

generada en la creación y desarrollo de Linux.

• arch – Linux soporta varias plataformas intel ix86,

motorola 68000, spark64, digital Alpha, …, es bajo el
subdirectorio especifico donde se almacenará la
compilación.
fs – contiene los fuentes de sistema de ficheros, para
soportar el sistema de ficheros virtual de Linus VFS, y
subdirectorios con los sistemas de ficheros soportados,
minix, ext2, ext3, msdos, nfs,..

• kernel – ficheros fuente para la capa mas baja del



núcleo, planificador de CPU.

• mm – fuentes para manejar la memoria principal a bajo
15

nivel.

Directorio /usr/src/linux..

los fuentes de Linux



ipc – fuentes del software para la comunicación entre
procesos.

• net – fuentes de red y protocolos de red soportados.
• drivers – contiene varios subdirectorios para los

manejadores de dispositivo.





• Carácter, bloque, sonido, SCSI,…
• modulos – se va cargando de enlaces a las distintas

partes del núcleo que se compilan como módulos y
donde se ubican.
init – fuentes del programa init. El primero que se
ejecuta el iniciarse el núcleo.
include – ficheros cabecera para construir el núcleo.
Contiene subdirectorios para las distintas plataformas,
red,..
lib – fuentes de las librerías utilizadas por el núcleo.


• scripts – scripst utilizados por el núcleo.

16

Pasos a seguir para construir un nuevo núcleo:

• Hay que tener privilegios de root

¡Mas vale prevenir que curar!

– Crear un disco de arranque si no se ha hecho.
– Realizar antes una copia del núcleo.
cp /boot/vmlinuz /boot/vmlinuz.old

• Situarse en el directorio de los fuentes del

núcleo

cd /usr/src/linux…

17

Compilar el núcleo

• Existe un fichero makefile para el compilador C,
que permite generar un núcleo llamado zImage
de forma automática.

make zImage

• Se puede crear una imagen del núcleo

comprimida, para evitar mensajes como
“núcleo muy grande”.

make bzImage

18

Borrar ficheros objeto y dependencias

make clean

• Borra los archivos objetos (xxxx.o) creados en la

compilación y elimina copias antiguas de la imagen del
núcleo.

• Si no se ejecuta se ocupa espacio en disco pero

posteriores compilaciones van mas rápidas ya que solo se
compilan las partes modificadas del núcleo.

• Comprueba, actualiza y crea dependencias entre los

distintos componentes del núcleo (.depend).

make dep

make mrproper

• Una puesta a cero, para borrar todo cuando hemos tenido

errores en la compilación, borra los objetos creados, las
dependencias y el fichero .config.

19

Si utilizamos módulos

make modules

• Si hay funciones del núcleo que se

realizan con módulos, hay que
compilarlas.

make modules_install

• instala las funciones de los módulos en el

directorio /lib/modules/<versión>.

20

Pasos de la compilación
• El orden de los pasos de la compilación son:
make dep
make clean
make bzImage
make modules
make modules_install

• se pueden introducir los comandos en una sola
línea y make los compila secuencialmente si no
hay errores.
make dep clean bzImage modules
modules_install

21

Último paso: make install

el directorio /usr/src/linux/arch/i386/boot

Despues de la compilación, el núcleo comprimido bzImage se encuentra en
Hay que copiarlo a /boot

cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz
cp /usr/src/linux/System.map /boot/System.map
System.map contiene símbolos del núcleo para que los módulos puedan
interactuar con las funciones del núcleo.

De forma automática

make install

• Copia el nuevo núcleo y sus ficheros asociados a

los directorios apropiados.

• Construye una nueva imagen initrd.
• Añade nuevas entradas para el fichero de

configuración del gestor de arranque.

22

actualizar lilo

Lanzar el cargador lilo

lilo

Forma automatizada
El comando make bzlilo realiza los siguientes pasos de forma

automática:

• cp /boot/vmlinuz /boot/vmlinuz.old
• cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz

• cp /usr/src/linux/System.map /boot/System.map

lilo

System.map contiene símbolos del núcleo para que los módulos
puedan interactuar con las funciones del núcleo.

Realizar un reboot y ejecutar el nuevo núcleo

23
  • Links de descarga
http://lwp-l.com/pdf17585

Comentarios de: Compilar el nucleo de Linux (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad