Debian on Macbook

Ecco a voi la guida completa (spero) per installare debian testing su un macbook modello 4,1 (febbraio 2008)

Preparazione hard disk

Inizio con il creare lo spazio per Debian dando un comando da terminale (applicazioni -> terminale) da MacOS:

sudo diskutil resizeVolume disk0s2 30G

questo ci impiegherà un attimo (può sembrare si sia bloccato tutto ma in realtà sta lavorando) e modificherà la partizione hfs di mac a 30Gb (ultimo valore del comando).

installiamo refit (Mac Disk Image), programma per gestire il boot che ricordo non usa un bios ma un efi che è decisamente meglio :) , dicevo scaricate il pacchetto, lo montate e installate il mpkg, a questo punto siamo pronti ad installare.

Ricordiamoci di scaricare e masterizzare (se siete su mac con un utility nella cartella applicazioni) consiglio di scaricare la netinst (o business card) così da avere un sistema già aggiornato. (richiede connessione via cavo durante l'installazione), consiglio la versione testing e non la stabile altrimenti avremo problemi perchè la versione stabile usa un kernel troppo vecchio.

Installiamo il sistema

Riavviamo il computer e teniamo premuto c fino a che non parte il cd e installiamo normalmente la debian, consiglio di creare 2 partizioni una root cioè dove vanno le directory di sistema (da mettere appena dopo quella di MacOs) e una molto più ampia dove mettere la home così da avere i propri dati separati e in caso di future reinstallazioni di non perdere i dati, mentre durante l'installazione di grub non installarlo nell'mbr ma nella partizione linux (root) che se viene messa all'inizio dovrebbe essere in sda3 cioè per grub (hd0,2).

In questo passaggio io ho avuto un po di problemi dovuti al fatto che avevo masterizzato un cd netinst stable e quindi con kernel vecchiotto, in caso di questa scelta avviare l'instazzione con l'opzione irqpoll e possibilmente usare una tastiera usb.

Altra cosa importante se dividiamo le partizioni root e home, la root avviabile può massimo stare in sda4 altrimenti ci saranno problemi con refit.

Configurazione sistema

Ok se siamo arrivati a questo punto è già buona cosa :) io consiglio di ricompilare subito il nuovo kernel così da avere un maggior supporto (io appena installato avevo un sacco di problemi, dopo la ricompilazione decisamente meglio) scaricare il sorgente del kernel e poi penso che "tutti" sappiate come ricompilare. vi allego il mio .config (2.6.34) così se volete potete usarlo e poi ulteriormente modificarlo.

ok riavviamo e dovremmo avere il sistema con il nuovo kernel installato, passiamo a vedere i componenti hardware diamo un lspci:

00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 03)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 04)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 04)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 04)
00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 04)
00:1c.5 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 (rev 04)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 04)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 04)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 04)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 04)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f4)
00:1f.0 ISA bridge: Intel Corporation 82801HEM (ICH8M) LPC Interface Controller (rev 04)
00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 04)
00:1f.2 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA IDE Controller (rev 04)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 04)
02:00.0 Network controller: Broadcom Corporation BCM4328 802.11a/b/g/n (rev 03)
03:00.0 Ethernet controller: Marvell Technology Group Ltd. Marvell Yukon 88E8058 PCI-E Gigabit Ethernet Controller (rev 13)
04:03.0 FireWire (IEEE 1394): Agere Systems FW323 (rev 61)

inizio subito con il dire che alcuni device potrebbero  non funzionare perfettamente, e altri non ho avuto modo di testarli.

Reti: Cavo e Wi-fi

Dico subito che la connessione via cavo ethernet (RJ-45) è riconosciuta da subito, infatti per installare Debian da netinst si usa il cavo :) (occore un kernel non troppo vecchio se no si rischia di non avere i driver).

Mentre la wi-fi ha qualche problemino in più essendo una Broadcom 4328, che purtroppo non è ancora supportata dai driver b43, quindi ci tocca usare ndiswrapper, installiamolo:

# apt-get install ndiswrapper-utils-1.9

ora andiamo a prendere i driver e carichiamoli da root:

wget http://ftp.us.dell.com/network/R151517.EXE
mkdir driver
unzip -a R151517.EXE -d driver/
cd driver/DRIVER/
ndiswrapper -i bcmwl5.inf
ndiswrapper -l
ndiswrapper -m
modprobe ndiswrapper

e poi facciamo si che questo modulo venga caricato ad ogni avvio aggiungendo ndiswrapper in /etc/modules .

se per caso abbiamo un kernel compilato da noi bisogna avere i sorgenti a disposizione o in ogni caso bastano gli header necessari anche se il kernel è uno di quelli della distro pre-compilati.

Nel caso in cui si abbia un kernel compilato a manina bisogna seguire questo procedimento prima di caricare il modulo (da root):

apt-get install module-assistant wireless-tools
m-a prepare && m-a update
m-a a-i ndiswrapper
depmod -a
modprobe ndiswrapper

e se tutto va bene aggiungiamo il modulo al caricamento automatico: echo ndiswrapper >> /etc/modules

Touchpad e Xorg

Per far funzionare appieno il touchpad con le varie funzioni tipo lo scorrimento con due dita e via dicendo, configuriamo il nostro xorg.conf a dovere nel mentre prendete spunto per abilitare le funzioni 3d.

ecco il mio xorg.conf.

Configurazione tastiera

la tasiera non sempre funziona :) infatti capita che ci sia qualcosa che non vada nei tasti funzione o simili, per risolvere possiamo installare pommed e xmodmap perchè questo, aggiusta lo scambio tra i tasti < e \ che a me erano invertiti.

per il secondo creare il file /home/NOMEUSER/.xmodmap e aggiungere:

keycode 116 = Pointer_Button3

keycode 0x31 =    less    greater    guillemotleft    guillemotright    guillemotleft    guillemotright

keycode 0x5E =    backslash bar notsign brokenbar notsign brokenbar

Se non volete configurare a mano xmodmap e avete gnome potete andare in Sistema, Preferenze, Tastiera e nella tab Disposizioni premere su Opzioni Disposizone e in Opzioni varie di compatibilità spuntare Swap keycodes of two keys when Mac keyboards are misdetected by kernel .

Audio

Ho riscontrato diversi problemi con l'audio, infatti  di base sembra riconoscerlo ma non emette suoni ne registra,

quindi aprire /etc/modprobe.d/options e inserire :

options snd_hda_intel model=mbp3

poi andare in Regolazione volume, interrutori e abilitare speaker (se per caso non appare riavviare), poi alzare in riproduzione principale, pcm e front, ora si dovrebbe sentire.

Per il microfono andare in Sistema, preferenze, audio e selezionare il dispositivo HDA Intel (Alsa Mixer).

Webcam isight

Per configurare questo device bisogna avere installato mac os o comunque avere accesso ai suoi dati, questo perchè bisogna prendere i driver e poi procedere così:

mount -t hfsplus /dev/sda2  /mnt/mac/
ls /mnt/mac/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport
apt-get install module-assistant linux-uvc-source isight-firmware-tools

a questo punto durane l'installazione vi verrà richiesto di inserire il percorso del driver, voi dovete iserire il percorso di prima, lui creerà un file in /lib/firmware/ se per caso volete riconfigurare il driver e reinserire il percorso usate questo comando:

dpkg-reconfigure -plow isight-firmware-tools

e ora potete caricare il modulo con modprobe uvcvideo e testare se tutto funziona con cheese ad esempio.

Sospensione

Per la sospensione bisogna avere un kernel abilitato al suspend, poi installare uswsusp e dovrebbe funzionare, gnome potrebbe non utilizzarlo ma per mandare in sospensione usare il comando s2ram -f .

Conclusioni

Il Macbook è decisamente ben supportato e quindi è un piacere poterci pacioccare, ricordo che se per caso qualche passaggio non funziona magari è richiesto un ravvio del servizio e dei servizi in questione, consiglio un riavvio della macchina per sicurezza se non sapete dove toccare, se avete problemi di vario tipo potete usare la zona commenti;