FreeBSD funciona perfectamente en la mayoría de portátiles aunque siempre haya excepciones. En éste artículo trataremos de las diferencias existentes en el hardware de portátiles y sistemas de escritorio y de cómo afecta esto al uso de FreeBSD.
Traducción de José Ramón Baz <jr_baz@hartu.net>
y José Vicente Carrasco <carvay@es.FreeBSD.org>
.
Es frecuente que se piense en FreeBSD como un sistema operativo para servidores pero funciona muy bien como sistema de escritorio y si quiere usarlo en su portátil dispondrá de todo su potencial: facilidad de administración y actualización, el sistema de “ports” y “packages” para añadir software, etc. Otras de sus características más interesantes, como la estabilidad, el rendimiento en red y bajo grandes cargas de trabajo pueden, por razones obvias, no ser tan evidentes en un sistema portátil. La instalación en portátiles puede, sin embargo, acarrear problemas que no encontraríamos en sistemas de escritorio y cuyas soluciones no podemos encontrar por doquier a lo largo y ancho de Internet; los equipos portátiles suelen estar diseñados para Microsoft Windows, aún con más frecuencia que en sistemas de escritorio. Éste artículo tratará de aclarar alguno de estos problemas. Hay quien ha documentado sus experiencias con FreeBSD en modelos concretos de portátiles y las ha incluído en páginas web que no forman parte de la documentación oficial de FreeBSD. Es muy posible que encuentre información si introduce la marca y modelo de su portátil y la palabra “FreeBSD” en un buscador.
Las versiones recientes de XFree86 funcionarán con la mayoría de tarjetas gráficas disponibles actualmente en portátiles. La aceleración gráfica tal vez no esté soportada pero una configuración SVGA genérica debería funcionar.
Consulte la documentación de su portátil.
Ahí deberí encontrar todos los detalles de su tarjeta,
tras lo cual debería recurrir a la
documentación de XFree86
(o el programa de configuración) para saber si está
soportada o no. Si no lo está utilice un dispositivo
genérico pero NO use uno cuyo
nombre simplemente le resulte parecido. En la versión 4 de
XFree86 puede probar suerte tecleando
XFree86 -configure
, que ejecuta un proceso de
autodetección y le puede facilitar una gran cantidad de
información muy útil.
Con frecuencia el problema es la configuración del
monitor. La información sobre
XFree86
se centra en monitores CRT, por lo que disponer de una
configuración para una pantalla LCD puede ser
peliagudo. Quizás esté de suerte y no
tenga que especificar rangos de
HorizSync
y VertRefresh
.
Si esto no funciona la mejor opción es recurrir a la web
en busca de páginas dedicadas a la configuración de X
en portátiles; suelen estar orientadas a Linux pero no importa
dado que ambos sistemas operativos usan
XFree86, por lo que puede usar la
configuración que alguien haya usado sobre un hardware
similar.
La mayoría de portátiles incluyen dos botones para las funciones de botón primario y secundario del ratón (mouse), lo que puede resultar problemático en X ya que el botón central se usa para pegar texto; puede “mapear” una pulsación simultánea de ambos botones en la configuración de X que realice la función del botón central con la línea
Option "Emulate3Buttons"
en el fichero XF86Config
en la sección InputDevice
de XFree86 versión 4; para la
versión 3 simplemente añada la línea
Emulate3Buttons
, sin comillas, en la sección
Pointer
.
Los equipos portátiles suelen incluír modems internos. Desgraciadamente eso casi siempre significa que son “winmodems” cuyo funcionamiento depende de software y para los cuales sólo hay disponibles controladores para windows. A pesar de ello están empezando a aparecer controladores para otros sistemas operativos; por ejemplo, si su modem tiene un chipset Lucent LT es muy posible que esté soportado por el port comms/ltmdm. Si ese no es su caso tendrá que buscar un modem externo: la solución más compacta probablemente sea un modem PC Card (PCMCIA), de los que hablaremos más adelante, pero los modem serie o USB serán seguramente más baratos. Normalmente los modems normales (es decir, los que no son winmodems), deberían funcionar sin problemas.
Muchos portátiles incluyen bahías
PCMCIA, también conocidas como PC Card, que suelen
estar soportadas perfectamente por FreeBSD. Consulte el
mensaje de arranque de su sistema (mediante dmesg(8))
para saber si fueron detectadas correctamente; deberían
figurar como
pccard0
,
pccard1
etc. en dispositivos como
pcic0
).
FreeBSD 4.X soporta tarjetas PCMCIA de 16 bits y
FreeBSD 5.X soporta tanto éstas tarjetas de 16 bits
como tarjetas de 32 bits
“CardBus”. Hay una lista de tarjetas soportadas en
el fichero
/etc/defaults/pccard.conf
. Léalo
cuidadosamente y siempre que sea posible compre tarjetas que
aparezcan en ese fichero. Las que no aparecen es posible que funcionen
como dispositivos “genéricos”; en concreto
la mayoría de los modem de 16 bits deberían funcionar
correctamente siempre y cuando no sean winmodems (existen
también como PC Cards, así que tenga cuidado). Si su
sistema reconoce su tarjeta como un modem genérico tenga en
cuenta que el fichero pccard.conf
especifica
por defecto un retardo de 10 segundos para evitar bloqueos en algunos
modelos; eso puede ser una precaución excesiva para su
modem así que es posible que quiera cambiar ese valor,
reducirlo o incluso eliminarlo.
Algunas partes de
pccard.conf
pueden necesitar un poco de
edición.
Busque la línea donde figura la irq y asegúrese de
eliminar cualquier número que esté en uso; si tiene
una tarjeta de sonido integrada borre irq 5, si no puede sufrir
bloqueos del sistema al insertar la tarjeta. Consulte también
la memoria disponible para las bahías; si su tarjeta sigue sin ser
detectada pruebe a cambiar alguno de los valores posibles que
aparecen en la página man de pccardc(8).
Si aún no funciona puede lanzar el daemon pccardd(8). Para activarlo en el arranque añada
pccard_enable="YES"
en el
fichero
/etc/rc.conf
. Tras ese paso sus tarjetas
deberían ser detectadas cuando las inserte y cuando las
extraiga; deberían asímismo aparecer entradas en
ficheros “log” reflejando el momento en el que
los nuevos dispositivos son activados.
Ha habido cambios de gran calado en el código de pccard, como la inclusión de enrutado de interrupciones ISA, muy útil en máquinas en las que hasta la irrupción de FreeBSD 4.4 no era posible usar la BIOS PCI. Si tiene problemas con esto pruebe a actualizar su sistema.
Desgraciadamente no existe un soporte demasiado bueno en FreeBSD. Si tiene suerte algunas características pueden ser funcionales mientras que otras no lo serán en absoluto.
Para complicar un poco más las cosas hay dos estándares de administración de energía, APM y ACPI. El segundo se hizo para sustituír el primero e incluye nuevas características pero también más problemas.
Algunos portátiles soportan tanto APM como ACPI (hasta cierto punto) mientras que otros sólo soportan uno de ellos así que no tendrá más remedio que experimentar con ambos para saber si dispone de administración de energía y hasta qué punto.
No puede tener APM y ACPI activados simultáneamente, aunque su portátil soporte ambos.
Una BIOS con APM (Advanced Power Management, Administración Avanzada de Energía) provée de soporte para diversas características de administración de energía tales como “standby”, suspensión, hibernación, reducción de la velocidad del reloj de la CPU, etc. y existe tanto en FreeBSD 4.X como en FreeBSD 5.X.
Para activar el soporte de APM deberá compilar
su kernel: añada
device apm0
en
FreeBSD 4.X y device apm
en
FreeBSD 5.X. El soporte APM como módulo existe en
FreeBSD 5.X; para cargarlo en el arranque añada
la línea
apm_load="YES"
al fichero
/boot/loader.conf
.
En FreeBSD 5.X tendrá que asignar
hint.apm.0.disabled="0"
en el fichero
/boot/device.hints
.
APM puede activarse en el arranque añadiendo
apm_enable="YES"
en el fichero
/etc/rc.conf
. El daemon apmd(8)
se puede lanzar añadiendo
apmd_enable="YES"
al fichero
/etc/rc.conf
, que se encarga de transmitir
ciertos eventos a la BIOS, de manera que sea posible
suspender/reanudar presionando alguna tecla concreta o
al abrir y al cerrar la pantalla.
Los comandos APM figuran en la página man de
apm(8). Por ejemplo apm -b
suministra
el estado de la batería (o 255 si no está soportado),
apm -Z
pone el portátil en
“standby”, apm -z
(o zzz
) lo suspende. Para apagar el
sistema use shutdown -p
. Le recordamos
una vez más que alguna o incluso todas éstas
funciones pueden no funcionar del todo bien o incluso no hacerlo
en absoluto.
Es posible que la suspensión o
el modo “standby” funcione en consola pero
no en X (esto es, la pantalla no se recupera). Si usa
FreeBSD 5.X una posible solución es añadir
options
SC_NO_SUSPEND_VTYSWITCH
al fichero de configuración de su kernel y que lo
recompile. Otra forma de solucionarlo es cambiar a otra
consola virtual (mediante
Ctrl+Alt+F1
u otra tecla de función) y ejecutar apm(8).
Si está usando apmd(8) puede automatizar
esto con vidcontrol(1): edite
/etc/apmd.conf
y cámbielo del
siguiente modo:
apm_event SUSPENDREQ { exec "vidcontrol -s 1 < /dev/console"; exec "/etc/rc.suspend"; } apm_event USERSUSPENDREQ { exec "vidcontrol -s 1 < /dev/console"; exec "sync && sync && sync"; exec "sleep 1"; exec "apm -z"; } apm_event NORMRESUME, STANDBYRESUME { exec "/etc/rc.resume"; exec "vidcontrol -s 9 < /dev/console"; }
ACPI (Advanced Configuration and Power Management Interface, Interfaz para la Administración de Energía y Configuración Avanzada) facilita no solo la administración de energía sino también la detección de hardware (sustituyendo la detección PnP y PCI). ACPI sólo está disponible en FreeBSD 5.X y está activado por defecto, así que no tiene que hacer nada especial para que funcione. Puede controlar el comportamiento de ACPI con acpiconf(8).
Desgraciadamente los fabricantes ponen a la venta sus portátiles con implementaciones ACPI defectuosas, haciendo que habilitar ACPI algunas veces genere más problemas que ventajas, hasta el punto de no poder siquiera arrancar FreeBSD en algunas máquinas con ACPI habilitado.
Si ACPI le está causando problemas debería comprobar si el fabricante de su portátil ha liberado una nueva versión de la BIOS que solucione alguno de esos problemas. Dado que la implementación de ACPI en FreeBSD está en constante evolución debería también actualizar su sistema; tal vez así sus problemas se solucionen.
Si desea deshabilitar ACPI añada
hint.acpi.0.disabled="1"
al fichero
/boot/device.hints
. ACPI puede
deshabilitarse temporalmente en el “prompt”
del arranque tecleando
unset acpi_load
en caso de tener problemas
para arrancar una máquina con ACPI
habilitado. FreeBSD 5.1-RELEASE y posteriores disponen de
un menú en el arranque que controla cómo FreeBSD
arranca. Una de las opciones que se suministran es la de
dehabilitar ACPI. Para hacerlo simplemente seleccione
(Arrancar FreeBSD con ACPI deshabilitado)
en el menú.
El sistema X window (XFree86) incluye administración de energía de la pantalla (consulte la página man de xset(1) y busque en ella “dpms”). Tendrá que investigar. Sin embargo tenga en cuenta que también esto funciona de manera muy poco fiable en portátiles: con frecuencia apaga la pantalla pero no apaga la retroiluminación.