Sólo quiero comentar esto rápidamente e irme a casa, mañana sigo: cuidado al instalar Ubuntu 8.04 Hardy en un Macbook, tras muchos intentos he encontrado una combinación que funciona pero todas las demás resultaban en una pantalla en negro diciendo No boot device found - insert disk and press any key.

La receta para el éxito es:

  • Sincronizar la tabla de particiones MBR con la GPT, tal como hice al instalar Ubuntu 7.04 Feisty Beta en Macbook Core 2 Duo
  • Instalar Ubuntu 8.04 con el CD normal (32 bits, no probé 64 bits) y en el último paso, antes de comenzar la instalación, pinchar en Avanzado y utilizar (hd0,n) en lugar de (hd0) para el cargador de arranque. En mi caso usé (hd0,3) que es /dev/sda4 que es donde instalé Kubuntu
  • Sincronizar la tabla de particiones MBR con la GPT. Sí, otra vez, no estoy seguro de cuál de las dos es la necesaria –¿valiente que lo averigüe? :-P

Una cosa curiosa es que ahora, como tengo Grub en dos particiones, rEFIt muestra dos pingüinos, uno para cada Grub :-)

El problema de que Ubuntu utilice UUID en lugar de /dev/sdaN es que la instalación de Kubuntu me cambió el UUID de la partición donde lo instalé, por lo que al arrancar la otra partición no encuentra el UUID y se queja:

 * Checking file systems...
fsck 1.40.2 (12-Jul-2007)
fsck.ext3: Unable to resolve 'UUID=039f48e3-e983-4482-9c2e-89dabe9718ee'
/dev/sda8: clean, 256042/4243456 files, 7063887/8475794 blocks
fsck died with exit status 8
* File system check failed.
A log is being saved in /var/log/fsck/checkfs if that location is writable.
Please repair the file system manually.
* A maintenance shell will not be restarted.
CONTROL-D will terminate this shell and resume system boot.
Give root password for maintenance
(or type CONTROL-D to continue):
bash: no job control in this shell
bash: groups: command not found
bash: lesspipe: command not found
bash: Command: command not found
bash: The: command not found
bash: dircolors: command not found
bash: Command: command not found
bash: The: command not found
root@binky# 

Eso es lo que pasa cuando doy la clave de root, da unos pocos errores y se queda tal cual. Pulsando Ctrl+D después de esto hace que el sistema termine de arrancar pero sin montar /home, pero pulsnado Ctrl+D sin haber puesto la clave de root, el sistema arranca normalmente y funciona bien.

Pulsando Ctrl+Alt+F1 me voy a una terminal de texto y veo esto:

kinit: name_to_dev_t(/dev/disk/by-uuid/c14f97c2-8dee-4417-8320-58e0de97e223) = sda7(8,7)
kinit: trying to resume from /dev/disk/by-uuid/c14f97c2-8dee-4417-8320-58e0de97e223
kinit: No resume image, doing normal boot...

Pero que no cunda el pánico, sólo está diciendo que no hay que cargar una imagen de memoria de las que se guardan cuando se suspende a disco (hibernar). El verdadero problema está en /etc/fstab, la partición con el UUID problemático es la que utilicé para instalar Kubuntu pero como no me interesa montarla me basta con comentar esa línea y fuera.

Lo que sigue empecé a escribirlo en enero instalando Bardinux 2.5, pero he adaptado algunos detalles para adecuarlos a K/Ubuntu 8.04 –así que no los uses para K/Ubuntu 7.10, Bardinux 2.5 o anterior.

Harto como estaba ya del Gnome y sus gnognerías, aproveché mi última visita a la Oficina del Software Libre de la ULL para hacerme con la última versión de Bardinux, que ya le tenía ganas :-)

La instalación inicial de Bardinux 2.5 es tan sencilla como arrancar el Live CD, lanzar el instalador y seguir las instrucciones. En cosa de media hora ya está instalado y listo para usar. Casualmente actualicé el firmware EFI de Macbook (v1.1) y no tuvo ningún efecto sobre rEFIt así que no hay mucho más que decir en eso. Bueno, sí: ahora por fin funciona el teclado en Grub. (Esto es sólo válido para Bardinux 2.5, con K/Ubuntu 8.04 tuve problemas con Grub, como ya he descrito más arriba.

Nota: si durante la instalación no tenías acceso a Internet, necesitas ejecutar sudo apt-get update primero.

Teclado

Al igual que cuando instalé Ubuntu 7.04 Feisty Beta en MacBook Core 2 Duo, lo primero que recomiendo hacer es poner el teclado al derecho:

sudo sed -i~ 's/RCTL/KPEN/' /etc/X11/xkb/symbols/pc
sudo sed -i~ '/xkb_symbols "ralt_switch" {/a include "level3(rwin_switch)"' /etc/X11/xkb/symbols/level3

Esto hace que la manzanita de la derecha sea AltGr y la tecla de Enter a su lado sea Control. La manzanita de la izquierda se puede utilizar como tecla modificadora adicional, llamada Win. Así puedo utilizar combinaciones de teclas para mis otras maniobras más habituales, en Preferencias > Teclado > Accesos rápidos de teclado (globales).

El problema es que amarok usa por defecto muchas de mis combinaciones favoritas, así que se las tuve que cambiar (Preferencias > Configurar accesos rápidos globales). Pero aún peor, sólo amarok obedece las combinaciones Win+, el resto de aplicaciones simplemente ignora el modificador Win, así que al final uso Alt fuera de amarok :-D

Si usas mucho Firefox posiblemente aprecies poder usar F3 y F5 sin tener que pulsar Fn, para ello añade esta línea en /etc/rc.local
echo -n 0x02 > /sys/module/hid/parameters/pb_fnmode

Ratón

El ratón funciona estupendamente desde el principio: tocando con uno, dos y tres dedos se tienen los botones izquierdo, central y derecho respectivamente. Deslizando un dedo por el borde derecho se emula la rueda del ratón.

El comportamiento de ratón se puede cambiar a gusto, yo lo he dejado lo más parecido posible al de Mac OS X para no liarme, aquí dejo la sección de xorg.conf correspondiente:

Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "SHMConfig" "on"
Option "VertEdgeScroll" "0"
Option "HorizEdgeScroll" "0"
Option "VertTwoFingerScroll" "1"
Option "HorizTwoFingerScroll" "1"
Option "VertScrollDelta" "42"
Option "HorizcrollDelta" "42"
Option "RTCornerButton" "0"
Option "RBCornerButton" "0"
Option "LTCornerButton" "0"
Option "LBCornerButton" "0"
Option "TapButton1" "1"
Option "TapButton2" "3"
Option "TapButton3" "2"
EndSection

Conviene activar la opción SHMConfig para poder cambiar el comportamiento del ratón mediante syndaemon. Para más información sobre estos parámatros: man synaptics
RTFM, que está muy bien explicadito ;-)

En Bardinux 2.5, instalando el paquete ksynaptics tienes el applet syndoc para personalizar el Touchpad sobre la marcha, pero parece que los cambios no se aplican cada vez que se inicia la sessión. En kubuntu 8.04 ni me molesté en probarlo, con la configuración de xorg.conf el ratón simplemente funciona de maravilla :-)

Para poder teclear sin que el cursor cambie de sitio al rozar el touchpad, puse este script en ~/.kde/Autostart/mouse para deshabilitar el ratón (salvo movimiento) mientras el teclado está en uso:

#!/bin/sh syndaemon -d -t

Dado que este script está en mi directorio personal, sobrevive a todas las reinstalaciones.

El deslizamiento horizontal está bien tenerlo para navegar web, pero Firefox lo interpreta como ir hacia atrás y adelante en el historial, lo que resulta muy inconveniente cuando no se tienen ruedas (o botones) independientes en el ratón. Se puede cambiar esto yendo a about:config y modificando:

mousewheel.horizscroll.withnokey.action 0
mousewheel.horizscroll.withnokey.numlines 1
mousewheel.horizscroll.withnokey.sysnumlines true

Buscando por mousewheel.horizscroll. están los parámetros para modificar el comportamiento con deslizamiento horizontal mientras se presiona una tecla modificadora –Ctrl o Alt– pero no me interesa. Esta modificación no es necesaria con Firefox 3.0 :-)

Firefox no viene instalado en Kubuntu 8.04 por defecto, ¿por qué será? Mmm… a lo mejor para que te des cuenta de que puedes instalar Firefox 3.0 Beta 5, que también puede no interesarte porque muchos plugins (add-ons) aún no son compatibles con Firefox 3.

Pantalla

La aceleración gráfica por hardware funciona de serie –¡faltaría más!–

El control de brillo de la pantalla, tal como viene de serie, no me permite dejar la pantalla negra, cosa que logré en Bardinux 2.5 instalando el paquete pommed.

Instalar el paquete 915resolution no cambió nada en Bardinux 2.5, ni siquiera tras un reinicio completo, me quedo con 1280×768 que tampoco está mal. En Kubuntu 8.04 tampoco me molesté en probarlo.

Como de costumbre, KDM arranca el servidor X con la opción -nolisten-tcp, que impide que un usuario pueda enviarle ventanas a otro, usando xhost +localhost el que recibe y export DISPLAY=localhost:0.0 el que envía. Esto se cambia en /etc/kde3/kdm/kdmrc comentando la línea correspondiente.

#ServerArgsLocal=-nolisten tcp

Suspender no funcionaba bien en Bardinux 2.5 por un problema del kernel heredado de Ubuntu 7.04, se podía usar el kernel anterior (2.6.22-12) o el de Ubuntu 8.04 Hardy. Al instalar 8.04 simplemente funciona :-)

Sonido

El sonido (SigmaTel STA9221 A1) no funciona con los drivers incluídos en Ubuntu 8.04 (ALSA 1.0.15, kernel 2.6.24-16). En las últimas versiones de ALSA algunos controles vienen silenciados por defecto, pero poniendo todos los contrales al máximo con alsamixer -V all no ayuda. Es necesario compilar los últimos drivers de ALSA (1.0.16) siguiendo las instrucciones disponibles aquí usando module-assistant

sudo apt-get install build-essential linux-headers-$(uname -r) module-assistant alsa-source
sudo dpkg-reconfigure alsa-source
sudo module-assistant a-i   alsa-source

Al ejecutar sudo dpkg-reconfigure alsa-source has de responder: sí, sí, hda-intel y pa’lante :-)

Nota: Esta maniobra inutiliza los drivers de Madwifi para la wireless –que describo más abajo para que instales ALSA primero.

También se necesario modificar /etc/modprobe.d/alsa-base según explican en la guía How to install Ubuntu on a MacBook. Para que funcione el micrófono hay que ajustar el mezclador. Lo del micrófono no tiene truco pero es fácil que se te escape algún control así que pongo una captura de cómo hay que dejar la sección de Entrada en KMix:

kmixer-output.png
kmixer-input.png
kmixer-param.png

En Bardinux o 7.10, en la sección de Parámetros, hay que seleccionar “Mic” para el “Input Source”, no “Front Mic”.

En Bardinux (y en Ubuntu 7.10) KMix controla el canal Master como principal por defecto, pero en estos MacBooks el canal que se necesita cambiar es PCM. Para cambiar esto: botón derecho en el icono de KMix en el panel, “Seleccionar el canal maestro…” y elegir PCM.

Aún así, en Bardinux 2.5, las teclas F4 y F5 seguirán modificando el ajuste del canal Master cuando no deberían. Esto ya está arreglado en Kubuntu 8.04

En Bardinux, el paquete bardinux-multimedia tiene todo lo necesario para reproducir multimedia. En Kubuntu 8.04 amaroK los instala automáticamente (pidiendo permiso y contraseña) la primera vez que intentas escuchar un MP3. Si no puedes instalarlo en ese momento, no te volverá a preguntar, pero puedes instalar el paquete libxine1-ffmpeg en cualquier otro momento.

Wireless

La tarjeta wireless ya no tiene tanto truco, basta seguir los pasos indicados en la guía How to install Ubuntu Gutsy on a MacBook:

sudo apt-get install build-essential autoconf automake
wget http://snapshots.madwifi.org/madwifi-trunk-current.tar.gz
tar -zxvf madwifi-trunk-current.tar.gz
cd madwifi-trunk-r*
make
sudo make install-modules
echo -e '#!/bin/shn/sbin/iwpriv ath0 bgscan 0' | sudo tee -a /etc/acpi/resume.d/99-madwifi-bgscan.sh
sudo chmod 755 /etc/acpi/resume.d/99-madwifi-bgscan.sh

Kubuntu 8.04 include el paquete network-manager-kde, que contiene el applet KNetworkManager para el subsistema de NetworkManager. Con este applet ves todas las redes disponibles y funciona de maravilla con WPA. En Bardinux 2.5 necesitas instalar el paquete (apt-get install network-manager-kde) manualmente.

knetworkmanager.png

KWifiManager no sirve para conectarse, sólo permite ver la calidad de la señal una vez que ya te has conectado. Esto es así incluso para redes totalmente abiertas. Wireless Assistant conecta sin problemas con redes sin encriptación. Debería conectar también con WEP y WPA pero no lo hace. Finalmente, Kwlan –supuestamente la opción ideal para WAP– no conecta y además el comportamiento del GUI es bastante poco amigable.

Joystick

No podía faltar cargar el módulo applemc para disfrutar de un joystick de dos ejes basado en los sensores de movimiento del MacBook:

sudo modprobe applesmc
echo applesmc | sudo tee -a /etc/modules

Dado que este joystick será /dev/input/js0 cualquier juego preparado para joystick será más difícil todavía :-D

He probado el joystick con trackballs y neverball… son un dolor de brazos :-D