Limited Entropy Dot Com Not so random thoughts on security featured by Eloi Sanfèlix

17Aug/073

Linux en macbook Core2Duo

Como ya comenté en el post anterior, he estado instalando y configurando Sabayon linux en mi macbook y voy a exponer aquí más o menos los pasos que he seguido y los problemas que me han surgido. Hay muchos manuales dispersos por ahí, y he leído un poco de todos los que he ido encontrando (al final pongo algunas referencias), pero prefiero tener aquí todo lo que me ha funcionado a mí para la próxima vez, y de paso igual le es útil a alguien :).

Actualmente tengo funcionando:

  • Teclado (incluyendo teclas especiales y simulación de AltGr)
  • Resolución a 1280x800 (necesita 915resolution)
  • Suspensión al bajar la tapa en KDE Ahora me falla la maldita suspensión 🙁
  • Apple Touchpad con scroll usando ambos dedos como en OS X
  • Sonido
  • Networking: Tarjeta wireless y gigabit ethernet

Me falta poner la iSight que me está dando algún problemilla, el mando y configurar bien los temas de cpufreq y los sensores de temperatura, pero lo dejaré para otro post que este ya tendrá bastante 🙂Particionamiento

El particionamiento es sencillo, simplemente hay que usar diskutil como dicen miles de howtos por ahí. Sin embargo, a mí me dio problemas y tuve que reiniciar con los discos de inicio que venían con el macbook, lanzar la Utilidad de Discos desde allí y reparar el volumen donde tenía OS X. A partir de ahí ya pude hacer el resizeVolume y crearme mis dos particiones nuevas, una para el sistema y otra para swap.

El problema es que el esquema de particionado de los Mac Intel es un híbrido GPT/MBR y mejor hacerlo desde el propio OS X con las herramientas de Apple si no quieres quedarte sin OS X 😉

El comando para hacerlo es el siguiente (desde la consola de OS X):

sudo diskutil resizeVolume disk0s2 60G "Linux" "Nombre del volumen" 50G "swap" "Nombre del volumen" 1G

En mi caso disk0s2 era el nombre de la partición HFS+ de OS X (y suele ser ese siempre), que se obtiene de hacer un diskutil list. En este caso he dejado 60G para OS X, 50G para mi partición raíz y 1G para swap. El particionado se puede hacer también con BootCamp, aunque yo no lo he probado.

Si se quiere tener OS X, Windows y Linux a la vez, lo que se debe hacer es tener una partición para windows y otra para Linux, y usar un archivo como swap ya que no se admiten más de 4 particiones.

Instalación de rEFIt

rEFIt es un gestor de arranque para EFI , que es la tecnología que llevan los equipos de Apple en lugar de la famosa (y antigua) BIOS. Simplemente se baja el instalador, se instala desde OS X y ya está. Él solito es capaz de detectar los SO que tienes instalado y te muestra un icono muy mono para cada uno de ellos ;-).

Yo edité el archivo refit.conf dentro de /efi/refit/ en mi OS X tras la instalación para reducir el TimeOut a 5 segundos, pues 20 me parecía excesivo.

Instalación de Sabayon

Para la instalación yo usé la versión 3.3 de Sabayon, e instalé todo tal cual. Se me colgó un par de veces el instalador, primero haciendo el formateo de la partición ext3 y luego al final de la instalación. La primera vez, tras el cuelgue hice el formateo a mano con mkfs y luego reinicié la instalación diciéndole que no formateara; La segunda vez no recuerdo muy bien qué hice, creo que le dije que reparara el gestor de arranque.

El gestor de arranque se debe instalar en la partición (en mi caso sda3) y no en el MBR . El problema que tenía es que no me cargaba al lanzar Linux desde rEFIt, pero un par de reinicios después me salió un menú para sincronizar la tabla de particiones GPT y la MBR con lo que se arregló la cosa.

De todas formas, existe una aplicación para linux llamada gptsync que permite realizar ésto, así que si tenéis problemas pasad el gptsync y debería ir.

Kernel: Vanilla + mactel patches

Nada más instalar y conseguir arrancar la instalación, lo primero que hice fue bajarme la última versión del kernel vanilla de kernel.org, la 2.6.22.2 . Seguidamente bajé los mactel patches correspondientes y los apliqué:


svn co https://mactel-linux.svn.sourceforge.net/svnroot/mactel-linux/trunk/kernel/mactel-patches-2.6.22 mactel-patches-2.6.22
cd mactel-patches-2.6.22/
./apply /usr/src/linux

Hecho ésto, usé este .config, hice make oldconfig y make menuconfig para confirmar que todo estaba correcto. Sin embargo se me olvidó activar en Device Drivers > HID Devices el soporte para las teclas especiales ( Enable support for iBook/PowerBook/MacBook/MacBookPro special keys ) que hace que funcione a la perfección el teclado del macbook (salvo que no tenemos AltGr de momento, luego lo arreglamos 🙂 ).

Con esto, mi .config actual y que supongo que cambiará en poco tiempo debido a que aún tengo por configurar los sensores y fijo que me falta algo es éste.

Networking: Tarjeta Gigabit Ethernet y Airport

La tarjeta Gigabit Ethernet funciona perfectamente con el kernel vanilla, utilizando el módulo llamado sky2. En cuanto a la wifi, se debe bajar madwifi-ng y con esto ya no hay más problemas. Una vez funcionando madwifi ya tenemos la tarjeta ath0 que funciona perfectamente.

Teclado: El ansiado AltGr

Bien, aunque el teclado con su control de brillo y demás nos funciona, no tenemos AltGr y eso puede suponer un problema bastante gordo a la hora de usar comandos ( al menos para mí que más me molestaba antes de tenerlo configurado era no poder hacer tuberías xD).

En las X, simplemente modifiqué el archivo /etc/X11/xkb/symbols/level3, con la siguiente órden sacada de un tutorial de instalación de ubuntu en el macbook:

sed -i~ '/xkb_symbols "ralt_switch" {/a\ include "level3(rwin_switch)"' /etc/X11/xkb/symbols/level3

Se trata de incluir la tecla rwin (manzanita derecha :P) como selector de tercer nivel, para que haga de AltGr. Para la consola he sido un pelín bruto y he editado a mano el keymap en /usr/share/keymaps/i386/qwerty/es.map.gz con vim (que se encarga de hacer sólo la conversión de gzip a texto y viceversa) y he añadido la línea siguiente:

keycode 126 = AltGr

Con esto mapeamos la misma tecla como AltGr. No lo he probado, pero simplemente con ésto creo que ya no haría falta la línea añadida en el archivo correspondiente a xkb que he mencionado antes.

Otro problema que puede surgir es que las teclas < y º estén cambiadas. A mí me pasaba antes de activar en el kernel la opción de las teclas especiales de los macbook. Se arregla con una orden similar de sed (o haciendo la edición a mano) para que se cambien ambas teclas:

sed -i~ 's/ = 94;/ = 49;\n = 94;/' /etc/X11/xkb/keycodes/xfree86

Aunque me parece que solo iba con las X... de todas formas ahora funciona bien tras activar en el kernel la opción comentada :).

Xorg y Synaptics touchpad

La configuración inicial de las X no permite la resolución nativa del macbook, y hay que instalar el paquete 915resolution. Con esto ya podemos usar 1280x800 y funciona perfectamente :).

Por otra parte, el touchpad se debe configurar con el driver Synaptics. Yo lo he configurado tomando cosas de varios sitios, y tengo funcionando el scroll con los dos dedos como en OS X y he añadido que la esquina inferior derecha del touchpad sea el botón derecho, de forma que si le das con el dedo ahí estás clicando ese botón. También he añadido en la inferior izquierda el botón central, aunque seguramente lo quite porque no lo uso mucho, y he quitado el scroll de los bordes (vertical y horizontal).

Aquí teneís mi xorg.conf .

Sonido

El sonido funciona perfectamente con el driver intel-hda ( módulo snd_hda_intel) con ALSA, así que ningún problema.

Temas pendientes

Creo que no me olvido de nada de lo que tengo puesto ahora mismo funcionando o de lo que he hecho para que funcionara. Me queda por mirarme:

  • iSight: Me da un error al cargar el módulo uvc-video que tengo parcheado con ésto. Trataré de averiguar qué pasa.
  • Sensores hardware: en teoría no hay problema alguno con ellos, sólo que no me he puesto.
  • Mando infrarrojo: Tampoco debería haber problemas para usarlo con lirc.
  • Parche Appletouch: Por lo visto el touchpad genera excesivas interrupciones, y es interesante parchear el driver para conseguir cierto ahorro de consumo.
  • Pasar el powertop a ver qué me encuentro 🙂
  • Algo que se me olvide 🙄

Referencias

Por último, aquí dejo algunas de las referencias que he ido leyendo. Estoy completamente seguro de que me olvido algunas, pero estas son las que tengo ahora mismo abiertas y recuerdo:

http://www.mactel-linux.org/
http://gentoo-wiki.com/HARDWARE_Apple_MacBook

http://www.odi.ch/prog/macbookpro/index.php
https://help.ubuntu.com/community/MacBook
http://wiki.debian.org/MacBook
http://bbbart.ulyssis.be/gentoomacbook/
http://www.e-oss.net/wordpress/?p=146

Posted by Eloi Sanfèlix

Comments (3) Trackbacks (0)
  1. genial recopilación de la información!!

    yo personalmente odio que se me suspenda si cierro la tapa, ya sea porque es para cambiarme de mesa o por escuchar música o lo que sea, si quiero suspenderlo … le doy a suspender o que sea por tanto tiempo idle

  2. Hola cómo esta, buscando información sobre Linux en una macbook, me encuentre con su blog 😀 , y en particular sobre este post, resulta que estoy instalando Gentoo con Linux en mi macbook core2 también, y quisiera saber si me puede orientar en la instalación, ya que en la parte de configurar el kernel estoy un poco inseguro, de si lo estoy compilando adecuadamente para esta maquina, la macbook que tengo esta así:

    Macbook White, de quinta generación (4,1), con targeta de graficos intel, y con core2Duo. De hecho ya tengo una instalación básica pero no he logrado echar a andar el wirless ni las teclas de brillo, volumen y touchpad tampoco, y tengo inestabilidad en el servidor X.

    muchas gracias, seria genial que pudiera orientarme un poco, saludos.

  3. Hi! I know this is kinda off topic however , I’d figured I’d ask. Would you be interested in exchanging links or maybe guest writing a blog post or vice-versa? My website addresses a lot of the same topics as yours and I believe we could greatly benefit from each other. If you might be interested feel free to shoot me an e-mail. I look forward to hearing from you! Terrific blog by the way!


Leave a comment

No trackbacks yet.