Volver

Como compilar un Kernel, paso a paso

Por El_Sith

La mayoría de los post que encontrareis en Internet sobre como solucionar tal o cual problema terminan con un "recompile el kérnel".
La verdad, hasta que conseguí compilar el primero me costó más de un disgusto, pero una vez que se le pilla el truco, es bastante facilito.

Si te atreves... ¡sigue leyendo!

Bien, las herramientas no son muchas y fáciles de encontrar. De hecho, casi el 100% de las distribuciones las traen en el primer CD y la mayoría de ellas las instala por defecto.

En concreto vamos a utilizar:

libncurses5-dev: Para conseguir un entorno más cómodo de configuración.
gcc: El compilador de 'C', y sus librerías asociadas.
make: para terminar el trabajo.

... y la versión de kérnel que quieras.

Bien, vamos por partes:

Los kérnel de Linux se encuentran disponibles en varios sitios, pero os aconsejo que os lo traigáis de esta página:

http://www.kernel.org/pub/linux/kernel/

Como veréis, dentro hay un buen montón de directorios con toooooooodas las versiones del kérnel ¡La 1.0 incluida!

¿Que versión escoger?
Por lo general, usaremos la familia 2.6 o la 2.4. Como existen una buena cantidad de versiones, para vuestras primeras experiencias os aconsejo que uséis las versiones que aparecen en la página principal como últimas estables (a fecha de hoy son la 2.6.6 y la 2.4.26).
Insisto, HAY MUCHAS VERSIONES, pero dentro de cada directorio encontrareis un archivo que se llama CHANGELOG. En él se explican las diferencias y mejoras que ha ido sufriendo el kérnel.

¿y cual me bajo?
Como podréis ver, hay extensiones para todos los gustos. Veamos que son cada una:
tar.gz = empaquetado con tar y comprimido con gzip
tar.bz2= empaquetado con tar y comprimido con bzip2

Así mismo veréis que hay unas "cosillas" que empiezan con 'patch". Se trata de parches que permiten actualizar desde una versión anterior a esa en lugar de traeros el núcleo entero, que la verdad, son un buen montón de megas.

Para ilustrar este ejemplo, vamos a traernos este kérnel de la familia 2.6 (simplemente por ser la familia más actual, más adelante veremos como hacerlo con una 2.4)

http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.5.tar.gz

¡Y a esperar que termine la descarga!

Muuuy facilito.

Recordad que los Linuxeros somos gente muy ordenada, y que nos gusta tener un sitio específico para cada cosa.
Lo que haremos será MOVER el núcleo al directorio /usr/src, que es donde vamos a dejar todos los códigos fuente que nos bajemos.

Para eso simplemente abrimos una terminal (si estamos en un entorno gráfico) y hacemos un mv linux-2.6.5.tar.gz /usr/src/linux-2.6.5.tar.gz
Seguidamente, hacemos cd /usr/src y descomprimimos con tar -zxvf linux-2.6.5.tar.gz

Como tardará un poquito, lo suyo es irse a por un refresco.

Cuando acabe (la decomprensión, no el refresco), nos encontraremos con que nos habrá aparecido un directorio que se llama linux-2.6.5.
Ahora borraremos el archivo que hemos descargado. Personalmente tengo un CD con un montón de fuentes de núcleos Linux, porque nunca se sabe si vas a tener que ir a algún sitio donde no tengas conexión a Internet; así que me lo grabo y luego lo borro.

Ahora tenemos sólo el directorio en cuestión, Y COMO LOS LINUXEROS SOMOS MUY ORDENADOS (¿lo había dicho antes?) hacemos un link simbólico:

ln -s linux-2.6.5 linux

Y os preguntareis... ¿para que es eso?
Bien, un link simbólico lo podéis interpretar como una especie de "acceso directo" de... este.... ¡si hombre!.... ese sistema operativo de Redmond... el que tiene el salvapantallas que te pone el monitor en azul.... lo siento, no me acuerdo.

(perdón por el chiste, no lo he podido resistir)

Lo que nos hace esto es que cuando cambiemos al directorio 'linux' con un 'cd linux', sería lo mismo que hacer 'cd linux-2.6.5'.
¿Que ventaja tiene? De momento ninguna, pero cuando tengáis varios núcleos podéis equivocaros fácilmente y no saber con cual estáis trabajando. Eso os facilitará las cosas.

Si no queréis hacer el link, no pasa nada, podéis cambiaros directamente al directorio y trabajar allí dentro, pero tenedlo en cuenta para el futuro.

Bien, simplemente nos cambiamos al directorio donde tengamos descomprimido el núcleo.

cd /usr/src/linux si hemos hecho el enlace simbólico, o cd /usr/src/linux-2.6.5 en el caso de haber prescindido de hacerlo.

Y una vez dentro... hacemos un make menuconfig

En un par de segundos tendremos un menú de texto con el que configurar las opciones del núcleo.
Nos moveremos usando los cursores, seleccionaremos las entradas con 'Enter' y marcaremos las opciones usando la barra de espacios.

Antes de continuar, un par de detalles.
Podemos hacer nuestro kérnel con módulos, sin módulos, o con una mezcla de ambos.

Para que lo entendáis todos, los módulos son como los drivers: nos permiten acceder a dispositivos o nos dan prestaciones adicionales (como sistemas de encriptación, usar iptables para montar un Firewall, leer particiones formateadas en NTFS,... o poder utilizar la tarjeta de sonido).

Un kérnel que no contenga ningún módulo será más rápido (entre un 2 y un 7% más, según el caso) pero también será más grande y ocupará más espacio en memoria.
Un kérnel muy modular (como los que vienen en las distribuciones por defecto) es de menor tamaño, pero necesita cargar los módulos para poder funcionar.

¿Que hacemos entonces?
Yo uso una opción intermedia: se lo que tiene mi ordenador, que dispositivos y lo que quiero que haga el 90% del tiempo.
Suelo meter dentro del núcleo el tipo de particiones que uso en mi sistema, los drivers de la tarjeta de red y cosas por el estilo.
Con eso se que funciona, pero claro en un futuro puedo querer acceder a una red de Windows (y ese era el nombre), o leer un disco NTFS, usar criptografía, o mil cosas más por el estilo.
Todas esas cosas que no me son necesarias a diario las pongo como módulos: cuando me hagan falta los cargo, y cuando no los necesite los descargo de la memoria.

A lo largo de este tutorial, os iré dando recomendaciones sobre que opción tomar. Luego vosotros podréis decidir lo que más os convenga.


===================================================
¡Ojo! si no sabéis que hardware tiene vuestro equipo, y no me refiero a que sea "una tarjeta de red Ovislink de las normales", sino a que sepáis que componente en concreto utiliza, hay una forma sencilla de conocerlos sin abrir el equipo (y perder la garantía).

Se abre una consola, y ejecutáis lspci. Os va a salir algo como esto:

0000:00:00.0 Host bridge: ATI Technologies Inc: Unknown device cbb2 (rev 02)

0000:00:01.0 PCI bridge: ATI Technologies Inc PCI Bridge [IGP 340M]
0000:00:06.0 Multimedia audio controller: ALi Corporation M5451 PCI AC-Link Controller Audio Device (rev 02)
0000:00:07.0 ISA bridge: ALi Corporation M1533 PCI to ISA Bridge [Aladdin IV]
0000:00:08.0 Modem: ALi Corporation Intel 537 [M5457 AC-Link Modem]
0000:00:0a.0 CardBus bridge: O2 Micro, Inc.
OZ6912 Cardbus Controller
0000:00:0b.0 USB Controller: VIA Technologies, Inc. VT6202 [USB 2.0 controller] (rev 50)
0000:00:0b.1 USB Controller: VIA Technologies, Inc. VT6202 [USB 2.0 controller] (rev 50)
0000:00:0b.2 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 51)
0000:00:0c.0 FireWire (IEEE 1394): Texas Instruments TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link)
0000:00:10.0 IDE interface: ALi Corporation M5229 IDE (rev c4)
0000:00:11.0 Bridge: ALi Corporation M7101 PMU
0000:00:12.0 Ethernet controller: National Semiconductor Corporation DP83815 (MacPhyter) Ethernet Controller
0000:01:05.0 VGA compatible controller: ATI Technologies Inc Radeon IGP 340M


En este caso es el contenido de mi portátil, con lo cual ya puedo saber que:

1.-
La tarjeta de video es una ATI IGP340M
2.- El chipset ISA es un ALI1533
3.- La controladora de Cardbus es una O2Micro, modelo OZ6912
4.- El Firewire es de Texas Instruments
5.- El Chipset del IDE es ALI 5229
6.- La tarjeta de red es una National Semiconductor
7.- El modem es un MC5457, vamos, un Winmodem
8.- La tarjeta de sonido es una ALI 5451

Haced vosotros lo mismo, y apuntadlo en una hoja aparte para consultarlo.

¡Y ahora nos metemos en faena!

CODE MATURITY LEVEL OPTIONS

¡Ostras!
¿Y eso que es?

Venga, sin miedo, nos ponemos encima y le damos al Enter, y nos aparece un menú con tres opciones:


Prompt for development and/or incomplete code/drivers
Esta opción os permite usar drivers que aún no están completamente terminados, y que están en versión alpha (vamos, apenas probados). Si la dejáis marcada no pasa nada, y además os permitirá usa drivers que estén obsoletos. Yo la dejo marcada, pero no es necesario.

Select only drivers expected to compile cleanly
Sólo os aparecerá si habéis seleccionado la primera. Basta con decir que os permitirá (entre otras cosas) configurar drivers de los anteriormente seleccionados SI NO LA MARCAIS.
Como no me gusta que me den la tabarra, y sólo voy a usar drivers que funcionen (aunque sean obsoletos) la dejo.

Select only drivers that don't need compile-time external firmware

Hay algunos dispositivos que cargan archivos de firmware en el arranque. Si la marcáis sólo se compilarán los archivos que NO tengan que cargar ese firmware.

R E S U M E N

Tenéis dos opciones, o marcarlas todas o no marcar ninguna.
Como estáis empezando y por defecto os aparecerán las tres marcadas, dejadlas como están.
No os va a afectar en nada.

Eso si, en un futuro espero que os convirtáis en apasionados de Linux y que contribuyáis en su desarrollo, con lo cual...

GENERAL SETUP

Seguimos. Salimos del menú anterior y nos vamos al siguiente: General Setup.

Las opciones que nos encontramos aquí son:
Support for paging of anonymous memory (swap)
Soporte para memoria SWAP. La dejamos señalada.

System V IPC
Digamos que son unas funciones internas de comunicación entre programas, y que muchos no funcionarán sin ellas. La dejamos señalada.

POSIX Message Queues
Es parte de la anterior, pero no la necesitaremos. La desmarcamos.

BSD Process Accounting
Permite que el kérnel audite programas. Aunque no es necesario, la marcaremos, pero podemos prescindir de ella.

Sysctl support
Permite ajustar el funcionamiento del kérnel sin tener que recompilarlo. Lo marcamos.

Auditing support
Para realizar auditorias del kérnel con subsistemas para el mismo. Lo desmarcamos.

Support for hot-pluggable devices
¿Tenéis dispositivos USB, PCMCIA's o similares? Lo marcamos.

kérnel .config support
Lo marcamos. Nos generará un archivo .config con la configuración que hagáis.
Es tremendamente útil cuando queréis consultar dudas (aunque su utilidad es otra mayor)

Configure standard kérnel features (for small systems) --->
Para sistemas embebidos principalmente.
Lo desmarcamos.
============================================

R E S U M E N

Esta
es la configuración que se queda:

[*] Support for paging of anonymous memory (swap)
[*] System V IPC
[ ] POSIX Message Queues
[*] BSD Process Accounting
[*] Sysctl support
[ ] Auditing support
[*] Support for hot-pluggable devices
[*] Kernel .config support
[ ] Enable access to .config through /proc/config.gz (NEW)
[ ] Configure standard kernel features (for small systems)

LOADABLE MODULE SUPPORT

Esta parte del kérnel está destinada a indicarle si queremos usar módulos o no.
Como dijimos al principio de este post, el usar módulos o no es algo que depende mucho de lo que vayamos a utilizar.
Personalmente, os aconsejo que lo utilicéis para vuestros equipos de sobremesa.

Sigamos: estas son las opciones de este menú.

Enable loadable module support
Habilita el soporte para módulos. Lo seleccionamos.

Module unloading
Permite descargar los módulos de memoria. Lo seleccionamos

Module versioning support (EXPERIMENTAL)
Experimental = no suficientemente probado.
Permite cargar módulos de otras versiones de kérnel. Personalmente no me gusta nada poner cosas de experimental (y no lo aconsejo). Lo dejamos sin marcar.

Automatic kérnel module loading
¡MAGNIFÍCO! Si hacemos algunas partes del kérnel como módulos, podemos encontrarnos con programas que necesiten de un módulo en concreto... y no esté cargado.
Activando esta opción, el kérnel se encargará de cargarlos por nosotros. Eso si, no funciona con todos (aún) pero si con los más usuales.

============================================
R E S U M E N
Esta
es la configuración que dejamos:


[*] Enable loadable module support
[*] Module unloading
[ ] Forced module unloading (NEW)
[ ] Module versioning support (EXPERIMENTAL)
[*] Automatic kernel module loading

PROCESSOR TYPE AND FEATURES

Este apartado lo haremos con muuuuuuucho cuidado.
Aquí seleccionamos el tipo de procesador para el cual haremos el kérnel.
El código que se genere se hará para este tipo de procesador, con lo cual, seleccionar correctamente el tipo de CPU que tengamos (nada difícil) hará que con el núcleo que hagamos el equipo vuele,... o vaya como una tortuga artrítica.

Pues venga, sin miedo. Estas son las opciones:

Subarchitecture Type (PC-compatible) --->
Tipo de arquitectura. En nuestro seleccionamos caso PC-Compatible.

Processor family (Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon) --->
Seleccionamos el tipo de procesador que tenemos. En mi caso Pentium IV

Generic x86 support
Si tenemos algún procesador "raro" (Crusoe, Winchip,...), marcaremos esta opción.
En otro caso no es necesario. Lo que hace es cambiar el tipo de optimización del kérnel

486 emulation
Si vamos a instalar el núcleo en un 386, seleccionando esta opción emularemos instrucciones de 486. Obviamente, son pocos los casos de gente que maneje un 386 (bueno, me incluyo entre ellos). Así que salvo en este caso... no lo seleccionamos.

HPET Timer Support
Usar un timer más avanzado en lugar del standard. Personalmente lo dejo sin activar.

Symmetric multi-processing support
Si alguien tiene una máquina con 2 o más micros, que lo marque.

(32) Maximum number of CPUs (2-255)
Y si además de multiprocesador tiene más de 32 CPU's... que cambien el valor

Preemptible kérnel
Es un poco raro de explicar, pero basta decir que en equipos de sobremesa se nota un aumento del rendimiento. Lo marcamos.

Machine Check Exception
Si nuestra máquina tiene un fallo de hardware, se calienta el micro u otro fallo de hardware, el kérnel nos dará un aviso por pantalla.

Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4
Comprueba posibles
errores en PIV o AMD's

check for P4 thermal throttling interrupt.
Chequea errores por sobrecalientamiento el PIV

Toshiba Laptop support
Para portatiles Toshiba

Dell laptop support
Idem, para los Dell Inspiron

/dev/cpu/microcode - Intel IA32 CPU microcode support
Para actualizar el microcódigo de los procesadores. No lo marcamos

/dev/cpu/*/msr - Model-specific register support
Algo complejo de explicar. No lo marcamos.

/dev/cpu/*/cpuid - CPU information support
Algo complejo de explicar. No lo marcamos

Firmware Drivers --->
Está en experimental, asi que... no lo marcamos

High Memory Support (off) --->
Si alguien tiene 4 o más Gigas de memoria, es necesario que la especifique en esta opción.
En caso de no marcarlo, nuestro límite será de 4Gb.

Math emulation
Si alguien tiene un micro sin copro matemático (386 y algunos 486), que lo marque

MTRR (Memory Type Range Register) support
Lo marcamos. Se usa para incrementar el rendimiento de las transferencias entre la memoria del equipo y la VGA

Boot from EFI support (EXPERIMENTAL)

No lo marcamos

Enable kérnel irq balancing
Esta es obvi. La dejamos marcada.

Use register arguments (EXPERIMENTAL)
Lo dicho, de experimental nada.

=============================================
R E S U M E N

Esta es la configuración que vamos a dejar. Ojito con el tipo de micro, que aqui aparece Pentium IV.
Los que tengais AMD seleccionad ese modelo.

Subarchitecture Type (PC-compatible) --->
Processor family (Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon) --->
[ ] Generic x86 support
[ ] 486 emulation
[ ] HPET Timer Support
[*] Symmetric multi-processing support
(32) Maximum number of CPUs (2-255)
[*] Preemptible Kernel
[*] Machine Check Exception
< > Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4
[ ] check for P4 thermal throttling interrupt
< > Toshiba Laptop support
< > Dell laptop support
< > /dev/cpu/microcode - Intel IA32 CPU microcode support
< > /dev/cpu/*/msr - Model-specific register support
< > /dev/cpu/*/cpuid - CPU information support
Firmware Drivers --->
High Memory Support (off) --->
[ ] Math emulation
[*] MTRR (Memory Type Range Register) support
[ ] Boot from EFI support (EXPERIMENTAL)
[*] Enable kernel irq balancing
[ ] Use register arguments (EXPERIMENTAL)

POWER MANAGEMENT OPTIONS

Esta opción es bastante delicada.
Debemos tener en cuenta el tipo de sistema de ahorro de energía que incorpora el sistema que estemos utilizando.

Para un sistema de sobremesa recomendaría no habilitar ninguno de ellos. No por nada, sino por que son sistemas que (opinión personal) cuando están encendidos son para trabajar con ellos (amplíese trabajar a otras actividades lúdicas).

Sin embargo para un portatil si es muy conveniente montarlas. No sabeis la mala impresión que di una vez haciendo una presentación laaaarga.... que terminó con un apagado "a lo bestia" del portatil por no tenerlo enchufado.

Vamos a ver las opciones:

Power Management support
Si queremos soporte de ahorro de energía. Lo marcamos

Software Suspend (EXPERIMENTAL)
No lo marcamos

Suspend-to-Disk Support
Se copia el estado de la memoria a disco antes de entrar en hibernación. Lo marcamos

ACPI (Advanced Configuration and Power Interface) Support --->
Lo marcamos si nuestro equipo lleva este soporte.

APM (Advanced Power Management) BIOS Support --->
Lo marcamos si nuestro equipo lleva este soporte.

CPU Frequency scaling --->
Permite cambiar la frecuencia del procesador. Lo marcamos.

Ahora entramos dentro del menú de ACPI, y dejamos seleccionadas las opciones siguientes:

[*] ACPI Support
[ ] Sleep States (EXPERIMENTAL)
<*> AC Adapter
<*> Battery
<M> Button
<M> Fan
<M> Processor
<M> Thermal Zone
< > ASUS/Medion Laptop Extras
< > Toshiba Laptop Extras
[ ] Debug Statements
[ ] Power Management Timer Support

Con esto terminamos de configurar el ACPI

BUS OPTIONS (PCI, PCMCIA, EISA, MCA)

Aquí es donde vamos a empezar a usar la "chuleta" que nos hicimos antes para tener la lista de hardware de nuestro sistema

PCI support
Indica si queremos soporte para buses PCI. Lo marcamos

PCI access mode (Any) --->
Indica el sistema que usaremos para acceder a los buses PCI. Depende de la BIOS de la máquina. Para no pillarnos los dedos, le diremos que use el modo "Any" de forma que sea compatible con nuestro equipo (y siempre podremos jugar con la BIOS sin riesgo de dejar "frito" el sistema)

Vector-based interrupt indexing (MSI)
Algo complejo de explicar. Lo dejaremos sin marcar

Legacy /proc/pci interface
Se utilizaba antiguamente en lugar de lspci, y se mantiene por compatibilidad. Lo dejaremos sin marcar

PCI device name database
Incluye una base de datos de los dispositivos PCI. Muy util. Lo dejamos

ISA support
Si alguien tiene placas con buses ISA que lo marque.

MCA support
¿Alguien tiene un IBM PS/2? Entonces que marque esta opción para poder usar el bus Microchannel que incorporan estos equipos.

NatSemi SCx200 support
Lo dejaremos sin marcar.

PCMCIA/CardBus support --->
Si tenemos tarjetas PCMCIA lo marcaremos.

PCI Hotplug Support --->
Si alguien tiene tarjetas PCI que se puedan cambiar en caliente, que lo marque. Nosotros lo dejaremos sin marcar.

============================================
R E S U M E N 1

[*] PCI support
PCI access mode (Any) --->
[ ] Vector-based interrupt indexing (MSI)
[ ] Legacy /proc/pci interface
[*] PCI device name database
[ ] ISA support
[ ] MCA support
< > NatSemi SCx200 support
PCMCIA/CardBus support --->
PCI Hotplug Support --->
============================================

Sigamos.
Como en mi caso se trata de un portatil, habilito el soporte de PCMCIA y el tipo de tarjeta que se acepta.

<*> PCMCIA/CardBus support
[ ] Enable PCMCIA debugging
<*> CardBus yenta-compatible bridge support
< > i82092 compatible bridge support
< > Databook TCIC host bridge support

EXECUTABLE FILE FORMAT

Sigamos, este es muy fácil.

Aquí definimos el/los tipos de ejecutables (los programas) que pueden utilizarse en Linux
Veamos las opciones:

Kernel support for ELF binaries
El formato por defecto. Lo marcamos.

Kernel support for a.out and ECOFF binaries
Este era el formato de programas que se usaba antes de ELF.
Se mantiene por razones históricas y lo marcaremos si vamos a utilizar programas anteriores a 1.995. A nuestro gusto.

Kernel support for MISC binaries
Muy interesante. Se utiliza para obtener soporte con emuladores principalmente.
Lo marcamos.

==================================================
R E S U M E N

Vamos a dejarlo configurado de esta forma
[*] Kernel support for ELF binaries
<*> Kernel support for a.out and ECOFF binaries
<*> Kernel support for MISC binaries

DEVICE DRIVERS

Bien, ahora sintiéndolo mucho llega la parte más pesada de toda la configuración del kérnel.

En "Device Drivers" encontraremos el soporte que necesitan los dispositivos del sistema.


Tenemos las siguientes categorías:

Generic Driver Options --->
Para configurar Drivers algo "especiales".

Memory Technology Devices (MTD) --->
Para memorias tipo Flash Ram que se usan en sistemas empotrados.

Parallel port support --->
Para configurar dispositivos que se conectan al puerto paralelo, desde impresoras a lectores externos.

Plug and Play support --->


Block devices --->
Para dar soporte a la disquetera, y unas cuantas controladoras SCSI/RAID raras.

ATA/ATAPI/MFM/RLL support --->
Soporte para dispositivos IDE

SCSI device support --->
Soporte para dispositivos y controladoras SCSI

Multi-device support (RAID and LVM) --->
Para hacer RAID por Software

Fusion MPT device support --->
Se usa para unos dispositivos de LSI

IEEE 1394 (FireWire) support --->
Este se entiende, ¿verdad?

I2O device support --->
Para realizar configuraciones de los drivers de dispositivos

Networking support --->
Soporte para tarjetas de red, protocolos y funciones de red.

ISDN subsystem --->
Soporte para RDSI

Telephony Support --->
Soporte para Voz sobre IP.

Input device support --->
Soporte para dispositivos de entrada no muy comunes (como pantallas táctiles)

Character devices --->
Soporte para varios dispositivos. Lo veremos más adelante.

I2C support --->
Un protocolo de comunicaciones que no usaremos.

Misc devices --->
Soporte para dispositivos de IBM sSeries

Multimedia devices --->
Soporte para sintonizadoras de TV, radio, broadcast de vídeo.

Graphics support --->
Soporte para tarjetas de vídeo que requieran configuraciones especiales para trabajar.

Sound --->
Soporte para nuestras tarjetas de sonido

USB support --->
Soporte para USB.


Si, ya sé que esta lista asusta, y más si alguien se ha metido dentro a ver lo que hay en cada apartado. Pero pensadlo fríamente:
¿Alguien tienen toooooodos esos dispositivos montados en su PC?
¿Alguno de vosotros utiliza controladoras RAID de más de 600€ para sus discos duros?

No es el caso. Como veremos, la mayoría de estos apartados quedarán vacios, y el resto son triviales de configurar.

DEVICE DRIVERS: Generic Drivers Options

Si habeis seguido leyendo hasta este punto, ¡Enhorabuena!.
Aunque creais que llega la parte más complicada, estais en la más sencilla y mecánica de la configuración,

¿No os lo creeis? Pues tomad nota:

Nos metemos en Generic Drivers Options, y nos encontramos con Hotplug firmware loading support.

Si recordáis, anteriormente os comenté que había drivers que necesitaban cargar un firmware desde un archivo externo al kernel.
Sin embargo, podemos encontrarnos con dispositivos que estén soportados en el núcleo pero que su entrada no contenga la opción de cargarlo.
Marcando esta entrada, conseguiremos cargar ese firmware.

Peeeeeeeeero,.... ¿alguien tiene alguna tarjeta de ese tipo?
No es nada habitual en PC's. En resumen, lo dejamos sin marcar.

==========================================
R E S U M E N

Así queda esta entrada.

< > Hotplug firmware loading support

DEVICE DRIVERS:Memory Technology Devices (MTD)

Nos metemos dentro de esta opción, y nos aparece esa entrada.
Como os comentaba antes, esto se usa en dispositivos embebidos (por ejemplo, el controlador de un microondas)
En nuestro caso, lo estamos haciendo para un PC, por tanto no lo marcamos.

=================================================
R E S U M E N

Así se queda esta entrada

< > Memory Technology Device (MTD) support

DEVICE DRIVERS: Parallel Port Support

Aqui si que vamos a tocar un poquito. Veamos las entradas:


Parallel port support
Queremos ser capaces de enchufar una impresora a nuestro equipo.
Por tanto lo marcamos

PC-style hardware
Lo marcamos para que sea un puerto paralelo de PC Compatible.
Tened en cuenta que podemos usar Linux en varias plataformas, y que por ejemplo, un Commodore Amiga funciona, tiene el mismo conector para la impresora,... pero su funcionamiento es algo distinto.
Lo marcamos.

Use FIFO/DMA if available (EXPERIMENTAL)
Algunas placas llevan modificaciones en el LPT para imprimir a mayor velocidad.
Es un buen invento, pero el driver esta en experimental. No lo marcamos.

SuperIO chipset support (EXPERIMENTAL)
Como es experimental, lo dejamos correr y no lo marcamos.

Support for PCMCIA management for PC-style ports
No vamos a usar una PCMCIA para imprimir, por tanto no lo marcamos.

Support foreign hardware
Hay puertos paralelos que no siguen el standard, y podemos usarlos.
Salvo que tengais una segunda tarjeta de puerto paralelo que NO sea standard, no lo marcaremos.

IEEE 1284 transfer modes
Aqui damos soporte para ECP y EEP en el LPT.
Si vuestra impresora lo soporta (yo diria que el 99'99% de las actuales), lo marcamos.

====================================================

R E S U M E N

<*> Parallel port support
<*> PC-style hardware
[ ] Use FIFO/DMA if available (EXPERIMENTAL)
[ ] SuperIO chipset support (EXPERIMENTAL)
< > Support for PCMCIA management for PC-style ports
[ ] Support foreign hardware
[*] IEEE 1284 transfer modes

DEVICE DRIVERS: Plug and Play Support

Como
no podemos entrar....
lo dejamos correr. Wink

DEVICE DRIVERS: Block devices

Aqui os pongo directamente el resumen:

<*> Normal floppy disk support
< > Parallel port IDE device support
< > Compaq SMART2 support
< > Compaq Smart Array 5xxx support
< > Mylex DAC960/DAC1100 PCI RAID Controller support
< > Micro Memory MM5415 Battery Backed RAM support (EXPERIMENTAL)
< > Loopback device support
< > Network block device support
< > Promise SATA SX8 (carmel) support
< > RAM disk support
[ ] Support for Large Block Devices

En resumen: queremos la disquetera, y lo demás son sistemas extraños a un PC doméstico.
Lo obviamos.
Una curiosidad: la parte Support for Large Block Devices no se refiere a los discos LBA, si no a discos de más de 2Tb

DEVICE DRIVERS: ATA/ATAPI/MFM/RLL support

No os asustéis por lo largo de este post. Simplemente es que hay muchos drivers y muchas funciones.

Allá van las opciones que encontraremos dentro

ATA/ATAPI/MFM/RLL support
Como tenemos CD-Rom en nuestro equipo, lo habilitamos.

Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
Lo marcaremos.
Nos hará falta si tenemos más de un dispositivo IDE en el sistema.

Use old disk-only driver on primary interface
Es una versión antgua del driver para IDE. No lo marcamos.

Include IDE/ATA-2 DISK support
Soporte para ATA-2. Lo incluimos salvo que nuestro sistema sea antiguo.
Si no lo tenemos claro, lo marcamos que no pasa nada.

Use multi-mode by default
Si nos da un error en el arranque debido a los discos, lo marcamos.
En otro caso no es necesario.

Auto-Geometry Resizing support
Para sistemas antiguos. Si teneis una BIOS de Award que no os reconozca un disco mayor de 32 Gb, con esto podreis arrancar el sistema en Linux. No lo marcamos.

PCMCIA IDE support
Si alguien tiene una PCMCIA que sea controladora IDE y un dispositivo IDE pinchad en ella, que lo marque. Nosotros no lo haremos. (Por cierto, ¿alguien a visto un chisme de estos alguna vez?)

Include IDE/ATAPI CDROM support
Sin dudarlo: lo marcamos

Include IDE/ATAPI TAPE support (EXPERIMENTAL)
Experimental, no lo marcaremos salvo que alguien tenga un DAT IDE y le haga falta.
Nosotros no vamos a hacerlo.

Include IDE/ATAPI FLOPPY support
Los que tengais unidades ZIP de Iomega, o disqueteras LS-120 conectadas al IDE, lo marcais. Nosotros no lo haremos.

SCSI emulation support
Bastante interesante. Hace que los dispositivos en el IDE se puedan emular como SCSI.
Se utiliza en las grabadoras de CD/DVD. Aunque ya hay soporte directo para grabadoras IDE en Linux, nunca viene mal dejarlo activado por si algún programilla nos lo pide.

IDE Taskfile Access
Para analizar el estado de dispositivos IDE que hayan muerto. No lo marcamos.

IDE Taskfile IO (EXPERIMENTAL) :
Y este menos todavía que está en experimental.

Esto que viene a continuación, se llaman "Bugfixes para IDE".
No es que el chipset de nuestra placa esté mal. Para que lo entendáis, es como los drivers *.INF del famoso sistema operativo de Redmond que usa para hacer trabajar correctamente el sistema.
El problema es que sin estos drivers no tendremos las prestaciones que ofrece nuestro hardware, y en algunos casos se quedará colgado en el arranque porque esas funciones se han programado de una forma no standard.
Poniendo el modelo de Chipset correspondiente, solucionaremos el problema y ganaremos estabilidad y rendimiento.


generic/default IDE chipset support
Ponedlo siempre como integrado en el núcleo (*) no como módulo (M)

CMD640 chipset bugfix/support
CMD640 enhanced support
Se usaba en placas de 486

PCI IDE chipset support
Marcadlo como integrado en el núcleo. Es para el soporte de IDE.

Sharing PCI IDE interrupts support
¿Os suena que una tarjeta comparta la IRQ con otra? Es de lo más normal.
Poned esta opción como integrada y problema solucionado.

Boot off-board chipsets first support
Hace algún tiempo, se vendían tarjetas PCI que incorporaban una controladora IDE.
Se usaban para ampliar el número de discos duros o un CD (vamos que podíamos tener IDE0, IDE1, IDE2, IDE3, IDE4,....).
Con esto conseguimos que en lugar de arrancar en primer lugar con las IDE de placa base, se haga con la añadida.
Nosotros no vamos a marcarlo.


Generic PCI IDE Chipset Support
Por si acaso lo dejaremos. Proporciona funciones para manejar de forma genérica
el chipset si algo falla.
Nunca viene mal.

OPTi 82C621 chipset enhanced support (EXPERIMENTAL)
RZ1000 chipset bugfix/support
Un par de chipsets.

Generic PCI bus-master DMA support
Force enable legacy 2.0.X HOSTS to use DMA
Ni caso.
Es algo residual de la familia de núcleos 2.0 que se mantiene por compatibilidad.

Use PCI DMA by default when available
Lo marcamos. Mejora el acceso a dispositivos PCI.

Enable DMA only for disks
AEC62XX chipset support
ALI M15x3 chipset support
ALI M15x3 WDC support (DANGEROUS)
AMD and nVidia IDE support
ATI IXP chipset IDE support
CMD64{3|6|8|9} chipset support
Compaq Triflex IDE support
CY82C693 chipset support
Cyrix CS5510/20 MediaGX chipset support (VERY EXPERIMENTAL)
Cyrix/National Semiconductor CS5530 MediaGX chipset support
HPT34X chipset support
HPT36X/37X chipset support
National SCx200 chipset support
Intel PIIXn chipsets support
NS87415 chipset support
PROMISE PDC202{46|62|65|67} support
PROMISE PDC202{68|69|70|71|75|76|77} support
ServerWorks OSB4/CSB5/CSB6 chipsets support
Silicon Image chipset support
SiS5513 chipset support
SLC90E66 chipset support
Tekram TRM290 chipset support
VIA82CXXX chipset support
IGNORE word93 Validation BITS
Otro buen montón de chipsets.

====================================================
R E S U M E N

Aqui marcaremos las "piezas" de hardware que tenga nuestro sistema para obtener el soporte.
Es muy importante dejarlas dentro del kernel (marcadas con un *) en vez de como módulos (marcadas con una M).
Tened en cuenta que a estas funciones se accede toooodo el tiempo, con lo que al estar integradas conseguiremos una aumento de las prestaciones del sistema.

La configuración que se ha quedado para el sistema (recordad, mi equipo, pero os sirve de guia para configurar el vuestro cambiando el tipo de chipset) es el siguiente:


<*> ATA/ATAPI/MFM/RLL support
<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
--- Please see Documentation/ide.txt for help/info on IDE drives
[ ] Use old disk-only driver on primary interface
<*> Include IDE/ATA-2 DISK support
[ ] Use multi-mode by default
[ ] Auto-Geometry Resizing support
< > PCMCIA IDE support
<*> Include IDE/ATAPI CDROM support
< > Include IDE/ATAPI TAPE support (EXPERIMENTAL)
< > Include IDE/ATAPI FLOPPY support
<*> SCSI emulation support
[ ] IDE Taskfile Access
[ ] IDE Taskfile IO (EXPERIMENTAL)
--- IDE chipset support/bugfixes
<*> generic/default IDE chipset support
[ ] CMD640 chipset bugfix/support
[ ] CMD640 enhanced support
[*] PCI IDE chipset support
[*] Sharing PCI IDE interrupts support
[ ] Boot off-board chipsets first support
<*> Generic PCI IDE Chipset Support
< > OPTi 82C621 chipset enhanced support (EXPERIMENTAL)
< > RZ1000 chipset bugfix/support
[*] Generic PCI bus-master DMA support
[ ] Force enable legacy 2.0.X HOSTS to use DMA
[*] Use PCI DMA by default when available
[ ] Enable DMA only for disks
< > AEC62XX chipset support
<*> ALI M15x3 chipset support
[ ] ALI M15x3 WDC support (DANGEROUS)
< > AMD and nVidia IDE support
< > ATI IXP chipset IDE support
< > CMD64{3|6|8|9} chipset support
< > Compaq Triflex IDE support
< > CY82C693 chipset support
< > Cyrix CS5510/20 MediaGX chipset support (VERY EXPERIMENTAL)
< > Cyrix/National Semiconductor CS5530 MediaGX chipset support
< > HPT34X chipset support
< > HPT36X/37X chipset support
< > National SCx200 chipset support
<*> Intel PIIXn chipsets support
< > NS87415 chipset support
< > PROMISE PDC202{46|62|65|67} support

DEVICE DRIVERS: SCSI Device Support

En esta parte no sólo se configuran las controladoras SCSI. Además se añade el resto
de soporte para la emulación SCSI sobre dispositivos IDE.

legacy /proc/scsi/ support
Proporciona un soporte para el sistema operativo. Lo marcamos

--- SCSI support type (disk, tape, CD-ROM)
SCSI disk support
Soporte para Discos SCSI... y dispositivos de memoria USB(Memory Stick o similares)
Lo marcamos

SCSI tape support
Soporte para cintas SCSI. No lo marcamos

SCSI OnStream SC-x0 tape support
Es un modelo especial de cintas no muy standard. No lo marcamos

SCSI CDROM support
Vamos a habilitar la emulación de CD SCSI, por tanto lo marcamos.

Enable vendor-specific extensions (for SCSI CDROM)
Proporciona soporte multisesión para grabadoras de CD antiguas.
Concretamente, HP, NEC y Toshiba SCSI.
No lo marcaremos

SCSI generic support
Lo marcaremos. Se usa con Scanners... y con la emulación SCSI de CDROM

SCSI media changer support
Si alguien tiene un cambiador de CD's que lo ponga. Nosotros no lo haremos.

--- Some SCSI devices (e.g. CD jukebox) support multiple LUNs
Probe all LUNs on each SCSI device
No lo marcaremos.

Build with SCSI REPORT LUNS support
No lo marcamos
Verbose SCSI error reporting (kernel size +=12K)
No lo marcamos. Deja mensajes del funcionamiento de la SCSI

SCSI logging facility

Habilita un registro para las operaciones de ls SCSI

SCSI Transport Attributes --->
SCSI low-level drivers --->
PCMCIA SCSI adapter support --->
Estos tres proporcionan (básicamente) soporte para dispositivos SCSI.
Como no vamos a usar ninguno de ellos, entramos en los submenús y desmarcamos
todo.

====================================================
R E S U M E N

-- SCSI device support
[*] legacy /proc/scsi/ support
--- SCSI support type (disk, tape, CD-ROM)
<*> SCSI disk support
< > SCSI tape support
< > SCSI OnStream SC-x0 tape support
<*> SCSI CDROM support
[ ] Enable vendor-specific extensions (for SCSI CDROM)
<*> SCSI generic support
< > SCSI media changer support
--- Some SCSI devices (e.g. CD jukebox) support multiple LUNs
[ ] Probe all LUNs on each SCSI device
[ ] Build with SCSI REPORT LUNS support
[ ] Verbose SCSI error reporting (kernel size +=12K)
[ ] SCSI logging facility
SCSI Transport Attributes --->
SCSI low-level drivers --->
PCMCIA SCSI adapter support --->

DEVICE DRIVERS: MULTIDEVICE SUPPORT

Con este vamos a terminar rapidito.
Se utiliza fundamentalmente para hacer RAID por software.
Como no vamos a usar nada de esto, lo desmarcamos y a otra cosa.

DEVICE DRIVERS: Fusion MPT Device Support

Con este me vais a perdonar, pero es algo largo de explicar y no merece la pena hacerlo
en este momento porque es algo que no vamos a utilizar.

No lo marcamos.

P.D.: Si alguien tiene interés, por favor, preguntadlo en el foro y os contestaré encantado.

DEVICE DRIVERS: IEEE1394 (Firewire) Support

Por fin llegamos a algo que parece tener más sustancia.
No voy a explicaros lo que es el Firewire. Casi todo el mundo lo sabe (o le suena), pero si hay
una cosa que es clara: si nuestro sistema lo tiene, no lo vamos a estar usando siempre.
Es decir, el que tenga una cámara digital que se conecte al sistema por Firewire, no va a hacerlo todos los dias a todas horas.
Habrá épocas (por ejemplo en verano) donde la tenga enchufada casi a diario, y otras en las que se pase temporadas enteras durmiendo en el cajón de la mesa.

Vamos a implementar este soporte como módulo, de forma que cuando nos haga falta lo cargamos, y cuando no lo quitamos.


¡ Y todo eso sin reiniciar el equipo !

Vamos a por ello. Estas son las opciones:

IEEE 1394 (FireWire) support
Lo habilitaremos como módulo.

--- Subsystem Options
Excessive debugging output
No os lo aconsejo en absoluto. Os llenará la pantalla de mensajes de debugging de la
conexión Firewire. No la marcamos

OUI Database built-in

A gusto de cada uno. Incluye una base de datos de fabricantes, de forma que cuando
le pinchemos el dispositivo que sea, nos dice el fabricante.

Build in extra config rom entries for certain functionality
Algunos dispositivos Firewire traen una ROM donde el PC lee información adicional para
su funcionamiento. Se lo dejaremos marcado.

--- Device Drivers
Texas Instruments PCILynx support
OHCI-1394 support
Drivers para el Firewire. Yo marcaré este por ser el que usa mi portatil.
Vosotros tendreis que tirar de la chuleta y elegir el vuestro.

--- Protocol Drivers
OHCI-1394 Video support
SBP-2 support (Harddisks etc.)
Ethernet over 1394
OHCI-DV I/O support
Raw IEEE1394 I/O support
IEC61883-1 Plug support
Aqui escogeis lo que querais utilizar:
El uso de vídeo con OHCI-1394
Soporte para discos y grabadoras Firewire
Red para Firewire
Transmitir y recibir vídeo por Firewire
Soporte RAW para IEEE1394 (ver más abajo)
Métodos de conexión.

El soporte RAW viene muy bien cuando queremos conectarnos directamente al dispositivo
y trabajar con él.
Lo marcaremos para tener más juego.

=============================================
R E S U M E N

Esta es la configuración que se dejará:

<M> IEEE 1394 (FireWire) support
--- Subsystem Options
[ ] Excessive debugging output
[ ] OUI Database built-in
[ ] Build in extra config rom entries for certain functionality
--- Device Drivers
<M> Texas Instruments PCILynx support
< > OHCI-1394 support
--- Protocol Drivers
< > SBP-2 support (Harddisks etc.)
< > Ethernet over 1394
<M> Raw IEEE1394 I/O support
< > IEC61883-1 Plug support

DEVICE DRIVERS: I2O Support

¿Recordais que os dije que esto era un modo distinto para los drivers?
Pues nada, no lo marcamos.

DEVICE DRIVERS: Networking Support

Llegamos a uno de los puntos más interesantes de Linux: su red.
Al contrario que otros sistemas operativos, Linux puede ser tan modular que incluso el
funcionamiento de la red puede especificarse "en trocitos".

Mi consejo es que como a fin de cuentas la tarjeta siempre va a estar funcionando, pongáis
la tarjeta dentro del núcleo, los protocolos habituales en el núcleo, y el resto como módulo.

Explicar todas las posibilidades de red de Linux es algo que merecería un libro completo.
Tened en cuenta que se puede hacer balanceos de carga, Bonding, Routing, Routing Avanzado, VLanes,....

Lo que haremos es que voy a indicaros que tenéis que marcar, y si queréis que se ponga un tutorial aparte sobre las posibilidades de la red no tenéis nada más que pedirlo.

[*] Networking support
Networking options --->
[*] Network device support
ARCnet devices --->
<M> Dummy net driver support
< > Bonding driver support
< > EQL (serial line load balancing) support
< > Universal TUN/TAP device driver support
Ethernet (10 or 100Mbit) --->
Ethernet (1000 Mbit) --->
Ethernet (10000 Mbit) --->
[ ] FDDI driver support
[ ] HIPPI driver support (EXPERIMENTAL)
< > PLIP (parallel port) support
< > PPP (point-to-point protocol) support
< > SLIP (serial line) support
Wireless LAN (non-hamradio) --->
Token Ring devices --->
[ ] Fibre Channel driver support
< > Red Creek Hardware VPN (EXPERIMENTAL)
< > Traffic Shaper (EXPERIMENTAL)
< > Network console logging support (EXPERIMENTAL)
Wan interfaces --->
PCMCIA network device support --->
Amateur Radio support --->
IrDA (infrared) support --->
Bluetooth support --->



Dentro de Networking Options

<*> Packet socket
[ ] Packet socket: mmapped IO
< > Netlink device emulation
<*> Unix domain sockets
< > PF_KEY sockets
[*] TCP/IP networking
[*] IP: multicasting
[ ] IP: advanced router
[*] IP: kernel level autoconfiguration
[*] IP: DHCP support
[ ] IP: BOOTP support
[ ] IP: RARP support
< > IP: tunneling
< > IP: GRE tunnels over IP
[ ] IP: multicast routing
[ ] IP: ARP daemon support (EXPERIMENTAL)
[*] IP: TCP syncookie support (disabled per default)
< > IP: AH transformation
< > IP: ESP transformation
< > IP: IPComp transformation
< > The IPv6 protocol (EXPERIMENTAL)
< > DECnet Support


Dentro de ARCnet devices
No seleccionamos nada.


Dentro de Ethernet (10 or 100bit)
Lo que hacemos es seleccionar el tipo de tarjeta de red que se encuentre instalado en ell sistema.

[*] Ethernet (10 or 100Mbit)
<M> Generic Media Independent Interface device support
< > Sun Happy Meal 10/100baseT support
< > Sun GEM support
[ ] 3COM cards
Tulip family network device support --->
< > HP 10/100VG PCLAN (ISA, EISA, PCI) support
[*] EISA, VLB, PCI and on board controllers
< > AMD PCnet32 PCI support
< > AMD 8111 (new PCI lance) support
< > Adaptec Starfire/DuraLAN support
< > Broadcom 4400 ethernet support (EXPERIMENTAL)
< > Reverse Engineered nForce Ethernet support (EXPERIMENTAL)
< > EtherExpressPro/100 support (eepro100, original Becker driver)
< > Intel(R) PRO/100+ support
< > Myson MTD-8xx PCI Ethernet support
<*> National Semiconductor DP8381x series PCI Ethernet support
< > PCI NE2000 and clones support (see help)
< > RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support (EXPERIMENTAL)
< > RealTek RTL-8139 PCI Fast Ethernet Adapter support
< > SiS 900/7016 PCI Fast Ethernet Adapter support
< > SMC EtherPower II
< > Sundance Alta support
< > TI ThunderLAN support
< > VIA Rhine support

DEVICE DRIVERS: ISDN Subsystem

Si necesitamos tener soporte para RDSI, tendremos que seleccionar esta opción.
En nuestro caso, lo desmarcamos.

DEVICE DRIVERS: Telephony Support

Aqui podemos especificar opciones para voz sobre IP.
Por ejemplo, si en nuestra empresa hay telefonía TCP/IP, podremos usar la tarjeta de sonido para estos propósitos.
En nuestro caso, no lo marcaremos.

DEVICE DRIVERS: Input device Support

Hace ya muuuuuchos posts os comenté el significado de esta entrada.
Se trata dar soporte a los distintos dispositivos que podemos usar como método de
entrada y salida de datos del sistema.

En otras palabras: ¿que teclado y que ratón tenemos?

Si cotilleáis un poco por dentro, veréis que hay soporte de todo: desde joystick de PSX
hasta pantallas táctiles.

Esta va a ser la configuración que dejaremos:

--- Userland interfaces
--- Mouse interface
(1024) Horizontal screen resolution
(768) Vertical screen resolution
[*] Enable /dev/psaux device by default
< > Joystick interface
< > Touchscreen interface
< > Event interface
< > Event debugging
--- Input I/O drivers
< > Gameport support
<*> Serial port line discipline
< > ct82c710 Aux port controller
< > Parallel port keyboard adapter
< > PCI PS/2 keyboard and PS/2 mouse controller
--- Input Device Drivers
--- Keyboards
< > Sun Type 4 and Type 5 keyboard support
< > DECstation/VAXstation LK201/LK401 keyboard support
< > XT Keyboard support
< > Newton keyboard
[*] Mice
<*> PS/2 mouse
< > Serial mouse
< > DEC VSXXX-AA/GA mouse and tablet
[ ] Joysticks
[ ] Touchscreens
[ ] Misc

DEVICE DRIVERS: Character Devices

Bueno, esta parte parece pesada pero no lo es tanto.
Por hacer un poco de resumen, se trata de dar soporte al reto de dispositivos que tenemos
en nuestro equipo.
Vamos a dividir esto en tres partes, pero tened en cuenta que se trata de una única entrada en la configuración.

Non-standard serial port support

Aqui directamente decimos que no. Se usa en sistemas que tienen varios puertos serie (más de 4) y no utilizan el standard que se sigue en los PC's.

Serial drivers --->
Se trata del puerto serie del PC. Normalmente entro enel submenú y lo marco como módulo (M).
Lo único que tengo que vaya al puerto serie es el cable para programar el Router, y para
eso no me complico la vida metiéndolo en el kernel. Como módulo va estupendamente.

Legacy (BSD) PTY support
Habilita terminales. Pero en Linux esto se puede resolver de otras formas, así que
no lo marcamos.

(256) Maximum number of legacy PTY in use
Depende del anterior.


Parallel printer support
Recordad que antes hemos dado soporte al puerto paralelo... pero no a la impresora.
Lo marcamos.


Support for console on line printer
A algunos les gustará mucho.
Lo que hace es que convierte la impresora en una consola, con lo cual los mensajes
aparecen por ellla.
Si teneis una impresora matricial, ingentes cantidades de papel continuo y unos vecinos
con una sordera profunda, ponedlo como curiosidad. Parecerá que estais en la NASA.
Ya en serio, no nos será de mucha utilidad salvo que estemos depurando el sistema.

Dejadlo sin marcar.

Support for user-space parallel port device drivers
No se necesita ni para imprimir ni para utilizar dispositivos que vayan enchufados
al puerto paralelo, así que no lo marcamos.

Texas Instruments parallel link cable support
Para las calculadoras TI que llevan un cable para el puerto paralelo del PC de forma que
se puedan descargar datos y programas.
Lo dejamos sin marcar (a menos que tengáis una calculadora de esas)

QIC-02 tape support
Es un tipo de cinta para copias. Lo dejamos sin marcar

IPMI --->
Es un standard industrial para sensores. Lo dejamos sin marcar.

Watchdog Cards --->
Aquí os cuento un poquito de que va esto.
Supongamos que sois administradores de un servidor que está en Barcelona y vosotros en Madrid.
Si hubiera un fallo y se colgase, no creo que os hiciera mucha gracia viajar para darle al
botón de reset.
Un Watchdog lo que hace es que espera una señal cada cierto tiempo. Si no la recibe
reinicia el equipo (en este caso).
Lo dejaremos sin marcar (os lo recomiendo por que cuando recomprimo vídeo tengo la
cpu casi a tope, y a veces me ha saltado el watchdog :? )

Intel/AMD/VIA HW Random Number Generator support
Da soporte para el generador de números aleatorios de la placa base.
Lo dejaremos sin marcar

/dev/nvram support
Util... pero peligroso. Permite escribir datos en la CMOS del PC (¿a alguien le suena la
palabra BIOS?). Lo dejamos sin marcar.


Enhanced Real Time Clock Support
Si habeis puesto un núcleo multiprocesador, marcardlo, en otro caso dejadlo sin marcar.

Generic /dev/rtc emulation
Un poco largo de explicar. Símplemente no es necesario y lo dejamos sin marcar.

Double Talk PC internal speech card support
Para
el sintetizador de voz DoubleTalk.
Lo dejamos sin marcar.

Siemens R3964 line discipline
Salvo que nuestro equipo tenga que comunicarse directamente con PLC's, no lo marcamos. ¡Ojo! no confundáis esto con los "PLC de Endesa", que en realidad os pondrán
un router/modem conectado a la red eléctrica y funcionareis por una tarjeta de red.

Applicom intelligent fieldbus card support
Nada, es una tarjeta industrial que no vamos a encontrar nunca por nuestra casa.
Lo dejamos sin marcar

Sony Vaio Programmable I/O Control Device support (EXPERIMENTAL)
Los que tengan un portatil Sony Vaio pueden encontrarlo útil, pero tened en cuenta que es EXPERIMENTAL.
Los demás lo dejaremos sin marcar.


Bueno, sigamos con la segunda tanda:

/dev/agpgart (AGP Support)
Permite acceder a las funciones 3D de nuestras tarjetas de vídeo AGP.
Marcado,no... MARCADISIMO

ALI chipset support
Soporte para los chipsets Ali M1541, M1621, M1631, M1632, M1641,M1647,y M1651

ATI chipset support
Soporte para los chipset IGP de las ATI Radeon.
El sistema donde estoy haciendo las pruebas lo lleva, así que lo marco

AMD Irongate, 761, and 762 chipset support
AMD Opteron/Athlon64 on-CPU GART support
Intel 440LX/BX/GX, I8xx and E7x05 chipset support
Intel i865 chipset support
NVIDIA nForce/nForce2 chipset support
SiS chipset support
Serverworks LE/HE chipset support
Soporte para estos Chipset

VIA chipset support
Soporte para los VIA MVP3/Apollo (antiguos)

Transmeta Efficeon support


Vamos con la última parte:

Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
En Xfree 4.0 se introdujo esta mejora para dar mayor rendimiento al vídeo.
La seleccionamos.

3dfx Banshee/Voodoo3+
3dlabs GMX 2000
ATI Rage 128
ATI Radeon
Intel I810
Intel 830M, 845G, 852GM, 855GM, 865G
Matrox g200/g400
SiS video cards
Tarjetas que soportan la tecnología DRI. Seleccionad la vuestra

PCMCIA character devices --->

Es para dar un soporte de comunicaciones serie a una tarjeta PCMCIA en concreto.
No la marcamos

ACP Modem (Mwave) support

No os pongais contentos, que no es para todos los modem.
Sólo para los Thinkpad de IBM. No lo marcamos.

RAW driver (/dev/raw/rawN) (OBSOLETE)
¿Obsoleto? No lo marcamos.

Hangcheck timer


================================================
R E S U M E N

Así queda mi configuración, la vuestra debe ser similar.

[ ] Non-standard serial port support
Serial drivers --->
[*] Legacy (BSD) PTY support
(256) Maximum number of legacy PTY in use
<*> Parallel printer support
[ ] Support for console on line printer
< > Support for user-space parallel port device drivers
< > Texas Instruments parallel link cable support
< > QIC-02 tape support
IPMI --->
Watchdog Cards --->
< > Intel/AMD/VIA HW Random Number Generator support
< > /dev/nvram support
< > Enhanced Real Time Clock Support
< > Generic /dev/rtc emulation
< > Double Talk PC internal speech card support
< > Siemens R3964 line discipline
< > Applicom intelligent fieldbus card support
< > Sony Vaio Programmable I/O Control Device support (EXPERIMENTAL)
Ftape, the floppy tape device driver --->
<*> /dev/agpgart (AGP Support)
<*> ALI chipset support
<*> ATI chipset support
< > AMD Irongate, 761, and 762 chipset support
< > AMD Opteron/Athlon64 on-CPU GART support
<*> Intel 440LX/BX/GX, I8xx and E7x05 chipset support
< > Intel i865 chipset support
< > NVIDIA nForce/nForce2 chipset support
<*> SiS chipset support
< > Serverworks LE/HE chipset support
<*> VIA chipset support
< > Transmeta Efficeon support
[*] Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
< > 3dfx Banshee/Voodoo3+
< > 3dlabs GMX 2000
< > ATI Rage 128
<*> ATI Radeon
< > Intel I810
< > Intel 830M, 845G, 852GM, 855GM, 865G
< > Matrox g200/g400
< > SiS video cards
PCMCIA character devices --->
< > ACP Modem (Mwave) support
< > RAW driver (/dev/raw/rawN) (OBSOLETE)
< > Hangcheck timer

DEVICE DRIVERS: I2C Support
Se trata de un protocolo serie para comunicarse con microcontroladores.
Lo dejamos sin marcar.

(Este ha sido cortito, menos mal)

DEVICE DRIVERS: Misc Devices

¡ Otro cortito !

¿Alguien está montando Linux en un procesador RSA de IBM?

¿No?

Pues nada, lo dejamos sin marcar.

DEVICE DRIVERS: Multimedia devices
Bueno, esta parte es algo más pesadilla....

¡Falso! Esta da soporte a capturadoras/sintonizadoras de TV y Radio.
Entramos en el menú, y activamos como módulo (M) Video for Liniux.

¿Porqué como módulo? Facil. No siempre estaremos viendo la TV en nuestro equipo, de hecho
en el PC de sobremesa que tengo en casa rara vez me pongo a ver la televisión (salvo cuando me "expulsan" del salón con culebrones y/o similares).
Lo ponemos como módulo y así sólo tenemos que cargarlo cuando queramos usar ese dispositivo.

Dentro veremos que hay dos entradas, Video for Linux (si, el nombre se repite) que contiene los diferentes modelos de capturadoras que hay, y Radio for Linux, que contiene tarjetas sintonizadoras de radio.

La siguiente entrada que aparece es Digital Video Broadcasting Devices.
Salvo que vayamos a hacer Broadcast de Video, lo dejaremos sin marcar.

DEVICE DRIVERS: Graphics Support

Algunas tarjetas VGA necesitan una "ayudita" del kernel para funcionar a pleno rendimiento,
En este apartado encontraremos una lista de Hardware en la que seleccionaremos la nuestra... si es el caso.

Así mismo encontrareis el soporte de Framebuffer y la posibilidad de poner a Tux en el arranque.
Esto se explica en los trucos avanzados (dentro de este mismo foro).

==============================================
R E S U M E N

En mi caso, esto queda así:

[*] Support for frame buffer devices
< > Permedia2 support
< > CyberPro 2000/2010/5000 support
[ ] IMS Twin Turbo display support
< > VGA 16-color graphics support
< > VESA VGA graphics support
< > Hercules mono graphics support
< > nVidia Riva support
< > Intel 810/815 support (EXPERIMENTAL)
< > Matrox acceleration
< > ATI Radeon display support (Old driver)
<*> ATI Radeon display support
[*] DDC/I2C for ATI Radeon support
[ ] Lots of debug output from Radeon driver
< > ATI Rage128 display support
< > ATI Mach64 display support
< > SiS acceleration
< > NeoMagic display support
< > IMG Kyro support
< > 3Dfx Banshee/Voodoo3 display support
< > 3Dfx Voodoo Graphics (sst1) support
< > Trident support
< > Virtual Frame Buffer support (ONLY FOR TESTING!)
Console display driver support --->
Logo configuration --->

DEVICE DRIVERS: Sound

Esta parte es más interesante.
Si entrais en el menú, vereis que hay dos formas de obtener soporte para vuestra tarjeta de sonido:
Advanced Linux Sound Architecture (ALSA para los amiguetes]
Open Sound System (OSS para los amigos)

Elegir una u otra es cuestión de gustos, pero tened en cuenta una cosa:
OSS está a extinguir, pero es mucho más simple de configurar y personalmente he obtenido
mejores resultados con él que con ALSA.
Sin embargo el standard actual es ALSA.

Veamos los dos

Si entramos en Open Sound System Architecture, veremos que únicamente contiene los nombres de las tarjetas soportadas. Seleccionamos la nuestra y listo:

============================================
R E S U M E N

<*> Open Sound System (DEPRECATED)
< > BT878 audio dma (NEW)
< > C-Media PCI (CMI8338/8738) (NEW)
< > Creative SBLive!
(EMU10K1) (NEW)
< > Crystal SoundFusion (CS4280/461x) (NEW)
< > Crystal Sound CS4281 (NEW)
< > Ensoniq AudioPCI (ES1370) (NEW)
< > Creative Ensoniq AudioPCI 97 (ES1371) (NEW)
< > ESS Technology Solo1 (NEW)
< > ESS Maestro, Maestro2, Maestro2E driver (NEW)
< > ESS Maestro3/Allegro driver (EXPERIMENTAL) (NEW)
< > Intel ICH (i8xx) audio support (NEW)
< > S3 SonicVibes (NEW)
<*> Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core (NEW)
< > Support for Turtle Beach MultiSound Classic, Tahiti, Monterey (NEW)
< > Support for Turtle Beach MultiSound Pinnacle, Fiji (NEW)
< > VIA 82C686 Audio Codec (NEW)
< > OSS sound modules (NEW)
< > TV card (bt848) mixer support (NEW)
< > ALi5455 audio support (NEW)
< > ForteMedia FM801 driver (NEW)
< > RME Hammerfall (RME96XX) support (NEW)
< > AD1980 front/back switch plugin (NEW)

Si veis que vuestra tarjeta no aparece en el listado, probad a marcar OSS sound modules.
Dentro encontrareis muchas más.

Dentro de ALSA, econtrareis algo similar, pero organizado por categorías (PCI,USB,PCMCIA).

En mi caso, el driver que necesito se encuentra dentro de PCI.
Si vuestra tarjeta está integrada en placa, ese es el lugar donde la encontrareis.

==================================================
R E S U M E N

<*> ALi PCI Audio M5451
< > ATI IXP 150/200/250
< > Aureal Advantage
< > Aureal Vortex
< > Aureal Vortex 2
< > Aztech AZF3328 / PCI168 (EXPERIMENTAL)
< > Bt87x Audio Capture
< > Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x
< > Cirrus Logic (Sound Fusion) CS4281
< > EMU10K1 (SB Live!
& Audigy, E-mu APS)
< > Korg 1212 IO
< > Digigram miXart
< > NeoMagic NM256AV/ZX
< > RME Digi32, 32/8, 32 PRO
< > RME Digi96, 96/8, 96/8 PRO
< > RME Digi9652 (Hammerfall)
< > RME Hammerfall DSP Audio
< > Trident 4D-Wave DX/NX; SiS 7018
< > Yamaha YMF724/740/744/754
< > Avance Logic ALS4000
< > C-Media 8738, 8338
< > (Creative) Ensoniq AudioPCI 1370
< > (Creative) Ensoniq AudioPCI 1371/1373
< > ESS ES1938/1946/1969 (Solo-1)
< > ESS ES1968/1978 (Maestro-1/2/2E)
< > ESS Allegro/Maestro3
< > ForteMedia FM801
< > ICEnsemble ICE1712 (Envy24)
< > ICE/VT1724 (Envy24HT)
< > Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111
< > Intel i8x0/MX440; AMD768/8111 modems (EXPERIMENTAL)
< > S3 SonicVibes
< > VIA 82C686A/B, 8233 South Bridge
< > Digigram VX222

Escoger uno u otro es cuestión de gustos y rendimiento de cada uno.

Me suele ir mejor OSS en sistemas que vayan un poco "cortitos", y ALSA en los demás, pero haciendo un simil de coches, es como hablar de BMW o Mercedes. Los dos son grandes coches, pero a cada persona le parece uno mejor que el otro... aunque en su diseño y prestaciones sea iguales

DEVICE DRIVERS: USB Support

¡Por fin!
Esta es la última entrada que tendremos en Device Drivers, que ya estaba un poco pesado.

No os pongo el resumen de las entradas, como ya es habitual, porque como podreis
imaginar la lista de dispositivos USB es interminable. Teneis desde impresoras y modems
hasta los mandos de una X-Box.

Lo que si teneis que tocar (aparte de añadir vuestros dispositivos) es lo siguiente:

USB verbose debug messages
Os dará todos los mensajes que generen los dispositivos USB. No lo marcaremos

--- Miscellaneous USB options
USB device filesystem
Coloca una entrada en el sistema para señalar los USB. Recomendable. Lo señalamos.

Enforce USB bandwidth allocation (EXPERIMENTAL)
Nada de nada, es experimental.

Dynamic USB minor allocation (EXPERIMENTAL)
Igual que el anterior

--- USB Host Controller Drivers
EHCI HCD (USB 2.0) support
Soporte para USB2.0. Lo marcamos

Full speed ISO transactions (EXPERIMENTAL)
No lo marcamos

OHCI HCD support
Este es el controlador de mi equipo. Yo lo marco

UHCI HCD (most Intel and VIA) support
El otro tipo de controlador, marcadlo si es el vuestro.

--- USB Device Class drivers
USB Audio support
Soporte para dispositivos de Audio USB (altavoces). No lo marcamos

USB Bluetooth TTY support
Soporte para Bluetooth por USB (si teneis el lápiz). No lo marcamos

USB MIDI support
Para conectar dispositivos MIDI por USB. No lo marcamos.

USB Modem (CDC ACM) support
Soporte para modems USB. No lo marcamos.
Ojo, que no se refiere a los "modems" USB de las ADSL

USB Printer support
Impresoras USB. No la marcaremos a menos que tengamos una

USB Mass Storage support
Para conectar dispositivos de almacenamiento USB (Discos Duros, MemoryStick,...)
Lo marcamos

USB Mass Storage verbose debug
Avisos por consola de los mensajes emitidos por el dispositivo.
No lo marcamos.

==============================================
R E S U M E N

FILE SYSTEMS

Aqui indicaremos el tipo de sistemas de archivos que usaremos en nuestro equipo.
Os recomiendo lo siguiente:
Dejad en el núcleo (*) los sistemas ext2 (muy antiguo) ext3 y reiserfs, y los demás los poneis
como módulos. De esa forma siempre prodreis acceder a todos los discos, CD's y DVD's que tengais u os pasen.

No vamos a discutir que sistema de archivo es mejor o peor, así que os indico directamente la configuración... si no teneis inconveniente.

============================================
R E S U M E N

<*> Second extended fs support
[ ] Ext2 extended attributes
<*> Ext3 journalling file system support
[*] Ext3 extended attributes
[ ] Ext3 POSIX Access Control Lists
[ ] Ext3 Security Labels
[ ] JBD (ext3) debugging support
<*> Reiserfs support
[ ] Enable reiserfs debug mode
[*] Stats in /proc/fs/reiserfs
<M> JFS filesystem support
[*] JFS POSIX Access Control Lists
[ ] JFS debugging (NEW)
[ ] JFS statistics (NEW)
<M> XFS filesystem support
[ ] Realtime support (EXPERIMENTAL) (NEW)
[*] Quota support
[*] Security Label support
[*] POSIX ACL support
<M> Minix fs support
<M> ROM file system support
[ ] Quota support
<*> Kernel automounter support
<*> Kernel automounter version 4 support (also supports v3)
CD-ROM/DVD Filesystems --->
DOS/FAT/NT Filesystems --->
Pseudo filesystems --->
Miscellaneous filesystems --->
Network File Systems --->
Partition Types --->
Native Language Support --->

Dentro de los campos CD-ROM/DVD Filesystems, DOS/FAT/NTFS,... haced exactamente lo mismo: todos como módulos.
En Partition Types no seleccioneis nada.

Native Language Support tiene los juegos de caracteres que usará el sistema.
Os aconsejo que dejeis sólo el 8859-15 dentro del kernel (*), que es que corresponde
a Europa-Oeste con Euro, y 8859-1, que es lo mismo... pero sin Euro como módulo (M)

Profiling Support

En experimental, así que no lo marcamos.

Kernel Hacking

Se utiliza para depurar el kernel. No lo marcaremos.

Security Options

Nos proporciona distintas opciones de seguridad.
Algunas de ellas son parches externos (como NSA Linux) que nos hacen el sistema aún
mas seguro.

Hasta que en un futuro post nos metamos más en profundidad, os aconsejo que configureis
de esta forma:

===========================================
R E S U M E N

[*] Enable different security models
[ ] Socket and Networking Security Hooks (NEW)
<*> Default Linux Capabilities
< > Root Plug Support (NEW)
[ ] NSA SELinux Support (NEW)

Cryptographic Options

Más adelante nos meteremos en criptografía.
De momentolla dejamos sin marcar.

Library Routines

No marcamos nada, y seguimos.

¡¡¡¡ PREPARADOS PARA COMPILAR !!!!

Bueno, pues ya estamos listos (menos mal).
Ahora seleccionamos Exit, y muy educadamente se nos preguntará
Do you wish to save your new kernel configuration?

¡Al que diga que No le corto las manos!
¡Con el trabajito que ha costado escribir todo esto!

Venga, en serio, le decimos que 'Yes' y salimos.

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡COMPILANDOOOOOOOOOOOOOOOOOO !!!!!!!!!!!!

Ahora estaremos de nuevo en el prompt del sistema.

Simplemente, escribimos make, y nos vamos por un refresco.
Este proceso tardará... bueno, es dificil decirlo.

Depende de la cantidad de opciones que le hayais puesto y de vuestro equipo, pero para que os hagais una idea, en el mio tarda unos 10 minutos (PIV 2'8, 512Mb)

INSTALANDO

Bueno, una vez que ha terminado la compilación, ejecutamos

make install

Esto os instalará el kernel en el sitio correspondiente y actualizará vuestro Lilo.


Y para generar los módulos:

make modules
make modules_install[b]

Un consejo:

No me gusta tener Lilo como viene por defecto. La configuración que yo uso es esta:

# /etc/lilo.conf - See: `lilo(8)' and `lilo.conf(5)',
# --------------- `install-mbr(8)', `/usr/share/doc/lilo/',
# and `/usr/share/doc/mbr/'.

# +---------------------------------------------------------------+
# | !! Reminder !! |
# | |
# | Don't forget to run `lilo' after you make changes to this |
# | conffile, `/boot/bootmess.txt', or install a new kernel. The |
# | computer will most likely fail to boot if a kernel-image |
# | post-install script or you don't remember to run `lilo'. |
# | |
# +---------------------------------------------------------------+

# Support LBA for large hard disks.
#
lba32

# Overrides the default mapping between harddisk names and the BIOS'
# harddisk order. Use with caution.
#disk=/dev/hde
# bios=0x81

#disk=/dev/sda
# bios=0x80

# Specifies the boot device. This is where Lilo installs its boot
# block. It can be either a partition, or the raw device, in which
# case it installs in the MBR, and will overwrite the current MBR.
#
boot=/dev/hda

# Specifies the device that should be mounted as root. (`/')
#
root=/dev/hda1
# Enable map compaction:
# Tries to merge read requests for adjacent sectors into a single
# read request. This drastically reduces load time and keeps the
# map smaller. Using `compact' is especially recommended when
# booting from a floppy disk. It is disabled here by default
# because it doesn't always work.
#
# compact

# Installs the specified file as the new boot sector
# You have the choice between: bmp, compat, menu and text
# Look in /boot/ and in lilo.conf(5) manpage for details
#
install=/boot/boot-menu.b

# Specifies the location of the map file
#
map=/boot/map

# You can set a password here, and uncomment the `restricted' lines
# in the image definitions below to make it so that a password must
# be typed to boot anything but a default configuration. If a
# command line is given, other than one specified by an `append'
# statement in `lilo.conf', the password will be required, but a
# standard default boot will not require one.
#
# This will, for instance, prevent anyone with access to the
# console from booting with something like `Linux init=/bin/sh',
# and thus becoming `root' without proper authorization.
#
# Note that if you really need this type of security, you will
# likely also want to use `install-mbr' to reconfigure the MBR
# program, as well as set up your BIOS to disallow booting from
# removable disk or CD-ROM, then put a password on getting into the
# BIOS configuration as well. Please RTFM `install-mbr(8)'.
# password=tatercounter2000

# Specifies the number of deciseconds (0.1 seconds) LILO should
# wait before booting the first image.
#
delay=20

# You can put a customized boot message up if you like. If you use
# `prompt', and this computer may need to reboot unattended, you
# must specify a `timeout', or it will sit there forever waiting
# for a keypress. `single-key' goes with the `alias' lines in the
# `image' configurations below. eg: You can press `1' to boot
# `Linux', `2' to boot `LinuxOLD', if you uncomment the `alias'.
#
# message=/boot/bootmess.txt
prompt
# single-key
# delay=100
timeout=100

# Specifies the VGA text mode at boot time. (normal, extended, ask, <mode>)
#
# vga=ask
# vga=9
#
vga=791

# Kernel command line options that apply to all installed images go
# here. See: The `boot-prompt-HOWO' and `kernel-parameters.txt' in
# the Linux kernel `Documentation' directory.
#
#append=""

# Boot up Linux by default.
#
default=2.6.5

image=/boot/vmlinuz-2.4.18-bf2.4
label=2.4.18
read-only
# restricted
# alias=1

image=/boot/vmlinuz-2.4.26
label=2.4.26
read-only
optional
# restricted
# alias=2

image=/boot/vmlinuz-2.6.6
label=2.6.6
read-only
optional

image=/boot/vmlinuz-2.6.5
label=2.6.5
read-only
optional

# If you have another OS on this machine to boot, you can uncomment the
# following lines, changing the device name on the `other' line to
# where your other OS' partition is.
#
# other=/dev/hda4
# label=HURD
# restricted
# alias=3


Luego de editar y modificar a vuestro gusto, guardais el archivo lilo.conf (este que os he mostrado) y ejecutais [b]lilo -v -v
, reiniciais....

¡ Y listo !


Mucha suerte a todos.

Volver