La mayoría de dispositivos PCI son autoconfigurables; la
máquina y el sistema operativo reparten los recursos entre las
interfaces según sea necesario.
Los dispositivos de interrupción del bus PCI son
compartibles; no sólo se pueden compartir, sino que
generalmente el sistema funcionará mejor cuando se compartan las
IRQ, especialmente en sistemas i386.
Existen varios bus PCI estándar diferentes. En ocasiones se
puede encontrar una tarjeta con la especificación PCI2.2 que no
funcione en un sistema con la especificación PCI2.1.
Además, muchas tarjetas con puentes integrados (como por ejemplo
las tarjetas de red multi-puertos) no funcionan bien en sistemas viejos.
El bus PCI tiene soporte para dos niveles de señales, 3.3v y
5v. Las tarjetas que funcionan con el sistema de señales 3.3v
tienen una segunda muesca en su conector PCI. La mayoría de
tarjetas PCI usan el sistema de señales 5v, que es el que
utilizan la mayoría de ordenadores. Las máquinas de una
sola placa de Soekris (Net45x1 y Net4801) se suelen encontrar en
máquinas que sólo tienen soporte para el sistema de
señales 3.3v.
12.1.2 - Dispositivos ISA
Los dispositivos ISA no pueden compartir recursos y, por lo general,
se deben configurar manualmente de modo que no tengan conflictos con
otros dispositivos del sistema.
Algunos dispositivos ISA son "Plug and Play"
(isapnp(4));
ante cualquier problema con estos dispositivos hay que verificar la
configuración en la salida de
dmesg(8)...
ISAPnP no siempre funciona como se desea.
En general, si se puede elegir, es recomendable evitar las tarjetas
ISA en favor de las PCI. Las tarjetas ISA son más
difíciles de configurar y tienen un impacto negativo mucho mayor
sobre el funcionamiento y rendimiento del sistema.
12.2 - DEC Alpha
[nothing yet]
12.3 - HP300
[nothing yet]
12.4 - HPPA
[nothing yet]
12.5 - i386
12.5.1 - NICs: Interfaces de red ISA
Como OpenBSD funciona bien sobre hardware viejo, hay usuarios que
suelen utilizar tarjetas de red ISA en sistemas OpenBSD. Los
componentes ISA requieren una configuración más complicada
que los componentes PCI. En general, no se puede instalar una tarjeta
ISA en el ordenador y esperar que funcione por arte de magia. En muchas
máquinas, si el dispositivo ISA que se instala no está en
modo "Plug 'n' Play" (PNP), hay que reservar en la BIOS del
sistema los recursos que utilice la tarjeta.
3Com 3C509B ep(4)
Ésta es una tarjeta de red ISA que ofrece un rendimiento
excelente, y que tiene soporte en el controlador
ep(4). La versión 'B' se puede distinguir de la otra por la
etiqueta que hay sobre la tarjeta y porque tiene un chip
"principal" más grande (aproximadamente unos 2'5cm por
un lado en la versión 'B', mientras que en la versión
más antigua tiene unos 2cm), y su rendimiento es mejor en un
sistema con dos tarjetas de red. La 3C509B viene configurada de
fábrica en modo PNP, lo que por desgracia no cumple con las
especificaciones y causa problemas en el soporte de
isapnp(4) de OpenBSD.
El sistema reconoce el adaptador como un dispositivo PNP en primera
instancia, y después como PNP, por lo que la salida de dmesg
muestra un NIC de más. Esta tarjeta puede funcionar bien o puede
dar problemas. Es muy recomendable desactivar el modo PNP en las
tarjetas 3C509B y configurarlas manualmente para que no haya conflictos,
antes de la configuración en el sistema y mediante las utilidades
de configuración basadas en DOS.
El controlador ep(4) reconoce las tarjetas con cualquier
configuración de hardware siempre que no existan
conflictos con otros dispositivos en el sistema.
Si se instalan varias tarjetas 3C509 en un mismo sistema es recomendable
etiquetarlas con la dirección MAC, y usar dmesg para poder
identificarlas.
Nótese que la 3C509, la 3C905 y la 3C590 se suelen confundir. La
3C509 es una tarjeta ISA a 10Mbps, y la 3C905 y la 3C590 son tarjetas
PCI.
NE2000
La interfaz de red NE2000 original fue desarrollada a mediados de los 80
por Novell. Desde entonces, muchos fabricantes han sacado tarjetas muy
parecidas que se conocen como compatibles con NE2000 o clónicas.
El rendimiento de estas tarjetas clónicas varía mucho.
Aunque algunas de las tarjetas compatibles con NE2000 más
antiguas funcionan muy bien, muchas de las que están disponibles
hoy en día ofrecen un rendimiento muy bajo. El soporte para las
tarjetas compatibles con NE2000 en OpenBSD se encuentra en el
controlador
ne(4).
OpenBSD puede manejar bien algunas de las tarjetas compatibles con
NE2000 con capacidad para ISAPNP si está activado el modo ISAPNP.
Otras tarjetas es necesario configurarlas usando jumpers o una
utilidad de configuración basada en DOS. Como las tarjetas
NE2000 originales no incluían un programa de configuración
o soporte para ISAPNP, no existe ningún estándar para
esto, y es necesario usar la utilidad original que venga incluida con la
tarjeta específica, que suele ser difícil de obtener.
El controlador ne(4) dispone de soporte para tres configuraciones de la
tarjeta NE2000 ISA en el núcleo GENERIC de OpenBSD:
ne0: port 0x240 irq 9
ne1: port 0x300 irq 10
ne2: port 0x280 irq 9
Si estas configuraciones no son válidas por cualquier motivo, se
pueden ajustar usando la
Configuración del Núcleo de
Usuario (UKC) o compilando un núcleo
personalizado.
Nótese que el controlador ne(4) es bastante «tonto»;
sólo sondea el puerto de E/S, y si detecta alguna de las
direcciones de E/S anteriores, asume el IRQ correspondiente. La
salida de
dmesg(8)
no refleja el IRQ del adaptador en el caso de las controladoras ne(4)
ISA. Si no es el IRQ que está utilizando la tarjeta, no
funcionará.
Nótese asimismo que hay tarjetas no ISA, algunas PCI y PCMCIA,
que usan el controlador ne(4). Las referencias en esta sección
no son aplicables para estas tarjetas, ya que son auto-configurables.
12.5.2 - OpenBSD no funciona en mi sistema
80386/80386SX/80486SX
80386sx
El 80386sx tiene un rango máximo de direccionamiento de 16M, lo
que es muy bajo para el soporte de OpenBSD/i386. Además, la
mayoría de sistemas 80386sx no tienen soporte para más de
8M de RAM, por lo que la instalación es «Sólo Para
Expertos», ya que para ello es necesario ejecutar algunos pasos
complicados y utilizar una segunda máquina. Véase
también la siguiente sección:
80386
OpenBSD 3.4 funcionará en un sistema 80386 ó 80386sx SI
tiene un coprocesador matemático 80387 ó 80387sx (Unidad
de Punto Flotante, o FPU). Por desgracia estas FPU no son muy comunes,
y la mayoría de sistemas 80386 no los tienen. OpenBSD no
funcionará sin el FPU en la plataforma i386. Hay que tener en
cuenta que esto supone muy poco procesador para un sistema operativo de
ejecución criptográfica intensiva como OpenBSD. El
rendimiento de una máquina de este tipo con fines
genéricos es poco probable que satisfaga a ningún usuario.
80486SX
El chip 80486SX era una versión de bajo coste del 80486
que no tenía soporte de FPU (como el 80386) que requiere OpenBSD
3.4. Por suerte, existe una amplia disponibilidad de chips
80486DX, y son fáciles de instalar en la mayoría de las
máquinas.
12.5.3 - La salida de dmesg muestra varios dispositivos compartiendo
un mismo interruptor (IRQ)
Esto es algo totalmente aceptable, y hasta deseable, para dispositivos
PCI. Se trata de una funcionalidad en el diseño del bus PCI.
Algunas personas afirman que compartir requerimientos de
interrupción es negativo, pero esto se debe a que confunden la
situación con el bus ISA, en donde no se permite compartir IRQ, o
a que han tenido una mala experiencia anterior con algún
hardware o software erróneo.
Los dispositivos ISA no pueden compartir IRQ, y si lo hicieran
tendríamos que corregir este problema.
12.6 - Mac68k
12.6.1 - Problemas de funcionamiento en un sistema Mac68k
Los desarrolladores de OpenBSD disponen de un número limitado de
modelos diferentes de Mac68k, y en consecuencia sólo funcionan
con fiabilidad unos cuantos modelos. Agradecemos el envío de
código que ayude a restaurar el soporte de cualquier modelo que
no funcione correctamente.
12.6.2 - ¿Por qué se retrasa tanto el reloj del
Mac68k?
Esto se debe a un error del hardware. OpenBSD usa interruptores
del reloj para llevar un seguimiento de la hora actual, pero estos
interruptores tienen una prioridad muy baja en la arquitectura de
Mac68k. Por lo tanto, bajo una
carga intensa como pueda ser la actividad del disco o de la red, los
interruptores del reloj se pierden y el reloj de Unix no avanza como
debería hacerlo. Este problema no existe en los sistemas
MacPPC.
MacOS circunvala este problema leyendo siempre el reloj de la
máquina. OpenBSD sólo lee el reloj de la máquina
durante el arranque, y a partir de ahí lo ignora. Cuando se
cierra el sistema se puede ver que Unix duda al grabar la hora de vuelta
al reloj de la máquina, ya que este problema es de sobra
conocido.
Una solución simple a este problema es ejecutar rdate(8) con
regularidad, mediante una entrada de crontab(8). Otro sitio desde donde
se puede lanzar
rdate (8)
es desde el fichero /etc/ppp/ppp.linkup si se es un usuario de
PPP que no está permanentemente conectado.
12.6.3 - Problemas de funcionamiento de un sistema Mac68k con dos
discos
Esto, desafortunadamente, es un problema bien conocido. Suele
manifestarse mediante una caída del sistema poco después
de iniciarse el modo multi-usuario, y no siempre parece obvio que esta
caída esté relacionada con el disco. La única
solución es usar un solo dispositivo en los sistemas Mac68k. El
envío de código que solucione este problema será
bien recibido.
12.6.4 - El instalador colapsa durante la instalación
El instalador de MacOS en los Mac68k no instala los archivos en una
partición «grande». Si una de las particiones en las
que se esté instalando es de más de 500M, lo más
seguro es que se vea un error extraño:
Error on SCSIRead(), #5
pos = 0, i = 22, fs = /
alloccgblk: can't find blk in cyl
La solución está en instalar antes un sistema
mínimo en una partición raíz
«pequeña», y luego iniciar OpenBSD y reubicar el
sistema de archivos como se desee.
Digamos, por ejemplo, que queremos tener una partición / de 200M.
Para ello crearemos la partición raíz, el resto de
particiones que queramos, y ejecutaremos newfs sobre ellas usando las
utilidades de MacOS. Después instalaremos etc34.tgz y base34.tgz
en la partición /.
A continuación montaremos el resto de particiones en un punto de
montaje temporal y copiaremos los directorios deseados sobre
éstas, tal y como se muestra
aquí.
Finalmente modificaremos /etc/fstab, reiniciaremos, y desempaquetaremos
el resto de archivos *.tgz tal y como se muestra
aquí.
Siguiendo este proceso se puede obtener cualquier tamaño de
partición para las particiones que no sean la partición
raíz.
12.7 - MacPPC
[nothing yet]
12.8 - MVME68k
[nothing yet]
12.9 - SPARC
[nothing yet]
12.10 - UltraSPARC (sparc64)
12.10.1 - Problemas de arranque de UltraSPARC con una imagen de
disquete
Los modelos Ultra 1/1e y Ultra 2 son los únicos que pueden
arrancar cualquier sistema operativo desde un disquete. Para el
resto hay que usar el CD-ROM, Miniroot, o una instalación de
arranque por red.