
Instalacion de Linux (revisin IV, 13/01/95) (C) Manuel Soriano y otro/as
===========================================

Este documento ha sido posible gracias a largas noches de insomnio y un viejo
386 de AMD que acepto rodar todo un sistea de dominio pblico sn rechistar.

Pero sobre todo a los usuarios de la BBS Europa III y Europa en su conjunto
cuyas preguntas y respuestas me han permitido profundizar en problemas que
no eran mios, darles solucin o, en muchos de los casos, adoptar soluciones 
de otros, con estas lineas quiero agradecerles la ayuda voluntaria o 
involuntaria que me han prestado.

Un consejo para todos los compradores de material informtico, exijir siempre
que se os entregue la documentacin ORIGINAL de TODAS las placas que componen 
vuestro ordenador. Existe una mania de los revendedores de no entregar la 
documentacin eso a veces es sinnimo de material de segunda mano vendido 
como nuevo.

Este trabajo es fruto de experiencias mias y de otros, los ejemplos de
configuracin que se dan en este documento suelen funcionar para una versin
muy concreta, otras versiones de mismo programa pueden exigir cambios en la
configuracin, normalmente suelen ser cambios menores, pero no siempre es
as :-(

NOTA : Lo que sigue es para los que, adems de la propia instalacin, vayan 
a instalar otros programas.

Cada programa que necesite una configuracin tendr un fichero README* que
explica brevemente como instalarlo. 

Para los que se han comprado los CD's de desarrollo, normalmente suelen ser
dos o tres CD's, existe una especie de convencin para poder extraer los
ficheros. Esto se basa en las extensiones de los propios ficheros.

nombre_del_prog_src.tar.gz

Esto nos indica que es un fuente (src), que esta realizado mediante tar (tar)
y que esta comprimido mediante gzip (gz).

nombre_del_prog_src.tgz

Esto nos indica que es un fuente (src), que esta realizado mediante tar 
y que esta comprimido mediante gzip (tgz).

nombre_del_prog_src.tar.Z

Esto nos indica que es un fuente (src), que esta realizado mediante tar (tar)
y que esta comprimido con el compress de Unix (Z).

nombre_del_prog_src.tar

Esto nos indica que es un fuente (src), que esta realizado mediante tar (tar)
y que no esta comprimido.

Para destarrear un fichero se usar el comando tar de la siguiente manera :

tar tzvf nombre_del_fichero_tar

vamos a ver las opciones (tvf)

t permite destarrear un fichero sin extraer
v permite visualizarlo por pantalla
f indica fichero de entrada
z indica que el fichero est comprimido

Normalmente los fichero estan creados con un path relativo, es decir que te
crear los ficheros en relacin al path donde ejecutas el tar.

 Como diferenciar path relativo y path absoluto ?

Con tar tzvf vers que si los ficheros empiezan son un / eso quiere decir
que se extraeran con respecto al path que muestra en pantalla, esto es
path absoluto. Si los ficheros no empiezan por un / eso quiere decir que
se extraeran a partir del path donde estas posicionado, esto es path relativo.

Solo falta saber como extraer los fichero :

tar zxvf nombre_del_fichero_tar

opciones :

z indica que el fichero esta comprimido
x extrae
v muestra por pantalla lo que extrae
f indica que el siguiente parametro es un fichero o dispositivo de donde extraer


INSTALACION


Distribucion : SLACKWARE 2.0.1 (Con un poco de imaginacin, sirve para
               otras)
               SLACKWARE 2.1
Kernel       : 1.0.9 o 1.1.*
XFree86      : 2.1pl0 3.1pl5

Requisitos : - 386 o superior con 387 (si tienes un 486 no hace falta el 387)
             - 4 megas de memoria (8 si quieres X11, 16 si eres muy nervioso)
             - dependiendo de la configuracion del Linux de 4 a 600 Megas en 
                 disco.
             - Linux puede convivir con mas sistemas (Yo tengo M/p2, Unix Svr4 
                 y Linux y no se pegan leches)
             - SuperVga con 1Mega de memoria, (El mega no es obligatorio pero 
                 recomendado), El tipo de SVGA debe ser de lo mas normal como 
                 Trident, WDC, Tseng Labs, etc... y se recomienda accelerada
             - Pantalla color o monocromo ( Linux puede llegar a resoluciones 
                 de 4096x2048 puntos)
             - Teclado @-)
             - Impresora, si quieres


Existe un disco con los fuentes del kernel (Recomendado), mas tarde se 
explica como configurar y crear un nuevo kernel.

La distribucion se compone de (Ver. 2.1):

1 Boot Disk disco de arranque
1 Root Disk disco "sistema minimo"
4 a sistema basico
5 ap Aplicativos optativos (paginas manual, groff, ispell, etc...)
7 d entorno de desarrollo GNU C
5 e GNU Emacs
1 f FAQ (Preguntas y respuestas)
2 i paginas info para soft GNU y otros
1 iv interviews
4 n red local (TCP/IP, SLIP, PPP, IPX/SPX)
1 oop entorno de desarrollo orientado a objeto (Smalltalk)
5 q Kernels de desarrollo (versiones 1.1.*)
10 t soporte TEX
2 tcl entorno Tcl, Tk, tclk, blt, itcl
13 x Xfree86 3.1 con libXpm, fvwm y xlock
3 xap aplicaciones X
3 xd linkit del servidor X11, PEX, manuales X11
3 xv Xview 3.1 y OpenLook manejadores virtuales y no virtuales
1 y juegos

De todo lo anterior, he probado (en propia carne) las series : 
A AP D N Q TCL X XAP XD XV IV
sin problemas. Todos estos me han ocupado unos 80 Megas y si quitas los
tcl se queda en cerca de 70 megas.

Dentro de este fichero te encontraras varias veces la palabra simlink, esto
es crear un fichero que en realidad apunta a otro @-(. Me explico, ciertas
librerias tienen como nombre la versin completa (Ej. libXaw.so.3.2.1.1) 
mientras que los programas la usan con su nombre corto (Ej. libXaw.so.3), esto
se hace asi :

ln -s libXaw.so.3.2.1.1 libXaw.so.3

Esto permite que cuando abres libXaw.so.3 en realidad estas trabajando con
libXaw.so.3.2.1.1.

Se pueden hacer simlinks a toda clase de ficheros, incluso directorios, los 
ficheros pueden localizarse en directorios distintos incluso filesystems
distintos, entonces en la orden ln se daran los path completos. Tambien
puedes complicar la cosa con ficheros que apuntan a otros ficheros que 
apuntan ...

Esto permite tener una unica versin de un fichero mientras que todos las
dems son meras referencias al original.

Entremos en materia :

El primer paso que debes cumplir es saber que tipo de hard tienes en el 
ordenador. M'explico. Linux es un sistema solido, eficiente y estndar pero 
realizado por voluntarios, asi que cosas tan obvias como el reconocimiento del
hard existente en nuestra caja nos es tan evidente. Incluso muchas aplicaciones
comerciales, y no critico ninguna, necesitan de nuestra ayuda. Debers conocer
con exactitud cuales son :

- Las direcciones de bus de tus tarjetas Baddr
- Las interrupciones usadas por tus tarjetas IRQ
- Las direcciones de DMA (de existir)

Estas nunca deben compartir interrupciones o direcciones de bus, pero los
canales de DMA s.

Normalmente todas las distribuciones de Slackware suelen ser identicas, segn
quin ha realizado el CDROM pueden haber pequeas diferencias, pero todos se
basan en la organizacin que existe en el ftp site de Slackware.

Vamos a ver que viene en el CDROM, para simplificar me basar en un porting
muy popular, el de InfoMagic. Las distintas distribuciones suelen estar en el
directorio distributions del primer disco.

En este directorio, entre otros, encontraras :

slackware : directorio que contiene la distribucin

}{`'' (esta linea indica que acabo de
encontrar como escribir con acentos y teclado castellano en X11R6,  Yeahhh !

;-)

slakinst : directorio con utilidades, discos boot y root

Segundo paso es saber con qu disco de boot arrancar. Con las distribuciones
de Slackware suelen venir varios tipos de kernel. A continuacin una pequea
lista de los kernels usados :

alpha      driver alpha para la aha2742 (EISA)
bare       kernel basico, IDE
cdu31a     soporte IDE con cd Sony 31/33
cdu535     soporte IDE con cd Sony 535
loaded     kernel con todos los drivers, no utilizar salvo caso extremo
mitsumi    soporte IDE y Mitsumi fx400 ojo no incluye fx001 (IDE)
nec260     soporte IDE y cd nec260
net        soporte IDE y net para instalacin via NFS
old1118    viejo kernel 1.1.18 (parece ser que era un kernel solido)
sbpcd      soporte IDE y sound blaster con cd Panasonic
scsi       soporte IDE y SCSI (AH1542, Buslogic, Future Domain, etc..)
scsinet    como net pero con SCSI
xt         soporte para discos xt


Para los kernel con soporte SCSI, debers indicar cuales son la direccin e
interrupcin de tu tarjeta, SCSI.

Ponemos el cd en su sitio y, suponiendo que el cd esta montado en D,
 nos vamos al directorio :

d:\distribu\slakinst

Bueno segn el hard que tengamos en nuestra caja eligiremos un kernel, pero
antes, que tipo de pantalla tenemos, monocroma o color el tipo de disco A
3"1/2 o 5"1/4. Si nuestra disquetera es de 3"1/2 eligiremos nuestro kernel
en el directorio boot144, sino en el directorio boot12, lo mismo vale para
el disco root. En el disco root, dependiendo del tipo de pantalla eligiremos,
para color, color144, sino tty144. No entro en detalles para las instaciones
desde cinta o en un directorio de MS/DOS porque nunca las he realizado.

Vamos a crear el disco boot bare y root color144. Para esa tarea usaremos
un programa que se llama rawrite y esta en d:\dos_util

Copia a c: los ficheros :

d:\distribu\slakinst\boot144\bare
d:\distribu\slakinst\root144\color144

Pon un disco formateado en A:
ejecuta :

d:\dos_util\rawrite y RETURN (R) en adelante
bare(R)
a:(R)

ya tienes tu disco boot.

d:\dos_util\rawrite y RETURN (R) en adelante
color144(R)
a:(R)

ya tienes tu disco root.

Si estos ficheros tienen una extension .gz deberas realizar, antes del rawrite
lo siguiente :

gzip -d fichero.gz(R)


A continuacin vamos a instalar el Linux en una particin del disco. 

Piensa que vas ha instalar un segundo sistema operativo en el ordenador, 
que para eso vas a tener que particionar el disco duro, has pensado en 
hacer una copia de seguridad, sino lo has hecho pues este es el momento, 
tranquilo que espero.

Pon el disco boot en la unidad A:

Arranca el ordenador

Aparece en pantalla mucho texto en english, lo mas importante es que cuando 
te diga :

Boot : 

Le des a RETURN.

Aqui pueden pasar dos cosas, que el ordenador reconozca todo o casi el hard
que tienes en tu caja o no te lo reconozca, normalmente esto ocurre con ciertas
controladoras SCSI, en este caso reinicia el ordenador y indicale al kernel
los parametros de tu controladora.

Para los discos IDE ( ms de 520M):

ramdisk hda=cilindros,cabezas,sectores (primer disco)
ramdisk hdb=cilindros,cabezas,sectores (segundo disco)

Para controladoras SCSI, esto lo copio, no tengo controladora SCSI.

Future Domain
ramdisk tmc8xx=memaddr,irq
memaddr es la direccin de memoria, expresada en hexa, ej: 0xca000

Adaptec 
ramdisk aha152x=puerto,irq,scsi_id,1

NCR5380 
ramdisk ncr5380=puerto,irq,dma

Despues de un ratin, te pedira el disco root.

Ponlo y RETURN

cuando aparezca Login :

entra root(R)

aparecera el prompt del usuario root (#)

Estas en Linux tio, a partir de aqui todo se complica, tomalo con calma y 
unas cuantas aspirinas.

Si en este punto no tienes el prompt o algo va mal, empieza desde encender 
el ordenador y si la situacion se repite, me puedes encontrar en 
fido 2:346/207.14

Si tienes pantalla monocroma, sigue las instrucciones de Linux 
(TERM=vt102; export TERM (R))

Aparece una pantalla muy mona (en colores para los afortunados), vamos por 
partes.

Linux necesita una particion para "residir", otra para descansar la memoria o
"swap" y una ultima para que el usuario (tu) pueda dejar sus ficheros en toda 
tranquilidad, estas particiones se llaman, por orden, root, swap, home, debes 
crearlas. Para darte una idea, tengo un disco de 250 Mg. :
  - swap 15Mg
  - root 205 Mg (100 libres y tengo todas las series de discos que antes 
         menciono como probadas)
  - home 20 Mg (esta particion no es obligatoria, pero (Linux es muy vivo) 
         aparecen versiones muy a menudo y a cada instalacion se recomienda 
         formatear la particion root :-(. Como tal cada vez que actualices 
         la version del sistema solo tocaras la particion root, 
         el resto te lo reconoce sin problemas. Nota, desde la versin 
         1.2.y-algo-mas, existe una opcin para desinstalar, pero no la he
         probado, sorry.

 IMPORTANTE !!!! Para los que tengan discos de ms de 1 Giga.

Por una restriccin de diseo original de la Bios del PC, el kernel a iniciar 
debe estar en una direccin de disco dentro de los 1024 primeros cilindros
del disco.
No es nada dificil encontrarse discos de ms de 1024 cilindros en un ordenador
personal, incluso varios, asi que ojo las particiones de arranque siempre 
deben estar dentro de los primeros 1024 cilindros. 

Se puede dar el caso de una particin de arranque que tenga solo una parte 
dentro de los 1024 cilindros, si este es tu caso cuando reconstruyas el 
kernel lo ms problable es que al copiarlo al directorio raiz est 
fsicamente en las ltimas direcciones de la particin como tal seguro que 
estar fuera de los 1024, entonces el ordenador no arrancar. Para solucionar 
este caso copia el nuevo kernel sobre el viejo no lo renombres porque esto 
solo copia el nombre al inode correspondiente.

Siguientes pasos :

Crear las particiones (filesystem tipo ext2), no te olvides de crear la 
particin rroot (sistema Linux) dentro del 1er Giga de disco.

COMENTARIO, los discos MFM e IDE Linux los entiende como hda primer disco
y hdb segundo disco, los numeros de 1 a 8 son las particiones, se comprende
que Linux solo admite 8 particiones por disco. Ej si tienes MS/DOS en la 
tercera particicin del primer disco te referiras a ella como /dev/hda3.
Para los discos SCSI es distinto, Linux los entiende como sdxy, x para el
lun (1=a, 2=b, 3=c, etc...), y para la particin es identico a los IDE o 
MFM salvo que admite hasta 16.

usar el fdisk, es primitivo, parecido al de MS/DOS, las opciones son :

a elimina flag de arrancable
c elimina compatibilad dos
d borra particin
l lista tipos de particin
m ayuda
n nueva particin
p muestra la tabla de particiones
q sale sin grabar
t cambia el sid del sistema de la particion
u cambia unidades de entrada y display
v verifica la tabla de particiones
w escribe y sale
x funciones extras, aqui no entre a menos que sepas lo que haces o seas kamicaze

Las opciones que nos interesan son :

a, d, l, n, t, w

desde el prompt del sistema:

fdisk /dev/hda  (el primer disco)
o bien
fdisk /dev/sda  (el primer disco SCSI)

Si no tenemos espacio disponible borraremos la particin de dos y la volveremos
a crear, esta debera ser la primera del primer disco.

NOTA, MS/DOS tiene la fea costumbre de pensar que es el nico sistema en el
disco, como tal en ciertos casos puede escribir fuera de su particin, es
decir en la siguiente particin si no es MS/DOS, asi que te aconsejo hacer
lo siguiente, entre la particin de MS/DOS y la Linux pon la particin de
swap, si te ocurre eso (a mi me ha ocurrido), escribir en la particin de
swap y en el momento de arrancar Linux te dar un error de lectura en el
swap pero continuar adelante. De esta forma puedes reformatear el swap sin
perder ningn dato de Linux. Esto es verdad si usas desfragmentadores de disco.

Al crear la particin (n) le daremos el espacio sea en cilindros o megas las
particiones que deberan soportar un boot se declararn como primarias,
creamos las que nos hagan falta y luego mediante la opcin (t) le cambiamos
el tipo :

6 para DOS > 32M
82 para Linux swap
83 para Linux nativa

Habilita la particin de MS/DOS como booteable, luego mediante LILO 
arranqueremos con la particion que nos salga de los mismos.

Una vez creadas las particiones vamos a declarar el swap, esto no es
obligatorio, pero si recomendado, si tienes 8M o ms de memoria, luego 
durante la instalacin te pide los datos del swap.

mkswap -c particion espacio

Ej.

mkswap -c /dev/hda2 16536  (esto crea un swap en la segunda particin del disco
                            de 16M)

Luego habilitamos el swap

swapon particion

Ej.

swapon /dev/hda2

la orden que te permite instalar el sistema es

setup(R)

Aparecer un menu con un monton de opciones. Empieza por indicarles cual es
tu particin root, root es la particin raiz del sistema Unix, tambien es el 
nombre del super-usuario.

Empezaras por cambiarle el mapeo del teclado (KEYMAP) aqui, en la lista 
eliges es.map, cuando te pida probar vers que no te aparecen ni  ni acentos
es normal, las teclas si que se corresponden, para salir del control es
q teniendo el campo vacio.

Le diremos cual es nuestra particin root (Target), aqui nos pedir formatearla
y de cuanto creamos los inodes, le das el valor por defecto (4096).  Tus 
ficheros ocuparn como mnimo 4k pero se gana en rapidez y adems es con 
ese valor con el que se desarrolla Linux.

Le diremos cual es nuestro medio de instalacin (disquetes, cdrom, NFS) (Source)
para los que tengan cdrom no le deis la / delante, normalmente el directorio
de instalacin es distributions/slackware (en minusculas).

Indicarle cuales son los discos que se desea cargar mediante flecha arriba 
flecha abajo y la barra espaciadora.

NOTA : Si no tienes mucha idea de los que haces no te recomiendo instalar
X11, prueba el sistema en modo caracter, leete el apartado para X y de los
diversos servidores existentes elije el que va con tu tarjeta, cuando lo 
tengas un poco ms claro reinicias la instalacin, eligiendo solo media y 
soft e instalas lo que necesites de X11.

Iniciar la carga de los discos, para cada set de discos te indicar que soft
es opcional, segn tus gustos haz lo que quieras.

Un consejo instala el INFO y todas las opciones de man. Si luego quieres 
modificar el kernel, debers instalar el entorno de desarrollo (discos D).

Un buen consejo instala el LILO, le defines que particiones quieres que 
arranque y cual es la de por defecto.

Definir las particiones de arranque (LILO), no te olvides del MS/DOS sino
en el momento de arrancar solo podrs arrancar desde Linux. Si se te olvida
tranquilo, ms adelante indico como configurar LILO a pelo.

Definir el modem, si lo tienes.

Definir la red local.

Ya tienes instalado el Linux, reinicia la maquina y preparate para pasar noches
de insomnio.

NOTA : El kernel que tendras instalado en disco es siempre el bare, da lo
mismo si has instalado via CDROM y te lo reconocia, el kernel que se instala 
en disco NO es el de instalacin. Debers configurar y relincar el kernel,
tambin lo explico al final. 

Para copiar el kernel de instalacin al disco duro haz lo siguiente :

pon en la disquetera A: el disco boot que te sirvio a instalar

mount -t minix /dev/fd0 /mnt
cp /mnt/vmlinuz /
rdev -R /vmlinuz 1
/sbin/lilo -C /etc/lilo.conf ### debers tener el lilo configurado

Trabaja como root solo para lo indispensable, create un usuario cuyo HOME sea
justamente /home (adduser).

Bueno ya tienes cargado el sistema, si aprietas simultaneamente las teclas,
Alt-F1 o F2 o F3, etc, podrs acceder a terminales virtuales, concretamente
de F1 a F6 es decir 6 sesiones distintas. Con X tendrs tendencia a reducir
dichas sesiones y utilizar varios xterm. (yo tengo solo 3 sesiones virtuales),
mira el fichero /etc/inittab


                      Configuracin bsica de Linux

Un poco de nomenclatura.

Cada fichero estara separado por una linea (----), dentro de cada
fichero los comentarios estaran precedidos por (###), estos comentarios 
se deberan eliminar. El fichero recortado se pondra donde lo indique
el path, ej:

Fichero : el_que_sea
Path : /dir1/dir1_1/dir1_1_1
------
bla, bla, bla ### La primera parte contrante de la parte contrante, ....
------

Entra como root.

Empecemos por la egne dels coll...

NOTA: desde 2.0. de Slackware, si se configura el teclado durante la instalacin
esto te lo puedes saltar. Para los puristas. No es necesario que en la linea
de comandos aparezcan ees, acentos y otras cursillerias, por experiencia,
no es aconsejable el uso de carcteres superiores 0x127 en la line de comandos.
Edita un fichero (vi fichero) vers como si tienes todos los caracteres.

Fichero : local.rc o rc.local o local o ?????
Path : /etc/rc.d

Incluir la linea :

/usr/bin/loadkeys /usr/lib/kbd/keytables/es.map

Para los que no tengan el es.map, 

Fichero : es.map
Path : /usr/lib/kbd/keytables

------


! Spanish keymap, note the spanish IBM keyboard lacks an ascitilde (~), I
! have used ALT-Gr 4 as per IBM/AIX and some sun keyboards. ascitilde is also
! on ALT-Gr-exclamdown for compatibility with Julio Sanchez' Spanish keymap.
! 
! Jon Tombs <jon@gtex02.us.es> with corrections from 
! Julio Sanchez <jsanchez@gmv.es>
!
! El ~ lo tienes en AltGr-< (M.Soriano)
!
keycode   0 =
keycode   1 = Escape           Escape          
	alt     keycode   1 = Meta_Escape     
keycode   2 = one              exclam    bar      
	alt     keycode   2 = Meta_one        
keycode   3 = two              quotedbl	at           
	control keycode   3 = nul             
	alt     keycode   3 = Meta_two        
keycode   4 = three           periodcentered        numbersign
	control keycode   4 = Escape          
	alt     keycode   4 = Meta_three      
keycode   5 = four             dollar          asciitilde
	control keycode   5 = Control_backslash
	alt     keycode   5 = Meta_four       
keycode   6 = five             percent         
	control keycode   6 = Control_bracketright
	alt     keycode   6 = Meta_five       
keycode   7 = six              ampersand notsign
	control keycode   7 = Control_asciicircum
	alt     keycode   7 = Meta_six        
keycode   8 = seven            slash 		braceleft
	control keycode   8 = Control_underscore
	alt     keycode   8 = Meta_seven      
keycode   9 = eight            parenleft	bracketleft
	control keycode   9 = Delete          
	alt     keycode   9 = Meta_eight      
keycode  10 = nine             parenright	bracketright
	alt     keycode  10 = Meta_nine       
keycode  11 = zero             equal       braceright      
	alt     keycode  11 = Meta_zero       
keycode  12 = apostrophe       question       backslash       
	control keycode  12 = Control_underscore
	alt     keycode  12 = Meta_minus      
keycode  13 = exclamdown questiondown		asciitilde
	alt     keycode  13 = Meta_equal      
keycode  14 = Delete           Delete          
	control keycode  14 = Control_underscore
	alt     keycode  14 = Meta_Delete     
keycode  15 = Tab              Tab             
	alt     keycode  15 = Meta_Tab        
keycode  16 = q               
keycode  17 = w               
keycode  18 = e               
keycode  19 = r               
keycode  20 = t               
keycode  21 = y               
keycode  22 = u               
keycode  23 = i               
keycode  24 = o               
keycode  25 = p               
!keycode  26 =   dead_grave    asciicircum      bracketleft
keycode  26 =   dead_grave    dead_circumflex      bracketleft
	control keycode  26 = Escape          
	alt     keycode  26 = Meta_bracketleft
keycode  27 = plus     asterisk       bracketright
	control keycode  27 = Control_bracketright
	alt     keycode  27 = Meta_bracketright
keycode  28 = Return          
	alt     keycode  28 = 0x080d          
keycode  29 = Control         
keycode  30 = a               
keycode  31 = s               
keycode  32 = d               
keycode  33 = f               
keycode  34 = g               
keycode  35 = h               
keycode  36 = j               
keycode  37 = k               
keycode  38 = l               
keycode  39 = ntilde Ntilde          
	alt     keycode  39 = Meta_semicolon  
keycode  40 = dead_acute     dead_diaeresis	braceleft              
	control keycode  40 = Control_g       
	alt     keycode  40 = Meta_apostrophe 
keycode  41 = masculine ordfeminine backslash		
	control keycode  41 = nul             
	alt     keycode  41 = Meta_grave      
keycode  42 = Shift           
keycode  43 = ccedilla		Ccedilla       braceright      
	control keycode  43 = Control_backslash
	alt     keycode  43 = Meta_backslash  
	shift alt keycode 43 = Meta_asciitilde
keycode  44 = z               
keycode  45 = x               
keycode  46 = c               
keycode  47 = v               
keycode  48 = b               
keycode  49 = n               
keycode  50 = m               
keycode  51 = comma  semicolon           
	alt     keycode  51 = Meta_comma      
	shift alt keycode 51 = Meta_less
keycode  52 = period       colon
	alt     keycode  52 = Meta_period     
	shift alt keycode 52 = Meta_greater
keycode  53 = minus      underscore
	control keycode  53 = Delete          
	alt     keycode  53 = Meta_slash      
keycode  54 = Shift           
keycode  55 = KP_Multiply     
keycode  56 = Alt             
keycode  57 = space            space           
	control keycode  57 = nul             
	alt     keycode  57 = Meta_space      
keycode  58 = Caps_Lock       
keycode  59 = F1               F11              Console_13      
	control keycode  59 = F1              
	alt     keycode  59 = Console_1       
	control	alt     keycode  59 = Console_1       
keycode  60 = F2               F12              Console_14      
	control keycode  60 = F2              
	alt     keycode  60 = Console_2       
	control	alt     keycode  60 = Console_2       
keycode  61 = F3               F13              Console_15      
	control keycode  61 = F3              
	alt     keycode  61 = Console_3       
	control	alt     keycode  61 = Console_3       
keycode  62 = F4               F14              Console_16      
	control keycode  62 = F4              
	alt     keycode  62 = Console_4       
	control	alt     keycode  62 = Console_4       
keycode  63 = F5               F15              Console_17      
	control keycode  63 = F5              
	alt     keycode  63 = Console_5       
	control	alt     keycode  63 = Console_5       
keycode  64 = F6               F16              Console_18      
	control keycode  64 = F6              
	alt     keycode  64 = Console_6       
	control	alt     keycode  64 = Console_6       
keycode  65 = F7               F17              Console_19      
	control keycode  65 = F7              
	alt     keycode  65 = Console_7       
	control	alt     keycode  65 = Console_7       
keycode  66 = F8               F18              Console_20      
	control keycode  66 = F8              
	alt     keycode  66 = Console_8       
	control	alt     keycode  66 = Console_8       
keycode  67 = F9               F19              Console_21      
	control keycode  67 = F9              
	alt     keycode  67 = Console_9       
	control	alt     keycode  67 = Console_9       
keycode  68 = F10              F20              Console_22      
	control keycode  68 = F10             
	alt     keycode  68 = Console_10      
	control	alt     keycode  68 = Console_10      
keycode  69 = Num_Lock        
keycode  70 = Scroll_Lock      Show_Memory      Show_Registers  
	control keycode  70 = Show_State      
	alt     keycode  70 = Scroll_Lock     
keycode  71 = KP_7            
	alt     keycode  71 = Ascii_7         
keycode  72 = KP_8            
	alt     keycode  72 = Ascii_8         
keycode  73 = KP_9            
	alt     keycode  73 = Ascii_9         
keycode  74 = KP_Subtract     
keycode  75 = KP_4            
	alt     keycode  75 = Ascii_4         
keycode  76 = KP_5            
	alt     keycode  76 = Ascii_5         
keycode  77 = KP_6            
	alt     keycode  77 = Ascii_6         
keycode  78 = KP_Add          
keycode  79 = KP_1            
	alt     keycode  79 = Ascii_1         
keycode  80 = KP_2            
	alt     keycode  80 = Ascii_2         
keycode  81 = KP_3            
	alt     keycode  81 = Ascii_3         
keycode  82 = KP_0            
	alt     keycode  82 = Ascii_0         
keycode  83 = KP_Period       
	altgr   control keycode  83 = Boot            
	control alt     keycode  83 = Boot            
keycode  84 = Last_Console    
keycode  85 =
keycode  86 = less greater asciitilde
	alt     keycode  86 = Meta_less       
	shift alt keycode 86 = Meta_bar
keycode  87 = F11              F11              Console_23      
	control keycode  87 = F11             
	alt     keycode  87 = Console_11      
	control	alt     keycode  87 = Console_11      
keycode  88 = F12              F12              Console_24      
	control keycode  88 = F12             
	alt     keycode  88 = Console_12      
	control	alt     keycode  88 = Console_12      
keycode  89 =
keycode  90 =
keycode  91 =
keycode  92 =
keycode  93 =
keycode  94 =
keycode  95 =
keycode  96 = KP_Enter        
keycode  97 = Control         
keycode  98 = KP_Divide       
keycode  99 = Control_backslash
	control keycode  99 = Control_backslash
	alt     keycode  99 = Control_backslash
keycode 100 = AltGr           
keycode 101 = Break           
keycode 102 = Find            
keycode 103 = Up              
keycode 104 = Prior           
	shift   keycode 104 = Scroll_Backward 
keycode 105 = Left            
keycode 106 = Right           
keycode 107 = Select          
keycode 108 = Down            
keycode 109 = Next            
	shift   keycode 109 = Scroll_Forward  
keycode 110 = Insert          
keycode 111 = Remove          
	altgr   control keycode 111 = Boot            
	control alt     keycode 111 = Boot            
keycode 112 =
keycode 113 =
keycode 114 =
keycode 115 =
keycode 116 =
keycode 117 =
keycode 118 =
keycode 119 =
keycode 120 =
keycode 121 =
keycode 122 =
keycode 123 =
keycode 124 =
keycode 125 =
keycode 126 =
keycode 127 =
string F1 = "\033[[A"
string F2 = "\033[[B"
string F3 = "\033[[C"
string F4 = "\033[[D"
string F5 = "\033[[E"
string F6 = "\033[17~"
string F7 = "\033[18~"
string F8 = "\033[19~"
string F9 = "\033[20~"
string F10 = "\033[21~"
string F11 = "\033[23~"
string F12 = "\033[24~"
string F13 = "\033[25~"
string F14 = "\033[26~"
string F15 = "\033[28~"
string F16 = "\033[29~"
string F17 = "\033[31~"
string F18 = "\033[32~"
string F19 = "\033[33~"
string F20 = "\033[34~"
string Find = "\033[1~"
string Insert = "\033[2~"
string Remove = "\033[3~"
string Select = "\033[4~"
string Prior = "\033[5~"
string Next = "\033[6~"
string F21 = ""
string F22 = ""
string F23 = ""
string F24 = ""
string F25 = ""
string F26 = ""

------

Este fichero graba los carcteres en ISO-8859 (que es el estndar), 
si quieres, con paciencia puedes crearte un fichero con el set de 
caracteres 437, para que lo que escribas en Linux se vea correctamente 
en MS/DOS y vice versa, cuando lo tengas me lo pasas. Vale.

Fichero : rc.S
Path : /etc/rc.d
incluir la linea, dependiendo de la distribucion descomentar (# delante) :

sbin/swapon -a ### Monta las particiones de swap definidas en el /etc/fstab

Linux permite montar particiones que no sean propias de l, tales como
MS/DOS, PS/2, esto se puede hacer directamente al iniciar la mquina,
las particiones que se quieren montar se indican en un fichero que se llama
fstab:

Fichero : fstab
Path : /etc
Ojo : este es un ejemplo de fstab, (concretamente el mio). Para ms informacin
      man fstab
                Punto
Particin       montaje  Tipo       Parametros

/dev/hdb1       none     swap       sw
/dev/hdb2       /        ext2       defaults
/dev/hdb3       /home    ext2       defaults
/dev/hda4       /dos     msdos      conv=auto,umask=022,uid=100,gid=100
none            /proc    proc       defaults
/dev/fd0         /mnt        msdos       umask=022,uid=100,gid=100,user,noauto
/dev/cdu31a      /system_cd  iso9660     user,noauto,ro

NOTA : el parmetro conv=text permite cambiar los 0x0d0x0a en 0x0a directamente
asi que ojo con los comprimidos o datos donde la 0x0d0x0a es significativa.

La linea del /proc debe existir siempre, sino varias utilidades, tales como top, 
no funcionan.

Las dos ltimas se corresponden a filesystems no montados en el momento del
boot pero si que lo puedes hacer despus como usuario normal, (el mount es
un comando restringido al root) la orden es
mount /mnt teniendo un disco MS/DOS en la unidad A:
mount /system_cd teniendo un cd/rom iso9660 en el lector

Para desmontar un filesystem
umount /mnt
umount /system_cd

:-(, montar, desmontar que es eso?. 

Linux no es como MS/DOS que reconoce automaticamente las particiones de disco
disquetes y CD/ROM, hay que indicarle al sistema que lo tiene disponible y
como lo tiene. Linux es un sistema multiusuario y las particiones de discos
se comparten entre varios usuarios, se puede dar el caso que un filesystem
pueda ser de lectura/escritura para un grupo de usuarios pero solo de lectura
para otro y que los dems usuarios ni lo vean.

Me dirs, pero si estoy solo en el ordenador, OK, pero estas trabajando con 
un SO multiusuario y eso tiene una reglas bsicas y debers acostumbrarte.

Para disquetes MS/DOS existen ordenes directas :

mdir a:
mcopy a: /path_donde_quieras
mcopy /path_donde_quieras/lo_que_quieras a:

BASH

Este es el interprete de comandos, el que te va a permitir ejecutar ordenes.
El bash es la shell por defecto, existen otras pero este est ms integrado
en Linux, aparte que los scripts de programas o instalaciones vienen en este
interprete. Permite editar comandos y se acuerda se sesiones anteriores. Como
ayuda, a continuacin, unas cuantas opciones de la linea de comandos :

Principio de linea              Ctrl-a
Fin de linea                    Ctrl-e
1 char derecha                  Ctrl-f (o flecha derecha)
1 char izquierda                Ctrl-b (o flecha izquierda)
1 palabra derecha               Alt-f
1 palabra atrs                 Alt-b
limpia panatalla                Ctrl-l
comando anterior                Ctrl-p (o flecha arriba)
comando siguiente               Ctrl-n (o flecah abajo)
primer comando                  Alt-<
Ultimo comando                  Alt->
Busqueda atras                  Ctrl-r
Busqueda adelante               Ctrl-s
Busqueda no incremental atras   Alt-p
Busqueda no incremental adelante Alt-n

Esta ltima cuando le pones como comando

set -o vi

actua como ksh.


LILO

Lilo es el booter del sistema, permite iniciar el ordenador con particiones
que no sean la principal, no es obligatorio que la particin de inicio
est en el primer disco, :-)

Cuando se inicia la maquina y aparece LILO, apretando la tecla Alt, aparece
en pantalla, boot:, entonces se le puede dar el nombre simbolico de una 
particin de arranque.

Adems tambien se le pueden pasar valores tales como 

VGA NORMAL, EXTENDED o ASK indica si tienes vga normal svga o que pregunte.

single, inicia en modo monousuario
root=/device, para arrancar la particion de root desde otro device
ro, monta el sistema raiz en modo solo lectura
no387, no existe copro
variable=valor, lo pasa a init lo que permite verificar ese valor en los 
ficheros rc.*

Fichero : lilo.conf
Path : /etc

Ojo. este es mi fichero de configuracin de LILO y lo pongo como ejemplo.
----
boot = /dev/hda
delay = 50	### Tiempo de espera en LILO, decimas de segundo
vga = normal	# Inicia la pantalla en modo VGA
ramdisk = 0	### Espacio para el ramdisk o disco en memoria
append = "cdu31a=0x340,0,0"

  root = /dev/hdb2  ### Particin (Segunda particin segundo disco)
  image = /vmlinuz  ### Fichero kernel
  label = linux     ### Nombre simbolico

  root = /dev/hdb2  ### Misma particin
  image = /vmlinuz.old ### Fichero kernel, sirve para pruebas
  label = salva     ### Nombre simbolico

  other = /dev/hda4 ### Particin de arranque (cuarta particin primer disco)
  label = dos       ### Nombre simbolico, en este caso MS/DOS
  table = /dev/hda  ### Tabla de particiones, en este caso todo el disco 1
----

Con este fichero puedo arrancar, dependiendo de mi humor, con el kernel
normal "linux", kernel de recambio "salva", util para los que hacen pruebas
con el kernel como yo, o M/p2 "dos".

el comando para la configuracin es :

/sbin/lilo -C /etc/lilo.conf (R)

Bueno viene el apartado de X.

Como en el mundo de la informatica para hacer lo mismo se pueden utilizar miles
de caminos distintos pues las SVGA no se escapan a la regla, asi que los de la
XFree utilizan trucos para poder utilizar el mximo de tarjetas disponibles
en el mercado, pero ojo ciertas tarjetas, familia Diamond NO estan soportadas
y solo funcionan en modo VGA :-(.

La solucin que han desarrollado los de XFree no es otra que trabajar a nivel
del chip grfico instalado en la tarjeta (Tarjetas hay montones, chips grficos
pocos ).

Segn el tipo de tarjeta que tengas, en el directorio /usr/X11/bin, debers 
hacer un simlink de X a un fichero XF86.XXX

Durante la instalacin de los discos X, instala todos los servidores, luego
borras los que no te sirvan.

Chipsets acceleradores soportados :

XF86_8514   :  8514/A (y clnicas) 
XF86_Mach8  :  ATI Mach8
XF86_Mach32 :  ATI Mach32 
XF86_SVGA   :  Cirrus CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428,
               Western Digital WD90C31 (XF86_SVGA)
XF86_S3     :  S3 86C911, 86C924, 86C801, 86C805, 86C805i, 86C928 

Las Cirrus y Western Digital estn soportadas en el XF86_SVGA

Chipsets soportados en el XF86_SVGA, en modos 256 colores u monocromo :

    Tseng ET3000, ET4000AX, ET4000/W32
    Western Digital/Paradise PVGA1
    Western Digital WD90C00, WD90C10, WD90C11, WD90C24, WD90C30, WD90C31
    Genoa GVGA
    Trident TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000,
            TVGA9000i, TVGA9100B, TVGA9200CX, TVGA9320, TVGA9400CX, TVGA9420
    ATI 28800-4, 28800-5, 28800-6, 28800-a
    NCR 77C22, 77C22E, 77C22E+
    Cirrus Logic CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428
                 CLGD6205, CLGD6215, CLGD6225, CLGD6235
    Compaq AVGA
    OAK OTI067, OTI077

Para conocer el chipset de tu tarjeta mira la documentacin que viene con 
ella, si no la tienes mira la propia tarjeta, el chip controlador suele ser
el que ms patillas tiene, toma el nombre y modelo.

Ejecuta :

SuperProbe

Te dira cual es tu tarjeta y segn, podras elegir un servidos u otro.

Existen ms ficheros XF86 :

XF86.VGA16 : para la tarjetas VGA normales 16 colores
CF86.MONO  : para tarjetas VGA monocromas
XF86.HERC  : para tarjetas hercules

Fichero bsico de configuracin de X.

Fichero : Xconfig (X11R5)
Path : /etc
(Normalmente en el directorio /usr/lib/X11, tienes un Xconfig.sample, copialo
a /etc y lo modificas con los valores que doy a continuacin y con los que t 
quieras.

-----

### Path donde encontrar las fonts

FontPath	"/usr/X386/lib/X11/fonts/75dpi/"
FontPath	"/usr/X386/lib/X11/fonts/100dpi/"
FontPath	"/usr/X386/lib/X11/fonts/misc/"

### teclado para utilizar las teclas Alt y AltGr
Keyboard
  AutoRepeat 500 5
  ServerNumLock
  LeftAlt     Meta
  RightAlt    ModeShift
  RightCtl    Compose
  ScrollLock  ModeLock

### Ratn, dependiendo de lo que tengas y donde lo tengas (ttyS0 = COM1, 
### ttyS1 = COM2, mouseman si tienes uno de 3 botones, microsoft si es de
### 2 botones en este caso debes descomentar Emulate3Buttons (Pulsando 
### simultaneamente los dos botones emulas el central que sirve para el Drag
### and Drop

mouseman "/dev/ttyS0"
BaudRate 1200  ### salvo excepciones todos los ratones van a 1200 baudios
#Emulate3Buttons

### Pantalla, vga256, hercules, gva
vga256

### Chipset, depende de la tarjeta SVGA que tengas

Chipset "wd90c31"

### Modos de resolucin en pantalla, seleccionables mendiante Ctrl-Alt-+ o -

Modes "1024x768i" "800x600" "640x480"

### Resolucin virtual, es decir cuantos pixels aguanta to SVGA, si tienes 
### 1 Mega de memoria, 1024 x 1024 = 1.048.576 pixels, se aconseja no
### utilizar toda la memoria para el video sino dejar un 20% para trabajo
### (tarjetas acceleradoras).

Virtual	1024 768

### Clocks, estos se corresponden a los de mi tarjeta, para conocer los tuyos
### inicia el servidor, nombre_servidor -probeonly, te sacara unos clocks
### copialos en el mismo orden que te los indica

clocks  25.20  28.32  65.10  35.70   0.00  49.90  32.20  45.10
clocks  40.10   0.00  75.10  50.00  31.20  78.60   0.00  80.40
clocks  44.60

### ModeDB Dot Pitch y sincronizaciones del monitor, estos son los oficiales
### VESA, empieza por ellos, como calcular estos datos, ver Apartados especiales

ModeDB
# nombre      reloj   sinc horizontal        sinc. vertical      flags
 "640x480"     25      640  672  768  800    480  480  484  504
 "800x600"     36      800  824  896 1000    600  601  603  625
 "1024x768i"   44     1024 1040 1184 1216    768  769  771  800  Interlace



-----

Fichero : XF86config (X11R6)

Como diferenciar X11R6 y X11R5? Sencillo mira en /usr, si tienes un directorio
X11R6, tienes X11R6, facil :-)

Path : /etc
Este fichero es el mio, seguramente el tuyo variara.
-----


# **********************************************************************
# Refer to the XF86Config(4/5) man page for details about the format of 
# this file. This man page is installed as /usr/X11R6/man/man5/XF86Config.5x 
# **********************************************************************

# **********************************************************************
# Files section.  This allows default font and rgb paths to be set
# **********************************************************************

Section "Files"

    RgbPath	"/usr/X11R6/lib/X11/rgb"

# 
# Fuentes utilizables por el servidor de X
# 

    FontPath	"/usr/X11R6/lib/X11/fonts/misc/"
    FontPath	"/usr/X11R6/lib/X11/fonts/Type1/"
    FontPath	"/usr/X11R6/lib/X11/fonts/Speedo/"
    FontPath	"/usr/X11R6/lib/X11/fonts/75dpi/"
    FontPath	"/usr/X11R6/lib/X11/fonts/100dpi/"

EndSection

# **********************************************************************
# Server flags section.
# **********************************************************************

Section "ServerFlags"

# Uncomment this to cause a core dump at the spot where a signal is 
# received.  This may leave the console in an unusable state, but may
# provide a better stack trace in the core dump to aid in debugging

#    NoTrapSignals

# Uncomment this to disable the <Crtl><Alt><BS> server abort sequence

#    DontZap

EndSection

# **********************************************************************
# Input devices
# **********************************************************************

# **********************************************************************
# Keyboard section
# **********************************************************************

Section "Keyboard"

    Protocol	"Standard"

# when using XQUEUE, comment out the above line, and uncomment the
# following line

#    Protocol	"Xqueue"

    AutoRepeat	500 5
    ServerNumLock

# Specifiy which keyboard LEDs can be user-controlled (eg, with xset(1))
#    Xleds      1 2 3

# To set the LeftAlt to Meta, RightAlt key to ModeShift, 
# RightCtl key to Compose, and ScrollLock key to ModeLock:
#
# Deja esto si quieres 'es y acentos
    LeftAlt     Meta
    RightAlt    ModeShift
    RightCtl    Compose
    ScrollLock  ModeLock

EndSection


# **********************************************************************
# Pointer section
# **********************************************************************

#
# Esta seccin es para el ratn

Section "Pointer"

    Protocol	"Mouseman"
    Device	"/dev/ttyS0"

# When using XQUEUE, comment out the above two lines, and uncomment
# the following line.

#    Protocol	"Xqueue"

# Baudrate and SampleRate are only for some Logitech mice

    BaudRate	1200
#    SampleRate	150   # Esto solo para Logitech

# Emulate3Buttons is an option for 2-button Microsoft mice

#    Emulate3Buttons

# ChordMiddle is an option for some 3-button Logitech mice

#    ChordMiddle

EndSection


# **********************************************************************
# Monitor section
# **********************************************************************

# Any number of monitor sections may be present

#
# Esta seccin identifica tu monitor, editala segn los valores del tuyo
#
Section "Monitor"

    Identifier	"LR3A"
    VendorName	"Unknown"
    ModelName	"Unknown"

# Bandwidth is in MHz unless units are specified

#### OPCION TUYA mira la documentacion de tu monitor
    Bandwidth	45

# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

#### OPCION TUYA, mira la documentacion de tu monitor
# Sincronizaciones horizontales

    HorizSync   31.25, 35.1-38  # typical for a single frequency fixed-sync monitor

#    HorizSync	30-64         # multisync
#    HorizSync	31.5, 35.2    # multiple fixed sync frequencies
#    HorizSync	15-25, 30-50  # multiple ranges of sync frequencies

# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.


#### OPCION TUYA, mira la documentacin de tu monitor
# Sincronizaciones verticales
    VertRefresh 60, 55-62, 87.20  # typical for a single frequency fixed-sync monitor

#    VertRefresh	50-100        # multisync
#    VertRefresh	60, 65        # multiple fixed sync frequencies
#    VertRefresh	40-50, 80-100 # multiple ranges of sync frequencies

# Modes can be specified in two formats.  A compact one-line format, or
# a multi-line format.

# A generic VGA 640x480 mode (hsync = 31.5kHz, refresh = 60Hz)
# These two are equivalent

#    ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525
#
#### OPCION TUYA
#
# Modos de trabajo,estos valores son lo estndar VESA

    Mode "640x480"
        DotClock	25
        HTimings	640 672 768 800
        VTimings	480 480 484 504
    EndMode

    Mode "800x600"
        DotClock	36
        HTimings	800 848 896 1024
        VTimings	600 601 617 625
    EndMode

    Mode "1024x768i"
        DotClock	44
        HTimings	1024 1040 1184 1216
        VTimings	768 769 771 830
        Flags		"Interlace"
    EndMode

EndSection

# **********************************************************************
# Graphics device section
# **********************************************************************

# Any number of graphics device sections may be present

#### OPCION TUYA
#
#  Los clock los veras iniciando X -probeonly 2>fichero, en fichero tendras
#  los clocks que ha encontrado, copialos aqui
#

Section "Device"
    Identifier	"SuperVGA"
    VendorName	"Unknown"
    BoardName	"Unknown"
    Chipset	"wd90c31"
    VideoRam	1024
    Clocks  25.02  28.32  65.10  35.70  25.23  49.90  32.20  45.10
    Clocks  40.10  35.56  75.00  50.00  31.20  76.65   0.00  80.40
    Clocks  44.60
EndSection

# **********************************************************************
# Screen sections
# **********************************************************************

# The colour SVGA server

Section "Screen"
    Driver	"svga"       ### Pon el driver, las ltimas letras del servidor
                             ### Ej. XF86_SVGA
    Device	"SuperVGA"   ### Nombre que le has dado a tu placa, mira
                             ### Seccin Device
    Monitor	"LR3A"       ### Pon el nombre que le has dado a tu monitor
                             ### mira seccion Monitor
    Subsection "Display"
        Depth	    8
        Modes	    "1024x768i" "800x600" "640x480" ### Modos de resolucin
        ViewPort    0 0      ### Donde se inicia en la pantalla
        Virtual     1024 768 ### Resolucin virtual, en modo 8 bits de color
                             ### 1M de memoria de SVGA te dar 1024 x 1024
                             ### pixels, pero no uses toda la memoria sino
                             ### no puede accelerar
    EndSubsection
EndSection

-----


Como usuario, (no como root) posicionado en tu HOME. Debes crear los
siguientes ficheros :

Fichero de entorno de usuario :

Fichero : .bashrc (el punto es obligatorio)
path : $HOME

----

# commands common to all logins
export OPENWINHOME=/usr/openwin
export MINICOM="-c on"
export HOSTNAME="`cat /etc/HOSTNAME`"
export PATH=".:$HOME/bin:/bin:/usr/bin:/etc:/usr/local/bin:/usr/X11/bin:/usr/net/bin"
export USER=tu_nombre_de_usuario
LESS=-MM
if [ "$TERM" = "" -o "$TERM" = "unknown" -o \
 "`echo $TERM | cut -b1-3`" = "con" ]; then
 TERM=console
fi
#PS1='`hostname`:`pwd`# '
if [ "$SHELL" = "/bin/pdksh" ]; then
 PS1="! $ "
elif [ "$SHELL" = "/bin/zsh" ]; then
 PS1="%m:%~%# "
elif [ "$SHELL" = "/bin/ash" ]; then
 PS1="$ "
else
 PS1='\h:\w\> '
fi
PS2='> '
ignoreeof=10
export PATH DISPLAY LESS TERM PS1 PS2 ignoreeof
umask 022

HISTFILESIZE=0
a=`tty` 
EXINIT="set showmode autowrite autoindent shiftwidth=4 tabstop=4"

----------


Fichero de inicio de X11, este fichero en realidad se lanza via un sub-shell,
por eso tiene una semejanza con cualquier fichero shell.
Dentro de este fichero vamos a iniciar ciertas cosas.
El entorno (.Xdefaults) de usuario, ms tarde vers que ciertos progamas X,
tienen un fichero por defecto, normalmente en /usr/lib/X11/app-defaults/nom_prg.
Bueno si eres maoso y tienes ganas de investigar estos ficheros suelen contener
una serie de lineas tales como :

Xterm*foreground : red (esta linea se llama "resource")

Vamos a ver que quiere decir todo esto, aqui vamos a hablar de programas,
clases y sub-clases (ojo tienen poco que ver con C++). Normalmente un resource
suele tener tres secciones, la primera es el programa, la segunda la clase y
la tercera ... (adivinalo, la respuesta al final del fichero), cada seccin
del resource se separa mediante un punto. El * en una parte quiere decir 
cualquier cosa, en este caso el propio * sirve de separador. Entonces para 
el ejemplo anterior queremos que en el Xterm, cualquier cosa salga en rojo en 
primer plano. Los resources especificos siempre tienen preferencia sobre los
genericos '*'; Ej :

mwm.Menu.foregroud : blue (primer plano del menu de Mwm en azul)
*Menu.foreground : gold (cualquier men en primer plano color oro)


Aqui va el fichero :

Fichero : .xinitrc (el punto es obligatorio)
path : $HOME

----

#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $

userdefaults=$HOME/.Xdefaults
usermodmap=$HOME/.Xmodmap ### o fichero_de_mapeo, ver ms adelante
sysresources=/usr/X11/lib/X11/xinit/.Xresources

if [ -f $sysresources ]; then
    xrdb -merge $sysresources  ### carga el ambito por defecto
fi

if [ -f $userdefaults ]; then
    xrdb -merge $userdefaults  ### carga el ambito del usuario
fi

if [ -f $usermodmap ]; then
    xmodmap $usermodmap        ### carga el mapeo del teclado del usuario
fi

# inicia unos programas cliente

xlogo -g +10+571 &
xsetroot -solid black & ### cambialo a otro color si quieres, tambien se le
                        ### puede dar un mapa de bits y colorearlo (man xsetroot)
xman -fn 10x20 & ### lanza la ayuda de X11
xterm -geometry 80x25+100+100 -name login -fn 10x20 & ### lanza un terminal
exec fvwm ### lanza el manejador de ventanas, si no arranca prueba con tvwm o twm

----

la ltima linea no debe acabar por &, sino se sale directamente de X.

NOTA : He podido darme cuenta que la gente no hace diferencia en X y un
manejador de ventanas, cosa obvia para m, pero para un recien llegado a X
esto suena a chino. Sobre todo si esta acostumbrado a MS/Flindons.

X es ms que un entorno grfico, es toda una filosofia.

Dentro de X tenemos un entorno de soporte grfico (servidor de grficos), 
una aplicacin, un cliente, que pide servicios grficos. Y si a esto le 
aadimos que un programa puede rodar en una mquina y el servidor
de grficos en otra, entonces le aadimos un protocolo a X. Muy resumido
todo esto es X. Faltaba la parte de adorno y area de trabajo, esto lo
lo hace el manejador de ventanas, sin l en pantalla solo aparece un fondo
grs y poco ms. Existen muchos manejadores mwm, fwm, twm, fvwm, tvwm, etc..
normalmente estn el /usr/X11/bin, por defecto en la distribucion suelen
venir los fwm, fvwm, twm, tvwm, yo uso fvwm, pero pruebalos todos y quedate
con el que ms te guste.

COMENTARIO : Existen varias tendencias par iniciar X, la estandar via xdm, esta
sera para utilizarla dentro de una organizacin ya que controla el acceso via
login y shadow password. La chapucera, (la que utilizo yo) y que recomiendo
si estamos solos, nos evitamos dos demonios que solo ocupan memoria y cpu. La
chapucera se inicia via, estando como usuario, xinit, xinit usa un fichero
que es el $HOME/.xinitrc, este fichero lanza via background las aplicaciones
cliente, quedandose parado en la ltima linea del fichero, si te fijas esta no
lleva &. En esta ltima linea yo lanzo el manejador de pantallas (fvwm), pero
si acabo con l, toda la sesin X finaliza matando los clientes restantes. Otros
ponen como ltima linea un xterm nombrandolo INICIO o CONSOLE (opcin -T), esto
permite finalizar la sessin X matando este xterm, como tal es ms comodo si
por una de aquellas un programa cliente aborta y mata el majedor, nos quedamos
en X y podemos reiniciar el manejador desde cualquier xterm via :

nombre_manejador & (R)


Fichero : .Xdefaults (el punto es obligatorio)
path : $HOME
----

icon.x:	0
icon.y:	0
pixmap.SquareSize:	7
xterm*cursorColor:	red
xterm*loginShell:	true
xterm*font:	-misc-fixed-medium-r-normal--14-110-100-100-c-70-iso8859-1
xterm*foreground:	black
xterm*scrollBar:	true
xterm*iconPixmap:	/usr/GREAT/bitmaps/bitmaps/xterm.bm
xterm*termName:	xterm
xterm*alwaysHighlight:	True
xterm*background:	#bfbfbfbfbfbf
color_xterm*cursorColor:	red
color_xterm*loginShell:	true
color_xterm*font:	-misc-fixed-medium-r-normal--14-110-100-100-c-70-iso8859-1
color_xterm*foreground:	black
color_xterm*scrollBar:	true
color_xterm*iconPixmap:	/usr/GREAT/bitmaps/bitmaps/xterm.bm
color_xterm*termName:	xterm
color_xterm*alwaysHighlight:	True
color_xterm*background:	#bfbfbfbfbfbf
*Menubar*background:	#619AAE
*Menubar*fontList:	-*-*-bold-*-*-*-*-*-*-*-*-*-*-*
*Menubar*foreground:	white
window.width:	640
----

Y para acabar el fichero de configuracin del teclado, NOTA : en las
ltimas versiones de Slackware parece ser que no hace falta, pero no se
porque demonios a m no me funcionan los acentos egnes o ms cosas. Prueba
sn l y si en el vi no te funcionan los acentos egnes o ms cosas, crealo.

Existe una utilidad en el directorio /usr/lib/kbd/keytables que se llama
mk_modmap, su uso es sencillo.

mk_modmap -v <fichero_a_traducir >/path_donde_quieras/fichero_de_mapeo

Fichero : .Xmodmap (X11R5) (Este nombre no es obligatorio, pero es el nombre 
                   por defecto para xmodmap)
Path : $HOME

-----

!
! Standard key mapping for XFree86 (for Spanish keyboards).
!
! This file can be fed to xmodmap to restore the default mapping.
!
! $XFree86: mit/server/ddx/x386/etc/xmodmap.std,v 1.2 1993/06/02 12:14:34 dawes 
xp $
!
! First, clear the modifiers
!
clear    shift
clear    lock
clear    control
clear    mod1
clear    mod2
clear    mod3
clear    mod4
clear    mod5
!
! Set the mapping for each key
!
keycode   8 = 
keycode   9 = Escape
keycode  10 = 1 exclam bar
keycode  11 = 2 quotedbl at
keycode  12 = 3 periodcentered numbersign
keycode  13 = 4 dollar
keycode  14 = 5 percent
keycode  15 = 6 ampersand
keycode  16 = 7 slash
keycode  17 = 8 parenleft
keycode  18 = 9 parenright
keycode  19 = 0 equal
keycode  20 = apostrophe question
keycode  21 = exclamdown questiondown
keycode  22 = BackSpace
keycode  23 = Tab
keycode  24 = q Q
keycode  25 = w W
keycode  26 = e E eacute
keycode  27 = r R
keycode  28 = t T
keycode  29 = y Y
keycode  30 = u U uacute
keycode  31 = i I iacute
keycode  32 = o O oacute
keycode  33 = p P
keycode  34 = grave asciicircum bracketleft
keycode  35 = plus asterisk bracketright
keycode  36 = Return
keycode  37 = Control_L
keycode  38 = a A aacute
keycode  39 = s S
keycode  40 = d D
keycode  41 = f F
keycode  42 = g G
keycode  43 = h H
keycode  44 = j J
keycode  45 = k K
keycode  46 = l L
keycode  47 = ntilde Ntilde
keycode  48 = acute diaeresis braceleft 
keycode  49 = masculine ordfeminine backslash
keycode  50 = Shift_L
keycode  51 = ccedilla Ccedilla braceright
keycode  52 = z Z
keycode  53 = x X
keycode  54 = c C
keycode  55 = v V
keycode  56 = b B
keycode  57 = n N
keycode  58 = m M
keycode  59 = comma semicolon
keycode  60 = period colon
keycode  61 = minus underscore
keycode  62 = Shift_R
keycode  63 = KP_Multiply
keycode  64 = Alt_L Meta_L
!keycode  64 = Alt_L Meta_L
keycode  65 = space
keycode  66 = Caps_Lock
keycode  67 = F1
keycode  68 = F2
keycode  69 = F3
keycode  70 = F4
keycode  71 = F5
keycode  72 = F6
keycode  73 = F7
keycode  74 = F8
keycode  75 = Escape
keycode  76 = F10
keycode  77 = Num_Lock
!keycode  78 = Multi_key
keycode  78 = Mode_switch X386Mode_Lock
keycode  79 = KP_7
keycode  80 = KP_8
keycode  81 = KP_9
keycode  82 = KP_Subtract
keycode  83 = KP_4
keycode  84 = KP_5
keycode  85 = KP_6
keycode  86 = KP_Add
keycode  87 = KP_1
keycode  88 = KP_2
keycode  89 = KP_3
keycode  90 = KP_0
keycode  91 = KP_Decimal
keycode  92 = X386Sys_Req
keycode  93 =
keycode  94 = less greater asciitilde
keycode  95 = F11
keycode  96 = F12
keycode  97 = Home
keycode  98 = Up
keycode  99 = Prior
keycode 100 = Left
keycode 101 = Begin
keycode 102 = Right
keycode 103 = End
keycode 104 = Down
keycode 105 = Next
keycode 106 = Insert
keycode 107 = Delete
keycode 108 = KP_Enter
!keycode 109 = Control_R
keycode 109 = Multi_key
keycode 110 = Pause
keycode 111 = Print
keycode 112 = KP_Divide
!keycode 113 = Alt_R Meta_R
keycode 113 = Mode_switch
keycode 114 = Break
!
! Set the modifiers
!
add     shift   = Shift_L Shift_R
add     lock    = Caps_Lock
add     control = Control_L Control_R
add     mod1    = Alt_L Alt_R
add     mod5    = Mode_switch
!
! If you don't have ServerNumlock set in your Xconfig, uncomment the following
!
!add     mod2    = Num_Lock
!
! If you use any of the special default key mappings in Xconfig, they should be
! duplicated in this file.  Mappings should be added before the section above
! which sets the modifiers.
!
!  For the key specs:
!     LeftAlt     =>  keycode  64
!     RightAlt    =>  keycode 113
!     AltGr       =>  keycode 113
!     ScrollLock  =>  keycode  78
!     RightCtl    =>  keycode 109
!     
!  For the mappings:
!     Meta        =>  Alt_L Meta_L
!                     Alt_R Meta_R
!     Compose     =>  Multi_key
!     ModeShift   =>  Mode_switch
!     ModeLock    =>  Mode_switch X386Mode_Lock
!     ScrollLock  =>  Scroll_Lock
!     Control     =>  Control_R
!    
!  If you use ModeShift or ModeLock, the following modifier must be set:
!
!add     mod5    = Mode_switch
!
!  For example, to get the equivalent of:
!
!  ScrollLock  ModeLock
!  RightAlt    ModeShift
!  LeftAlt     Meta
!  RightCtl    Compose
!
!  use the following:
!
!keycode  78 = Mode_switch X386Mode_Lock
!keycode 113 = Mode_switch
!keycode  64 = Alt_L Meta_L
!keycode 109 = Multi_key
!
!add    mod5   = Mode_switch
----

Para X11R6, el mapeo es distinto, en el directorio /usr/lib/X11/locale copia
el contenido del directorio iso8859-1 al directorio C

Fichero : .Xmodmap (X11R6)
Path : $HOME

-----

keycode  22 = 0xff08
keycode  26 = e E eacute
keycode  30 = u U uacute
keycode  31 = i I iacute
keycode  32 = o O oacute
keycode  38 = a A aacute

-----

Ahora inicia X11, via 

xinit (R)

Si todo va bien, debes tener tu entorno grfico en pantalla, transcurridos
unos cuanto segundos. Para los que posean la versin de Yggdrasil, aconsejo
cargar /usr/X11 o /usr/X386 a disco duro, por una sencilla razn de rapidez
de ejecuccin.

Volvamos al fichero .xinitrc, este presenta dos particularidades, una es
xsetroot, este programa te permite poner el color de fondo de tu entorno
X, tambien puedes ponerle dibujitos :

xsetroot -bg blue -bitmap /usr/X11/include/X11/bitmaps/xlogo32

existen otros, xloadimage, xv (estos dos no solo cargan mapa de bits en 
blanco y negro sino otros formatos, tif, pif, bmp, xpm.

Otro punto bastante importante es el manejador de ventanas. Este programa
se ocupa de posicionar las ventanas que habres por la pantalla, iconazarlas
realizar rotaciones de ventanas, sacar mens y ms opciones. De todos los 
que he visto el que ms me ha gustado es fvwm, si lo tienes en /usr/X11/bin, 
tienes suerte, sino buscalo por los fuentes y compilalo. Es facil

tar zxvf /path_donde_este/fvwm*.tar.gz
cd fvwm*
xmkmf
make
make install (como root)
make install.man (como root)

Luego, te copias el siguiente fichero :

Fichero : .fvwmrc
Path : $HOME

----

###########################################################################
# set up the colors
#
# OK some people like bright clear colors on their window decorations.
# These people, I guess would mostly be from nice sunny/good weather places
# line California.
#
StdForeColor 		Black
StdBackColor		#d3d3d3

# this is used for the selected window
HiForeColor 		Black
HiBackColor 		#5f9ea0

PagerBackColor		#5c54c0
PagerForeColor		orchid

# these are used for unselected sticky windows
StickyForeColor		Black
StickyBackColor		#60c0a0

# Me, I'm from Upstate New York, and live in New Hampshire, so I prefer
# these dark muddy colors...

############################################################################
# Now the fonts - one for menus, another for window titles, another for icons
#Font			-adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
Font			-*-times-medium-i-*-*-*-120-*-*-*-*-*-*
WindowFont		-adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*
#IconFont		-adobe-helvetica-medium-r-*-*-11-*-*-*-*-*-*-*
IconFont		fixed

# PagerFont is used to mark windows in the Pager with their icon names.
# This is really only useful for DeskTopScale < 20 or so
PagerFont		5x8

###########################################################################
# Set up the major operating modes
#
########################      FOCUS 77     ##############################
# Set windows to auto-raise after 750 milliseconds if you like it.
# Autoraise can sometimes obscure pop-up windows. Performance is now
# similar to olvwm's auto-raise feature.
#AutoRaise 750

# Normally, we'll be in focus-follows mouse mode, but uncomment this 
# for mwm-style click-to-focus
# ClickToFocus

########################      ICON STUFF     ##############################
# Auto Place Icons is a nice feature....
# This creates two icon boxes, one on the left side, then one on the
# bottom. Leaves room in the upper left for my clock and xbiff,
# room on the bottom for the Pager.
#IconBox -150 90 -5 -140
#IconBox 5 -140 -140 -5
IconBox -70 1 -1 -140

# If you uncomment this, and make sure that the WindowList is bound to
# something, it works pretty much like an icon manager.
#SuppressIcons

# StubbornIcons makes icons de-iconify into their original position on the
# desktop, instead of on the current page.
#StubbornIcons

# With AutoPlacement, icons will normally place themselves underneath active
# windows. This option changes that.
#StubbornIconPlacement

# If you want ALL you icons to follow you around the desktop (Sticky), try
# this
#StickyIcons

########################      MWM EMULATION     #######################
#
# My feeling is that everyone should use MWMDecorHints and MWMFunctionHints,
# since some applications depend on having the window manager respect them

# MWMFunction hints parses the function information in the MOTIF_WM_HINTS
# property, and prohibits use of these functions on the window. Appropriate
# portions of the window decorations are removed.
MWMFunctionHints

# MWMDecor hints parses the decoration information in the MOTIF_WM_HINTS
# property, and removes these decoratons from the window. This does not affect
# the functions that can be performed via the menus.
MWMDecorHints

# These are affect minor aspects for the look-and-feel.
# Sub-menus placement mwm-style?
# MWMMenus
# mwm-style border reliefs (less deep than default fvwm) ?
MWMBorders
# Maximize button does mwm-inversion thingy
# MWMButtons
########################      MISCELLANEOUS STUFF     #######################
# If you don't like the default 150 msec click delay for the complex functions
# change this and uncomment it.
#ClickTime 150

# OpaqueMove has a number (N) attached to it (default 5), if the window occupies
# less than N% of the screen, opaque move is used. 0 <= N <= 100
# OpaqueMove 100

# flip by whole pages on the edge of the screen.
EdgeScroll 100 100

# A modest delay before flipping pages seems to be nice...
# I thresh in a 50 pixel Move-resistance too, just so people
# can try it out.
EdgeResistance 250 50


########################      WINDOW PLACEMENT     #######################
# RandomPlacement prevents user interaction while placing windows:
# RandomPlacement

# SmartPlacement makes new  windows pop-up in blank regions of screen if possible,
# otherwise falls back to random or interactive placement.
SmartPlacement

# With SmartPlacement, windows will normally place themselves over icons. Uncomment
# this to change that.
#StubbornPlacement

# NoPPosition instructs fvwm to ignore the PPosition field in window geometry hints.
# Emacs annoyingly sets PPosition to (0,0)!
NoPPosition


########################      DECORATIONS     #######################
# If you want decorated transient windows, uncomment this:
#DecorateTransients

# Width of decorations on otherwise undecorated windows:
NoBoundaryWidth 3

# Width of side-bars on decorated windows:
BoundaryWidth 4


##########################################################################
# Module path and modules to be launched during initialization
#
# ModulePath is a colon-separated list, just like regular unix PATH
ModulePath /local/homes/dsp/nation/modules:/usr/lib/X11/fvwm

# Modules to be launched during initialization go here
Module FvwmBanner
Module GoodStuff
# Module FvwmClean



###########################################################################
# Set up the virtual desktop and pager

#set the desk top size in units of physical screen size
DeskTopSize 3x3

# and the reduction scale used for the panner/pager
DeskTopScale 32

# Use the Fvwm Pager
Pager -5 -5

############################################################################
# list the windows that don't want a title bar
NoTitle Fvwm Pager
NoTitle xlogo
NoTitle xclock
NoTitle xdclock
NoTitle Clock
NoTitle xbiff
NoTitle GoodStuff
NoTitle Sppeed6_user
NoTitle xconsole

###########################################################################
# Here's where I could list NoBorder windows that don't get frames.
# If a window shows up with NoTitle and NoBorder, it gets a simple frame
# whose width is specified by the NoBoundaryWidth option (can be 0).
#
# When windows are NoBordered, they look a bit like twm is handling them
NoBorder Clock
NoBorder xlogo

##########################################################################
# now the windows that "Stick to the glass", ie don't scroll with the
# desktop
# The pager is automatically sticky
Sticky xclock
Sticky xdclock
Sticky oclock
Sticky Clock
Sticky xbiff
Sticky GoodStuff
Sticky xconsole
Sticky gpanel
Sticky cmdframe


############################################################################
# now list windows that want to "stay on top," ie stay visible until
# explicitly lowered
# I got tired of this, except for the pager.
#StaysOnTop xclock
#StaysOnTop xdclock
#StaysOnTop oclock
#StaysOnTop Clock
StaysOnTop Fvwm Pager


############################################################################
# now list windows that don't need to show up in the window list
WindowListSkip Clock
WindowListSkip xbiff
WindowListSkip xcloc
WindowListSkip xlogo
WindowListSkip Fvwm Pager


############################################################################
# define some common icon bitmaps

# These are the color icons.
# Of course, you need to change the directory to the one where they
# really live.
# Keep m4 from barfing on my icon and bitmap paths
# undefine(`include')

PixmapPath	    /usr/include/pixmaps:/usr/lib/xfilemanager/icons:/home/pixmaps
IconPath	    /usr/include/X11/bitmaps/

Icon "rxvt"         term.xpm
Icon "cterm"        term.xpm
Icon "login"        term.xpm
Icon "largo"        term.xpm
Icon "normal"       term.xpm
Icon "Fvwm Pager"   map.xpm
Icon "Appointment"  datebook.xpm
Icon "xcalc"        xcalc.xpm
Icon "xbiff"        mail1.xpm
Icon "xmh"          mail1.xpm
Icon "xman"	    xman.xpm
Icon "xterm"	    xterm.xpm
Icon "xvgr"	    graphs.xpm
Icon "matlab"	    math4.xpm
Icon "xmag"	    mag_glass.xpm
Icon "xgraph"	    graphs.xpm
Icon "GoodStuff"    toolbox.xpm
Icon "ksh"          firma.xpm


# Here are some monchrome icon bitmaps that everyone should have
#Icon "rxvt"	    terminal
#Icon "xterm"	    Term
# I have included a default.xbm in the fvwm_icons subdirectory
#Icon ""  	    default.xbm

############################################################################
# Now define some handy complex functions

# This one moves and then raises the window if you drag the mouse,
# only raises the window if you click,  or does a RaiseLower if you double 
# click
Function "Move-or-Raise"
	Move 		"Motion"
	Raise		"Motion"
	Raise		"Click"
	RaiseLower	"DoubleClick" 
EndFunction

# This one maximizes vertically if you click (leaving room for the GoodStuff bar at the
# bottom, or does a full maximization if you double click, or a true full vertical 
# maximization if you just hold the mouse button down.
Function "maximize_func"
	Maximize	"Motion" 0 100
	Maximize	"Click" 0 92
	Maximize	"DoubleClick" 100 100
EndFunction


# This one moves and then lowers the window if you drag the mouse,
# only lowers the window if you click,  or does a RaiseLower if you double 
# click
Function "Move-or-Lower"
	Move 		"Motion"
	Lower		"Motion"
	Lower		"Click"
	RaiseLower	"DoubleClick"
EndFunction

# This one moves or (de)iconifies:
Function "Move-or-Iconify"
	Move 		"Motion"
	Iconify		"DoubleClick"
EndFunction

# This one resizes and then raises the window if you drag the mouse,
# only raises the window if you click,  or does a RaiseLower if you double 
# click
Function "Resize-or-Raise"
	Resize 		"Motion"
	Raise		"Motion"
	Raise		"Click"
	RaiseLower	"DoubleClick"
EndFunction


# This is provided as a hint only.
# Move to a known page on the desktop, then start an application in a 
# known location. Could also switch to a known desktop, I guess
#Function "abs_coord"
#	GoToPage "Immediate"	1,1
#	Exec	"Immediate"	exec xcalc -geometry +100+100&
#EndFunction


##############################################################################
#now define the menus - defer bindings until later

# This menu is invoked as a sub-menu - it allows you to quit,
# restart, or switch to another WM.
Popup "Salir-SI-NO"
	Title	" Con que te vas ?"
	Quit	"Si, Salir?"
	Restart "Iniciar Fvwm"	fvwm
	Restart "Iniciar twm" 	twm
	Restart "Iniciar tvtwm"	tvtwm
	Restart "Iniciar mwm" 	mwm
	Restart "Iniciar olwm" 	/usr/openwin/bin/openwin
	Nop	""
	Nop	" No, Salir No !"
EndPopup

Popup "Dibujo"
	Title	"Dibujar un poco"
	Exec    "Pixmap"	exec pixmap &
	Exec    "Pintar"	exec xpaint &
	Exec    "Bitmaps"	exec bitmap &
EndPopup

Popup "Archivos"
	Title	"Gestores de archivos"
	Exec    "xfilemanger"	exec xfilemanager &
	Exec    "xfileman"	exec xfileman &
	Exec    "xmfm"		exec xmfm &
EndPopup

# Provides a list of modules to fire off
Popup "Modulos"
	Title	"Mdulos"
	Module	"Regleta"	GoodStuff
	Module	"Limpiar"	FvwmClean
	Module	"Identificar"	FvwmIdent
	Module  "Salva entorno" FvwmSave
	Module	"Debug"		FvwmDebug
EndPopup

Popup "SalvaPants"
	Title 	"SalvaPants"
	Exec	"Random"	exec xlock -nolock -nice 0 -mode random &
	Exec	"Hop"	exec xlock -nolock -nice 0 -mode hop   &
	Exec	"Life"	exec xlock -nolock -nice 0 -mode life   & 
	Exec	"Qix"	exec xlock -nolock -nice 0 -mode qix &
	Exec	"Image"	exec xlock -nolock -nice 0 -mode image &
	Exec	"Swarm"	exec xlock -nolock -nice 0 -mode swarm & 
	Exec	"Rotor"	exec xlock -nolock -nice 0 -mode rotor &
	Exec	"Pyro"	exec xlock -nolock -nice 0 -mode pyro &
	Exec	"Flame"	exec xlock -nolock -nice 0 -mode flame &
	Exec	"Worm"	exec xlock -nolock -nice 0 -mode worm &
	Exec	"Blank"	exec xlock -nolock -nice 0 -mode blank &
EndPopup

Popup "Utilidades"
	Title 	"Utilidades"
	Exec    "Debug"		exec xxgdb -fn 10x20 &
	Exec    "emacs"		exec emacs -fn 10x20 &
	Exec    "Memoria"		exec xsysinfo &
	Exec    "Colores"		exec xpalette &
	Exec    "Musica"	exec workman &
	Exec    "Top"		exec rxvt -T Top -n Top -e top &
EndPopup

Popup "Varios"
	Title 	"Varios"
	Exec	"seyon"		exec seyon &
	Exec    "atp"		exec color_xterm -fn 10x20 -e atp &
	Exec	"xv"		exec cv -root &
	Exec	"cucas"		exec xroach -roaches 15 -squish -rgc yellowgreen &
EndPopup


# This menu will fire up some very common utilities
Popup "Principal"
	Title 	"Principal"
	Exec    "Xterm_color"	exec color_xterm -fn 10x20 -e ksh &
	Nop	""
	Exec    "Ayuda"	exec xman -fn 10x20 &
	Nop	""
	Popup	"Utilidades"	Utilidades
	Nop	""
	Popup	"Dibujar"	Dibujo
	Nop	""
	Popup	"Varios"	Varios
	Nop	""
	Popup	"Mdulos"	Modulos
	Nop	""
	Popup	"Ficheros"	Archivos
	Nop	""
	Popup	"SalvaPants"	SalvaPants
	Nop	""
	Refresh	"Refresca Pantalla"
	Nop	""
	Popup	"Salir Fvwm"	Salir-SI-NO
	Nop	""
EndPopup

# This defines the most common window operations
Popup "Opciones Win"
	Title		"Opciones Win"
	Function	"Move" 			Move-or-Raise
	Function 	"Resize" 		Resize-or-Raise
	Raise   	"Raise"
	Lower   	"Lower"
	Iconify 	"(De)Iconify" 
	Stick		"(Un)Stick"
	Maximize 	"(Un)Maximize"
	Maximize 	"(Un)Maximize Vertical"	0 100
	Nop     	""
	Destroy 	"Destroy"
	Delete  	"Delete"
EndPopup

# A trimmed down version of "Window Ops", good for binding to decorations
Popup "Opciones Win2"
	Function 	"Move" 			Move-or-Raise
	Function  	"Resize" 		Resize-or-Raise
	Raise   	"Raise"
	Lower   	"Lower"
	Iconify 	"Iconify"
	Stick		"(Un)Stick"
	Nop     	""
	Destroy 	"Destroy"
	Delete  	"Delete"
EndPopup

#############################################################################
# One more complex function - couldn't be defined earlier because it used 
# pop-up menus
#
# This creates a motif-ish sticky menu for the title-bar window-ops
# pop-up
# Menu acts like normal twm menu if you just hold the button down,
# but if you click instead, the menu stays up, motif style
Function "window_ops_func"
	PopUp 	"Click"		Opciones Win2
	PopUp	"Motion"	Opciones Win2
# Motif would add
#       Delete  "DoubleClick"  
EndFunction


##############################################################################
# This defines the mouse bindings

# First, for the mouse in the root window
# Button 1 gives the Utilities menu
# Button 2 gives the Window Ops menu
# Button 3 gives the WindowList (like TwmWindows)
# I use the AnyModifier (A) option for the modifier field, so you can hold down
# any shift-control-whatever combination you want!

#     Button	Context Modifi 	Function
Mouse 1		R   	A       PopUp "Principal"
Mouse 2		R    	A      	PopUp "Opciones Win"
Mouse 3		R    	A      	WindowList



# Now the title bar buttons
# Any button in the left title-bar button gives the window ops menu
# Any button in the right title-bar button Iconifies the window
# Any button in the rightmost title-bar button maximizes
# Note the use of "Mouse 0" for AnyButton.

#     Button	Context Modifi 	Function
Mouse 0		1    	A      	Function "window_ops_func"
Mouse 0		2    	A     	Function "maximize_func"
Mouse 0		4    	A     	Iconify

# Now the rest of the frame
# Here I invoke my complex functions for Move-or-lower, Move-or-raise,
# and Resize-or-Raise. 
# Button 1 in the corner pieces, with any modifiers, gives resize or raise
Mouse 1		F	A	Function "Resize-or-Raise"
# Button 1 in the title, sides, or icon, w/ any modifiers, gives move or raise
Mouse 1		TS	A	Function "Move-or-Raise"

# Button 1 in an icons gives move for a drag, de-iconify for a double-click,
# nothing for a single click
# Button 2 in an icon, w/ any modifiers, gives de-iconify

Mouse 1		I	A	Function "Move-or-Iconify"
Mouse 2		I	A	Iconify

# Button 2 in the corners, sides, or title-bar gives the window ops menu
Mouse 2		FST	A	Function "window_ops_func"
# Button 3 anywhere in the decoration (except the title-bar buttons)
# does a raise-lower
Mouse 3		TSIF	A	RaiseLower

# Button 3 in the window, with the Modifier-1 key (usually alt or diamond)
# gives Raise-Lower. Used to use control here, but that interferes with xterm
Mouse 3         W       M       RaiseLower

############################################################################
# Now some keyboard shortcuts.

# Arrow Keys
# press arrow + control anywhere, and scroll by 1 page
Key Left	A	C	Scroll -100 0
Key Right	A	C	Scroll +100 +0
Key Up		A	C	Scroll +0   -100
Key Down	A	C	Scroll +0   +100

# press arrow + meta key, and scroll by 1/10 of a page
Key Left	A	M	Scroll -10 +0
Key Right	A	M	Scroll +10 +0
Key Up		A	M	Scroll +0   -10
Key Down	A	M	Scroll +0   +10

# press shift arrow + control anywhere, and move the pointer by 1% of a page
Key Left	A	SC	CursorMove -1 0
Key Right	A	SC	CursorMove +1 +0
Key Up		A	SC	CursorMove +0   -1
Key Down	A	SC	CursorMove +0   +1

# press shift arrow + meta key, and move the pointer by 1/10 of a page
Key Left	A	SM	CursorMove -10 +0
Key Right	A	SM	CursorMove +10 +0
Key Up		A	SM	CursorMove +0   -10
Key Down	A	SM	CursorMove +0   +10

# Keyboard accelerators
Key F1		A	M	Popup "Utilidades"
Key F1		A	M	Popup "Utilidades"
Key F2		A	M	Popup "Opciones Win"
Key F3		A	M	WindowList
Key F4		A	M	Iconify
Key F5		A	M	Move
Key F6		A	M	Resize
Key F7		A	M	CirculateUp
Key F8		A	M	CirculateDown

#Page Up/Dapge Down keys are used to scroll by one desktop page
# in any context, press page up/down + control
# in root context, just pressing page up/down is OK
# 
# I prefer the non-wrapping scroll. These are for example purposes only
#Key Next	A       C       Scroll 100000 0
#Key Next	R       N       Scroll 100000 0  
#Key Prior	A       C       Scroll -100000 0
#Key Prior	R       N       Scroll -100000 0


############################################################################
############################################################################
#Definitions used by the modules

###################### GoodStuff button-bar ################################
# Colors
*GoodStuffFore Black
*GoodStuffBack #908090

# Font
*GoodStuffFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*

# Geometry - really likes to pick its own size, but giving a position is OK
*GoodStuffGeometry +0+0

# Layout: specify rows or columns, not both
# *GoodStuffColumns 1
*GoodStuffRows 1

# Define the buttons to use.....
*GoodStuff Tamao  arrows2.xpm   Resize
*GoodStuff Mover    map.xpm      Move
*GoodStuff Bajar   arrdown2.xpm  Lower
*GoodStuff Subir   arrup2.xpm    Raise
*GoodStuff Matar    rbomb.xpm    Destroy

# xterm or rxvts on remote machines can be done like this
# Output re-direction is csh style, not sh style
# *GoodStuff Dopey   rterm.xpm   Exec "rxvt" rsh dopey "exec rxvt -display $DISPLAY </dev/null >&/dev/null & "&
# *GoodStuff Grumpy  rterm.xpm   Exec "rxvt" rsh grumpy "exec rxvt -display $DISPLAY </dev/null >&/dev/null & "&
# *GoodStuff Snoopy  rterm.xpm   Exec "rxvt" rsh snoopy "exec rxvt -display $DISPLAY </dev/null >&/dev/null & "&
# *GoodStuff Terminal  rterm.xpm   Exec "Terminal" color_xterm -fn 10x20 -e ksh &
# *GoodStuff Manual  xman.xpm   Exec "Xman" xman -bg black -fg white &
# *GoodStuff Editor  editor.xpm   Exec "Editor" xcoral &

# *GoodStuff Xcalc   rcalc.xpm   Exec "Calculator" exec xcalc &
# *GoodStuff XMag    mag_glass.xpm    Exec "xmag" exec xmag &
# *GoodStuff Mail    mail2.xpm   Exec "xmh" exec xmh &
# *GoodStuff Paging  clamp.xpm   TogglePage

#Buttons for some other desktops.
*GoodStuff Desk-0  desk.xpm    Desk 0 0
*GoodStuff Desk-1  desk.xpm    Desk 0 1
# *GoodStuff Desk-2  desk.xpm    Desk 0 2
# *GoodStuff Desk-3  desk.xpm    Desk 0 3

######################### No Clutter ########################################
# I only wrote NoClutter as a simple test case, but maybe some big sites like
# universities really have usage problems (too many open windows)....
# Time delays are in seconds.
*FvwmNoClutter 3600 Iconify 1
*FvwmNoClutter 86400 Delete
*FvwmNoCLutter 172800 Destroy

########################## Window-Identifier ###############################
# Just choose colors and a fonts
*FvwmIdentifyBack MidnightBlue
*FvwmIdentifyFore Yellow
*FvwmIdentifyFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*

----

Una vez iniciado veras en la parte superior de la pantalla una regleta que
contiene unos iconos, si no te aparacen los iconos es que te faltan los
siguientes directorios :

/usr/include/pixmaps
/usr/lib/xfilemanager/icons
/usr/include/X11/bitmaps/

Buscalos y realiza los simlinks, luego reinicia fvwm.

Volvamos a la regleta, esta te permite, por orden, cambiar el tamao de una
pantalla, desplazarla, permutar ventanas, matar una ventana y su contenido,
primer escritorio y segundo, esto ltimo va con la ventanita que tienes en la
parte inferior derecha de la pantalla. Vamos a fijarnos en ella, vers que 
est divida en nueve secciones una en rosa y dentro de cada seccin cosas
con letras, cada seccin es en realidad una pantalla virtual, posiciona el
cursor en una de ellas, aprieta el botn izquierdo, tu pantalla a cambiado,
esto quiere decir que puedes tener 9 pantallas virtuales por 6 escritorios y
dentro de cada pantalla una miriada de ventanas. Tambien te puedes desplazarte
por las ventanas virtuales mediante el ratn. Todo este entorno es
modificable, un da traducir el fichero .fvwmrc (Palabra). O simplemente
utiliza el xman, busca fvwm y mira lo que tiene.

Mens, 

Posiciona el cursor en el fondo de la pantalla, aprieta el botn izquierdo
del ratn, te aparecer un men desplaza el ratn y vers otros sub-mens,
todo esto esta definido en el fichero .fvwmrc, echale un visu, vale la pena
recrearse un poco y modificarlo.

Toques finales :

Configuracin del kernel.

Como te habrs dado cuenta cuando inicia Linux te da un monton de mensajes
todos en ingls y parece que te est insultando. Tranquilo es que el kernel
por defecto viene con drivers para hard que puede que no tengas, vamos ver 
como modificar el kernel.

Vete al directorio /usr/src/linux, si no existe realiza el comando setup y
carga los disquetes correspondientes a los fuentes de kernel, pero Ya!

Bueno es facil, primer comando :

make config (R)

Empezar a preguntarte cosas tales, quieres que el ordenador te abanique...
vale, no te olvides que cuanto menos le pidas ms memoria te dejar libre,
lo ms importante es :

- si tienes un 486 o un 387, N para la emulacin de copro (desde la versin
  1.1.44 dicen que la propia emulacin del copro es ms rapida que el 487)
- N para soporte de discos XT
- N para el limite de memoria a 16M
- y para system V IPC (recomendado)
- configuracin de la red (si tienes red responde que y a TCP/IP)
- tipo de tarjeta de red (la wd esta en la opcin smc)
- ext2, msdos, HPFS (os2), iso9660 (cdrom), /proc (filesystem obligatorio 
  para el kernel, siempre que utilices la opcion system V IPC)
- impresora paralelo
- sonido (si tienes, aqui no te puedo ayudar mucho, no tengo sound-blaster)
- n al kernel profiling

Si te has equivocado, tranquilo Ctrl-C y vuelta a empezar.

realiza los siguientes comandos :

Si vas a utilizar la impresora paralelo, vete al directorio /usr/src/linux/drivers/char
modifica el fichero lp.c, busca el vector lp_table
    { 0x3bc, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, },
    { 0x378, 7, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, },
       |     |--- irq normalmente 7
       |-- lp0
    { 0x278, 5, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, },
       |     |--- irq normalmente 5
       |-- lp1

Normalmente lp0 = 0x378 y lp1 = 0x278, esto permite usar interrupciones en
lugar de polling, permite un menor uso del procesador cuando se imprime.

OJO, si tienes cambiadas las direcciones o interrupciones de tus puertos
paralelos pon aqu tus valores, los que aparecen en este fichero son los
estndar.

		cd /usr/include
		rm -rf linux
		rm -rf asm
		ln -s /usr/src/linux/include/linux .
		ln -s /usr/src/linux/include/asm .
		cd /usr/src/linux

desde /usr/src/linux
make dep (R) (le cuesta un poco)
En este punto si te salen errores es que te faltan algunos ficheros include,
mira los mdulos que fallan e intenta corregirlos, normalmente no ocurre.
Sera, ms bien, que te ha fallado algn symlink, revisalos con cuidado.
 
make clean (R) (rapido)

make zlilo (R) (si tienes una buena pelicula de video o una rubia... y el 
                /etc/lilo.conf bien configurado)

rdev -R /vmlinuz 1 (R)

sync (R)

reboot (R)

Normalmente el Linux rearranca, y si no lo hace, pues como no hemos hecho un
disquete de boot, te jo...

Fuera bromas, reset y cuando aparecen las letras LILO aprieta (sin miedo) la 
tecla Alt, vers Boot:, aprieta la tecla Tab, te aparecern todas las opciones
que has definido en el lilo.conf, elige :
salva (R) (es el kernel original vmlinuz.old, te dira que no puede chequear la
particin pero pasa de l, entra como root y corrige el kernel. Una cosa,
cuando vuelvas a linkar no copies /vmlinuz a /vmlinuz.old.

Configuraciones varias

Configurar los parametros para las pantallas en X11

A continuacin un pequeo programa (shell y awk) para calcular los parametros
de las pantallas, no es perfecto pero ayuda.

Fichero : res
Path : donde_quieras
----
#!/bin/sh
# res - figure X386 resolutions - rick sladkey

if [ $# -eq 0 ]
then
	cat
else
	echo $*
fi | awk '
{
	if (NF == 2) {
		reloj = $1; hsyncmax = $2

		hflmin = int((reloj*1000/hsyncmax + 4)/8)*8
		hvimin = int((int(0.8*hflmin) + 4)/8)*8
		vvimin = int(0.75*hvimin)
		vflmin = int(1.05*vvimin)
		hfl = hflmin; hvi = hvimin; vfl = vflmin; vvi = vvimin
		refresh = reloj*1e6/(hfl*vfl)
		hdiff = hfl - hvi
		spstd = 3.8*reloj
		spoff = int(((hdiff - spstd)/2 + 4)/8)*8
		sp = hdiff - 2*spoff
		sptime = sp/reloj
		vspstd = int(150/(hfl/reloj))

		printf("Para un reloj a %d MHz y una sinc Horiz.: %g kHz\n", \
			reloj, hsyncmax)
		printf("Longitud mxima de linea horiz.: %d\n", hflmin)
		printf("Longitud linea hor. visible: %d\n", hvimin)
		printf("Longitud mxima linea vert.: %d\n", vflmin)
		printf("Longitud linea vert.visible: %d\n", vvimin)
		printf("Refresco de pantalla : %4.1f Hz\n", refresh)
		printf("Longitud del pulso de sinc. horiz : %d\n", spstd)
		printf("Ticks horiz. de trabajo: %d\n", hdiff)

		printf("Tu tiempo de pulso de sinc.hor.: %4.1f usec\n", sptime)
		printf("Configuracin recomendada:\n")
		printf("%dx%d    %3d", hvi, vvi, reloj);
		printf("  %4d %4d %4d %4d", hvi, hvi + spoff, hfl - spoff, hfl)
		printf("  %4d %4d %4d %4d\n", vvi, vvi, vvi + vspstd, vfl)

		if (sptime < 3.5 || sptime > 4.0)
			printf("Cuidado: Pulso de sincronizacin fuera de rango\n");
		if (spoff < 24)
			printf("Cuidado: Offset de pulso de sincronizacin pequeo\n");
	}
	else if (NF >= 9) {
		if ($1 ~ /^"/) {
			name = "$1"; reloj = $2
			hvi = $3; hss = $4; hse = $5; hfl = $6
			vvi = $7; vss = $8; vse = $9; vfl = $10
		}
		else {
			name = "\"<unnamed>\""; reloj = $1
			hvi = $2; hss = $3; hse = $4; hfl = $5
			vvi = $6; vss = $7; vse = $8; vfl = $9
		}

		printf("Para configuracin %s\n", $0)
		printf("Tiempo de refresco: %4.1f\n", reloj*1e6/(hfl*vfl))
		printf("Sincronizacin horizontal: %4.1f\n", reloj*1000/hfl)
		printf("Tiempo de pulso de sincronizacin: %4.1f usec\n", (hse - hss)/reloj)
		printf("Offset de pulsos de sincronizacin: %d y %d\n", hss - hvi, hfl - hse)
		printf("Tiempo de pulso de sincronizacin vertical: %4.1f usec\n", \
			(vse - vss)*(hfl/reloj))
	} 
	else {
		printf("uso: res reloj hsyncmax\n")
	}
}
'
-----

funciona de varias formas :
1) res reloj sinc_hor
       reloj = unos de los relojes que indica en el Xconfig, seccin clocks,
               este debe ser inferior al bandwith del monitor.
       sinc_hor = la sincronizacin horizontal que indica para la resolucin 
                  que deseas.
2) res
        a continuacin dar reloj sinc_hor, puedes repetir hasta la saciedad. 
        Ctrl-D finaliza.
3) res
        a continuacin reloj y valores de Xconfig, da los valores de 
        sincronizacin y dots de trabajo (corrige lo que has calculado).

Solo tiene un pequeo problema, cuanto ms altos son los valores tiene
tendencia a desvariar hacia la izquierda, se puede corregir, a mano, con los 
valores horizontales, primera seccin despus del reloj.


Estando dentro de una ventana xterm como usuario root (su - ) puedes ejecutar
el programa vgaset (X11R6), sus opciones son :

    l - decrementa el margen izquierdo
    L - incrementa el margen izquierdo
    r - decrementa el margen derecho
    R - incrementa el margen derecho
    h - decrementa el pulso de sincronismo horizontal
    H - incrementa el pulso de sincronismo horizontal
    t - decrementa el margen superior
    T - incrementa el margen superior
    b - decrementa el margen inferior
    B - incrementa el margen inferior
    v - decrementa el pulso de sincronismo vertical
    V - incrementa el pulso de sincronismo vertical
    x - decrementa resolucion-x
    X - incrementa resolucion-x
    y - decrementa resolucion-y
    Y - incrementa resolucion-y
    ? - resetea a los valores originales
    CR - Muestra los valores calculados
    q - salir
    EOT - salir

Cada vez que le das unas opciones te muestra en pantalla ocho nmeros que
sn los numeros que deben estar en tu fichero XF86Config, cuando tengas
configurada correctamente tu pantalla, copias los valores a tu fichero y
la proxima vez que inicies X tu pantalla estar como quieres.

 
Sistema de impresin

Configuracin del printcap



1 .- El Sistema de Impresin de Linux

  NOTA : En este fichero se nombre muchas veces el fichero printcap, es
  el fichero /etc/printcap. Su contenido est muy bien explicado en el
  Printing-HOWTO .

   El sistema de impresin de Linux, y en general de todos los Un*x
  basados en BSD, funciona ( a grandes rasgos ) de la siguiente manera.

   El comando lpr copia el fichero a imprimir en el directorio de spool
  indicado en el fichero printcap ( sd=driectorio-spool ) y crea en
  dicho directorio un fichero de control en el que indica : el fichero (
  del directorio de spool ) a imprimir, el usuario que solicit ese
  servicio de impresin, los parmetros que se le pasaron en la lnea de
  comandos, etc. y ah termina su funcin.

   A continuacin entra en juego un daemon ( una especie de tsr para los
   que venimos del MS-2 ) llamado lpd. Este programa se activa
   periodicamente y comprueba si hay ficheros de control en el
   directorio de spool, y en caso de que los haya realiza las siguientes
   acciones para cada uno de dichos ficheros :

        a) Imprime la pgina de Banner, si esta no se encuentra
        suprimida ( orden sh del fichero printcap ), pasndola a travs
        del filtro de salida si hay alguno definido (orden of del
        fichero printcap ).

        b) Si ( segn el fichero de control ) se indic al comando lpr
        que tena que emplear algn filtro de impresin en concreto (
        p.ej .- lpr -t ) se ejecuta el filtro indicado en la
        correspondiente entrada del fichero printcap.
           Si no se indic ningn filtro al comando lpr, se ejecuta el
        indicado por el parmetro 'if' del fichero printcap.

        c) Cuando se ejecuta el filtro, se redirecciona su entrada
        estandard al fichero a imprimir ( el creado por 'lpr' en el
        directorio de spool ), y su salida estandard a :

                - La entrada estandard del filtro de salida ( si este
                est definido en el fichero printcap ) y la salida de
                dicho filtro al dispositivo de impresin asociado a esta
                impresora ( orden 'lp' del printcap ).

                - Al dispositivo de impresin indicado en el fichero
                printcap.


2.- Los Filtros de Impresin

   Segn la descripcin anterior un filtro de impresin no es ms que un
  programa ( generalmente un script ) que teniendo en su entrada
  estandard un fichero en un formato determinado ( p.ej .- Troff ),
  escribe en su salida estandard los cdigos necesrios para que la
  impresora imprima dicho fichero.

   Facil eh !  ;-))

3.-  Como se Hacen ?

    A no ser que dispongais de una impresora PostScript es muy raro que
   tengas programas que puedan imprimir directamente ficheros en muchos
   de los formatos ms habituales ( troff, dvi, etc... ). Por eso, lo
   que se suele hacer es :

      Para aquellos ficheros para los que tengais programas que lo
    impriman directamente en vuestra impresora, ( p.ej.- dvilj,
    ghostscript, etc ), emplear dichas utilidades.

      Para los dems formatos ( TeX, troff, ... ), convertirlos a un
     formato que podais imprimir lo ms directamente posible, o que os
     guste ms ( DVI, PostScript, etc... ).


4.- Ejemplos

     A continuacin os pongo dos ejemplos de juegos de filtros de
   impresin, el primero emplea el PostScript como formato intermedio,
   por lo que podeis adaptarlo facilmente a cualquiera de las muchas
   impresoras soportadas por el ghostscript, y el segundo ejemplo emplea
   el formato DVI como formato intermedio.

     Ambos ejemplos estn preparados para una impresora HP-Deskjet 5??
   monocromo, aunque no de resultaros muy dificil adaptarlos a vuestra
   impresora en concreto.


5.- Peticiones

     En primer lugar, este texto tiene muchos errores, cosas mal
   explicadas, etc. Enviadme por Net todas las sugerencias y
   correcciones al texto que creais interesantes.

     Si adaptas estos filtros para otras impresoras, haceis otros
   nuevos, los mejorais, etc, mandadme el nuevo juego de filtros ( o las
   diferencias si son pocas ). De forma que podamos ir creando una base
   de datos de filtros de impresin y ponerla a disposicin de todos, de
   forma que los usuarios nuevos no tengan que reinventar la rueda cada
   vez ( aunque en este caso no sea muy dificil de reinventar ;-) ).

6.- Los Ejemplos


  Fichero /etc/printcap

------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----
#
# Copyright (c) 1983 Regents of the University of California.
# All rights reserved.
#
# Redistribution and use in source and binary forms are permitted
# provided that this notice is preserved and that due credit is given
# to the University of California at Berkeley. The name of the University
# may not be used to endorse or promote products derived from this
# software without specific prior written permission. This software
# is provided ``as is'' without express or implied warranty.
#
#   @(#)etc.printcap    5.2 (Berkeley) 5/5/88
#

#   Modificado  5-1-95 por Paco Andrs para incluir los filtros
#   para la impresora HP-Deskjet. Y quitar lo que sobra.
#

#
# HP Deskjet
# Se han aadido los siguientes filtros :
#    lpr #, donde # puede ser :
#   -d  -->  Ficheros DVI
#   -n  -->  Ficheros generados por gtroff
#       -t  -->  Ficheros a procesar por groff ( este ya llama gtroff si es
necesario )
#   -f  -->  Ficheros Postcript
lp|hpdj:\
        :lp=/dev/lp0:\
    :sh:\
        :sd=/usr/spool/lp0:\
        :mx#0:\
        :if=/usr/spool/lp0/hpdjlp:\
    :df=/usr/spool/lp0/filtro.dvi:\
    :nf=/usr/spool/lp0/filtro.gro:\
    :tf=/usr/spool/lp0/filtro.troff:\
    :rf=/usr/spool/lp0/filtro.postcript:\
        :lf=/usr/spool/lp0/hp-log:

------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----
    Tened en cuenta que la lnea :lp=/dev/lp0: le indica al sistema que la
   impresora est conectada a lp0, si la teneis en otro puerto tendreis
   que cambiar esa lnea.


 a ) Con PostScript


    Nota : el parmetro -n es para que el comando echo no mande un
    avance de lnea despus de los digos.

Fichero /usr/spool/lp0/hpdjlp

    Programa la impresora para que use el juego de caracteres 8859-1,
    papel A4, 66 lneas por pgina ( ms o menos el estandard unix ), y
    que acepte los avances de lnea com CR+LF.
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----
#!/bin/bash
echo -ne "\033E\033(0N\033&l26A\033&l66P\033&k2G"
cat
echo -ne "\033E"
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----

Fichero /usr/spool/lp0/filtro.dvi
   Permite imprimir los ficheros dvi en la impresora HP-Deskjet, lo pasa
   primero a Postscript, y luego lo imprime mediante el ghostcript,
   cambiando el parmetro -sDEVICE ( y probablemente la resolucin ) se
   puede indicar otro tipo de impresora.


------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----
#!/bin/bash
cat > /tmp/fich.dvi.$$
/usr/TeX/bin/dvips -q '-f*' < /tmp/fich.dvi.$$ | gs -q -sDEVICE=deskjet -r300
-dNOPAUSE -sPAPERSIZE=a4 -sOutputFile=- -
rm /tmp/fich.dvi.$$
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----


Fichero /usr/spool/lp0/filtro.gro
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----
#!/bin/bash
#           Filtro de impresora para procesar la salida de Troff
 grops -g | gs -q -sDEVICE=deskjet -r300 -dNOPAUSE -sPAPERSIZE=a4 -
sOutputFile=- -
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----


Fichero /usr/spool/lp0/filtro.troff
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----
#!/bin/bash
#           Filtro de impresora para procesar ficheros Troff
/usr/bin/groff -i -mdoc -mm -man | gs -q -sDEVICE=deskjet -r300 -dNOPAUSE -
sPAPERSIZE=a4 -sOutputFile=- -
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----


Fichero /usr/spool/lp0/filtro.postcript
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----
#!/bin/bash
#           Filtro de impresora para procesar ficheros PostCript
gs -q -sDEVICE=deskjet -r300 -dNOPAUSE -sPAPERSIZE=a4 -sOutputFile=- -
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----



  b )  Con DVI

  El fichero /etc/printcap es el mismo que en el caso anterior


Fichero /usr/spool/lp0/hpdjlp

    Programa la impresora para que use el juego de caracteres 8859-1,
    papel A4, 66 lneas por pgina ( ms o menos el estandard unix ), y
    que acepte los avances de lnea com CR+LF.
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----
#!/bin/bash
#
#   Filtro de impresora de caracter general.
#
#

PATH=/usr/spool/lp0:$PATH:/usr/bin:/bin:/usr/local/bin:/usr/TeX/bin
DIR_FILTROS=/usr/spool/lp0     # Directorio en el que se encuentran
                   # los filtros de esta impresora



    echo -ne "\033E\033(0N\033&l26A\033&l66P\033&k2G"
    cat
    echo -ne "\033E"
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----


Fichero /usr/spool/lp0/filtro.dvi
   Permite imprimir los ficheros dvi en la impresora HP-Deskjet,
   emplea el programa dvidj500

------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----
#!/bin/bash
#
#   Filtro de impresora   para los ficheros dvi.
PATH=/usr/spool/lp0:$PATH:/usr/bin:/bin:/usr/local/bin:/usr/TeX/bin
DIR_FILTROS=/usr/spool/lp0     # Directorio en el que se encuentran
                   # los filtros de esta impresora

TEXFONTS=/var/texfonts/pk/HPDeskJet/
export TEXFONTS

  fichero=/tmp/filtro.dvi.$$
  cat > $fichero ;

#echo -ne "\033E"          # Reseteo la impresora por si acaso

# anulo la salida de errores para que lpd no guarde todo el rollo del
# MakeTeXPK
/usr/local/bin/dvidj500   <  $fichero  2> /dev/null

rm $fichero
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----


Fichero /usr/spool/lp0/filtro.gro
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----
#!/bin/bash
#           Filtro de impresora para procesar la salida de Troff
 grodvi  | /usr/spool/lp0/filtro.dvi
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----


Fichero /usr/spool/lp0/filtro.troff
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----
#!/bin/bash
#           Filtro de impresora para procesar ficheros Troff
PATH=/usr/spool/lp0:$PATH:/usr/bin:/bin:/usr/local/bin:/usr/TeX/bin
DIR_FILTROS=/usr/spool/lp0     # Directorio en el que se encuentran
                               # los filtros de esta impresora

TEXFONTS=/var/texfonts/pk/HPDeskJet/
export TEXFONTS


/usr/bin/groff -i -Tdvi -mdoc -mcn -mgm -mgmse -man | $DIR_FILTROS/filtro.dvi
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----


Fichero /usr/spool/lp0/filtro.postcript
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----
#!/bin/bash
#           Filtro de impresora para procesar ficheros PostScript
gs -q -sDEVICE=deskjet -r300 -dNOPAUSE -sPAPERSIZE=a4 -sOutputFile=- -
------Cut--------Cut-------Cut--------Cut---------Cut-------Cut-------Cut----


Otros sistemas dentro de Linux

Emulacin de S.O. SCO, Svr4 y Xenix.

En las nuevas versiones del kernel(desde la versin 1.1.15) no pregunta
si quieres cargar las emulaciones de ELF y COFF, esto es debido a que se
ha cambiado el sistema de ejecucin de estos mdulos. Si quieres ejecutar
programas tales como Oracle, Informix, WordPerfect etc.. que vienen de
S.O. tales como Svr4, SCO o Xenix debers instalar el emulador iBCS.

 Ojo ! el iBCS est en fase BETA como tal hay cosas que no funcionan :

Xenix (a.out): solo los ejecutables creados en memoria modo SMALL
SCO (COFF): solo los ejecutables que no accedan a TCP/IP
Svr4 (ELF): como SCO, aparte que solo funcionan los ejecutables realizados
con librerias shared, los estticos los confunde con SCO (mala lectura del
magic header).

Debes tener un kernel 1.1.29 o superior, busca en los disquetes (Normalmente
en el i), los mdulos ibcs2, instalalos.

Los iBCS es un desarrollo muy reciente, no existe una versin estable, si 
tienes suerte puede que te compile sn problemas y se instale igual. Para 
informacin doy las versiones que me han funcionado con un kernel 1.1.81
(Deberas corregir unos errores en el fichero socksys.c, comentar solo las
lineas donde se produce el error)

ibcs941209.tar.gz         ### fuentes de los iBCS
ibcs-pre1.2-950217.tar.gz ### Este fichero funciona sin problemas con el 
                              kernel 1.2

libc_s-950118.tar.gz      ### Librerias SCO compiladas
sco-libs-940731.tar.gz    ### Fuentes de las librerias SCO
svr4-libs-940731.tar.gz   ### Shared lib para SVR4

para la compilacin :

Destarrear el fichero ibcs*YYMMDD.tar.gz

Editar el fichero CONFIG para habilitar las configuraciones deseadas,
deshabilita solo las opciones de traceo (es un consejo)

make dep
make

crear los siguientes nodos

mknod /dev/socksys c 30 0
ln -s /dev/socksys /dev/nfsd

mknod /dev/inet/arp c 30 2
mknod /dev/inet/icmp c 30 2
mknod /dev/inet/ip c 30 2
mknod /dev/inet/rip c 30 2
mknod /dev/inet/udp c 30 2

mknod /dev/inet/tcp c 30 3

ln -s /dev/null /dev/X0R

mknod /dev/spx c 30 1

En el directorio de los fuentes del iBCS, deberas encontrar un fichero
svr4_lib.DDMMYYYY.tar.gz (o algo asi) destarrealo en el directorio /usr/lib
existe otro fichero para SCO pero que solo incluye fuentes, estos deben ser
compilados en SCO :-( y el resultado copiado a Linux. Si tu licencia lo 
permite puedes copiar las librerias que se encuentran en /shlib del SCO a
un directorio del mismo nombre en Linux. Puedes intentarlo con las librerias
compiladas que se entregan, a mi me funcionan. 

mv iBCS /linux/modules/iBCS.o
insmod iBCS ### esto monta en memoria el modulo de emulacin

vete al directorio donde tengas tus ejecutables y lanzalo, no garantizo un
funcionamiento perfecto pero en ciertos casos sorprende. Seguramente debers
modificar fichero tales como el etc/termcap o el /usr/lib/terminfo

rmmod iBCS ### esto quita de la memoria el mdulo de emulacin

Configuracin de la red :

En este apartado no pienso hacer un curso de de TCP/IP, solo explicar
como he configurado mi Linux para que se conecte con otra maquina via ethernet.

Mi configuracion son dos mquina, 

un 386 (obelix 75.0.0.95)
un 286 (asterix 75.0.0.98)
dos tarjetas WD8013

Linux en el 386 y MS/DOS con PC/TCP en la otra.

Mi dominio : casa.es

Fichero : rc.inet1
Path    : /etc/rc.d

------

#! /bin/sh
#
# rc.inet1	This shell script boots up the base INET system.
#
# Version:	@(#)/etc/rc.d/rc.inet1	1.01	05/27/93
#

HOSTNAME=`cat /etc/HOSTNAME` ### obelix.casa.es

# Loopback o direccion de bsica de TCP/IP
/sbin/ifconfig lo 127.0.0.1     ### Esto es obligatorio en TCP/IP
/sbin/route add -net 127.0.0.0  ### Esto tambien

# Pon tus valores
IPADDR="75.0.0.95"	# Mi direccion IP
NETMASK="255.255.255.0"	# Mascara de red, las tres primeras direcciones a 255
NETWORK="75.0.0.0"	# Mi red local (me he asignado una clase C) solo la
                          primera direccion el resto ceros
BROADCAST="75.0.0.255"	# Mi numero de red con ultima direccion a 255
			# have one. If not, leave blank and edit below.
GATEWAY="75.0.0.95"	# Puente por defecto (mi propia maquina)

/sbin/ifconfig eth0 ${IPADDR} broadcast ${BROADCAST} netmask ${NETMASK} # Esta
                                                                          funciona
# Routado por defecto
/sbin/route add -net ${NETWORK} netmask ${NETMASK} ### Con esto me pregunto a
                                                       mi mismo
/sbin/route add default gw ${GATEWAY} metric 1

# End of rc.inet1

Fichero : rc.inet2
Path    : /etc/rc.d

Este fichero sirve para iniciar ciertos demonios de control de TCP/IP y
NFS

-----
#! /bin/sh
#
# rc.inet2	This shell script boots up the entire INET system.
#		Note, that when this script is used to also fire
#		up any important remote NFS disks (like the /usr
#		distribution), care must be taken to actually
#		have all the needed binaries online _now_ ...
#
# Version:	@(#)/etc/rc.d/rc.inet2	2.18	05/27/93
#
# Author:	Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
#

# Constants.
NET="/usr/sbin"
IN_SERV="lpd"
LPSPOOL="/var/spool/lpd"

/sbin/mount -a -t nfs		# Monta todos los fichero definidos como 
                                  nfs en el /etc/fstab

echo -n "Starting daemons:"
# Demonio de control de entradas en el sistema
if [ -f ${NET}/syslogd ]
then
 echo -n " syslogd"
 ${NET}/syslogd
 echo -n " klogd"
 ${NET}/klogd
fi

# Demonio de control de puertos (Sirve para NFS)
# if [ -f ${NET}/rpc.portmap ]
# then
#  echo -n " portmap"
#  ${NET}/rpc.portmap
# fi

# Demonio para el control del TCP/IP
if [ -f ${NET}/inetd ]
then
 echo -n " inetd"
 ${NET}/inetd
else
 echo "no INETD found.  INET cancelled!"
 exit 1
fi

# Si no tienes servidor de nombres no lo uses
# if [ -f ${NET}/named ]
# then
#  echo -n " named"
#  ${NET}/named
# fi

# Esto lo necesitaras para conexiones remotas a otras redes (Ej: Mosaic)
if [ -f ${NET}/routed ]
then
 echo -n " routed"
 ${NET}/routed -g -s
fi

# Demonio para control de conexiones remotas (no se usa)
# if [ -f ${NET}/rwhod ]
# then
#  echo -n " rwhod"
#  ${NET}/rwhod -t -s
# fi

# Agente de control de correo (no lo uses, si no tienes correo)
# if [ -f XXX/usr/lib/umail/umail ]
# then
#  echo -n " umail"
#  /usr/lib/umail/umail -d7 -bd </dev/null >/dev/null 2>&1 &
# fi

# Otros demonios (Ej: lpd)
for server in ${IN_SERV}
do
 if [ -f ${NET}/${server} ]
 then
  echo -n " ${server}"
  ${NET}/${server}
 fi
done

# # Descomenta estos demonios si quieres usar NFS
# if [ -f ${NET}/rpc.portmap ]
# then
#  if [ -f ${NET}/rpc.ugidd ]
#  then
#   echo -n " ugidd"
#   ${NET}/rpc.ugidd -d
#  fi
#  if [ -f ${NET}/rpc.mountd ]
#  then
#   echo -n " mountd"
#   ${NET}/rpc.mountd
#  fi
#  if [ -f ${NET}/rpc.nfsd ]
#  then
#   echo -n " nfsd"
#   ${NET}/rpc.nfsd
#  fi
#  # Fire up the PC-NFS daemon(s).
#  if [ -f ${NET}/rpc.pcnfsd ]
#  then
#   echo -n " pcnfsd"
#   ${NET}/rpc.pcnfsd ${LPSPOOL}
#  fi
#  if [ -f ${NET}/rpc.bwnfsd ]
#  then
#   echo -n " bwnfsd"
#   ${NET}/rpc.bwnfsd ${LPSPOOL}
#  fi
# fi

echo

# Done!

-----

Para comprobar si funciona

ping localhost
Este comando te mostrara si pierde paquetes o no a nivel bsico de comunicaciones

ping nombre_de_tu_maquina
Este comando te mostrara si pierde paquetes o no a nivel de las primeras capas
del TCP/IP

ping nombre_de_la_maquina_remota
Este comando te mostrara si pierde paquetes o no a nivel de todas las capas
del TCP/IP

Si pierdes paquetes a nivel de localhost :

- mal configurado el kernel

Si pierdes paquetes a nivel de tu maquina :

- mal configurado tu TCP/IP, revisa tus ficheros rc1.inet rc2.inet

Si pierdes paquetes a nivel de tu maquina remota

- Revisa los drivers del kernel (usr/src/linux/drivers/net/CONFIG)
- Revisa el cableado
- Revisa la maquina remota


Configuracin de NFS

NFS o servidor de filesystems, este es un invento de SUN para compartir
filesystems es una red, puedes encontrar filesystems servidos incluso en
Internet. La parte de TCP/IP esta explicada en el fichero /etc/rc.inet2. En
este apartado solo veremos el fichero /etc/export y la orden mount.

El fichero /etc/exports permite indicar al servidor NFS que filesystems se
pueden "exportar", es decir podran ser montados por maquinas remotas.

Fichero : exports
Path    : /etc

-----

/home	(rw, insecure, root_squash)

-----

Con esto :

Permito montar remotamente mi directorio /home, en modo lectura escritura (rw),
cualquiera puede montarlo (insecure), mapeo el uid 0 a uid NOBODY_UID (root_squash).

Es sencillo.

Para montar un filesystem exportado por otra maquina :

mount -t nfs nombre_maquina:/directorio /punto_de_montaje

Tambin es sencillo.


CONFIGURACION DE LA TARJETA DE SONIDO
-------------------------------------

Voy a tratar de explicar los pasos que segu para configurar mi tarjeta de
sonido u usarla desde Linux, en mi caso particular era una Sound Blaster 16,
pero salvo minimas variaciones, en general el procedimiento es el mismo para
todas las marcas (... bueno, eso espero ;-) )

Primero veamos una breve introduccin a lo que son las tarjetas de sonido y
que es lo que pueden hacer.

Muestreo digital.- Una tarjeta de sonido bsica es un conversor digital 
analgico (D/A tambin conocido como DAC), capaz de traducir valores 
digitales a seal analgica. Llamaremos frecuencia de muestreo al nmero de
valores digitales obtenidos por unidad de tiempo en el muestreo de la seal
analgica. Este valor (frecuencia de muestreo) es esencial en la calidad de
sonido que queremos obtener, mayor nmero de muestras, mayor calidad, pero 
necesitaremos ms memoria. Por ejemplo, con 8 bits y 8000 muestras/seg se
obtiene una calidad similar a la de la red telefnica conmutada, mientras
que 16 bits y 44100 muestras/seg se obtiene calidad equivalente a un CD.

Sintesis FM.-Esta tcnica consiste en generar la seal deseada a base de
combinaciones de ondas preestablecidas. La tarjeta es capaz de producir un
determinado nmero de 'voces' a la vez, cada una de las cuales est
compuesta por una serie de seales. La idea bsica es usar generadores de
onda simple (triangular, senoidal..etc) de diferentes frecuencias y
amplitudes y modular estas para obtener el sonido deseado.
Este mtodo tiene la ventaja de que es relativamente fcil de realizar por
hardware y carga muy poco a la CPU, pero tiene la desventaja de que los
sonidos obtenidos no son demasiado reales.

Sintesis por tabla.-Esta tcnica combina las ventajas del muestreo con la de
la sintesis FM, en lugar de generar 'voces' mediante osciladores sencillos y
modularlos, las voces se generan con sonidos pre-muestreados, que igualmente
pueden ser modulados para obtener los efectos deseados.
Esta tcnica es la que mejor resultado obtiene, siendo un compromiso entre
el mustreo y su gran consumo de recursos y la sntesis de FM, con su
simplicdad y baja carga de CPU. Esto los usa la GUS y la AWE 32 de Creative.

MIDI.-Es el acrnimo de Musical Instrument Digital Interface, realmente es
un protocolo para comunicacin con y entre instrumentos. Un fichero MIDI no
contiene sonido, sino las ordenes a dar a los instrumentos para que realizen
los sonidos deseados. Las tarjetas modernas llevan un emulador MIDI que
permite generar sonidos segn esas rdenes y un puerto MIDI para el caso de
que realmente poseamos los instrumentos y queramos conectarnos.


Una vez visto los tipos bsicos de generacin de sonido, vamos a el asunto
que realmente nos interesa, ;-) configurar el invento:

Para poder usar nuestra tarjeta de sonido en Linux hemos de realizar los
siguientes pasos:

1.-Instalar la tarjeta.
2.-Configurar el nucleo y crear los ficheros de dispositivo.
3.-Comprobar que todo funciona.

El paso 1 no lo vamos a tratar aqu, se supone que somos capaces, o ya
tenemos instalada la tarjeta de sonido.

As que pasemos al segundo paso...

-Configuracin del ncleo.
 -------------------------

El uso de la tarjeta de sonido en Linux, se realiza a travs de los drivers
VoxWare, estos vienen junto a los fuentes del ncleo a partir de la versin
0.99pl14.

Lo primero que hemos de hacer es recompilar el ncleo indicndole que
incluya los drivers de sonido.

Al ejecutar 'make config' a la pregunta

	Sound card support (CONFIG_SOUND) [n] y

Contestamos que si (y), siguen otras preguntas, hasta que al final nos
aparece una serie de mensajes de los drivers de sonido.

Ahora comienzan una serie de preguntas:

	Do you want to include full version of the sound driver (n/y) ? n

Aqu decimos que no. Si contestamos que si, instalar los divers de todas
las tarjetas SB,GUS..etc, y hay algunos incompatibles entre si, por lo que ms
adelante nos dar error. As que contestamos N

	Do you want to DISABLE the Sound Driver (n/y) ?n

Si decimos que si a esta pregunta, incluir los drivers en el nucleo, pero
estarn deshabilitados, por lo que habr que habilitarlos a mano, as que le
decimos que N

Ahora viene la seleccin de la(s) tarjetas que tenemos

	  ProAudioSpectrum 16 support (n/y) ? n
	  SoundBlaster support (n/y) ? y

	The following cards should work with any other cards.
	CAUTION! Don't enable MPU-401 if you don't have it.
	  Gravis Ultrasound support (n/y) ? n
	  MPU-401 support (NOT for SB16) (n/y) ? n
	  6850 UART Midi support (n/y) ? n
	  Microsoft Sound System support (n/y) ? n

En mi caso tengo una SB16, as que digo que Y a SoundBlaster support.

Segn la tarjeta seleccionada vienen ahora preguntas particulares de esta.
Para la SoundBlaster:

	Select one or more of the following options
	  SoundBlaster Pro support (y/n) ? n
	  SoundBlaster 16 support (y/n) ? y
	  /dev/dsp and /dev/audio support (_recommended_) (y/n) ? y
	  MIDI interface support (y/n) ? y
	  FM synthesizer (YM3812/OPL-3) support (y/n) ? y

Como tengo una SB16, contesto Y a la segunda. Las dems son los formatos y
tipos de generacin de sonido. Aqu tambin depende de la tarjeta que
tengamos y de las formas de generacin de sonido que dispongan.

Ahora vienen preguntas sobre la configuracin hardware de la tarjeta, IRQ,
DMA..etc, los valores que aparecen son los que vienen por defecto, que son
los que yo uso, pero para cada caso particular comprobar los puentes en la
propia tarjeta, o si es una soundblaster usar el programa DOS 'sb16test.exe'
que nos mostrar la configuracin real de la tarjeta.

	I/O base for SB?
	The factory default is 220
	Enter the SB I/O base: 220
	SB I/O base set to 220

	IRQ number for SoundBlaster?
	The IRQ address is defined by the jumpers on your card.
	The factory default is either 5 or 7 (depending on the model).
	Valid values are 9(=2), 5, 7 and 10.
	Enter the value: 5
	SoundBlaster IRQ set to 5

	DMA channel for SoundBlaster?
	For SB 1.0, 1.5 and 2.0 this MUST be 1
	SB Pro supports DMA channels 0, 1 and 3 (jumper)
	For SB16 give the 8 bit DMA# here
	The default value is 1
	Enter the value: 1
	SoundBlaster DMA set to 1

	16 bit DMA channel for SoundBlaster 16?
	Possible values are 5, 6 or 7
	The default value is 6
	Enter the value: 5
	SoundBlaster DMA set to 5

	I/O base for SB16 Midi?
	Possible values are 300 and 330
	The factory default is 330
	Enter the SB16 Midi I/O base: 330
	SB16 Midi I/O base set to 330
 
	Select the DMA buffer size (4096, 16384, 32768 or 65536 bytes)
	32768 is recommended value for this configuration.
	Enter the value: 32768

	The DMA buffer size set to 32768
	The sound driver is now configured.

Hecho todo esto, se sigue con el procedimiento habitual de recompilacin del
ncleo.

El siguiente paso, cuando arranquemos con el nucleo generado con los drivers
de sonido.

-Creacin de los ficheros de dispositivo
 ---------------------------------------

Ya hemos arrancado con el nucleo recin compilado, ahora hemos de crear los
ficheros de dispositivo que nos permitirn acceder a la tarjeta de sonido.

Existen dos formas de hacerlo, a mano, o usando un 'shell script'. La forma
ms cmoda es la segunda, y el programa 'soundinstall' es el siguiente:

>------------------------------------------------------------------------
#!/bin/sh
#
#	soundinstall		
#
#
# Create the devices
#
#	Mixer devices
#
if [ -e /dev/mixer ]; then 
	rm -f /dev/mixer 
fi
 
mknod -m 666 /dev/mixer c 14 0
if [ -e /dev/mixer1 ]; then 
	rm -f /dev/mixer1 
fi
mknod -m 666 /dev/mixer1 c 14 16


#	Sequencer	(14, 1)
#
if [ -e /dev/sequencer ]; then
	rm -f /dev/sequencer
fi
mknod -m 666 /dev/sequencer c 14 1

if [ -e /dev/patmgr0 ]; then
	rm -f /dev/patmgr0
fi
mknod -m 666 /dev/patmgr0 c 14 17
if [ -e /dev/patmgr1 ]; then
	rm -f /dev/patmgr1
fi
mknod -m 666 /dev/patmgr1 c 14 33

#	Midi devices
#
if [ -e /dev/midi ]; then
	rm -f /dev/midi		# Old name. Don't use it
fi
#
#	DSP		(14, 3)
#
if [ -e /dev/dsp ]; then
	rm -f /dev/dsp
fi
mknod -m 666 /dev/dsp c 14 3
#
#	SPARC compatible /dev/audio	(14, 4)	
#
if [ -e /dev/audio ]; then
	rm -f /dev/audio
fi
mknod -m 666 /dev/audio c 14 4
#
#	DSP1		(14, 19) /dev/dsp for the second soundcard.
#				Also the SB emulation part of the
#				PAS16 card.
#
if [ -e /dev/dsp1 ]; then
	rm -f /dev/dsp1
fi
mknod -m 666 /dev/dsp1 c 14 19
#
#	SPARC audio1	(14, 20) 
#				/dev/audio for the second soundcard.
#				Also the SB emulation part of the
#				PAS16 card.
#
if [ -e /dev/audio1 ]; then
	rm -f /dev/audio1
fi
mknod -m 666 /dev/audio1 c 14 20
#
#	/dev/sndstat	(14,6)	For debugging purposes
#
if [ -e /dev/sndstat ]; then
	rm -f /dev/sndstat
fi
mknod -m 666 /dev/sndstat c 14 6
exit 0
>------------------------------------------------------------------------

Este programa podemos copiarlo donde queramos, solo hay que ejecutarlo como
'root' y ya est, luego se puede borrar.

Al ejecutarlo nos crea los dispositivos:

/dev/audio     Dispositivo de audio compatible con las estaciones Sun (L/E)
/dev/dsp       Dispositivo de muestreo digital (L/E)
/dev/mixer     Mezclador (L/E)
/dev/sequencer Acceso a MIDI y FM (L/E)
/dev/sndstat   Estado de las drivers (L)
/dev/audio1    Como /dev/audio, pero para una segunda tarjeta
/dev/dsp1      ......
.
.


El procedimiento 'manual' es mediante el uso del comando mknod. Los
dispositivos arriba mencionados se crean de la forma:

	mknod -m 666 /dev/audio c 14 4
	mknod -m 666 /dev/dsp c 14 3
	mknod -m 666 /dev/midi c 14 2
	mknod -m 666 /dev/sequencer c 14 1
	mknod -m 666 /dev/mixer c 14 0
	mknod -m 666 /dev/sndstat c 14 6
	mknod -m 666 /dev/audio1 c 14 20
	mknod -m 666 /dev/mixer1 c 14 16
	mknod -m 666 /dev/dsp1 c 14 19

-Prueba de funcionamiento
 ------------------------

Lo primero que hemos de notar es que al arrancar el Linux nos aparecen unos
mensajes de la forma:

	snd2: <SoundBlaster 16> at 0x220 irq 5 drq 1
	snd1: <Yamaha OPL-3 FM> at 0x388 irq 0 drq 0

Esto nos indica que el ncleo al arrancar ha reconocido y configurado
nuestra tarjeta.

Para obtener una informacin del estado de los drivers, leemos
/dev/sndstat, por ejemplo de la forma

	cat /dev/sndstat

Si obtenemos el mensaje (/dev/sndstat: No such file or directory), eso es
porque los drivers no estn correctamente instalados.
Si todo funciona bien obtendremos (almenos en mi caso):

>---------------------------------------------------------------
Sound Driver:2.90-2 (Sun Mar 26 16:46:56 GMT+0100 1995 root@pantaleon.es)
Config options: 35c02

Installed drivers: 
Type 1: OPL-2/OPL-3 FM
Type 2: SoundBlaster
Type 6: SoundBlaster16
Type 7: SB16 MIDI


Card config: 
SoundBlaster at 0x220 irq 5 drq 1
SoundBlaster16 at 0x220 irq 5 drq 5
SB16 MIDI at 0x330 irq 5 drq 0
OPL-2/OPL-3 FM at 0x388 irq 0 drq 0

PCM devices:
0: SoundBlaster 16 4.5

Synth devices:
0: Yamaha OPL-3

Midi devices:
0: SoundBlaster 16 Midi

MIDI Timers:
0: System Timer

1 mixer(s) installed
>------------------------------------------------------------------------

Otra prueba muy sencilla consiste en enviar un fichero de sonido con formato
.au a /dev/audio. 

	cat english.au > /dev/audio

Deberemos de oirlo por los altavoces.

Y a la inversa, si temenos un microfono convenientemente conectado a la
tarjeta, podemos grabar de la forma:

	dd bs=8k count=4 < /dev/audio > sample.au
        
Y escucharlo

        cat sample.au > /dev/audio


Con todo esto, ya tenemos configurada la tarjeta de sonido para usarla sin
problemas desde Linux, ahora solo falta conseguir programas que la usen.


De momento esto es todo, quiz cabria ampliar esto con una descripcin de
formatos de ficheros de sonido, lista de utilidades..etc.... todo se andar
;-) de momento espero que este pequeo rollo sea til para alguien.

Eduardo

FidoNet   2:346/207.8
SubNet    2:346/101.2
Internet  elluna@aii.upv.es



Uffff, :-(

Bueno s'acabo, que te sea util.

bye

Manu  

sub-clase ( si no lo sabias, quitate un punto)

Un poco de biblio.

Lecturas recomendadas para las largas noches de invierno :

Spanish

UNIX sistema V Versin 4 (Rose, Rosinski, Farber)
MCGraw Hill (ISBN 84-7615-631-)
Buen manual de usuario de SVr4, Linux recoje todas las funciones SVr4.

UNIX sistema V Versin 4 manual de referencia (Coffin)
MCGraw Hill (ISBN 84-7615-786-X)
Buen manual de referencia de SVr4, Linux recoje todas las funciones SVr4.

APLIQUE X Window (Reiss, Radin)
MCGraw Hill (ISBN 84-481-0093-X
Programacin a nivel de la libreria Xt, introduce conceptos bsicos de X y
Motif.

Programacin y Aplicaciones X Window (Eric F.Johnson, Kevin Reichard)
RaMa (ISBN 84-7897-065-7) 
Programacin con las librerias X, empieza con llamadas a bajo nivel para
terminar con la Xt y Xaw, muy bueno para principiantes. Se aconseja buen nivel
de C y Unix. (Viene con disquete de ejemplos)

HARLEYS (Mark Williams)
LIBSA (ISBN 84-7630-278-0) No tiene nada que ver pero las fotos son una pasada.

Ingls

Xlib Programing Manual Vol I, Xlib reference manual Vol II (Nye, Adrian)
O'Reilly ISBN 0-937175-26-9, 0-937175-27-7

MOTIF, programing in the X Window System Environment (William A.Parrete)
ITDC ISBN 0-07-031723-2
Programacin con la Xm (Motif)

Motif Programing Manual, (Dan Heller)
O'Reilly ISBN 0-937175-70-6
La Biblia de Motif.

Si este fichero os ha servido de ayuda podeis hacer 2 cosas :

enviar un mail 2:346/207.14 con felicitaciones o criticas (ligeras)

enviar una postal a

M.Soriano
C/Bernat y Baldovi, 14b
46420 El Perell/Valencia

Han colaborado, voluntariamente o no


Jose Luis Sanchez 2:346/7.17, ftpero oficial de Valencia

Dami Soler Estrela 2:346/7.11, slip y ppp (ifmail, cuando se decida)

Antonio Sanchez Fernandez 2:346/7.42, Rawrite

Carlos Casares 2:344/4.35, cuyos problemas con el dosemu me han empujado ha
                           instalarlo, la verdad no me arrepiento

Eduardo Lluna Gil 2:346/7.8 Configuracin tarjetas de sonido

Paco Andrs 2:346/3.0, configuracin del printcap

Otros ms que sin querer me han dado soluciones que espero haber resumido
en este tocho.

Bye

Manu
-----------------------------------------------------------------------------
Manuel Soriano                                                           ,--^, 
                                                                   _ ___/ /|/  
Fido 2:346/207.14                                                ,;'( )__, ) '   
                                                              ;;  //   L__.    
email:                                                        '   \    /  '    
m.soriano@p14.europa3.encomix.com                                      ^   ^       
------------------------------------------------------------------------------

