Otros
Escalado de frecuencia
El procesador G4 con el que cuenta el iBook puede funcionar a 606MHz y a 799MHz. La principal
ventaja que supone esto es el incremento de la autonomía de la batería que proporciona; debido a que,
a menos frecuencia menos consumo. Para que funcione, el primer requisito será proporcionarle
soporte en el kernel. Veamos las opciones relevantes:
Una vez que tengamos este soporte en el kernel, podremos ver que el procesador está funcionando
a 606MHz:
Ahora necesitamos un daemon que se encargue de subir y bajar la frecuencia del procesador
según sea necesario. De los que he probado, el único que me ha funcionado ha sido
cpudyn. Podemos instalar tecleando:
Para iniciarlo ejecutamos:
Y así tendremos el escalado de frecuencia funcionando. Podemos ver como varía observando
/proc/cpuinfo. Si queremos que se inicie siempre al arrancar el sistema, podemos
hacerlo tecleando:
- [*] CPU Frequency scaling
- Default CPUFreq governor (userspace)
- <*> 'performance' governor
- <*> 'powersave' governor
- [*] Support for Apple PowerBooks
- grep clock /proc/cpuinfo
- clock : 606MHz
- emerge cpudyn
- Iniciando cpudyn
- /etc/init.d/cpudyn start
- rc-update add cpudyn default
Pbbuttonsd
Pbbuttonsd es el demonio que se encarga de controlar los botones del brillo, el volumen y
extracción del cd. Es muy útil, además de sencillo de configurar. Para instalarlo tecleamos:
Para su configuración recomiendo usar powerprefs, ya que nos permitirá hacerlo todo
gráficamente de una forma muy cómoda. No obstante, yo me he creado un
pbbuttonsd.conf a mano y lo he dejado disponible.
- Instalando pbbuttonsd
- emerge pbbuttonsd
Emulación de los botones 2 y 3 del ratón
El touchpad del iBook solo tiene un botón, por lo que si queremos usar los botones 2 y 3 del ratón
sin conectar uno externo, tendremos que emularlos usando ciertas teclas. El único requisito para que
esto funcione es tener una configuración del kernel adecuada. En primer lugar,
tenemos que decidir que teclas vamos a asignar a los botones, ya que perderemos la funcionalidad de dichas
teclas. Yo he optado por Comando (la tecla de la manzana) y Function+Comando. Ahora tenemos que averiguar
sus keycodes; para ello usaremos showkey desde una consola (desde las X no funciona):
Una vez que tenemos estos números, ejecutamos:
Ahora dichas teclas se comportarán como los botones del ratón que le hemos asignado. Si queremos
que este comportamiendo se aplique cada vez que iniciemos la máquina, debemos de añadir las
siguientes líneas a /etc/sysctl.conf:
- Ejecutamos showkey
- showkey
- La salida será algo así
- keycode 125 press
- keycode 125 release
- Activando la emulación
- echo 1 > /proc/sys/dev/mac_hid/mouse_button_emulation
- Asignando el keycode 126 al botón 2
- echo 126 > /proc/sys/dev/mac_hid/mouse_button2_keycode
- Asignando el keycode 125 al botón 3
- echo 125 > /proc/sys/dev/mac_hid/mouse_button3_keycode
- dev.mac_hid.mouse_button_emulation = 1
- dev.mac_hid.mouse_button2_keycode = 126
- dev.mac_hid.mouse_button3_keycode = 125
Bluetooth
El dispositivo bluetooth integrado del iBook es prácticamente análogo a un dispositivo bluetooth
basado en USB. Comenzaremos dando soporte en el kernel para dispositivos bluetooth USB:
Una vez compilados y cargados estos módulos, necesitamos las herramientas en espacio de usuario:
Ahora al ejecutar /etc/init.d/bluetooth start tendremos bluetooth funcionando. Si queremos
que se inicie siempre al iniciar la máquina podemos ejecutar:
En cuanto a configuraciones específicas de bluetooth, a medida que vaya probando cosas nuevas iré
añadiéndolas aquí.
- Sección Networking Support
- <M> Bluetooth subsystem support
- Sección Bluetooth subsystem support
- <M> L2CAP protocol support
- <M> RFCOMM protocol support
- <M> BNEP protocol support
- [*] Multicast filter support
- [*] Protocol filter support
- Sección Bluetooth device drivers
- <M> HCI USB driver
- Instalando bluez-utils
- emerge bluez-utils
No son necesarios más paquetes. Lás ultimas versiones de bluez-utils contienen
sdpd, hcid, pand y dund.
El dispositivo bluetooth del iBook funciona por defecto en modo HID. Para la mayoría de
las tareas, es necesario que funcione en modo HCI. Este comportamiento se modifica
ejecutando hid2hci. En Gentoo podemos configurar el script de inicio de bluetooth
para que lo ejecute automáticamente. Editamos la siguiente opción en /etc/conf.d/bluetooth:
- HID2HCI_ENABLE=true
- Añadiendo bluetooth al inicio
- rc-update add bluetooth default
Red TCP/IP sobre bluetooth
Uno de los problemas que existen actualmente con los iBook G4 bajo Linux es que el Airport Extreme
carece de soporte. Esto obliga a utilizar un dispositivo externo en caso de querer acceder a redes
inalámbricas. Como es bastante incómodo y mi iBook tiene el bluetooth integrado, opté por adquirir
un dispositivo bluetooth USB para el servidor y montar un NAP (Network Access Point). Aunque
bluetooth no tiene el alcance ni la velocidad de 802.11, creo que es una solución bastante buena
(y cómoda) para casa.
Comenzaremos configurando el servidor. En primer lugar, necesitaremos exactamente los mismos módulos
del kernel y los mismos paquetes que para el iBook. Una vez tengamos esto listo, editamos
/etc/conf.d/bluetooth. Las opciones relevantes son:
- Lanzar hcid
- HCID_ENABLE=true
- Lanzar sdpd
- SDPD_ENABLE=true
- No ejecutar hid2hci
- HID2HCI_ENABLE=false
- No lanzar dund
- DUND_ENABLE=false
- No activar rfcomm
- RFCOMM_ENABLE=false
- Lanzar pand
- PAND_ENABLE=true
- Configurar pand como NAP
- PAND_OPTIONS="--listen --role NAP"
Mi dispositivo bluetooth USB funciona por defecto en modo HCI y no
requiere la ejecución de hid2hci. Otros dispositivos podrían
necesitarla.
El único que paso que resta es ejecutar /etc/init.d/bluetooth start. Con esto tendríamos
nuestro NAP bluetooth funcionando. Si deseamos que se active al iniciar la máquina:
- Añadiendo la activación del NAP al inicio
- rc-update add bluetooth default
En el lado del cliente la configuración también es bastante sencilla. Las opciones son todas idénticas
a las del servidor, excepto una:
Una vez hayamos configurado tanto el cliente como el servidor, hayamos ejecutado
/etc/init.d/bluetooth start y estos se encuentren a una distancia
desde la que bluetooth tenga alcance, se asociarán. Podremos ver unos mensajes similares a estos:
A partir de ese momento tendremos una nueva interfaz de red en cada máquina, bnep0.
Si les asignamos direcciones de la misma red, las dos máquinas ya podrán comunicarse.
- Configurar pand para que busque un NAP
- PAND_OPTIONS="--persist --search --service NAP"
- Mensaje en el servidor
- Oct 10 12:32:24 [pand] New connection from 00:0D:93:03:63:8E bnep0
- Mensaje en el cliente
- 08:Oct 10 12:32:05 [pand] bnep0 connected
Es posible automatizar el proceso de configuración de las interfaces una vez
se ha establecido la conexión. Para ello se utiliza el script /etc/bluetooth/pan/dev-up,
que se ejecutará cada vez que se produzca un enlace pasándole el nombre de la interfaz
como primer argumento y la dirección BD del otro extremo del enlace como segundo argumento.
Una explicación en profundidad de la configuración de la red (con enrutamiento,
enmascarado, bridging y otras técnicas) a partir de estos scripts se sale del ámbito de este documento.
No obstante, he dejado disponibles a modo de ejemplo tanto el script que uso en el
servidor como el que uso en el
cliente.
Estos scripts funcionan en mi red, pero no tienen por qué funcionar
en otras configuraciones.


