Se pueden obtener las fuentes por FTP anónimo de
ftp://ftp.funet.fi/pub/OS/Linux/PEOPLE/Linus/
, en un
``mirror''
ftp://sunsite.rediris.es
linux-x.y.z.tar.gz
, donde
x.y.z
es el número de versión. Las versiones se encuentran en
directorios v1.1
, v1.2
y v1.3
2.0
y 2.1
ftp.funet.fi
, por ejemplo:
ftp://tsx-11.mit.edu/pub/linux/sources/system
ftp://sunsite.unc.edu/pub/Linux/kernel
ftp://sunsite.doc.ic.ac.uk/pub/unix/Linux/sunsite.unc-mirror/kernel/
ftp://fvkma.tu-graz.ac.at/pub/linux/linus
ftp://ftp.Germany.EU.net/pub/os/Linux/Local.EUnet/Kernel/Linus
ftp://ftp.dfv.rwth-aachen.de/pub/linux/kernel
ftp://ftp.ibp.fr/pub/linux/sources/system/patches
tp://kirk.bond.edu.au/pub/OS/Linux/kernel
ftp://sunsite.rediris.es/pub/linux/kernel/sources
Si no tiene acceso FTP
, encontrará una lista de BBS con lo mismo
en el grupo comp.os.linux.announce
de USENET News.
Entre en la cuenta root
y vaya al directorio /usr/src
.
Si instaló las fuentes cuando instaló Linux, habrá aquí un directorio
linux
, con las fuentes antiguas. Si quiere preservar esas fuentes
(y tiene espacio de sobra), renombre (con mv
) ese directorio a
linux-x.y.z
(la versión actual x.y.z
la puede obtener con el
comando uname -r
). Es importante que antes de descomprimir las
nuevas fuentes no haya ningún directorio /usr/src/linux
.
Ahora, en /usr/src
, descomprima las fuentes con
tar xvfzp linux-x.y.z.tar.gz
(si sólo tiene un fichero .tar
, sin .gz
, elimine la z
del
comando tar
). Los contenidos del fichero se expandirán en
/usr/src/linux
. Vaya ahora a ese directorio y lea el fichero
README
. Encontrará una sección ``INSTALLING the kernel''. Siga
las instrucciones que allí se digan (aunque en las siguientes líneas le
diremos cómo tiene que hacer casi todo esto).
Nota: Este texto es parcialmente una repetición de lo que hay en el
fichero README
de las fuentes.
El comando
make config
invocado en el directorio /usr/src/linux
inicia un programa
shell-script de configuración que le preguntará bastantes cosas.
Requiere que esté instalado bash
, con lo que debe existir
/bin/bash
, /bin/sh
o la variable $BASH
.
Si los fuentes que posee son superiores al 2.0.x
, existen dos
métodos bastante más agradables e interactivos de llevar a cabo la
configuración; invocando desde modo texto, en el mismo directorio
mencionado anteriormente
make menuconfig
Iniciará un colorido programa (escrito con lxdialog
) muy agradable y
bastante más funcional que el make config
a secas, para llevar a cabo
la configuración del kernel.
Observará que su uso es bastante intuitivo; las opciones con un <
>
indican la posibilidad de modularizar; si en ella presionamos M
la seleccionaremos como módulo. Si presionamos ESPACIO
aparecerá un
*
indicando que será incluido en el kernel. Finalmente, si
presionamos N
lo deseleccionaremos.
Las opciones marcadas con [ ]
no son modularizables.
Si Vd. es un fan de las X, entonces puede arrancar desde un
xterm
el script
equivalente, ejecutando
make xconfig
Aparecerá ante sus ojos un maravilloso y gráfico programa de selección y
configuración del kernel bajo X Window ;-)
.
Aquí seguro que sabrá manejarse a golpe de ratón sin problema alguno; las
opciones modularizables tendrán tres casillas posibles a rellenar: y
indica que se incluirá en la parte monolítica del kernel; m
que lo
hará como módulo, y n
que no será seleccionado.
Ahora
make config
, si emplea make menuconfig
o
make xconfig
encontrará mucho más intuitiva la configuración, si bien
debe leer a continuación qué significan las opciones.y
') o no
(`n
'). Los manejadores de dispositivos incorporan, además, la
opción de módulo (`m
'), opción interesante puesto que no
incorpora el manejador al núcleo en tiempo de compilación, sino que se
hace durante la ejecución del mismo, cuando sea necesario (por ejemplo,
cargar el módulo PPP solo cuando vayamos a usar el módem).
Algunas otras opciones obvias o poco importantes no son descritas aquí. Vea la sección otras para descripciones de otras muchas.
Además, cuando configure el núcleo 2.0.x, podrá poner la opción `?
',
lo que le dará una breve descripción de la misma.
Kernel math emulation
) Si no tiene coprocesador matemático (o un 486), debe contestar `y
' a
esto. Si tiene coprocesador y contesta `y
' la emulación será
instalada pero no usada; funcionará, pero le ocupará memoria
innecesariamente. Además, he oído que la emulación es lenta, lo que se
traducirá en unas pesadas X-Window.
Normal (MFM/RLL) diskand IDE disk/cdrom support
)Normalmente necesitará este soporte, pues es el de los discos habituales en los PCs. Este manejador no gestiona discos SCSI, para eso está la opción específica que luego veremos.
Ahora se le preguntará si quiere usar ``old disk-only
'' y manejadores
``new IDE
''. Tiene que elegir uno de ellos. La diferencia principal
es que el nuevo (new IDE
) maneja controladoras secundarias y CD-ROMs
IDE/ATAPI, hasta cuatro dispositivos, pero ocupa 4 KB más que el
antiguo. Se supone que los nuevos manejadores mejoran también velocidad y
fiabilidad, en especial si dispone de dispositivos EIDE.
Networking support
) En principio, contestaría afirmativamente si la máquina estuviera en una
red local o conectada a la Internet con SLIP/PPP
. Sin embargo,
muchos programas, como ocurre con el sistema X Window, requieren el
soporte de red, así que lo mejor es contestar `y
' siempre. Después se
le preguntará si quiere soporte TCP/IP
: conteste afirmativamente
aun no estando seguro.
Limit memory to low 16MB
)Hay controladores de DMA en 386 con problemas para direccionar más de 16
MB de RAM. Contestar `y
' en el caso (raro) de que tenga uno de éstos.
System V IPC
) Una de las mejores definiciones del IPC está en el glosario del libro del
Perl. Curiosamente, los programadores de Perl suelen usar IPC para
comunicar sus procesos, así como muchas otras aplicaciones (como
DOOM
, sobre todo), por lo que no es buena idea contestar `n
' si
no se está seguro de lo que hace.
Processor type (386,486, Pentium, PPro
) )Nota: En anteriores núcleos, la opción era "Usar el parámetro -m486
en el compilador" (Use -m486 flag for 486-specific optimizations
)
Tradicionalmente, esto era una optimización compatible con todos los chips, aunque más rápido en la CPU elegida (y en todo caso, ocupaba algo más). Actualmente, esto puede no ser cierto, con lo que deberá elegir siempre la CPU que tenga (aunque la versión de 386 funcionará en todas las máquinas).
SCSI support
) Si tiene dispositivos SCSI, conteste `y
'. Se le preguntarán entonces
más cosas: soporte de CD-ROM, discos y qué clase de adaptador utiliza. Vea
el documento SCSI-HOWTO para más detalle.
Network device support
)Si tiene tarjeta de red, o quiere usar PPP
, SLIP
o PLIP
(puerto paralelo usado para conectarse a Internet), conteste
afirmativamente. El script le preguntará ahora qué tarjeta tiene y qué
protocolo usar.
Filesystems
) El programa le preguntará si quiere soporte para los siguientes sistemas de ficheros:
Standard (minix)
- Las nuevas distribuciones no crean sistemas Minix,
y mucha gente no las usa para nada, pero puede convenir elegirla. Algunos
``discos de rescate'' usan el sistema Minix como formato de sus
disquetes, ya que da menos problemas.
Extended fs
- Fue la primera versión del sistema extendido, pero ya
no se usa. No necesita seleccionarla.
Second extended
- Este es el sistema más usado. Seguramente lo usará
Vd. también. Seleccione `y
'.
/
debe estar incluido el el kernel
no-modularmente, ya que de lo contrario no podrá arrancar.
xiafs filesystem
- Hace mucho pudo ser usado, pero ahora mismo no
conocemos a nadie que lo utilice.
msdos
- Selecciónelo si quiere acceder desde Linux a sus particiones
de MS-DOS o quiere montar disquetes de ese sistema.
umsdos
- Este sistema permite añadir a un sistema MS-DOS las
características típicas de Unix como nombres largos o enlaces. Sirve para
quienes quieran instalar Linux en la partición DOS, pero nada más.
/proc
- Uno de los grandes inventos desde la leche condensada.
(una idea robada descaradamente a Bell Labs, si no me equivoco) No se
trata de algo que se guarde en el disco, sino de una interfaz por medio de
ficheros con la tabla de procesos del núcleo, usada por programas como
`ps
'. Pruebe a teclear `cat /proc/meminfo
' o `cat
/proc/devices
'. Algunos shells (rc
, concretamente) hacen uso de
/proc/self/fd
(en lugar de /dev/fd
) para E/S. Debe
contestar afirmativamente a la pregunta: muchas utilidades de Linux lo
necesitan.
NFS
- Si su máquina está en red y quiere acceder a sistemas de
ficheros remotos con NFS, conteste `y
' a esta pregunta.
ISO9660
- Típico en los CD-ROMs. Si tiene un CD-ROM,
seleccione esta opción.
OS/2 HPFS
- En el momento de escribir esto, el soporte HPFS es de
sólo lectura.
System V and Coherent
- para particiones de sistemas Coherent y
System V (otras variantes de Unix para PC).
Adiciones desde la edición del Howto original (Rev. 2.1):
quota support
- Selecciónelo si quiere administrar el espacio que
consumen en disco los usuarios del sistema; necesitará además las
utilidades quotas-1.55
, disponibles en:
ftp://ftp.funet.fi/pub/Linux/kernel/src/subsystems/quota/all.tar.gz
Tenga en cuenta que este tipo de control restrictivo sólo funcionará sobre
sistemas de ficheros ext2
.
mandatory lock support
: Cambia el algoritmo para proporcionar un
sistema de bloqueos más seguro, a fin de evitar la corrupción de ficheros
por parte de las aplicaciones en los accesos a disco simultáneo. Esto
puede interesar probable y únicamente cuando se usen grandes bases de
datos o dedique su sistema Linux a servidor de ficheros. Tenga en cuenta
que deberá tener servidores (samba
, mars-nwe
, etc...) que
soporten esta nueva característica.
vfat
. En conjunción con el sistema de fichero fat
o msdos
nos permitirá acceso a las particiones de w95, con soporte de nombres
``largos'' y demás. En el momento de escribir esto, se desconoce si
soportará la ``nueva'' fat32 del recién aparecido w95-OSR2.
SMB filesystem support
: En conjunción con el paquete
samba
SMB w95 bug workaround
- :-)
qué decir... corrije un bug que
experimentan los volúmenes exportados por servidores w95.
Amiga FFS support
- Soporte para el sistema de ficheros Fast File
System de Amiga.
UFS filesystem support
- Soporte para el Unix FileSystem,
empleado por algunos *nixes BSD, como SunOS, FreeBSD, NetBSD,
NeXTstep. Permite montar dichas particiones o disquetes en modo de
sólo lectura.
Esta opción contiene otras dos opciones adicionales relacionadas con las
tablas de partición de los discos según provengan de uno u otro *nix.
Escoja el menú en línea help
para mayor información.
NCP filesystem support
- Permite montar volúmenes NetWare.
Necesitará programas cliente para llevarlo a cabo, no obstante.
root filesystem on NFS
- necesario para estaciones de trabajo sin
disco duro, que arranquen por red y monten todo su sistema de ficheros por
NFS.
BOOTP support
- Si su caso es el anterior, y arranca por red, este
protocolo le permitirá obtener su IP
dinámicamente, usando el
protocolo BOOTP
. (Siempre que su tarjeta de red incorpore una
ROM que lo permita).
RARP support
- Idem de lo anterior, en este caso usando el protocolo
RARP.
Sys V and Coherent filesystem support
permitirá montar particiones de
otros *nixes System V, como SCO Unix, Xenix y Coherent. Lea
la ayuda asociada.
Actualmente, hay un módulo no oficial que permite acceso a sistemas
de ficheros NTFS, usados por wNT, su autor es Martin von Löwis,
loewis@informatik.hu-berlin.de
. Su nivel de soporte es
ciertamente rudimentario todavía, pero siempre es bueno saberlo...
más información en
http://www.informatik.hu-berlin.de:80/~loewis/ntfs
De acuerdo, teclee `mount
'. La salida será como esta:
blah# mount
/dev/hda1 on / type ext2 (defaults)
/dev/hda3 on /usr type ext2 (defaults)
none on /proc type proc (defaults)
/dev/fd0 on /mnt type msdos (defaults)
Observe cada línea; la palabra que sigue a `type
' es el tipo de
sistema usado. En este ejemplo, los sistemas raíz (/
) y
/usr
usan el sistema ``second extended'', además usamos
sistema ``proc'' y hay montado un disquete MS-DOS.
Para saber qué sistemas de ficheros usa en el núcleo actual puede teclear
`cat /proc/filesystems
' siempre y cuando tenga al menos soporte
proc
.
Otros sistemas de ficheros más raramente usados ocupan también mucho. Quizás le interese meterlos como módulos (vea la correspondiente sección, y vea también la sección lentos para saber por qué no se recomiendan núcleos que ocupen mucho).
Character devices
)Aquí se activan los manejadores para impresoras (por puerto paralelo), ratones de bus, ratones PS/2 (usado también en muchos trackballs de los portátiles), algunos manejadores de cintas y otros. Conteste según su hardware.
Nota: ``Selection'' es un programa que le permite usar el ratón para cortar y pegar texto entre consolas virtuales, fuera de las X-Window. Actualmente no es una opción de configuración, sino un estándar.
Nota 2: `Selection' está bastante obsoleto. Es mucho mejor el programa
``gpm
''
Sound card
) Si siente gran necesidad de oír el ladrido del `biff
', conteste
`y
' y después otro programa de configuración le preguntará acerca de
la tarjeta de sonido que tiene. Una observación: cuando le pregunte si
quiere instalar la versión completa del manejador, conteste `n
' y
ahorrará memoria, aunque tendrá que elegir qué características desea
incluir. Le recomiendo aquí que lea el
Sonido-Como
No todas las opciones se han listado ya que cambian mucho y otras son
completamente evidentes (por ejemplo, el soporte 3Com 3C509
). Hay una
lista más extensa en el siguiente URL de Axel Boldt,
axel@uni-paderborn.de
:
http://math-www.uni-paderborn.de/~axel/config_help.html
o por FTP anónimo en:
ftp://sunsite.unc.edu/pub/Linux/kernel/config/krnl_cnfg_hlp.x.yz.tgz
donde x.yz
se refiere a la versión del núcleo. En las últimas
versiones (2.0.x
) se incluyen estos documentos entre los ficheros de
las fuentes del núcleo (directorio Documentation/
...).
Kernel hacking
Traducción del fichero README
de Linus:
La configuración ``kernel hacking
'' suele dar lugar a un núcleo más
grande y/o lento, y puede hacerlo menos estable al configurar algunas
rutinas especiales para encontrar errores del núcleo (kmalloc()
).
Para un núcleo de ``producción'' deberá contestar `n
' a la
pregunta.
Makefile
). Tras hacer make config
, un mensaje le dirá que ya está preparado
el núcleo y que ``revise el fichero Makefile
para opciones
adicionales'', etc.
Por tanto, veamos el Makefile
. Probablemente no tendrá que
cambiar nada, pero debe mirarse. Sus opciones podrán cambiarse con el
comando `rdev
' una vez que el núcleo esté compilado.