- Tarjeta gráfica Intel GMA950
- Tres puertos USB 2.0
- Red Ethernet Gigabit de Marvell
- Red inalámbrica Airport (chip Atheros)
- Un puerto Firewire 400
- Bluetooth 2.0
- Tarjeta de sonido Intel High Definition Audio (Sigmatel STAC9221)
- Mando Apple Remote
- Disco duro SATA de 60GB (Fujitsu) *
- Combo DVD/CD-RW (Matshita) **
* 80GB en el modelo de 1.8
** Grabadora DVD en el modelo de 1.8
NOTA: He intentado que esta guía sea universal para cualquier Linux, pero al estar basada en mi instalación personal de Debian, puede contener imprecisiones si se aplica con otras diferentes.
NOTA2: Como Apple no aclara mucho las cosas en su web y no he visto ningún sitio que lo aclare explícitamente, he de aclarar que el procesador que lleva es de 32 bits (Core Duo), no como su equivalente de 64 bits (Core 2 Duo), así que necesitarás un cd de instalación para la arquitectura x86.
1.- INSTALACIÓN
1 A - CUMPLIENDO PRERREQUISITOS
Se podría decir que la instalación es extremadamente sencilla salvo por un único problema que explicaré más adelante, pero vamos por partes y empecemos por el principio.
Acabas de desempaquetar tu Mac Mini y acabas de finalizar el asistente inicial de Mac OS X. Lo primero que debes hacer es actualizar el sistema a la última versión, sobre todo el firmware; esto es bastante importante. Si tienes configurada tu conexión a Internet posiblemente el propio sistema ya te lo haya pedido y ya lo hayas hecho anteriormente.
Ahora te vas a bajar e instalar un programita llamado Boot Camp. Éste programa lo diseñó Apple para facilitar la instalación de Windows, pero tú sólamente lo vas a usar para dividir el disco duro en dos particiones. La respuesta al por qué de usar esta herramienta y no el particionador habitual, es que no sólo vamos a particionar el disco, también permitirá que el firmware de Mac pueda permitir la ejecución de sistemas operativos pensados para PCs con BIOS como Linux o Windows.
Una vez instalado, ejecútalo y sigue el asistente hasta que llegues al particionado. Una vez aquí, divide el disco duro según el espacio que quieras darle a Linux, que se instalará en la segunda partición. Una vez acabado el particionado puedes cancelar el asistente.
Ahora necesitamos tener un cargador de arranque, pero vamos a usar uno especial llamado rEFIt, lo de siempre: lo bajamos, y tras instalarlo, al siguiente inicio ya tendremos un bonito menú inicial. Por decirlo de alguna manera, igual que los PCs tienen la BIOS, los Macs tienen otra cosita llamada EFI, y las cosas son algo diferentes. Lo que hará rEFIt será mostrarnos en el inicio un menú con todos los medios "arrancables" en el PC, incluyendo CDs. rEFIt permitirá hacer de puente y arrancar LILO, a partir de lo cual tu Linux funcionará exactamente igual que como en un PC.
1 B - COMENZANDO LA INSTALACIÓN
Ahora ya estamos preparados para iniciar la instalación de Linux (en mi caso Debian). Arrancamos con el CD de instalación o bien desde el menú de rEFIt que desde ahora aparece al inicio, o manteniendo pulsada la tecla "C" mientras se enciende el Mac.
A partir de aquí la instalación transcurre como en el más común de los casos. Asumo que ya sabes instalar tu distribución de Linux así que no me voy a extender. Como he dicho, todo transcurre con normalidad hasta que llega el momento de instalar el gestor de arranque. Hasta el momento de escribir esto, este problema ocurre en todos los casos que conozco, pero si no has tenido ningún error y tu Linux arranca bien, no hace falta que hagas caso de lo siguiente. A continuación te puedes tragar el párrafo siguiente con la explicación, o saltar directamente al siguiente para saber cómo solucionarlo sin más.
Resulta que los Macs tienen un sistema de particionado distinto al de los PCs (GPT vs MBR respectivamente). Pero fdisk (la herramienta usada para particionar en Debian, Ubuntu, etc...) no soporta dicho sistema de particionado, con lo cual, como seguramente modificaremos la tabla de particiones dividiendo la que hicimos con Boot Camp para alojar Linux y swap como mínimo, acabaremos con un sistema en el que según GPT hay dos particiones y según MBR hay tres. rEFIt sincroniza estos cambios, pero como no puedes ejecutarlo después del particionado, para cuando instales el gestor de arranque posiblemente te dé un error. Esto se solucionaría incluyendo rEFIt en las nuevas versiones de los instaladores de las distribuciones, de hecho, sin este problema, posiblemente esta guía sería innecesaria.
1 C - RESOLVIENDO POSIBLE PROBLEMA CON EL ARRANQUE
Al lío: hemos acabado de instalar Linux sin el gestor de arranque, por lo que tendremos un Linux totalmente funcional instalado, pero sin posibilidad de arrancarlo. Cuando inicies el sistema, navega por el menú de rEFIt hasta entrar a "Start partitioning tool", nos preguntará si queremos sincronizar la tabla de particiones y le diremos que sí escribiendo "y". Ahora ya podemos instalar el gestor de arranque, así que suponiendo que la primera partición sea la de Mac OSX, la segunda de la swap y la tercera de Linux, aquí van las instrucciones exprés:
Para que sepas de qué hablo, a mí se me quedó una tabla de particiones como esta:
- Arranco de nuevo con el CD de instalación de Debian (que yo sepa, vale el de Debian, Gentoo, Ubuntu o Knoppix).
- Si es el CD de una distribución con instalación no gráfica, pasamos de la instalación y pulsamos alt+F2 para acceder a una consola (en Gentoo no hace falta, ya estás en ella salvo en modo gráfico). Con Ubuntu o Knoppix deberemos deberemos abrir una consola (por ejemplo ejecutando xterm) y desde ahí hacer lo siguiente con privilegios de root:
o donde esté la partición raíz
# cp /etc/resolv.conf /mnt/etc/resolv.conf
para tener nombres de servidores DNS funcionales
# mount -t proc none /mnt/proc
# mount -o bind /dev /mnt/dev
# chroot /mnt
# apt-get install lilo
por si no lo tenías ya instalado
Acabamos de entrar con un CD de instalación y nos hemos "colado" en el
sistema, ahora podemos ejecutar comandos desde dentro, y de esa forma
instalaremos LILO. Ahora editaremos el archivo /etc/lilo.conf con el
editor nano para que quede algo parecido a esto:
root=/dev/sda4
prompt
timeout=50
map=/boot/map
vga=normal
default=Linux
image=/boot/vmlinuz-2.6.18-3-686
label="Linux"
initrd=/boot/initrd.img-2.6.18-3-686
read-only
Evidentemente debes sustituir los datos de arriba por los del kernel que
estés usando.
Guardamos y salimos del editor.
Ahora el último paso: añadir la etiqueta de arranque a la partición de
Linux:
# parted /dev/sda
(parted) print
(parted) set 4 boot on(el número de la partición raíz de Linux)
(parted) quit
Y el paso final, instalar LILO en el sector de arranque:
¡Al reiniciar ya tenemos un Linux listo para usar!
Nota: Como no hemos tocado la tabla de particiones probablemente todo
vaya bien y no haya que sincronizar, pero te recomiendo hacerlo en el
primer reinicio para asegurarte.
2.- DANDO SOPORTE AL HARDWARE
En mi caso personal (Debian), el sistema detectó perfectamente
absolutamente todo el hardware sin hacer nada. Sólamente tuve que hacer
algo manualmente para dar soporte al Bluetooth, la red inalámbrica y el
mando remoto. No obstante, si quieres afinar al máximo el rendimiento de
tu sistema, te recomiendo que compiles tu propio núcleo con los parches
de Mactel-Linux. Para los que
quieran compilar su propio kernel, daré instrucciones en cada apartado,
y para los que no, simplemente tenéis que leer la parte del hardware que
quereis hacer funcionar.
Puedes bajarte mi archivo de
configuración para un kernel 2.6.19 con los parches de mactel-linux
donde ya están aplicados los cambios necesarios para que funcione todo y
que detallo en cada parte.
2 A - EL PROCESADOR
Con instalar la variante *-smp de tu kernel ya estás dando soporte a los
dos núcleos de tu procesador.
Si estás compilando tu propio kernel, selecciona:
Processor type and features --->
[*] Symmetric multi-processing support
Subarchitecture Type (PC-compatible) --->
Processor family (Pentium M) --->
2 B - TARJETA GRÁFICA
Debian la detecta y configura sin mayores problemas, pero si tienes
problemas con monitores panorámicos quizás te interese leer
ésto.
Si estás compilando tu propio kernel, te interesará dar soporte para la
aceleración por hardware:
Device Drivers --->
Character devices --->
<*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
<*> Intel I810
<*> Intel 830M, 845G, 852GM, 855GM, 865G (i915 driver) --->
Con el primero punto activas el soporte para aceleración por hardware.
Con el segundo punto das soporte de aceleración para el driver i810 de
xorg (que es el que dará soporte a tu gráfica)
Con el segundo punto especificamos si la tarjeta a usar es de la serie
i830 o de la i915. Es importante marcar el segundo, de lo contrario la
aceleración no funcionará.
Puedes comprobar si está funcionando la aceleración por hardware
escribiendo en consola:
2 C - USB y Firewire
Ambos funcionan sin problemas automáticamente con Debian.
Si estás compilando tu propio kernel, selecciona:
Device Drivers --->
USB support --->
<*> EHCI HCD (USB 2.0) suppor
<*> OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support
IEEE 1394 (FireWire) support --->
<*> IEEE 1394 (FireWire) support
<*> OHCI-1394 support
<*> OHCI-1394 Video support
2 D - Red Ethernet de Marvell
También funciona sin problemas automáticamente con Debian.
Si estás compilando tu propio kernel, selecciona:
Device Drivers --->
Network device support --->
<*> Marvell Yukon Chipset / SysKonnect SK-98xx Support
2 E - Red inalámbrica Airport
La tarjeta inalámbrica monta el chip Atheros, hay que instalar los
drivers madwifi ya que no hay soporte
dentro del kernel.
Con Debian (y también Ubuntu, supongo) basta con ejecutar como root
"modules-assistant" en una consola y compilar el módulo madwifi. El
propio asistente se encargará de bajar, compilar e instalar un módulo
personalizado para tu kernel.
Con cualquier distribución, basta con bajar los drivers desde su página
web, compilarlos e instalar el módulo.
En ambos casos es necesario tener el paquete headers del kernel
que se esté usando. Por ejemplo, si tengo linux-image-2.6.18-smp,
necesitaré instalar el paquete linux-headers-2.6.18-smp.
2 F - Bluetooth
Como nunca he usado Bluetooth, me he limitado a explicar cómo dar
soporte tras comprobar que funciona, pero no sé cómo enviar/recibir
archivos ni cómo usarlo para más cosas (quizás en una entrada futura).
El soporte de Bluetooth no es que no sea automático (que lo es), pero se
hace necesario instalar el paquete bluez-utils.
Gracias a éste paquete dispondremos del comando hciconfig, con el cual
comprobaremos que el dispositivo USB ha sido detectado y funciona
correctamente.
Si ejecutas dicho comando y aparece "DOWN" en lugar de "UP AND RUNNING",
simplemente ejecuta lo siguiente:
Finalmente para tener el soporte con cada reinicio, acuérdate de añadir
el servicio "bluetooth" al inicio.
Si estás compilando tu propio kernel, selecciona:
Networking -->
<*> Bluetooth subsystem support -->
<*> L2CAP protocol support
<*> RFCOMM protocol support
[*] RFCOMM TTY support
Bluetooth device drivers --->
<*> HCI USB driver
2 G - Tarjeta de sonido
Funciona automáticamente con Debian, no requiere configuración alguna.
Si estaś compilando tu propio kernel, selecciona:
Device Drivers --->
Sound --->
Advanced Linux Sound Architecture --->
PCI devices --->
<*> Intel HD Audio
2 H - Mando Apple Remote
Esto es lo único que no funciona con el kernel que lleva por defecto
Debian. El mando actúa como si fuera un teclado inalámbrico, por lo que
sólamente habría que escanear sus teclas con xmodmap para darle soporte
con cualquier programa. El problema es que el receptor no está soportado
en el kernel que lleva Debian en el momento de escribir esto (2.6.18 en
testing) y me consta que en el 2.6.19 tampoco.
Los chicos de mactel-linux se han currado parches para las tres últimas
versiones del kernel, por lo que en teoría hubiera sido posible parchear
las fuentes de Debian con el parche appleir e instalar el módulo,
pero al final no me salió bien así que decidí compilar el kernel entero
ya de paso aprovechando para aplicar el resto de parches de mactel-linux
para optimizar al máximo el funcionamiento. En la tercera sección de
esta guía explico cómo parchear y compilar un kernel con Debian (también
valdría con Ubuntu, supongo), aquí sólo voy a explicar cómo configurar
el mando.
Bien, ya hemos arrancado nuestro nuevo y flamante kernel. Para que el
"configurador de teclas" de nuestro gestor de ventanas (KDE, GNOME,
XFCE...) pueda recibir esas teclas, habrá que mapearlas. Hay que usar la
herramienta xev para sacar los códigos de los botones, pero te ahorraré
ese trabajo; vamos al siguiente paso.
Dentro de tu carpeta personal crea un archivo llamado .Xmodmap
(importante las mayúsculas/minúsculas y el punto delante) que contenga
lo siguiente:
keycode 153 = F14
keycode 176 = F15
keycode 174 = F16
keycode 162 = F17
keycode 158 = F18
keycode 115 = F19
puedes o bien reiniciar el sistema gráfico, o aplicar la configuración
en caliente con este comando:
Una vez hecho esto, tu gestor de ventanas (o el programa que uses para
configurar las teclas) ya las reconocerá y podrás aplicarle la función
que quieras. Por ejemplo usar "xmms -t" para play/pause o "xmms -r" para
retroceder una pista (escribe en consola xmms --help o "tuprograma
--help" para saber la lista completa de funciones). Para subir y bajar
el volumen respectivamente yo uso éstos comandos:
amixer sset 'PCM' 3%+
amixer sset 'PCM' 3%-
Donde 3% es el porcentaje que sube o baja el volumen con cada pulsación,
puedes por supuesto cambiarlo a tu gusto.
3.- OPCIONAL: COMPILANDO UN KERNEL PERSONAL Y OPTIMIZADO
Lo siguiente es una guía exprés sobre cómo compilar un kernel
personalizado en Debian, que junto con los parches de mactel-linux
tendremos un soporte más optimizado.
Entramos al directorio src
Nos bajamos el último kernel estable (sustituye el enlace por otro más
reciente si lo hubiera)
Descomprimimos el paquete que nos acabamos de bajar
Eliminamos el enlace simbólico "linux", si es que ya lo hubiera, y
creamos uno al nuevo
Sustituye linux-2.6.19.1 por el directorio que se creó al descomprimir
el paquete en el paso anterior
Entramos al código fuente del kernel a través del recién creado enlace
simbólico
Ahora dirígete a la
lista de parches de mactel-linux y bájate los que correspondan al
kernel que estás usando. Elige los que quieras, yo los instalé todos
excepto el del touchpad, porque es sólo para portátiles (obviamente). El
que vas a necesitar para que funcione el mando remoto es el ir.patch.
Esos parches que te acabas de bajar, cópialos en /usr/src/linux
Aplica uno por uno los parches con el siguiente comando
Una vez parcheado el kernel, lo configuro (navego por las secciones,
configuro, exit, y respondo que sí a guardar)
Si estás usando mi archivo de configuración, cópialo al mismo directorio
que los parches y en el menú, selecciona "Load configuration file"
Ahora instalamos el paquete kernel-package si no lo tuviéramos ya
instalado
Y ahora ya por fín, vamos a compilar. El segundo comando puede tardar
unos 15-20 minutos según las opciones que hayas añadido al kernel.
# make-kpkg --initrd kernel_image kernel_headers
Volvemos al directorio superior, donde notaremos que hay dos paquetes
DEB nuevos
Uno de esos dos paquetes comienza por linux-image, es que vamos a
instalar para que quede instalado el nuevo kernel. El otro paquete
(headers) sólo sirve para instalar este kernel en otro ordenador o
redistribuirlo.
Tras instalarlo configura una entrada para tu nuevo kernel dentro del
archivo /etc/lilo.conf. Puedes fijarte en las que ya tengas de antes
para crear una similar, pero que apunte a tu kernel. En mi caso por
ejemplo fue así:
label="Mactel-2"
initrd=/boot/initrd.img-2.6.19.1
read-only
Una vez configurado lilo, ejecútalo para actualizar su imagen en el
sector de arranque.
Y voilá! Ya tendrás tu kernel disponible la próxima vez que inicies.
FUENTES
http://www.mactel-linux.org/
http://sowerbutts.com/linux-mac-mini/
http://cronopios.net/blog/?p=99
http://www.ubuntu-es.org/index.php?q=node/25738
http://www.esdebian.org/article.php/20060112225540316
http://gentoo-wiki.com/HOWTO_mobile_phone%2C_Bluetooth_and_GNOME