PDF de programación - Como compilar el kernel Linux

Imágen de pdf Como compilar el kernel Linux

Como compilar el kernel Linuxgráfica de visualizaciones

Publicado el 23 de Enero del 2020
82 visualizaciones desde el 23 de Enero del 2020
313,4 KB
43 paginas
Creado hace 10a (08/03/2009)
Cómo compilar el kernel Linux

Guillermo Vald és Lozano

Cómo compilar el kernel Linux– p. 1/43

Documento protegido por GFDL

Copyright (c) 2008 Guillermo Valdés Lozano.

e-mail: guillermo(en)movimientolibre.com

http://www.movimientolibre.com/

Se otorga permiso para copiar, distribuir y/o modificar este documento
bajo los términos de la Licencia de Documentación Libre de GNU,
Versión 1.2 o cualquier otra versión posterior publicada por la Free
Software Foundation; sin Secciones Invariantes ni Textos de Cubierta
Delantera ni Textos de Cubierta Trasera.

Una copia de la licencia está en
http://www.movimientolibre.com/licencias/gfdl.html

Cómo compilar el kernel Linux– p. 2/43

Introducción

• Linux es el núcleo o kernel del sistema
operativo libre denominado GNU/Linux
(también llamado Linux).

• Linux fue creado por Linus Torvalds en 1991.
• Linux está protegido por la licencia GPL y

está escrito en C.

Cómo compilar el kernel Linux– p. 3/43

¿Qué es el kernel?

• Cada computadora, lector de discos, disco

duro, tarjeta de video, etc. es diferente.

• El kernel es el programa que sabe que hacer

para que esos componentes ejecuten su
tarea como abrir un documento, borrarlo de
un disco o mostrar una imagen en pantalla.

• El kernel debe saber cómo hablar a esos

diferentes componentes materiales y
controlar las labores corrientes que hacemos
a diario con nuestras computadoras.

Cómo compilar el kernel Linux– p. 4/43

Algunas versiones de Linux

Fecha
septiembre de 1991
14 de marzo de 1994
marzo de 1995
25 de enero de 1999
4 de enero de 2001
17 de diciembre de 2003

Versi ón Líneas c ódigo
10,239
0.01
176,250
1.0.0
310,950
1.2.0
1,800,847
2.2.0
3,377,902
2.4.0
5,929,913
2.6.0

Cómo compilar el kernel Linux– p. 5/43

Kernel genérico vs personalizado

• Un kernel genérico es aquel capaz de

funcionar en muchos tipos de equipos y que
tiene los controladores de la mayoría de los
componentes que se pudiera encontar.

• Un kernel personalizado está optimizado al

100 % para nuestra máquina.
• Añadimos los módulos que necesitamos.
• Es más ligero, se carga más rapido.
• Reconoce nuevos componentes y puede

tener mejoras en su código.

Cómo compilar el kernel Linux– p. 6/43

Descargas en Debian

Instale estos paquetes y sus dependencias.
$ su
# apt-get install kernel-package
# apt-get install build-essential
# apt-get install linux-source-2.6.18
# apt-get install libncurses-dev
# apt-get install fakeroot
Desempacaque el archivo comprimido.
# cd /usr/src
# tar xjf /usr/src/linux-source-2.6.18.tar.bz2
Haga un enlace directo.
# ln -s linux-source-2.6.18 linux

Cómo compilar el kernel Linux– p. 7/43

Descargas en Gentoo

Sincronizamos el portage y buscamos sources.
$ su
# emerge --sync
# emerge -s sources
Se recomienda gentoo-sources.
# emerge -pu gentoo-sources
# rm /usr/src/linux
# emerge -u gentoo-sources
Las fuentes del kernel estarán en /usr/src/linux.

Cómo compilar el kernel Linux– p. 8/43

Tome nota de los componentes

Abra el gabinete y tome nota de los
componentes. Ejemplo:

• T. Madre Biostar P4TDP, Fury DDR 533

- El disco duro y el CD-ROM se conectan por cintas IDE.
- Tiene una ranura para tarjeta de video AGP.
- Chip VIA VT6202 0208CD.
- Chip de audio integrado C3DX CMI 8738/PCI-6ch-LX.
- Chip ATA 100.
- Tiene puertos USB por delante y por detrás.

• T. de Video AGP de 32 MB con etiqueta TAVCATG1293A
• T. de Audio Genius con chip C3DX CMI 8738/PCI-6ch-LX
• T. de Red con chip DM9102AF

Cómo compilar el kernel Linux– p. 9/43

Comando lspci

lspci lista los dispositivos PCI. Ejemplo:

$ lspci
00:00.0 Host bridge: Intel Corporation 82845 845 (Brookdale)
Chipset Host Bridge (rev 04)
00:01.0 PCI bridge: Intel Corporation 82845 845 (Brookdale)
Chipset AGP Bridge (rev 04)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 05)
00:1f.0 ISA bridge: Intel Corporation 82801BA ISA Bridge (LPC) (rev 05)
00:1f.1 IDE interface: Intel Corporation 82801BA IDE U100 (rev 05)
00:1f.2 USB Controller: Intel Corporation 82801BA/BAM USB (Hub #1) (rev 05)
00:1f.3 SMBus: Intel Corporation 82801BA/BAM SMBus (rev 05)
00:1f.4 USB Controller: Intel Corporation 82801BA/BAM USB (Hub #2) (rev 05)
01:00.0 VGA compatible controller: Silicon Integrated Systems
[SiS] 300/305 PCI/AGP VGA Display Adapter (rev 90)
02:00.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)
02:04.0 Ethernet controller: Davicom Semiconductor, Inc. 21x4x
DEC-Tulip compatible 10/100 Ethernet (rev 31)
02:05.0 USB Controller: VIA Technologies, Inc. VT82xxxxx
UHCI USB 1.1 Controller (rev 50)
02:05.1 USB Controller: VIA Technologies, Inc. VT82xxxxx
UHCI USB 1.1 Controller (rev 50)
02:05.2 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 51)

Cómo compilar el kernel Linux– p. 10/43

Observar los módulos cargados

lsmod muestra los módulos cargados.
# lsmod
M ódulo

Descripci ón

sis

partport_pc
gameport

floppy
snd_cmipci

i2c_i801
psmouse

Controlador de la tarjeta de video SIS

Puerto paralelo
Hay un puerto de juegos/midi

Controlador del lector de floppys
Controlador de la tarjeta de sonido Genius

Tiene que ver con un chip intel
Mouse por el puerto PS/2

intel_agp
usbhid, ehci_hcd, uhci_hcd

Ranura AGP de la tarjeta madre
Tienen que ver con el USB

ide_cd, ide_disk
dmfe

Controladores del CD-ROM y del disco duro
Controlador de la tarjeta de red Tulip/Davicom

Cómo compilar el kernel Linux– p. 11/43

Bitácora del kernel

dmesg muestra la bitácora del kernel.
# dmesg | more
Fragmento de la salida de dmesg, ejemplo:

hda: IC35L120AVV207-0, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
hdc: HL-DT-ST GCE-8520B, ATAPI CD/DVD-ROM drive
hdd: HL-DT-ST DVDRAM GSA-H10A, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 512KiB
hda: 241254720 sectors (123522 MB) w/1821KiB Cache,
CHS=16383/255/63, UDMA(100)
hda: cache flushes supported
hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 hda9 hda10 >
hdc: ATAPI 40X CD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
hdd: ATAPI 48X DVD-ROM DVD-R-RAM CD-R/RW drive,
2048kB Cache, UDMA(33)

Cómo compilar el kernel Linux– p. 12/43

Procesador

# cat /proc/cpuinfo
: 0
processor
: GenuineIntel
vendor_id
: 15
cpu family
: 1
model
: Intel(R) Pentium(R) 4 CPU 1.70GHz
model name
: 2
stepping
: 1700.335
cpu MHz
: 256 KB
cache size
: no
fdiv_bug
: no
hlt_bug
: no
f00f_bug
: no
coma_bug
fpu
: yes
fpu_exception : yes
cpuid level
wp
flags
mtrr pge mca cmov pat pse36 clflush dts acpi
mmx fxsr sse sse2 ss ht tm up
bogomips

: 3404.16

: 2
: yes
: fpu vme de pse tsc msr pae mce cx8 apic sep

Cómo compilar el kernel Linux– p. 13/43

Interfaz de configuración

Vaya al directorio de las fuentes.
# cd /usr/src/linux
Puede iniciar con la configuración por defecto.
# make defconfig
Interfaz basada en ncurses (recomendada):
# make menuconfig
Intefaz basada en GTK:
# make gconfig
Intefaz basada en QT:
# make xconfig

Cómo compilar el kernel Linux– p. 14/43

Interfaz de configuración bajo ncurses

Forma de usuarla:

• Use las flechas para navegar.
• Estando sobre una opción presione Y para incluirla

dentro del kernel, N para excluirla o M para que sea un
módulo.

• Las opciones marcadas con [*] serán incluídas en el
kernel, las marcadas con <M> serán compiladas como
módulos y las vacías no serán compiladas.

• Presione ? para mostrar la ayuda de la opción

iluminada.

• Presione ESC para bajar una rama o para salir si está

en el menú raíz.

• Al salir le preguntará si quiere guardar los cambios.

Cómo compilar el kernel Linux– p. 15/43

Kernel monolítico vs kernel modular

Desde un punto de vista extremista:

• Un kernel monolítico tiene todas las opciones

marcadas con Y.

• Un kernel modular es aquel con la mayoría de las

opciones marcadas con M.

Use un kernel monolítico si el hardware no
cambia. En cambio un kernel modular puede:

• Tener un tamaño menor que si fuera monolítico.
• Puede cargar a voluntad o automáticamente los

módulos que necesite.

• Pero NO marque como módulos los controladores

indispensables para el arranque.

Cómo compilar el kernel Linux– p. 16/43

Cambios de versión

Tener la versión más reciente del kernel le
brinda:

• Código mejorado y bugs solicionados.
• Soporte de nuevo hardware
• Posiblemente mejor desempeño.

El constante crecimiento y mejora del kernel
Linux ocasiona que:

• El menú de configuración cambie de una versión a

otra.

• Ocurre el aviso y luego el retiro de código

(DEPRECATED).

Cómo compilar el kernel Linux– p. 17/43

Configuraciones básicas

Para que aparezcan las opciones de tipo
experimental:
Code maturity level options

--->

[*] Prompt for development and/or incomplete code/drivers

Para que cuando conecte un dispositivo externo
el módulo se cargue por sí sólo:
Loadable module support
--->

[*] Enable loadable module support
[*]
[*]
[*]

Forced module unloading

Automatic kernel module loading

Module unloading

Cómo compilar el kernel Linux– p. 18/43

Configuraciones básicas

Seleccione la familia del procesador:
--->
Processor type and features

Processor family (Pentium-4/Celeron(P4-based)/Pentium-4

Si tiene un procesador Intel con capacidad
HyperThreading (HT), o bien, con dos o más
procesadores, debe activar:
Processor type and features

--->

[*] Symmetric multi-processing support

Cómo compilar el kernel Linux– p. 19/43

Configuraciones básicas

Si tiene particiones formateadas en Ext2 y Ext3:

--->

Ext3 extended attributes

File systems
<*> Second extended fs support
[*]
Ext2 extended attributes
<*> Ext3 journalling file system support
[*]
Para que los administradores de archivos
muestren los cambios sin necesidad de
refrescar:
File systems
[*] Inotify file change notification support
[*]
Pseudo filesystems

Inotify support for userspace

--->

--->

--- /proc file system support
[*]
[*] Virtual memory file system support (former shm fs)

/proc/kcore support

Cómo compilar el kernel Linux– p. 20/43

Configuraciones básicas

Para pertenecer a
  • Links de descarga
http://lwp-l.com/pdf17177

Comentarios de: Como compilar el kernel Linux (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad