Installazione di Debian Squeeze su MacBook 6,1 MC207T/A


TuxMobil - Linux on Laptops, Notebooks, PDAs and Mobile Phones

Stiamo parlando del bianco Macbook con guscio unibody in policarbonato, sfornato da mamma Apple a fine anno 2009.

Quella che segue non è una guida, bensì la mia esperienza di installazione della nostra amata Debian in dual Boot con Mac OS X su questo candido oggettino.

Leggete con attenzione ogni singolo passo prima di cimentarvi nell’emulazione perché è davvero facile fare cazzate! Tante cose vengono date per scontate. Se siete novellini di linux è meglio che lasciate perdere l’impresa e continuiate ad usare Mac OS X, perché per risolvere i problemi che inevitabilmente sorgono è davvero necessaria una certa esperienza… In altre parole l’impresa non è affatto semplice, ma dà notevoli soddisfazioni ;-)

Riconoscimento della versione di MacBook posseduta

macbook:/home/samuele# dmidecode -s system-product-name
MacBook6,1

Cosa ci offre il MacBook

  • Processore Intel Core 2 Duo a 2,26GHz
  • 2GB di RAM DDR3 a 1066MHz
  • Hard Disk da 250GB, 5200 rpm
  • Unità ottica SuperDrive doppio strato 8x
  • Scheda video NVIDIA GeForce 9400M
  • Batteria integrata (e irremovibile!) da 7 ore (…di inutilizzo!! Dura 3,5 ore con Debian)
  • Guscio unibody in policarbonato bianco: estremamente robusto, ma si graffia facilmente!
  • Schermo da 13,3”, risoluzione 1280×800 retroilluminato a LED
  • Una mela morsicata che si illumina sul retro dello schermo

Scelta del ramo più adatto

Stiamo parlando di un oggetto estremamente nuovo, uscito appena da un mese e mezzo. Soltanto la Debian testing ha un parco software abbastanza aggiornato da permetterci di utilizzare al meglio questo nuovissimo hardware.

Quindi mi sono recato sul sito:

http://cdimage.debian.org/cdimage/weekly-builds/

ed ho scaricato il CD1 della weekly-builds più aggiornata:

debian-testing-amd64-CD-1.iso           21-Dec-2009 09:09  639M
md5sum: 149b704495f0c82f28dddc53523287c

Ovviamente ho optato per l’architettura amd64, dato che il processore è un Intel Core 2 Duo che supporta il set di istruzioni EM64T.

Non resta che masterizzare l’immagine su un CD. Questa operazione nel mio caso è stata eseguita direttamente da Mac OS X, dato che tutto il resto del materiale informatico che possedevo mi è stati da poco fottuto da degli sporchi ladri.

Adesso è possibile dare il via alle danze.

Prima e importante operazione da compiere: Ricavare una partizione sul disco su cui andremo ad installare Debian

La cosa più semplice è fare un resize della partizione dove è installato Mac OS X: queto è possibile  da Mac OS X stesso.

Da applicazioni, apriamo una shell. Come prima cosa diamo il comando:

$ mount

In questo modo possiamo identificare il device corrispondente alla partizione di root, che dobbiamo ridimensionare. Nel mio caso questa è risultata essere


disk0s2

Mediante l’utility diskutil, possiamo compiere l’operazione di ridimensionamento. Io ho deciso di lasciare 50 GB a Mac OS X:

sudo diskutil resizevolume disk0s2 50G

Passo numero due: Installare un Boot loader figo, Compatibile con il sistema EFI (http://it.wikipedia.org/wiki/Extensible_Firmware_Interface)

La scelta cade su rEFIt (http://refit.sourceforge.net/ )

Scarichiamo la “Mac disk image” dall’indirizzo sopra e la montiamo sul Desktop di Mac OS X facendoci sopra doppio click. Non procediamo con l’installazione automatica perché non va a buon fine. Procediamo invece con l’installazione manuale:

  1. Copiamo la directory “efi” nella directory di root del nostro Mac.
  2. Apriamo il terminale e ci spostiamo nella directory /efi/refit  ( cd /efi/refit)
  3. Avviamo lo script di installazione e quando ci viene chiesto inseriamo la nostra password:
      ./enable.sh

Se adesso riavviamo il Mac ci verrà mostrata come schermata iniziale quella di rEFIt. Prima di procedere è necessaria l’operazione di sincronizzazione della GPT ( http://en.wikipedia.org/wiki/GUID_Partition_Table):

Dal menu di rEFIt presentato al boot è necessario selezionere l’opzione “Sincronize” e seguire la procedura guidata. Adesso possiamo entrare in Mac OS X per verificare di non avere fatto danno…!

Non resta che inserire il CD di installazione di Debian nel drive e riavviare.

Al boot rEFIt ci darà la possibilità di fare boot da CD. Scegliamo l’opzione “Boot Linux from CD” e ci prepariamo ad una installazione classica di Debian.

Primi problemi

L’installer che ho impiegato non ha riconosciuto la tastiera integrata del MacBook che quindi risulta morta… Ho impiegato quindi con successo una tastiera esterna USB, aggirando il problema. La tastiera integrata riprende normalmente a funzionare una volta avviato il sistema appena installato.

Con la nostra tastiera USB proseguiamo l’installazione del sistema in modo abituale fino a quando non arriva il momento di installare il boot loader.

Per la cronaca ho usato il filesystem ext4 sia per la root (partizione da 19GB) che home (partizione da 180 GB) ed ho riservato 1 GB di swap.

Installazione del boot loader

Come si trova sulla wiki di debian ho inizialmente installato LILO, con il risultato che il sistema non era avviabile… (colpa mia! Ho formattato la partizione di root come ext4 senza riservarne una di /boot in ext2/3… Lilo non sa certo leggere il fs ext4!) Ho ripiegato quindi su grub2 che non ha problemi di sorta con il filesystem ext4.

Quando arriva il momento di installare grub2, **NON** lo installiamo nel master boot record!!! Grub **DEVE** essere installato nella partizione di root della nostra Debian: nel mio caso questa era la /dev/sda3 (mi raccomando non /dev/sda !!!).

Terminata l’installazione di grub, dobbiamo resincronizzare MBR e GPT in modo che rEFIt possa conoscere le modifiche effettuate alla tavola delle partizioni che abbiamo effettuato.

Per fare questo è sufficiente attivare una shell dell’installer mediante ALT+F2, e impartire i seguenti comandi:

chroot /target
aptitude install gptsync
/target/sbin/gptsync /dev/sda

e seguire la procedura proposta fino ad ottenere:

...
MBR updated successfully!

Adesso non resta che terminare l’installazione e riavviare il MacBook dopo aver rimosso il CD di installazione. Per spegnere ho dovuto tenere premuto il bottone ON/OFF fino a togliere l’alimentazione…

(http://wiki.debian.org/MacBook)

Set-UP della nostra Debian

Dopo un giorno di smanettamenti ho fatto in modo che **tutto** funzionasse con la nostra Debian.

Iniziamo a vedere come far funzionare tutto ciò che non funziona out-of the box.

Scheda audio

Questo è stato lo scoglio più doloroso e difficile da superare… Con i driver ALSA contenuti in squeeze (1.0.20, pur essendo tutto il resto di ALSA alla versione 1.0.21) la scheda non viene riconosciuta e di conseguenza non funziona. Ulteriore problema è che a causa di un bug grave (già noto), la compilazione dei driver alsa fallisce (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=561715) qualora si utilizzino gli headers dei kernel presenti sia in squeeze che sid…

Purtroppo l’unica soluzione è quella di ricompilarsi il kernel. Io ho utilizzato i sorgenti dell’ultimo kernel vanilla (2.6.32) scaricati da www.kernel.org. Contro questo kernel la compilazione degli alsa-driver- 1.0.22 (sorgenti reperibili su http://www.alsa-project.org/) va a buon fine.

Le opzioni passate allo script “configure” che ho utilizzato per compilare i drivers, sono le seguenti:

./configure --enable-dynamic-minors  --without-oss --with-cards="hda-intel"

Una volta installati i nuovi driver la scheda funziona correttamente: casse integrate + microfono + cuffie. Questa deve essere inizializzata ponendo la seguente stringa in etc/modprobe.d/alsa-base.conf :

options snd-hda-intel power_save=10 power_save_controller=N model=mb5

(https://help.ubuntu.com/community/MacBook5-1/Karmic)

(https://help.ubuntu.com/community/MacBookPro6-1/Karmic)

Scheda Video

L’ottima Nvidia GeForce 9400M funziona funziona egregiamente grazie ai driver proprietari forniti da Nvidia stessa e reperibili qui: http://www.nvidia.it/Download/index.aspx?lang=it

Io ho usato con successo la versione 190.53 (Certified) per linux amd64.

Touchpad

Il touchpad funziona perfettamente anche in modalità multitouch, a patto che si configuri nel modo giusto…

Per prima cosa creiamo il file di policy per hal:

/etc/hal/fdi/policy/11-x11-synaptics.fdi

Il suo contenuto deve essere il seguente (modificabile secondo i nostri gusti):

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.touchpad">
      <match key="info.product" contains="Synaptics TouchPad">
        <merge key="input.x11_driver">synaptics</merge>
        <!-- Arbitrary options can be passed to the driver using
             the input.x11_options property since xorg-server-1.5. -->
        <!-- EXAMPLE:
        <merge key="input.x11_options.LeftEdge">120</merge>
        -->
      </match>
      <match key="info.product" contains="AlpsPS/2 ALPS">
        <merge key="input.x11_driver">synaptics</merge>
      </match>
      <match key="info.product" contains="appletouch">
        <merge key="input.x11_driver">synaptics</merge>
      </match>
      <match key="info.product" contains="bcm5974">
        <merge key="input.x11_driver">synaptics</merge>
        <merge key="input.x11_options.LeftEdge">0</merge>
        <merge key="input.x11_options.RightEdge">1280</merge>
        <merge key="input.x11_options.TopEdge">0</merge>
        <merge key="input.x11_options.BottomEdge">800</merge>
        <merge key="input.x11_options.ClickFinger1">1</merge>
        <merge key="input.x11_options.ClickFinger2">3</merge>
        <merge key="input.x11_options.ClickFinger3">2</merge>
        <merge key="input.x11_options.HorizEdgeScroll">0</merge>
        <merge key="input.x11_options.VertEdgeScroll">0</merge>
        <merge key="input.x11_options.VertTwoFingerScroll">1</merge>
        <merge key="input.x11_options.HorizTwoFingerScroll">1</merge>
        <merge key="input.x11_options.HorizScrollDelta">0</merge>
        <merge key="input.x11_options.VertScrollDelta">40</merge>
        <merge key="input.x11_options.PressureMotionMinZ">10</merge>
        <merge key="input.x11_options.FingerLow">16</merge>
        <merge key="input.x11_options.FingerHigh">80</merge>
        <merge key="input.x11_options.FingerPress">256</merge>
        <merge key="input.x11_options.PalmDetect">1</merge>
        <merge key="input.x11_options.PalmMinWidth">10</merge>
        <merge key="input.x11_options.PalmMinZ">200</merge>
        <merge key="input.x11_options.MinSpeed">0.8</merge>
        <merge key="input.x11_options.MaxSpeed">1.2</merge>
        <merge key="input.x11_options.AccelFactor">0.10</merge>
        <merge key="input.x11_options.MaxTapMove">25</merge>
        <merge key="input.x11_options.MaxTapTime">223</merge>
        <merge key="input.x11_options.MaxDoubleTapTime">200</merge>
        <merge key="input.x11_options.TapButton1">1</merge>
        <merge key="input.x11_options.TapButton2">3</merge>
        <merge key="input.x11_options.TapButton3">2</merge>
        <merge key="input.x11_options.RTCornerButton">0</merge>
        <merge key="input.x11_options.RBCornerButton">0</merge>
        <merge key="input.x11_options.LTCornerButton">0</merge>
        <merge key="input.x11_options.LBCornerButton">0</merge>
      </match>
    </match>
  </device>
</deviceinfo>

Quindi installiamo dkms e una versione patchata di bcm5974-dkms:

apt-get install dkms
wget http://launchpadlibrarian.net/24871974/bcm5974-dkms_1.1.4_all_test.deb
dpkg -i bcm5974-dkms_1.1.4_all_test.deb
rmmode bcm5974
modprobe bcm5974

Ricordiamoci che il touchpad ha solamente un bottone: così facendo, emuliamo il tasto destro del mouse col tocco di due dita e il tasto centrale con tre.

(http://forum.notebookreview.com/showthread.php?t=418403#touchpad)

(https://help.ubuntu.com/community/MacBook5-1/Karmic)

Wireless

La wireless è una

03:00.0 Network controller: Broadcom Corporation Device 4353 (rev 01)

Questa scheda è supportata dai driver proprietari forniti da Broadcom. Una volta settato module-assistant si installano semplicemente mediante:


m-a a-i broadcom-sta
modprobe wl

(http://wiki.debian.org/wl)

Scorciatoie da tastiera

Per abilitarle è sufficiente installare pommed:

aptitude install pommed

pommed si configura mediante /etc/pommed.conf

A questo punto funzionano i tasti di eject, volume ecc. ma non la regolazione della luminosità dello schermo. Per questo è necessario installare anche nvidia-bl-dkms del progetto Mactel:

wget https://launchpad.net/~mactel-support/+archive/ppa/+files/nvidia-bl-dkms_0.14~karmic_all.deb
dpkg -i nvidia-bl-dkms_0.14_all.deb
echo "blacklist mbp_nvidia_bl" >> /etc/modprobe.d/blacklist.conf
echo "nvidia_bl" >> /etc/modules

Per il resto la tastiera viene configurata esattamente come su MacOS (ad esempio il tasto canc viene emulato come fn+backspace)

(http://forum.notebookreview.com/showthread.php?t=418403#lcd)

Altro hardware funzionante out-of-the-box:

  • Bluetooth
  • Webcam iSight
  • Lettore/masterizzatore DVD/CD
  • Sensori della temperatura (disco, CPU, ecc.)
  • Porte USB
  • Riconoscimento batteria AC/DC e carica/scarica
  • ethernet (modulo forcedeth)
  • Sospensione su disco/ibernazione

…suggerimento: compiz + avant-window-navigator!!!

(http://wiki.debian.org/Compiz)

E questo è il mio MacBook 6,1 debianizzato!

Happy debian,

borlongioffei

About these ads

6 risposte a “Installazione di Debian Squeeze su MacBook 6,1 MC207T/A

  1. Ciao e grazie per le info! Avevo letto (forse nel kernel bug) che per fare funzionare debian sul tuo modello di macbook bisognava forzare l’uso di una sola e unica cpu. Quindi il bug e’ stato risolto?

    Pol

  2. borlongioffei

    Ciao,
    Non avevo notizie di quel bug. Comunque dopo un mese di utilizzo di Debian Squeeze su questa macchina non ho notato nessun tipo di problema! In altre parole, entrambi i core funzionano regolarmente ;-)

  3. borlongioffei

    Questo è il bug sopracitato: http://bugzilla.kernel.org/show_bug.cgi?id=13170

    In effetti NON affligge il macbook 6,1.

    Quindi io e gli altri tre fulminati (approssimando per eccesso) che usano regolarmente debian su questo portatile non abbiamo niente da temere… ;-)

  4. E se volessi fare single boot??? va bene installare grub sulla partizione root?

  5. borlongioffei

    Direi di si.
    Grub2 è in grado di avviare anche MacOSX. Comunque io non ho provato.

  6. Pingback: Quanto dura la batteria del MacBook?? | low memory mode: web log di borlongioffei

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...