January 24, 2009

Arch Linux su MacBook Aluminium /2

Visto il successo del post precedente sull’argomento ho pensato bene di integrarlo un po’ con altre informazioni utili, e di aggiornare lo stato corrente della cosa.

Prima di tutto l’audio. Al momento il chipset non è perfettamente supportato, ma funziona, con qualche scomodità, passando l’opzione model=mpb3 al modulo snd-hda-intel. Perché sia fatto automagicamente all’avvio è sufficiente aggiungere, in /etc/modprobe.conf, la riga:
options snd_hda_intel model=mbp3
Il mixer ci presenta diversi canali e switch. Uno con cui dobbiamo fare conoscenza subito è Channel, che può passare da due a sei canali: 2ch indica le cuffie, 6ch le casse integrate. Purtroppo ancora non viene rilevato automaticamente se abbiamo collegato delle cuffie, quindi per il momento va impostato a mano. I due slider associati al volume delle casse sono Master (ma dai?) e Line-out, mentre se siamo in modalità cuffia oltre a Master dobbiamo regolare Front, e lo switch Speaker ci dà la possibilità di mettere in muto completamente il suono. Inoltre lo switch IEC958 attiva l’uscita ottica (potrete notare che, togliendo il muto, si accende una luce rossa nell’uscita cuffie).

Purtroppo l’audio non è così semplice da far funzionare. Il kernel 2.6.28 è passato in [core] nel giro di pochi giorni, seguito a ruota dal 2.6.28.1. Mentre la 2.6.28 andava bene, quest’ultima dà qualche grattacapo. Evidentemente uno dei tre commit sul driver snd-hda-intel ha portato ad una regressione, segnalata anche da qualche altro utente su portatili diversi. La soluzione è stata scaricare la nuova versione di alsa-lib, la 1.0.19 e ricompilarla per il nuovo kernel. Le possibilità sono due: sovrascrivere ALSA direttamente nel kernel e ricreare il pacchetto oppure compilare ALSA a parte e mettere i moduli nella cartella /lib/modules/kernel-2.6.28-ARCH/updates, dove saranno letti prima di quelli originali. Una volta fatto questo l’audio dovrebbe ritornare come prima (caveat emptor: reboot necessario).

Ho lavorato un po’ anche sul fronte power saving, prima di tutto installando cpufrequtils, laptop-mode-tools, pm-utils, bc, nvclock e xscreensaver. A livello di risparmio energetico il governor migliore per il processore è ondemand (sì, è meglio anche di conservative), quindi l’ho impostato in /etc/conf.d/cpufreq e ho inserito il demone cpufreq in /etc/rc.conf. Ho poi modificato /etc/acpi/handler.sh in diversi punti; ne riporto le parti interessate.

Premere il pulsante di accensione fa fare al sistema uno shutdown ACPI:

    button/power)
        #echo "PowerButton pressed!">/dev/tty5
        case "$2" in
            PWRF)
                logger "PowerButton pressed: $2"
                halt
            ;;

Collegare e scollegare il portatile dalla rete elettrica modifica la luminosità dello schermo e avvia o ferma il laptop-mode:

    ac_adapter)
        case "$2" in
            AC)
                case "$4" in
                    00000000)
                        #echo -n $minspeed >$setspeed
                        /usr/bin/nvclock -S -15 >/dev/null 2>&1
                        /etc/rc.d/laptop-mode start
                    ;;
                    00000001)
                        #echo -n $maxspeed >$setspeed
                        /usr/bin/nvclock -S +15 >/dev/null 2>&1
                        /etc/rc.d/laptop-mode stop
                    ;;
                esac
                ;;

La chiusura del lid, come su OS X, mette il sistema in sospensione e, alla riapertura, chiede la password tramite xscreensaver (questo solo se il demone è attivo):

    button/lid)
        #echo "LID switched!">/dev/tty5
        case "$2" in
            LID0)
                _res=$( bc <<< "ibase=16; $( tr [:lower:] [:upper:] <<< $4 )%2" )
                case "$_res" in
                    0)
                        nvclock -S $( cat /tmp/.bllev )
                        rm -f /tmp/.bllev
                    ;;
                    1)
                        echo $( nvclock -i | grep '^Backlight' | cut -d' ' -f3 ) > /tmp/.bllev
                        xset dpms force off
                        pidof xscreensaver >/dev/null 2>&1
                        if [ "$?" -eq 0 ] ; then
                            xscreensaver-command -lock >/dev/null 2>&1
                        fi
                        pm-suspend
                    ;;
                esac

            ;;
            *)  logger "ACPI action undefined: $2" ;;
        esac
        ;;

Anche per questa volta è tutto, ma aspettatevi nuovi post quando avrò altre informazioni utili sottomano :)

Posted by bardo under arch,g33k1ng around | Comments (7)

7 Comments »

  1. [...] UPDATE: ho pubblicato la seconda parte del post, la trovate qui. [...]

    Pingback by Col senno di poi » Arch Linux su MacBook Aluminium UNITED STATES WordPress 2.7 — 24 January 2009 @ 23:19

  2. scusa che applicazione è “bc” ????

    non la trovo ne in aur ne sul repo ufficiale !!!!

    Comment by mattia ITALY Windows XP Mozilla Firefox 3.0.5 — 25 January 2009 @ 00:08

  3. @mattia: è una calcolatrice da linea di comando, La uso perché gli eventi del lid hanno un numero incrementale esadecimale, e a me serve capire se è pari o dispari. È strano che non la trovi, sta in [extra]:
    [bardo@forty-two ~]$ pacman -Si bc
    Repository : extra
    Nome : bc
    Versione : 1.06-5
    URL : Nessuno
    Licenze : GPL
    Gruppi : Nessuno
    Fornisce : Nessuno
    Dipende da : readline
    Dip. opzionali : Nessuno
    Conflitti con : bc-readline
    Sostituisce : bc-readline
    Dimensione pkg : 106,61 K
    Kb richiesti : 268,00 K
    Autore : Allan McRae
    Architettura : x86_64
    Creato il : gio 14 ago 2008 04:43:54 CEST
    Somma MD5 : 02e868468cd5160b2fd433a94d097ee3
    Descrizione : An arbitrary precision calculator language

    Comment by bardo ITALY Linux Mozilla Firefox 3.0.5 — 25 January 2009 @ 12:31

  4. azzo, adesso ho scoperto che ondemand è meglio di conservative…mumble

    Comment by ugaciaka ITALY Linux Mozilla Firefox 3.0.5 — 25 January 2009 @ 17:35

  5. @ugaciaka: sì, ha stupito anche me, ma se ci pensi ha senso…

    Comment by bardo ITALY Linux Mozilla Firefox 3.0.5 — 27 January 2009 @ 11:29

  6. Vado totalmente OT: come mai il cambio di tema? =)

    Comment by Cle` ITALY Ubuntu Linux Mozilla Firefox 3.0.3 — 16 March 2009 @ 16:21

  7. @Cle`: vari motivi. Prima di tutto l’altro era bello, ma era un mattone. E poi non era liquido, a me ci piacciono i temi liquidi. E poco colorati. Poi mi sono accorto che se scrivevo codice nell’altro non si capiva un tubo, andava sempre a capo. Con questo è molto meglio, anche se non sono soddisfattissimo del contrasto e di certi colori.

    Comment by bardo ITALY Linux Mozilla Firefox 3.0.5 — 19 March 2009 @ 12:22

RSS feed for comments on this post. | Trackback: http://blog.bardland.org/2009/01/24/arch-linux-su-macbook-aluminium-2/trackback/

Leave a comment

XHTML ( You can use these tags): <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> .