* Afinando el sistema [Ultima parte]
Con esta entrega doy por finalizada, de momento, esta larga serie
de articulillos, que empecé hace más de un mes. Espero que os hayan
sido útiles y estoy a vuestra disposición para cuantas correcciones o
mejoras se os ocurran. Mi intención ahora es resumir en un artículo
más breve la serie entera. Pero antes, vayamos a lo que falta: a
terminar lo que aquí nos queda. Trataré de ser lo más breve posible. Y
me limitaré ---aviso--- a una solución preliminar en todos los
aspectos que restan, sin profundizaciones ni refinamientos. Eso ya lo
dejo a cuenta de cada uno ---y me incluyo. Como se ve, las energías y
el tiempo disponible van faltando ;-)
** El sonido: ALSA
Como es sabido, ALSA sustituye a OSS en los núcleos 2.6.X como
soporte de sonido nativo. Se podría seguir usando OSS, pero bien
merece la pena dar ya entrada definitiva a ALSA, que con su soporte de
emulación OSS nos va a permitir un tránsito menos traumático de la
antigua a la nueva infraestructura.
En nuestra máquina esto es lo que hice para que funcionase:
- Configuro el núcleo como corresponde. Ver el cap. V de esta serie.
- Instalo el software requerido:
apt-get install alsa-base alsa-utils
[El módulo que hay que elegir en la pantalla de configuración es
'powermac']
- [Opcional] Configuro
/etc/alsa/modules/9.0
. Por
ejemplo, sustituyendo
options snd major=116 cards_limit=4
^
por
options snd major=116 cards_limit=1
^
[Ver la documentación de alsa para cualquiera de estos cambios. En
caso de hacer cambios, no se puede olvidar ejecutar la serie de
instrucciones]:
update-modules
/etc/init.d/alsa restart
- Ejecuto
alsamixer
, y habilito y defino como mínimo
los controles: 'Master', 'Bass', 'Treble', 'PCM', 'PCM1'.
[Si habilito 'Headphon' dispondré de salida tanto por los altavoces
incorporados como por la salida de auriculares. Si habilito
'Headphon' y 'Automut' permito que la salida cambie de los altavoces
al dispositivo conectado a la salida de auriculares según éste esté
conectado o no.]
Mis pruebas con el sonido han sido únicamente preliminares:
aplay fichero.au
---> FUNCIONA
xmms fichero.mp3
---> FUNCIONA
xine fichero.mpeg
---> FUNCIONA
CDs de audio (con xine)
---> FUNCIONA
[Nota: Para ejecutar como usuario muchas de estas aplicaciones de
sonido, así como para tener acceso a la unidad CD/DVD ---cosa también
necesaria en secciones posteriores---, hay que añadir el usuario a
los grupos correspondientes y/o modificar los derechos de acceso a los
archivos de dispositivo correspondientes. Que cada uno elija aquí la opción que más le convenga.]
** Grabación de CDs (sin emulación SCSI)
Como ya comenté en el capítulo sobre la configuración del núcleo y
como ya casi todo el mundo sabe, NO es necesaria emulación SCSI para
grabar CDs sobre la mayoría de los dispositivos ATAPI CDRom.
Grabar un archivo imagen en un CD, usando el soporte nativo, es tan
simple como esto:
cdrecord -dev=/dev/hdc [fichero-imagen]
[Nota: La línea de advertencia "Open by devname is unintentional
and not supported", que produce la ejecución de 'cdrecord' con esta
opción, no debe provocar aquí confusión alguna. Mientras siga ahí,
simplemente, no hay que tenerla en consideración.]
** Visualización de DVDs (xine)
Ningún problema para leer DVDs con xine [No he
probado con ogle o videolan].
He aquí los pasos previos [Doy por supuesto que
xine ya ha sido instalado]:
echo "deb http://download.videolan.org/pub/videolan/debian/ powerpc/" >> /etc/apt/sources.list
apt-get update
apt-get install libdvdcss2 # (Bajo tu propia responsabilidad)
ln -s /dev/hdc /dev/dvd
** USB
*** Configuración del núcleo
Antes de ir a los casos concretos, veamos la configuración del núcleo:
El soporte USB del núcleo consta de varios apartados, unos
generales y otros específicos (según clase de dispositivo).
Nosotros tendremos que decir SÍ a lo siguiente:
- Support for USB
SÍ: Soporte básico para USB
- USB device filesystem
SÍ: Soporte
para el sistema virtual de archivos /proc/bus/usb/, que debe ser
montado previamente con mount -t usbfs none /proc/bus/usb
o a través de /etc/fstab (con echo "none /proc/bus/usb usbfs
defaults 0 0" >> /etc/fstab
, y que da información sobre cada
dispositivo usb conectado.
- EHCI HCD (USB 2.0) support
SÍ: Soporte para la interfaz estándar (EHCI) para
USB2.
- OHCI HCD support
SÍ: Soporte para la interfaz OHCI para USB1.1.
Esta es la interfaz de los Apple, en lugar de la UHCI típica del
hardware Intel.
- USB Mass Storage support
SÍ: Sólo en caso de que se quiera
usar hardware de almacenamiento conectado al puerto USB [mi caso].
- USB Human Interface Device (full HID) support
SÍ: Soporte para dispositivos USB de tipo
HID como teclados, ratones, etc conectados al puerto USB.
- HID input layer support
SÍ: Idem
Casi todas las opciones señaladas pueden compilarse estáticamente o
como módulos. En el segundo de los casos (que ha sido el mío) es MÁS
QUE RECOMENDABLE instalarse el paquete hotplug y el
paquete usbutils.
*** Ejemplo1: Ratón USB
Nada en particular que comentar, mi ratón USB óptico (Acrox)
funciona perfectamente con la configuración de mi
XF86Config-4
y con hotplug instalado.
*** Ejemplo2: Mini-Disco USB
Tampoco he tenido problemas con mi mini-disco USB de 128Mb
(IOmega), uno de esos lapiceros portátiles tan graciosos.
Aquí son necesarias algunas cosas más, aparte del soporte USB para
dispositivos de almacenamiento y del paquete
hotplug. Concretamente:
- Tener compiladas en el núcleo las siguientes opciones:
- SCSI device support
- legacy /proc/scsi/ support [Por si acaso]
- SCSI disk support
- Crear un sistema de archivos en la unidad (o en una partición de
la unidad, si se decide crear una partición previamente.) [El
dispositivo suele ser accesible a través de
/dev/sda
.]
- Crear el directorio donde montaremos la unidad.
- Añadir la correspondiente línea a
/etc/fstab
.
- Montar la unidad.
- Y a funcionar :)
** Trackpad con botones 2 y 3. Teclas especiales
(pbbuttonsd)
El paquete pbbuttonsd permite que funcionen:
- Las teclas de ajuste de brillo de pantalla.
- Las teclas de ajuste de audio.
- La emulación del botón derecho y central de ratón (útil para
cuando no hay ningún ratón externo conectado). En concreto: F11 ->
botón derecho; F10 -> botón central.
- Teóricamente también, la tecla de expulsión de CDs [Yo no he
conseguido que funcione. Uso en su lugar la herramienta
eject]
Para más información, ver la página de manual y la documentación de
esta herramienta.
[Nota: Se requiere que en la configuración del núcleo se compile:
"Event interface" dentro de la sección "Input device
support".]
[Nota: Existe un cliente gráfico para pbbuttonsd: en el paquete
gtkpbbuttons.]
** Administración de energía (pmud)
La administración de energía en estos ordenadores se realiza a
través del demonio 'pmud', semejante en su función al 'apmd' de otras
arquitecturas. Instálese, por tanto, el paquete pmud
y probablemente también el paquete
powermgmt-base. Más información en la documentación
de ambos programas.
** Control de frecuencia de la CPU (powernowd)
Los nuevos núcleos 2.6 incorporan interesantes novedades en relación
con el control de frecuencia y ya existen parches para los powerpc que
permiten aprovecharse de estas novedades.
*** Configuración del núcleo
En primer lugar, veamos cuales son las opciones de configuración
del núcleo que hay que tener en cuenta:
- CPU frequency scaling
SÍ: Claro, de esto se trata.
- /proc/cpufreq interface
NO: Esta interfaz queda desfasada y es sustituida ahora por la
interfaz sysfs.
- Default CPUFreq governor (performance | userspace)
Elegir la que interese. La idea es, más o menos y
sin ánimo de ser riguroso, la siguiente: 'performance' es un
"gobernador" incorporado al propio código de 'cpufreq', que configura
la frecuencia de la CPU a su máximo valor. 'powersave' sería el otro
"gobernador" incorporado que pondría la frecuencia a su mínimo
valor. Frente a estos "gobernadores" existiría la posibilidad de un
"gobernador" 'userspace', cuya función es permitir a un programa en
espacio de usuario que administre el cambio de frecuencia según cual
sea la carga de la cpu. [Mi opción: dejo esto en su valor por defecto
'performance' y compilo los otros dos "gobernadores" como módulos para
hacer las pruebas correspondientes con el sistema activo.]
- 'powersave' governor
SÍ: Véase la anterior explicación.
- 'userspace' governor
SÍ: Idem.
- Support for Apple PowerBooks
SÍ: Soporte para control de frecuencia en
PowerBooks.
*** Operando ...
Si hago ahora un cat /proc/cpuinfo
, obtengo los
siguientes valores. Recuérdese que el "gobernador" por defecto tras la
compilación es 'performance' [Selecciono sólo las líneas que
interesan]:
clock : 1333MHz
bogomips : 1328.48
Cambiemos el "gobernador" por defecto 'performance' por 'powersave':
- Creo un directorio para montar en él sysfs:
mkdir /sys
- Accedo al sistema virtual de archivos sysfs (novedad de los 2.5/2.6)
[Nota.- Puedo hacer que el acceso a sysfs sea permanente con:
echo "sysfs /sys sysfs defaults 0 0" >> /etc/fstab
]:
mount -t sysfs sysfs /sys
- Cargo el módulo del "gobernador" 'powersave':
modprobe cpufreq_powersave
- Cambio el "gobernador" anterior 'performance' por 'powersave':
echo "powersave" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Tras los cambios, ahora cat /proc/cpuinfo
me da:
clock : 816MHz
bogomips : 813.05
Y ahora, a ver lo que conseguimos tras instalar un programa en
espacio de usuario como powernowd.
[Nota: cpudyn debería valer, además es más versatil,
y yo particularmente lo prefiero por varias razones. Pero hasta hace
poco parece que no funcionaba bien en estas máquinas con los nuevos
núcleos. Quizá la situación haya cambiado. No he tenido tiempo todavía
de probarlo aquí. Cualquier información al respecto será bienvenida.]
apt-get install powernowd
modprobe cpufreq_userspace
/etc/init.d/powernowd restart
cat /proc/cpuinfo ## Da los valores que obteníamos antes con 'powersave'.
find / hola ## Ejecutado en otra consola.
cat /proc/cpuinfo ## (En la primera consola y antes de que termine el find)
## da los valores que obtuvimos antes con 'performance'
* Por hacer
Hemos conseguido mucho, pero aún quedan cosas. En la mayor parte de
los casos, no tengo el hardware para probarlo y por tanto no he podido hacer nada. Estas son, y espero no dejarme ninguna:
- Tarjeta de Red inalámbrica
[La Airport Extreme tiene pocas posibilidades, hay informes de éxito
al menos parcial con tarjetas Wireless PCMCIA, tipo Orinoco. Para más
información ver la lista de debian-powerpc.]
- Modem interno
[¿Será un modem Conexant como los de los anteriores TiBooks? ¿Se
atreve alguien a abrir el cacharro y mirar por dentro ;-)?]
- USB2
- Grabación de DVD
- Dispositivos FireWire
- Dispositivos Bluetooth
- DVI, VGA y S-video
Esto esto todo por ahora. Uf, estaba deseando terminar. Espero que no se hayan colado errores estúpidos o me haya dejado cosas importantes por decir.
Añado una encuesta para que la gente se descargue. Yo he votado la primera opción.