6. Configuración y uso de algunos dispositivos y servicios

6.1. Reconocimiento de hardware durante el arranque

Durante el arranque el kernel detecta hardware usando diversos controladores en cierto orden. El orden y los controladores que se usen dependen de la configuración que se haya dado al kernel al compilarlo. El orden típico configurado en el kernel genérico es:

  • Procesador, Memoria, BIOS

  • Discos duros, CDROM y unidades de disquete

  • Buses, Teclado, Dispositivos ISA

  • Puertos paralelos y seriales

  • Dispositivos ISA plug and play

La configuración de la mayoría de estos dispositivos puede ser determinada por el controlador, pero con algunos dispositivos (e.g ISA, ciertos teclados) el kernel incluye valores predeterminados que en algunos casos pueden no corresponder al hardware o que por la forma de detectar congelan el sistema completo. En tal caso, determine los recursos que el dispositivo tiene configurados con jumpers o con software (e.g IRQ, dirección de entrada salida base, DMA) y modifique los valores que emplea el kernel de una de estas formas (en un caso extremo puede tener que deshabilitar el dispositivo):

  • Arranque con boot -c y cambie parámetros usados por los controladores antes de continuar con la detección automática de hardware. El cambio sólo durará mientras no reinicie el sistema, puede hacer el cambio durable por ejemplo con el comando: config -u.

  • Después de que su sistema haya iniciado modifique los recursos asignados por defecto del kernel con config -e -o /bsd.new /bsd.

  • Recompile el kernel con una configuración apropiada.

6.1.1. Modificación antes de arrancar

Al arrancar, cuando esté en el prompt boot>, inicie con:

	    boot> boot -c
	  

Así entrará a un entorno interactivo, que le permite cambiar la asignación de recursos predeterminada para algunos dispositivos. Por ejemplo si tiene una tarjeta de red compatible NE2000 con dirección base 0x300 e IRQ 3, el controlador ne la asignará la interfaz ne1 que por defecto usa la dirección base 0x300 pero la IRQ 10. Desde el prompt que boot -c produce ingrese:

	    UKC> change ne1
	  

puede ver otros comandos disponibles con el comando help. Una vez complete la configuración salga del entorno interactivo con quit, tras esto el kernel continuara la detección pero usando los cambios que haya hecho.

Una vez haya configurado los recursos que un controlador emplea para que correspondan a los de un dispositivo y que su sistema esté operando, puede hacer el cambio permanente usando:

	sudo config -e -o /bsd.ne1 -u /bsd
	  

que le permitirá al mismo entorno interactivo, que procurará detectar los cambios que usted haya podido hacer durante el arranque, le permitirá completarlos y cuando salga (con quit) escribirá un nuevo kernel /bsd.ne1 con la misma configuración de /bsd pero con sus cambios aplicados.

Si no logra configurar algún dispositivo y esto hace que el sistema completo se congele durante el arranque, puede requerir deshabilitar el dispositivo (situación que es muy inusual).

6.1.2. Lecturas recomendadas

  • Página del manual unix de autoconf(8). autoconf determina el orden y los controladores que se usan para la detección automática de hardware.

  • Página del manual unix de boot_config() y de 8() donde se describen los comandos aceptados por el entorno interactivo de configuración de dispositivos.

  • Puede encontrar más sobre la secuencia de arranque de OpenBSD por ejemplo en http://dhobsd.pasosdeJesus.org/pres21abr2005/

6.2. Impresión

Para atender trabajos de impresión hay disponibles para Unix varios sistemas: lpd, LPRng, CUPS, QPD. El más popular y el incluido en la distribución básica de OpenBSD es lpd que además de poder llevar cuentas de cada usuario, permite a varios computadores en red compartir una misma impresora.

6.2.1. Uso de una impresora ya configurada

Aun cuando algunos programas ofrecen menús con una opción para imprimir, prácticamente todos usan en últimas el programa lpr (o /usr/local/bin/lpr si está usando CUPS) que se encarga de poner la información que debe enviarse a la impresora en una cola de trabajos pendientes [13], que es atendida automáticamente (i.e de ella se envían trabajos pendientes cuando la impresora está disponible) por un programa.

Cada impresora configurada tiene un nombre, la impresora por defecto se llama lp [14].

Posiblemente su sistema esté configurado para permitir a lpr la impresión de textos planos y documentos PostScript o PDF. Para programar la impresión de un texto plano con nombre tarea.txt en la impresora por defecto, puede emplear:

      lpr tarea.txt
    

o eventualmente para especificar una impresora diferente a lp, digamos imp2 use la opción -P:

      lpr -Pimp2 tarea.txt
    

Puede examinar la cola de sus impresiones pendientes con lpq que junto con los nombres de las impresiones pendientes presentará un número que la identifica. Tal número le permitirá cancelar una de sus tareas de impresión pendiente, usándolo como parámetro de lprm.

Para imprimir gráficas y documentos con diversos tipos de letra o colores, primero debe convertirse la información a secuencias de control particulares de su impresora. Cómo de una impresora a otra varían los secuencias de control, en sistemas tipo Unix con LPD suele emplearse PostScript (que es un lenguaje apropiado para documentos por imprimir) como formato común y se usan los filtros del programa Ghostscript para traducir de PostScript al formato particular de su impresora [15]. Si se usa CUPS es posible emplear controladores particulares para su impresora y no depender de Ghostscript.

Ghostscript es un programa que puede leer documentos PostScript y PDF [16] y presentarlos en una ventana de X-Window o transformarlos al lenguaje particular de algunas impresoras. Por ejemplo para generar a partir de un documento PostScript s2.ps la secuencia de caracteres apropiada para una impresora LaserJet en el archivo s2.lj se usaría:

	gs -sDEVICE=laserjet -sOutputFile=s2.lj s2.ps -c quit       
      

O para imprimir directamente usando lpr, en lugar de s2.lj puede usar -sOutputFile=\|lpr. Puede experimentar con este intérprete tecleando gs y por ejemplo ingresando la siguiente secuencia de instrucciones en lenguaje PostScript:

	100 100
	moveto
	200 200
	lineto
	stroke
      

Para visualizar un documento PostScript o PDF puede emplear el programa gv ---el cual se apoya en Ghostscript--- por ejemplo:

	gv micarta.ps
    

mostrará el documento PostScript micarta.ps en una ventana de X-Window y con menús le permitirá consultarlo e imprimirlo.

Para imprimir y hacer transformaciones a un PostScript (por ejemplo 2 páginas en una sola), o para convertir de otros formatos a PostScript puede emplear el programa a2ps:

	a2ps --columns=2 -o micarta-2.ps micarta.ps
      

o mpage:

	mpage -2 micarta.ps > micarta-2.ps
      

Además de los programas a2ps y del paquete psutils es posible modificar directamente un archivo PostScript. Por ejemplo siguiendo las indicaciones de http://www.ghostscript.com/pipermail/bug-gs/2001-August/000641.html, resulta posible rotar una página, editando el archivo y en la sección %%%BeginPageSetup agregando después de establecer tamaño de página, e.g. 595 842 /a4 setpagesize:

	currentpagedevice /PageSize get aload pop translate
	180 rotate
    

Tanto PostScript como PDF requieren bastante espacio para describir un documento, usualmente los documentos PDF requieren menos porque mantienen la información comprimida. Para convertir entre PostScript y PDF se emplean ps2pdf y pdf2ps [17]. Para visualizar e imprimir un PDF, además de gv, puede emplear xpdf o el programa Acrobat Reader (acroread).

6.2.2. Configuración de una impresora local con lpd

lpd (también llamado Berkeley line printer spooling system) es un sistema que maneja una cola de impresión por cada impresora configurada, filtros para convertir información de diversos tipos (e.g PostScript y PDF) al lenguaje particular de cada impresora así como filtros de cuentas que permiten monitorear y controlar el uso de cada impresora por parte de cada usuario. LPD recibe y procesa solicitudes de impresión realizadas por programas cliente e imprime la información de las colas en los dispositivo configurados para cada cola (e.g /dev/lpt0 o enviando por red a una impresora remota).

En OpenBSD lpd debe activarse durante el arranque, agregando en /etc/rc.conf.local la línea:

	lpd_flags="" 

su archivo de configuración principal es /etc/printcap el cual es leído cada vez que lpd inicia y donde se configura cada cola de impresión, el dispositivo asociado a cada una y sus parámetros, los filtros para los diversos tipos de información que puede imprimir y filtros de cuentas.

lpd es un servidor TCP/IP que imprime trabajos pendientes en las colas de impresoras locales (sólo modificables con programas clientes) y que atiende conexiones de clientes que emplean el protocolo LPD en el puerto TCP 515. La conexión normalmente la realiza un programa cliente como lpr, lpq, lprm o lpc que pueden solicitar una de las siguientes operaciones:

  • Revisar trabajos en cola de una impresora.

  • Recibir y poner en cola de una impresora un trabajo de otra máquina.

  • Listado corto del estado de los trabajos de un usuario en la cola de una impresora.

  • Listado largo del estado de los trabajos de un usuario en la cola de una impresora.

  • Eliminar trabajos de un usuario de la cola de una impresora

lpd envía errores a la bitácora /var/log/lpd-errs.

Además de esta documentación puede consultar más sobre la configuración de lpd en [FreeBSDHandBook] y [OpenBSDlpd]

La mayoría de impresoras se conectan al puerto paralelo (por ejemplo utilizables con dispositivos /dev/lpt0 o /dev/lpt1). Puede probar que su impresora funciona enviando una cadena sencilla al puerto apropiado por ejemplo echo "Hola" >/dev/lpt0 o lptest > /dev/lpt0.

El siguiente es un ejemplo del archivo /etc/printcap:

	  lp|local line printer:\
	  :lp=/dev/lpt0:sd=/var/spool/output:lf=/var/log/lpd-errs:
	

que configura una impresora local para textos llamada lp o local line printer. Está conectada a /dev/lpt0, la cola de impresión la mantiene en /var/spool/output y envia errores a /var/log/lpd-errs. Para configurar impresoras que puedan imprimir gráficas (así como PostScript con diversos tipos de letra) debe emplear un filtro del programa Ghostscript.

6.2.3. CUPS

6.2.3.1. Instalación

Hay un paquete de CUPS entre los portes oficiales de OpenBSD 5.6. Una vez instalado puede ejecutarlo con

	sudo cupsd
	

Para que en cada arranque se ejecute automáticamente, se recomienda agregar en rc.local:

	if (test -x /usr/local/sbin/cupsd) then {
		echo -n ' cupsd';
		/usr/local/sbin/cupsd;
	} fi;
	

La distribución estándar de cups incluye unos pocos archivos ppd, así que posiblemente tendrá que generar o conseguir los apropiados para su impresora con foomatic (ver Sección 6.2.4, “foomatic”).

6.2.3.2. Configuración

La configuración de CUPS (por ejemplo para añadir una impresora) puede hacerse con facilidad una vez esté ejecutándose el servidor, usando un navegador y abriendo en la máquina donde corre CUPS el puerto 631, por ejemplo http://127.0.0.1:631. Para hacer labores administrativas ingrese con la identificación y la clave de un usuario que esté en el grupo sys o por la cuenta root.

También es recomendable que cree un directorio:

	sudo mkdir /var/spool/cups/tmp
	sudo chown _cups:_cups /var/spool/cups/tmp/
	

Si tiene problemas al instalar/usar una impresora puede consultar el archivo de errores de cups en: /usr/local/var/log/cups/error_log.

6.2.3.3. Utilización de CUPS

El paquete de cups cuenta con programas análogos a los de LPD, pero ubicados en /usr/local/bin. Diversos programas emplearan el comandos lpr para hacer impresiones, así que tiene dos opciones:

  • Ejecutar cups-enable que remplazará los ejecutables relacionados con impresión de /usr/ con los de CUPS disponibles en /usr/local/.

  • Configurar cada programa para que en lugar de emplear /usr/bin/lpr utilice /usr/local/bin/lpr. Por ejemplo así debe configurar xpdf.

6.2.4. foomatic

foomatic ofrece gran cantidad de controladores para una variada gama de impresoras, estos controladores e instrucciones para impresoras particulares están disponibles en http://www.openprinting.org Es posible emplearlos bien con lpr o bien con cups.

6.2.4.1. Foomatic con LPR

Si la impresora está impresora está conectada a /dev/lpt0 basta que agregue a /etc/printcap una entrada como:

lp|local line printer:\
	:lp=/dev/lpt0:\
        :af=/etc/foomatic/laserjet6p.ppd:\
        :if=/usr/local/bin/foomatic-rip:\
        :sd=/var/spool/lpd:\
        :lf=/var/log/lpd-errs:\
        :mx#0:sh:

6.2.4.2. Foomatic con CUPS

Cada archivo ppd que descargue debe ubicarlo en: /usr/local/share/cups/model/. Después de agregar archivos en ese directorio reinicie CUPS para que lea nuevamente sus archivos de configuración con:

# pkill -HUP cupsd
			  

6.3. Discos duros

6.3.1. Particiones

Hay dos niveles de particiones: (1) del BIOS y (2) particulares de OpenBSD. Las primeras se configuran con fdisk y las segundas se crean dentro de las primeras con disklabel.

6.3.2. Sistema de archivos ffs

Un sistema de archivos ffs sólo puede crearse en una partición identificada con disklabel. Como se explica en [FFS], consta de:

  • Un superbloque con los parámetros básicos del sistema de archivos (e.g tamaño de cada bloque, lista de grupos de cilindros) y con los parámetros del hardware que afectan el desempeño[18] (tipo de transferencia de disco a memoria, tiempo esperado por transferencia, bloques por pista, velocidad de rotación).

  • Copias de seguridad del superbloque en diversos bloques del disco.

  • Archivos, algunos de los cuales pueden ser directorios. Todo archivo tiene asociado un nodo-i, que mantiene información del archivo (dueño, tiempo de última modificación y de creación, algunos de los bloques que emplea el archivo y referencia a otros nodos-i con el resto de bloques).

Los bloques pueden fragmentarse para aprovechar espacio cuando se mantienen archivos pequeños. Cada grupo de cilindros tiene una tabla de fragmentos libres en los bloques del grupo e información sobre bloques libres de acuerdo a las diversas posiciones rotacionales (para optimizar ubicación de información de acuerdo al hardware disponible).

Algunos bloques se reservan para que sólo puedan ser usados por el administrador (reserva de espacio libre). En OpenBSD por defecto es 5% del espacio total.

Entre las características soportadas por FFS están:

  • Enlaces duros dentro de una misma partición o enlaces simbólicos. Candados, nombres largos para archivos, validaciones y cuotas (para limitar espacio utilizable por los usuarios).

Para revisar un sistema de archivos ffs (digamos que esté en la partición /dev/wd1j) ejecute:

	sudo fsck_ffs /dev/rwd1j
      

note la r antes de wd1j que indica que la partición debe tratarse en modo puro (del inglés raw). Puede agregar la opción -y antes del dispositivo para responder si por defecto a toda pregunta (intentado que solucione automáticamente todos los problemas). En algunos casos cuando un disco está bastante inconsistente en su estructura, puede perderse información que fsck_ffs intentará recuperar y dejar en archivos cuyos nombres son números en el directorio lost+found. En los casos que se dañe el superbloque de la partición que desea revisar fsck_ffs se negará a realizar el chequeo, en tales casos puede intentar con un superbloque de respaldo --típicamente hay uno en el bloque 32:

	sudo fsck_ffs -b 32 /dev/rwd1j
      

Para crear un sistema de archivos ffs en un disco ya particionado con disklabel puede emplearse newfs, por ejemplo:

	sudo newfs -t ffs /dev/wd1j

[Aviso]Aviso

Al crear un nuevo sistema de archivos se borra la información que pudiera haber existido.

Para detectar particiones ffs en un disco, puede emplearse scan_ffs.

Para examinar la estructura de una partición con ffs, se emplea dumpfs. Puede afinarse un sistema ffs con tunefs

6.3.3. Zonas de intercambio (swap)

Son porciones de un disco duro que pueden emplearse como si fuera memoria RAM (aunque es mucho más lenta). Si por ejemplo desea agregar como dispositivo de intercambio el disco /dev/wd1l debe:

  1. Asegurarse de poner tipo swap a la partición. Puede emplear disklabel. Por ejemplo puede emplear el modo interactivo de este programa:

    	sudo disklabel -E /dev/wd1c 

    en este modo puede examinar las particiones y divisiones del disco con p, puede ver una ayuda abreviada con h. Con m le será posible cambiar el tipo de una partición (por ejemplo puede ser 4.2BSD si se trata de un sistema ffs o swap si se trata de un dispositivo para intercambio), y la ubicación.

    [Atención]Antes de cambiar la ubicación de una partición

    El sitio donde reubique una partición NO debe estar traslapado sobre una partición ya existente. Si traslapa una partición sobre otra, la información que hubiera en la partición sobre la que traslapa puede perderse de manera irreversible.

  2. Agregue una línea a su archivo /etc/fstab con el dispositivo de intercambio, punto de montaje none, tipo swap y opción sw:

    	/dev/wd1l none  swap sw 0 0 

    Con este cambio, el dispositivo será montado como zona de intercambio cada vez que el sistema inicie (está en /etc/rc).

  3. Intente agregar el dispositivo como zona de intercambio sin reiniciar con:

    	sudo swapon -a 

    o con:

    	sudo swapctl -A -t blk 

    Ambos comandos intentarán montar como zonas de intercambio todos dispositivos por bloques de /etc/fstab que tengan la opción sw. Puede verificar la adición listando todas las zonas de intercambio con:

    	sudo swapctl -l 

6.4. Disquetes e imágenes de disquetes

6.4.1. Programas del paquete mtools

El usuario root podrá leer disquetes con las herramientas del paquete mtools, por ejemplo para ver el contenido de un disquete y después copiar del disquete al directorio actual el archivo cart.txt:

	mdir
	mcopy a:cart.txt .  

Para escribir todos los archivos con extensión tgz en el disquete de la primera unidad:

	mcopy *tgz a: 

En OpenBSD por omisión sólo root puede montar y escribir disquetes. Puede lograrse que las herramientas de mtools escriban en disquetes cuando son ejecutadas desde una cuenta que pertenezca al grupo operator cambiando permisos de algunos archivos:

	chmod g+xwr /dev/rfd* /dev/fd*
	    

Si no desea cambiar permisos de dispositivos, ni manejar el grupo operator ni cambiar variables del kernel puede configurar y emplear sudo (ver sudo):

	sudo mcopy *tgz a: 

o incluso con sudo y un alias hacer transparente la restricción para los usuarios que puedan emplear sudo:

	alias mcopy='sudo mcopy' 

6.4.2. Montar disquettes en jerarquía de directorios

Desde la cuenta root podrá montar disquettes de manera directa.

Para montar disquettes desde cuentas de usuarios que pertenezcan al grupo operator puede cambiar la variable de configuración del kernel kern.usermount, bien de forma permanente en /etc/sysctl.conf o bien en una sesión con:

	sysctl -w kern.usermount=1		    
	    

Por ejemplo para montar el disquete de la primera unidad en el directorio /mnt/floppy (el cual debió crear antes):

	mount -t msdos /dev/fd0c /mnt/floppy 

o cree una entrada apropiada en /etc/fstab:

	/dev/fd0c /mnt/floppy msdos rw,noauto 0 0 

tras lo cual basta:

	mount /mnt/floppy 

Tenga en cuenta que después de terminar todas las operaciones con el disquette debe desmontarlo con:

	umount /mnt/floppy
	

6.4.3. Montar imagenes de disquettes

Puede montar imágenes de disquetes creando primero un dispositivo con vnconfing asociado con la imagen y después montar tal dispositivo en el directorio deseado. Vea la forma análoga de lograrlo con CDs en Sección 6.5, “Unidad de CD-ROM”.

6.5. Unidad de CD-ROM

6.5.1. Montar un CD

Cómo en el caso de disquetes, por defecto, sólo root puede montar CDs. Puede permitir que se haga desde una cuenta diferente, agregando tal cuenta al grupo operator y cambiando la variable del kernel kern.usermount como se presentó en la sección sobre disquettes. Por ejemplo para montar el CD que está en la primera unidad (después de haber creado el directorio /mnt/cdrom):

	mount -t cd9660 /dev/cd0c /mnt/cdrom 

o para lograrlo con sólo mount /mnt/cdrom se agregaría en /etc/fstab:

	/dev/cd0c /mnt/cdrom cd9660 ro,noauto 0 0 

Para desmontar un CD se emplea:

	umount /mnt/cdrom

6.5.2. Montar imagen ISO 9660

Para montar una imágen ISO (i.e un archivo con información de un CD con el sistema de archivos ISO 9660), primero debe crear un dispositivo que la represente, por ejemplo:

	vnconfig -c svnd0 /home/pablo/micd.iso 
	mount /dev/svnd0a /mnt/tmp
    

6.5.3. Referencias

Más sobre montaje de archivos con man fstab.

6.6. Quemadora de CD-R y CD-RW

Una quemadora de CD-R y CD-RW se puede comportar como un lector de CDs y usarse como se explica en la sección sobre unidades de CD (ver Sección 6.5, “Unidad de CD-ROM”.

Para quemar una imagen de un CD con datos que usted elija se debe:

  • Contar con una imagen ISO del CD que desea quemar. Es decir un archivo con la información que irá en el CD en formato ISO9660. Tal imagen la puede crear a partir de un CD que tenga o crearla con archivos y directorios que usted elija.

  • Grabar (o quemar) la imagen ISO en un CD-R o un CD-RW.

Cada uno de estos pasos se describe en detalle a continuación.

6.6.1. Crear una imagen ISO a partir de un CD existente

Para crear una imagen ISO de un CD existente primero examine la cantidad de sectores de los que consta con

	sudo disklabel /dev/rcd0c
	  

Suponiendo que cada sector tenga 2048 bytes y el total de sectores fuera 112120 puede crear la imagen (/home/imagen/micd.iso) empleando el comando:

	sudo dd if=/dev/rcd0c of=/home/imagen/micd.iso bs=2048 count=112120
	  

6.6.2. Crear una imagen nueva ISO 9660

Para crear una imágen ISO a partir de datos que usted elija, deje los archivos y directorios por incluir en un directorio (digamos /home/pablo/imagen), el cual después puede especificarse a mkisofs (programa que hace parte del paquete cdrtools). El formato estándar para salvar información en CD-ROMs (ISO9660) sólo permite nombres de archivos con 8 caracteres, extensiones de 3 y restricciones en la codificación de caracteres, hay algunas extensiones que permiten aumentar este margen, una de estas que es algo portable es Rock Ridge (funciona al menos en sistemas Unix y en Windows).

Para crear una imagen ISO con nombre /home/pablo/micd.iso a partir de la información disponible en /home/pablo/imagen puede ejecutar como usuario root:

	cd /home/pablo/imagen
	sudo mkisofs -r -l -f -o /home/pablo/micd.iso  .
	

Note que la imagen creada emplea la extensión Rock Ridge (opción -r), permite nombres largos (opción -l) y maneja enlaces simbólicos (opción -f).

Por otra parte en sistemas i386 o amd64 es posible arrancar un computador desde un CD, configurando el arranque del computador desde el BIOS para que sea por la unidad y cuando la imágen del CD se crea con la extensión El Torito. La extensión El Torito permite incluir la imágen de un floppy que se usa para arrancar.

Para crear una imágen ISO que use extensión Rock Ridge, con una tabla de contenido de cada directorio (TRANS.TBL), que emplee la imágen de disquete floppy.img para arrancar, con información de derechos de reproducción del archivo /home/pablo/Derechos.txt, siguiendo enlaces simbólicos y con la jerarquía de directorios y archivos de /home/pablo/imagen/ (en la que no debe existir el archivo boot.catalog) use:

	cd /home/pablo/imagen
	sudo mkisofs -b floppy.img -c boot.catalog -copyright /home/pablo/Derechos.txt \
	  -r -l -f -o /home/pablo/micd.iso  .
    

6.6.3. Quemado de una imagen ISO 9660 en un CD-R o en un CD-RW

Para escribir una imágen ISO (micd.iso) con datos en un CD-R, puede emplear el programa cdrecord, el cual puede emplear como dispositivo uno de la forma /dev/cd0c o bien /dev/rcd0c:0,0,0, por ejemplo:

	sudo cdrecord dev=/dev/cd0c -data speed=16 /home/pablo/micd.iso
    

Si emplea un CD-RW tenga en cuenta blanquearlo antes de escribir usando la opción blank=fast:

	sudo cdrecord dev=/dev/cd0c -data blank=fast speed=16 /home/pablo/micd.iso
    

Si desea emplear varias sesiones en un mismo CD-R (o CD-RW) tenga en cuenta:

  • La primera sesión se hace creando una imágen ISO usual y al quemar con cdrecord agregue la opción -multi.

  • Las imágenes de sesiones posteriores deben crearse empleando la opción -C de mkisofs [19]. Los datos precisos que debe pasar a la opción -C los examina con:

    	sudo cdrecord dev=/dev/cd0c -msinfo
    

    Que retorna un par de números (supongamos que 18904,26106), los cuales debe usar con mkisofs, por ejemplo:

    	sudo mkisofs -r -l -f -C 18904,26106 -o ../micd.iso .
    

    Y nuevamente debe pasar la opción -multi a cdrecord en el momento de quemar.

Para crear CDs de audio deben emplearse archivos de sonido (por ejemplo formatos .wav o .au) con información de 16 bits en estéreo a 44100 muestras/s, codificación PCM. Al quemar con cdrecord en lugar de la opción -data debe emplearse -audio.

6.6.4. Referencias

Puede consultar más sobre creación de imágenes para CDs con man mkisofs (tras haber instalado cdrtools)).

Para conocer más sobre el quemado de CDs puede consultar man cdrecord (también después de instalar el paquete cdrtools). En foros de usuarios pueden verse mensajes como http://archives.neohapsis.com/archives/openbsd/2002-10/0548.html , http://www.deadly.org/article.php3?sid=20031105030127&mode=flat y http://archives.neohapsis.com/archives/openbsd/2001-12/2096.html

6.7. Operaciones con DVD

El sistema de archivos de los DVD es UDF, que es diferente al de los CDs (ISO9660). Desde la versión 4.0, OpenBSD soporta las versiones 1.02 y 1.50 de UDF en modos plain y VAT (ver

Las operaciones de montaje de DVDs, montaje de imagenes y copia de DVDs a disco son como las de CDs remplazando el tipo cd9660 por udf (ver Sección 6.5.1, “Montar un CD”, Sección 6.5.2, “Montar imagen ISO 9660” y Sección 6.6.1, “Crear una imagen ISO a partir de un CD existente”).

Para quemar DVDs es necesario instalar el paquete cdrtools, el cual incluye el programa growisofs que permite quemar DVDs al menos de dos formas:

  1. Incluir una serie de archivos sin necesidad de preparar previamente una imagen del DVD. Por ejemplo para quemar un DVD que tenga los archivos /home/copia/a y /home/copia/b:

    	sudo growisofs -Z /dev/rcd0c -R /home/copia/a /home/copia/b
    	  

  2. Para quemar un DVD con la imagen ISO dvd.iso

    	sudo growisofs -dvd-compat -Z /dev/rcd0c=dvd.iso
    				  

6.7.1. Referencias

man mount_udf y man growisofs.

Universal Disk Format: http://en.wikipedia.org/wiki/Universal_Disk_Format

6.8. Memoria USB

Para emplear una memoria USB después de conectarse debe:

  1. Examinar el dispositivo con el cual fue reconocida su memoria tras conectarla. Vea los últimos mensajes presentados por dmesg, típicamente será sd0.

  2. Examinar la partición por montar con

    	sudo disklabel /dev/rsd0c
    		

    la partición que deberá montar podría ser /dev/sd0c o por ejemplo /dev/sd0i.

  3. Montar la partición apropiada en un punto del sistema de archivos, por ejemplo con:

    	sudo mkdir /mnt/usb
    	sudo mount /dev/sd0i /mnt/usb
    			

  4. Usar su memoria para leer/escribir (recordando que sólo podría escribir el usuario que sea dueño del punto de montaje)

  5. Cuando termine su utilización desmontar por ejemplo con:

    	sudo umount /mnt/usb
    		

6.9. Imagen encriptada

Es posible tener particiones encriptadas, estas requieren que se ingrese una clave antes de montarlas ---por ejemplo en el momento del arranque.

6.9.1. Creación de la imagen

Para crear una imagen de aprox. 500MB en el archivo /var/post.img puede usar:


	sudo dd if=/dev/zero of=/var/post.img bs=1024 count=500000
	sudo vnconfig -ckv svnd0 /var/post.img
	sudo newfs /dev/svnd0c
	sudo vnconfig -u svnd0
		  

La clave que ingrese tras vnconfig -ckv svnd0 /var/post.img, la requerirá posteriormente para usar la imagen.

6.9.2. Montar imagen

Esta imagen puede ser montadas (por ejemplo en /var/postgresql) con el siguiente archivo de comandos (ubíquelo por ejemplo en /usr/local/sbin/montapost.sh):

#!/bin/sh
# Monta imagenes encriptadas en OpenBSD. Dominio público. 2006.

if (test ! -d /var/postgresql) then {
	mkdir /var/postgresql
	chown _postgresql:_postgresql /var/postgresql
} fi;
vnconfig -ckv svnd0 /var/post.img
mount /dev/svnd0c /var/postgresql
	

y recuerde otorgar permiso de ejecución del mismo:

	sudo chmod +x /usr/local/sbin/montapost.sh
	

Notará que este ejemplo es para montar una partición en la que funcionará una base de datos PostgreSQL, si no existiera el usuario _postgresql antes de ejecutar este archivo de comandos ejecute chmod a+w /var/postgresql y después de que haya instalado PostgreSQL:

	sudo chown _postgresql:_postgresql /var/postgresql
	sudo chmod o-w /var/postgresql
	

6.9.3. Montar en el arranque

Este script debe ejecutarse en el momento del arranque y antes de iniciar la base de datos, agregue a su archivo /etc/rc.local (antes de la inicialización de PostgreSQL):

	sudo /usr/local/sbin/montapost.sh
		

De forma que en cada arranque el script le solicitará la clave antes de continuar.

6.9.4. Referencias

Página man vnconfig.

6.10. Teclado en español

6.10.1. En las consolas tipo texto

Si su teclado es español o latinoamericano puede configurarlo durante la instalación. Después de instalado puede elegir otra configuración con keyb la o keyb es

Si tiene un teclado US y desea emplear teclas muertas en la consola puede usar desde la línea de comandos:

	sudo wsconsctl -w keyboard.map+="keycode 40=dead_acute dead_diaeresis"
	sudo wsconsctl -w keyboard.map+="keycode 41=dead_grave dead_tilde"
	sudo wsconsctl -w keyboard.map+="keycode 56=Cmd2 Multi_key" 

o para que esta configuración siempre sea realizada durante el arranque agregue estas líneas al final de /etc/rc.local (puede agregar al final de cada línea > /dev/null).

Estas líneas configuran entre otros:

'

como tecla muerta para la tilde (seguido de un espacio producirá el apostrofe)

"

como tecla muerta para la diéresis (seguido de un espacio producirá las comillas)

`

como tecla muerta para el acento grave (seguido de un espacio produce el apostrofe izquierdo)

~

como tecla muerta para la virgulilla (seguido de un espacio produce ~)

^

como tecla muerta para el acento circunflejo

Shift+Alt izquierdo

Como tecla de composición

La tecla de composición[20] le permitirá generar un carácter empleando una secuencia de dos teclas. Por ejemplo si presiona la tecla de composición (i.e Shift+Alt izquierdo con la configuración presentada), y después presiona ? seguido de ? obtendrá el carácter ¿. En el apendice Caracteres que pueden generarse encontrará una tabla con todas las combinaciones de teclas que pueden usarse con la tecla compose y con teclas muertas.

6.10.2. X-Window

Dado que X-Window emplea el teclado en modo crudo la configuración que haga para las consolas virtuales no quedará disponible.

Si tiene un teclado en español puede configurarlo con xorgcfg o bien con xorgcfg -textmode, o bien editando el archivo /etc/X11/xorg.conf para que en la sección del teclado quede la línea:

	Option  "XkbLayout" "es"
	

o si su teclado es latinoamericano remplace es por latam.

Si tiene un teclado en inglés puede agregar las siguientes líneas a su archivo ~/.Xmodmap

	keycode 64=Alt_L Multi_key
	keycode 48=dead_acute dead_diaeresis
	keycode 49=dead_grave dead_tilde 

y asegurarse de ejecutar xmodmap ~/.Xmodmap durante el arranque de su sesión X (podría ser por ejemplo agregándolo a ~/.xsession)



[13] En el caso de LPD el directorio con la cola de trabajos de una impresora se configura en /etc/printcap, en el caso de lp el directorio por defecto es /var/spool/outputlpd/lp.

[14] Normalmente puede configurar otro nombre para la impresora por defecto en la variable de ambiente PRINTER.

[15] Hay algunas impresoras que pueden imprimir PostScript directamente, pero en general para hacer la traducción de PostScript al lenguaje de una impresora se requiere un filtro que el administrador del sistema debe configurar.

[16] PDF (Portable Document Format es otro lenguaje para impresión, de documentos con gráficas y diversos tipos de letras, basado en PostScript (de la misma compañía ---Adobe).

[17] De acuerdo a Printig-HOWTO estas herramientas ofrecen la funcionalidad de las herramientas "distiller" de Adobe.

[18] Los parámetros del hardware mantenidos ayudan a localizar bloques libres de forma óptima.

[19] Si la sesión previa tenia -T esta también con mismo nombre de tablas (especificable con -table-name TN).

[20] Tecla de composición: en inglés compose key