Este archivo contiene informacion util (eso espero) para el caso en el que sus sistema Linux no complete el proceso de boot exitosamente. Seccion 1: Que hacer si luego de finalizar el proceso de instalacion, el sistema no logra completar el proceso de boot. Este problema no es poco frecuente. La razon es que el kernel con el que el sistema no logra iniciar no es el mismo del bootdisk que se uso durante la instalacion. Habitualmente el kernel que fue instalado incluye muchos mas drivers que el del diskette de instalacion, y es frecuente que uno de ellos no se lleve bien con algun componente de hardware de su equipo. Hay mas de una solucion para resolver este problema. Tal vez la mas simple sea abrir la maquina y desconectar todas las placas que no sean vitales para el funcionamiento del sistema, y volver a intentar el boot. Si logra completar el proceso de boot, siga las instrucciones del archivo SLAKWARE.FAQ para configurar y compilar un nuevo kernel, especifico para su hardware. Otra solucion (que no involucra abrir su maquina) es iniciar el sistema usando el bootdisk que uso durante la instalacion. Para esto, use el diskette boot al iniciar la maquina y use la opcion "mount" para que el kernel cargue la particion Linux como root en vez del floppy root/install. Para esto, ingrese el siguiente comando en el prompt de LILO del bootdisk: mount root=/dev/hda2 Seccion 2: Tratando de que el kernel detecte su hardware. Lo primero que debe verificar es que el kernel que usa soporte el hardware que trata de usar. Por ejemplo, Ud. precisa un kernel de la serie Q para poder soportar perifericos no-SCSI como un CD-ROM. Si olvido hacer esto cuando instalo Linux, use un bootdisk que soporte su hardware para iniciar su sistema como se describe arriba. Luego, instale el kernel apropiado de la serie Q, o compile un kernel especifico para su maquina. Asegurese de reinstalar LILO despues de esto (si lo usa). Para mas detalles sobre la instalacion de un nuevo kernel, consulte SLAKWARE.FAQ. Hay varios parametros adicionales que pueden ser usados en el prompt LILO del bootdisk, con Loadlin o en su /etc/lilo.conf. Los mismos sirven para indicarle al kernel cuales puertos de I/O, IRQs, etc. usa un determinado componente de hardware, por si este no puede ser auto-detectado, o por si uno quiere forzar la deteccion indicandole al kernel donde mirar exactamente. Para indicar estos parametros adicionales, ingreselos luego del comando standard usado para el boot del sistema. Entonces, para iniciar el sistema de /dev/hda2 y forzar la deteccion de un CD-ROM Mitsumi con su controladora, pruebe algo como lo siguiente en el prompt LILO: mount root=/dev/hda2 mcd=0x300,11 Para comunicarle parametros a Loadlin, solo agreguelos al final del comando de boot de una manera similar: loadlin vmlinuz root=/dev/hda2 mcd=0x300,11 O tambien puede agregar los parametros a su /etc/lilo.conf, mediante una linea append= con los parametros entre comillas dobles. No olvide reinstalar lilo luego de haber modificado el /etc/lilo.con para efectivizar los cambios. Para esto, solo ejecute "lilo" estando como root. Esto es un ejemplo de una linea append en un lilo.conf: append="mcd=0x300,11" A continuacion, la lista de parametros conocidos del kernel, de la documentacion de Loadlin: LOADLIN 1.5 ((C) 1994 lermen@elserv.ffm.fgan.de) y Linux version: 0.99.14, 0.99.15, 1.0, 1.1.47 Esta es una lista de parametros de linea de comando reconocidos e interpretados por: ============================================================================= 1. LOADLIN ramdisk=size (tama#o en Kbytes) o ramdisk=size,no (idem anterior, pero sin prompt de cambio de diskette) ej.: ramdisk=1440,no vga=mode 2. El kernel Linux mem=number (para > 0.99.15, number = fin de memoria fisica en bytes) root=device ro rw no387 debug pone console_loglevel = 10 no-hlt deshabilita el chequeo de la instruccion HLT durante el boot 3. init single auto ro,rw,no387 (adelantado desde el kernel) 4. Algunos drivers reserve=port1,num1,...,port5,num5 #reserva puertos I/O de 80x86 ether=irq,base_addr,mem_start,mem_end,dev_name hd=cyl,head,sect # para dos discos, necesita repetir esto # el primero se refiere al disco 0 bmouse=irq max_scsi_luns=n # (n entre 1 y 8) st0x=base_address,irq # contr. Seagate ST01/ST02 tmc8xx=base_address,irq # Future Domain TMC-885,TMC-950 t128=address,irq # Trantor T128/T128F/T228 ncr5380=port,irq,dma # Driver NCR5380 generico aha152x=portbase,irq,scsiid,reconnect # Driver Adaptec AHA-152x cdu31a=portbase,irq,PAS # Sony CDU-31a. El tercer # parametro debe ser "PAS" si esta conectado a una # Pro-Audio Spectrum, sino va en blanco. xd=type,irq,iobase,dma mcd=port,irq sound=0x0TTPPPID, .. sbpcd=sbport,SoundBlaster sbpcd=LMport,LaserMate sbpcd=SpeaFXport,SPEA 5. Entorno Todos los parametros en formato nombre=xxxx que no son reconocidos por el kernel son agregados al entorno (environment) de Linux. LOADLIN siempre define una variable de entorno BOOT_IMAGE=imagefile. El usuario puede agregar valores al entorno para modificar el comportamiento de /etc/rc bajo distintas condiciones. ============================================================================== A continuacion, las descripciones detalladas: Parametros reconocidos por LOADLIN: =================================== root=device ----------- device pueder ser el nombre simbolico del dispositivo, como "/dev/hda2" o el numero de dispositivo (hexadecimal) (highbyte=principal, lowbyte=secundario) Los nombres simbolicos reconocidos son (con sus particiones) "hda", "hdb", "sda", "sdb", "sdc", "sdd", "sde", "fd", "xda", "xdb" Existe un problema: Linus interpreta el numero que sigue a "/dev/hda" como hexadecimal. Los dispositivos en /dev de la distribucion Slackware, sin embargo, estan numerados /dev/hda1 .. hda9 .. hda10 .. hda16, en vez de /dev/hda1 .. hda9 .. hdaa .. hdaf como lo hubiera hecho Linus. A partir de la version 1.3 de LOADLIN, interpreto el dispositivo root por mi cuenta, y paso el numero de dispositivo al boot sector. Mi convencion de nombres es un compromiso que espero simplifique las cosas: Si el numero que sigue a "/dev/hda, hdb, sda .. " empieza con 0, 0x o a..f, es interpretado como numero hexadecimal. Si comienza con 1..9, es interpretado como decimal. De otra manera, el string es pasado a la linea de comando (futuras versiones de kernel podrian soportar otros nombres de dispositivos) Ejemplos: root=302 root=0x201 root=/dev/hda2 root=/dev/sdaa lo mismo que root=/dev/sda10 o /dev/sda0xa ramdisk=size ------------ size numero de Kbytes para el dispositivo RAMDISK. La imagen del ramdisk es cargada por el kernel, al iniciar el sistema, desde un floppy, si se especifica root=/dev/fdx. Luego de cargar la imagen, el kernel convierte el ramdisk en dispositivo root (NO al floppy). Ademas, LOADLIN pide insertar el diskette con la imagen del ramdisk en el floppy, si ya no precisa el drive luego de cargar el kernel. vga=mode -------- mode -3 le pide al usuario que especifique el modo VGA ask igual a -3 -2 80x50 modo VGA extendido extended igual a -2 -1 80x25 modo normal normal igual a -1 0 como si se hubiese ingresado "0" en el boot prompt . . n como si se hubiese ingresado "n" en el boot prompt ro -- "ro" fuerza que el dispositivo root sea montado en modo read-only (No funciona en UMSDOS!) rw -- "rw" fuerza que el dispositivo root sea montado en modo read-write ------------------------------------------------------------------------------ Parametros reconocidos solamente por el kernel: =============================================== mem=number ---------- number Fin de la memoria RAM fisica, reconocido por kernels 0.99.15 en adelante. Este parametro es util para cuando la cantidad de RAM instalada no puede ser determinada automaticamente. root=device ----------- device Puede ser un nombre simbolico de dispositivo como "/dev/hda2" o el numero de dispositivo (highbyte=principal, lowbyte= secundario). Los nombres simbolicos de dispositivos (con sus particiones) son: "hda", "hdb", "sda", "sdb", "sdc", "sdd", "sde", "fd", "xda", "xdb" Atencion: kernels < 1.1.47 tienen xda=0xC00, xdb=0xC40 kernels posteriores tienen xda=0xD00, xdb=0xD40 ejemplo: root=302 root=/dev/hda2 no387 ----- "no387" deshabilita el uso del coprocesador matematico desde la 1.1.47 (o tal vez antes) las siguientes opciones ya no son pasadas a init: ro,rw,no387 ----------- los siguientes parametros son nuevos: debug define console_loglevel = 10 ----- no-hlt ------ deshabilita el chequeo de la instruccion HLT durante el inicio. Si Ud. tiene un clone 486, esta opcion es *muy* util. ------------------------------------------------------------------------------ Parametros reconocidos por "init": ================================== single ------ Para entrar a "single user mode" luego del boot auto ---- ro,rw,no387 (adelantado desde kernels < 1.1.47). (ver comentario arriba) ----------- ------------------------------------------------------------------------------ Configuracion de placas ethernet: ================================= ether=irq,base_addr,mem_start,mem_end,dev_name --------------------------------------------- irq number, numero de IRQ (3..15) base_addr number, base-IO (0x280,...) mem_start number, inicio mem compartida mem_end number, fin mem compartida dev_name string, eth0..3 todas las placas ethernet configuradas dl0 D-Link DE600 pocket adaptor atp0 AT-LAN-TEC (RealTek) pocket adaptor plip0..2 parallel IP (PLIP) sl0..3 serial IP (SLIP) ejemplo: ether=10,0x280,0xc8000,0xcbfff,eth0 archivos relacionados: net/inet/eth.c, drivers/net/Space.c ------------------------------------------------------------------------------ Reservando ports de I/O: ======================== reserve=port1,num1,...,port5,num5 --------------------------------- portn primer port de IO del rango numn numero de direcciones a reservar en ese rango (habra bits puestos en "1" en "ioport_register") archivos relacionados: kernel/ioport.c ------------------------------------------------------------------------------ Configurando parametros del disco fijo para el dispositivo root: ================================================================ hd=cyl,head,sect --------------- # NOTA: si Ud. tiene 2 discos, debe usar dos parametros hd= # en la linea de comando: el primero para el drive 0 y # el segundo para el drive 1 # ej. # loadlin zimage hd=1001,15,17 hd=989,15,56 root=/dev/hdb2 ro # (este ejemplo, de mi maquina, no es necesario. Ud. solo lo # precisa si Linux no logra determinar los parametros de su # disco del BIOS). archivos relacionados: drivers/block/hd.c config: CONFIG_BLK_DEV_HD ------------------------------------------------------------------------------ Configurando el IRQ del bus-mouse: ================================== bmouse=irq ---------- archivos relacionados: drivers/char/busmouse.c config: CONFIG_BUSMOUSE ------------------------------------------------------------------------------ Parameteros para controladoras SCSI: ==================================== max_scsi_luns=n (n entre 1 y 8) st0x=base_address,irq contr. SEAGATE ST01/ST02 tmc8xx=base_address,irq Future Domain TMC-885,TMC-950 t128=address,irq Trantor T128/T128F/T228 ncr5380=port,irq,dma Driver generico NCR5380 aha152x=portbase,irq,scsiid,reconnect driver Adaptec AHA-152x archivos relacionados: drivers/scsi/seagate.c, t128.c, g_NCR5380.c, aha152x.c config: CONFIG_SCSI_SEAGATE, CONFIG_SCSI_T128, CONFIG_SCSI_GENERIC_NCR5380, CONFIG_SCSI_AHA152X ------------------------------------------------------------------------------ Parameteros para Tapes SCSI: ============================ st=buffer_size,write_threshould,max_buffers buffer_size Tama#o del buffer en Kbytes (i.e. ST_BLOCK_SIZE) write_threshould Cant. de Kbytes a acumular antes de grabar. (debe ser < buffer_size) max_buffers Numero de buffers a reservar archivos relacionados: drivers/scsi/st.c config: CONFIG_CHR_DEV_ST ------------------------------------------------------------------------------ Parametros para controladoras de disco tipo XT (DTC 5150X): =========================================================== xd=type,irq,iobase,dma ---------------------- archivos relacionados: drivers/block/xd.c config: CONFIG_BLK_DEV_XD ------------------------------------------------------------------------------ Parametros para el driver de CDROM Sony CDU-31/33a: =================================================== cdu31a=iobase,irq,PAS --------------------- archivos relacionados: drivers/block/cdu31a.c include/linux/cdu31a.h config: CONFIG_CDU31A WARNING - Todas las auto-pruebas fueron removidas de este driver. Ud. DEBE configurar el CDU31A via LILO en el momento de boot o en lilo.conf. Yo uso lo siguiente en mi lilo.conf: append="cdu31a=0x1f88,0,PAS" El primer numero es la direccion base de I/O de la placa. El segundo es la interrupcion (0 significa ninguna). El tercer parametro debe ser "PAS" si el CD esta conectado a una Pro Audio Spectrum, o nada en cualquier otro caso. ------------------------------------------------------------------------------ Parametro para drivers de CDROM Mitsumi: ======================================== mcd=port,irq ------------ archivos relacionados: drivers/block/mcd.c config: CONFIG_MCD ------------------------------------------------------------------------------ Parametros para placas de sonido: ================================= sound=0x0TTPPPID, .. ---------------- todos los valores estan condensados en un longint, el formato indicado arriba esta en representacion hexadecimal. Cada posicion corresponde a un digito hexa. TT Tipo de placa soportada Es el indice en la lista de placas configuradas Si todas las placas estan configuradas (habitualmente no es el caso), se mantiene el siguiente orden: Roland MPU-401 Gravis Ultrasound ProAudio Spectrum SoundBlaster SoundBlaster 16 SB16 MPU-401 (SB16-MIDI port) AdLib PPP Port I IRQ D canal DMA archivos relacionados: drivers/sound/dev_table.h,dev_table.c config: CONFIG_SOUND ------------------------------------------------------------------------------ Parametros para lectores de CDROM de tipo IDE (Kotobuki/Matsushita/Panasonic): ============================================================================== sbpcd=sbport,SoundBlaster ------------------------ sbpcd=LMport,LaserMate ---------------------- sbpcd=SpeaFXport,SPEA ---------------------- sbport port base de soundblaster +0x10 (i.e 0x230 = 0x220+0x10) LMport Port tipo-MPU en 0x300 o equivalente SpeaFXport port base en tarjetas SpeaFX archivos relacionados: drivers/block/sbpcd.c config: CONFIG_SBPCD ------------------------------------------------------------------------------ This file copyright 1995 Walnut Creek CDROM.