FreeBSD en ordenadores portátiles

$FreeBSD: doc/es_ES.ISO8859-1/articles/laptop/article.sgml,v 1.4 2007/11/08 21:49:10 carvay Exp $

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 y José Vicente Carrasco .


Tabla de contenidos
1. XFree86
2. Modems
3. Dispositivos PCMCIA (PC Card)
4. Administración de energía

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.


1. XFree86

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 .


2. Modems

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.


3. Dispositivos PCMCIA (PC Card)

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.


4. Administración de energía

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.

Nota: No puede tener APM y ACPI activados simultáneamente, aunque su portátil soporte ambos.


4.1. APM

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";
}

4.2. ACPI

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 2. Boot FreeBSD with ACPI disabled (Arrancar FreeBSD con ACPI deshabilitado) en el menú.


4.3. Administración de Energía de la Pantalla

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.


Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista <questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.