UniformUI versione 2, ottimizzato per Ubuntu 9.04

Ho finalmente trovato il tempo di aggiornare il mio script (viva le vacanze) e perciò sono molto orgoglioso di presentarvi la nuova versione. Per chi non sapesse cos’è UniformUI, ricordo che è uno script che permette di integrare in modo del tutto automatico l’aspetto dei programmi Qt 3, Qt 4, KDE 3 e KDE 4 all’interno di un desktop GNOME (in particolare Ubuntu, ma con pochi accorgimenti funziona su qualsiasi distro). Leggete qui la presentazione.

Provate questa versione solo ed esclusivamente su Ubuntu 9.04.

Questa revisione include le seguenti nuove caratteristiche:

  • versione funzionante ed ottimizzata per Ubuntu 9.04
  • richiede la presenza del motore di temi QGtkStyle
  • fornisce un aspetto assolutamente nativo per le applicazioni Qt 4 e KDE 4
  • aggiunto il supporto per i font: ora le applicazioni hanno gli stessi caratteri dei programmi GNOME
  • due modalità di funzionamento: user mode e system mode

Per quanto riguarda le due modalità, quella predefinita è la system mode. Ciò significa che cambierà lo stile in modo che per tutti gli utenti sia almeno sufficientemente integrato. Questo non vale per i colori naturalmente, perché ogni utente può usare un tema con colori diversi perciò sarebbe inutile. La scelta migliore è che ogni utente esegua lo script in system mode ogni volta che cambia tema.

Per agire in user mode bisogna passare l’opzione -u allo script. Ciò ha come inconveniente, tra l’altro, che lo stile dei widget delle applicazioni KDE 3 non viene cambiato, ma è comunque una cosa di poco conto (però irrisolvibile).

Potete scaricare lo script da qui. Provatelo e fatemi sapere che cosa ne pensate. 😉

Aggiornamento 14/06/2009: corretto un bug per cui in caso di font con stili (tipo grassetto e corsivo), i caratteri rimanevano uguali. Ora gli stili vengono ignorati e il font viene impostato correttamente.

Pulire veramente i file lasciati da Wine

Se vi è mai successo di provare delle applicazioni con Wine, magari per curiosità, oppure per la soddisfazione di mostrare a qualcuno che Linux esegue anche software di Windows, vi siete sicuramente lasciati alle spalle un po’ di file sparsi nell’hard disk. Probabilmente avrete pensato che è sufficiente rimuovere la directory di Wine per riportare tutto al punto di partenza… Ad essere sinceri lo pensavo anche io inizialmente. Poi però è bastato guardare un po’ in giro per la mia directory home per convincermi del contrario.

Purtroppo l’integrazione col desktop si paga… E quindi, se si è costretti ad usare programmi Windows (un esempio banale: l’utente ha dei file in un formato proprietario che vanno convertiti prima di migrarlo al software open source equivalente) si rischia di lasciare tracce assolutamente fastidiose, non tanto perché le vediamo; ma perché sono lì.

Pertanto, questa è la sequenza di comandi che vi permetterà di eliminare tutto ciò che ha lasciato Wine quando ha installato i programmi. Ciò significa che eliminerà anche i programmi che avete dentro al vostro disco virtuale di Wine. Tutto insomma. 🙂

rm -rf ~/.config/menus/applications-merged/wine-*
rm -rf ~/.local/share/applications/wine*
find ~/.local/share/icons/ -name "*wine*" | xargs rm -rf
find ~/.local/share/icons/ -name "????_*" | xargs rm -rf
rm -rf ~/.local/share/desktop-directories/wine-*
rm -rf ~/.wine*

Se non siete sicuri, controllate il contenuto delle suddette locazioni prima di procedere.

Risolto il problema di crackling di Pulseaudio col controllo PCM

Come ricorderete al tempo in cui avevo scritto la guida per l’installazione di Ubuntu sul mio Dell XPS M1530, ero stato molto preciso nel consigliare le impostazioni per il volume. Riporto qui quanto avevo scritto:

Le impostazioni dell’audio non sono ottimali. È il caso di cliccare col destro sull’applet del volume e selezionare “Apri regolazione volume”. Impostare il canale principale al massimo ed il PCM a circa 4/5. A questo punto un altro clic destro sull’applet e si vanno ad aprire le preferenze. Selezionate come canale di default il PCM. Andate su Sistema > Preferenze > Audio e su “Tracce predefinite del mixer” selezionate sempre il PCM.

Questo aveva permesso (e permette tuttora) di avere una regolazione del volume accurata e lineare. Infatti, regolandolo tenendo sempre al massimo il PCM e muovendo lo slider Principale, avremo un suono pressoché silenzioso fino a che non vengono superati i 3/4 della barra. Avere una barra per il 75% inutilizzata a me non piace, e non lo trovo sensato.

Purtroppo, la finezza dell’uso del PCM ha un risvolto grave.

Colpevole od innocente?
Colpevole od innocente?

Se devo essere sincero non ho la certezza che ciò sia legato a PulseAudio, ma a quanto pare non sono il solo a pensarlo. 🙂 Il fatto è che quando si mette muto il controllo e il sistema tenta di riprodurre un suono, tutto ciò che si ottiene è un fastidiosissimo sfregolio sulle casse. Un cosiddetto crackling che è veramente fastidioso ed inopportuno. Il colpevole è sicuramente il controllo PCM. Infatti, tornando alla configurazione originaria, ciò non accade. Mi sono chiesto quindi se ci fosse un altro modo di avere una regolazione del volume lineare, ma che non risentisse di questo problema.

Alla fine sono riuscito a trovarla. Ora vado a regolare direttamente il Master del dispositivo PulseAudio, così sono a posto. Ho aggiornato il mio precedente post, vi riporto qui quanto ho scritto:

Le impostazioni dell’audio non sono ottimali. È il caso di cliccare col destro sull’applet del volume e selezionare “Apri regolazione volume”. Impostare il canale principale al massimo, così come il PCM. Ora bisogna scegliere come dispositivo “Playback: HDA Intel – STAC92xx Analog (PulseAudio Mixer)”. Il master va messo al 50% per ora. A questo punto un altro clic destro sull’applet e si vanno ad aprire le preferenze. Selezionate come canale di default il Master del dispositivo precedentemente detto. Andate su Sistema > Preferenze > Audio e su “Tracce predefinite del mixer” selezionate sempre tale Master.

Fatemi sapere come vi trovate. 😉

Compressione di un PDF con minima perdita di qualità

Forse non ve ne ho mai parlato, ma adoro ImageMagick. Tuttavia, mi è capitato di recente di dover creare un pdf di immagini, con il classico comando convert.

convert *.jpg output.pdf

Le immagini che ho usato erano un gruppo di 36 foto in formato JPEG, alla risoluzione di 2126×1594 pixel. La loro dimensione complessiva era di 15,6 MB. Il PDF che è risultato aveva la dimensione di ben… 189,2 MB! 😮

Sono rimasto subito (penso giustamente) sconcertato. Normale che il documento unico debba essere più grande della somma delle dimensioni, in fin dei conti ci sono sempre i dati riguardanti l’impaginazione, ed altro. Però 12 volte tanto è un po’ troppo. Girovagando per la rete ho trovato questo post che spiegava un metodo utilizzando pdftk. Se non l’avete, installatelo tramite la solita procedura:

sudo apt-get install pdftk

Ora è il momento di agire sul nostro file PDF:

pdftops output.pdf tmp.ps
ps2pdf tmp.ps compresso.pdf
rm tmp.ps

Il risultato così ottenuto avrà la dimensione di… 10,3 MB! Bene, proprio ciò che volevo. Così le immagini sono leggermente compresse, per cui aspettatevi una piccola perdita di qualità. Tuttavia ne è valsa la pena. Sicuramente, utilizzando le opzioni fornite dal comando, è possibile calibrare con attenzione ciò che si vuole ottenere. Per me è sufficiente così. 🙂

Naturalmente ricordate che la differenza di dimensione tra prima e dopo si noterà molto se avete svariate foto, se invece il vostro PDF è quasi solo testuale, sarà sicuramente minore.

Aggiornamento 04/08/2011: ho cambiato il comando per convertire in PS. Ne esistono due simili, ma questo funziona meglio.

Festival delle libertà digitali a Vicenza, dal 22 al 24 maggio 2009

Il penultimo weekend di maggio vedrà Vicenza animarsi in tutto lo splendore dell’esaltazione dei valori della libertà e del software libero. La città sarà infatti luogo di svolgimento del Festival delle libertà digitali. Si tratta di un appuntamento organizzato da Wikimedia Italia in collaborazione con il Linux User Group di Vicenza, di cui mi onoro di far parte. In particolare va menzionato Luca Menini, che si è occupato di coordinare tutto il progetto e l’esecuzione dei lavori. A lui va tutto il mio apprezzamento, oltre ovviamente al gran numero di persone che si è impegnato in modo concreto per rendere possibile tutto ciò. 🙂

Il logo del festival è una rivisitazione di una versione da me realizzata
Il logo del festival è una rivisitazione di una versione da me realizzata

Riporto qui la descrizione data sul sito ufficiale, in quanto è molto significativa:

Il Festival delle libertà digitali nasce nel 2009 per coinvolgere una più ampia fascia di persone nei valori positivi della rivoluzione culturale che stiamo vivendo, quella digitale, legata ad Internet, sulla spinta etica e dei principi di libertà che sono alla base del software libero.

Vogliamo mostrare che la condivisione di risorse in rete è possibile in modo legale utilizzando i principi etici alla base del software libero. Ci rivolgiamo in particolare ai giovani, con la condivisione legale della musica, di immagini, di notizie e di conoscenza. Interagiamo con le persone, con cui sperimentiamo dal vivo progetti su Internet socialmente significativi e basati sul volontariato degli utenti, come l’enciclopedia libera Wikipedia.

Il grassetto l’ho cambiato io, sottolineando ciò che ritengo più importante. Questo è il messaggio che deve passare. Un messaggio fermamente contro la pirateria e l’illegalità ed a favore dei contenuti aperti, software in particolare, ma anche opere scritte, eccetera.

Il programma è davvero molto ricco, come potete vedere, ci sono attività di ogni sorta. 😀

Venerdì 22 maggio

  • ore 15.00 – Convegno: La riforma del Diritto d’Autore nell’era dei nuovi media – Vicenza, Conservatorio A. Pedrollo, contrà S. Domenico 33 – Giusella Finocchiaro, Università di Bologna, Ordinario di Diritto di Internet
  • ore 16.15 – Tavola rotonda – moderatore: Flavia Marzano (presidente di UnaRete) – con: Simone Aliprandi (Copyleft Italia), Marco Calvo (Liber Liber), Andrea Renato Sirotti Gaudenzi (giurista esperto di diritto d’autore), Paolo Pullega (Orione Editore), Elena Rossi (artista), Luca Sileni (Wikimedia Italia), Alessandro Simonetto (fondatore di OnClassical), Paolo Troncon (Direttore Conservatorio Vicenza)
  • ore 20.45 – Documentario teatrale “L’origine del Male”, storia di una controversa teoria scientifica sull’origine dell’AIDS – Vicenza, Ridotto del Teatro Comunale “Citta’ di Vicenza”, viale Mazzini 39 – Christian Biasco

Sabato 23 maggio – non stop dalle 10.00 alle 20.00 a Vicenza in piazza dei Signori

  • Wikiraduno
  • laboratorio aperto “wiki”: condividere musica legalmente (http://musica.wikimedia.it/), condividere foto (http://commons.wikimedia.org/), condividere notizie, conoscenza (Wikipedia e gli altri progetti Wikimedia), condividere solidarietà (WikiAfrica)
  • area “demo” con dimostrazioni d’uso su come si condividono legalmente i file musicali, le foto, i testi ecc. attraverso le licenze libere
  • area “interattiva”: gli utenti condividono di persona le proprie esperienze sui progetti Wikimedia; postazioni pc Linux a disposizione dei visitatori per sperimentare in prima persona la condivisione digitale
  • banco informazioni, con pannelli informativi e materiale cartaceo, gadget di Wikipedia, volontari Wikimedia a disposizione per rispondere alle domande dei visitatori
  • laboratorio aperto “Autopsia di un computer” (per ragazzi) – organizzazione: LugVI
  • progetto ImakeMusik: con Istituto Musicale Veneto di Thiene (http://www.istitutomusicaleveneto.it/) dalle 16.00 alle 19.30 i ragazzi di IMT Vocal Project canteranno all’aperto
  • assegnazione Premio Wikimedia Italia

Domenica 24 maggio

  • ore 9.00 – camminata in montagna e mapping party – Monte Novegno

Io purtroppo, pur avendo voluto esserci il 23 assieme al LUG, sarò impegnato nella fase nazionale delle gare di matematica a Milano. Mi dispiace moltissimo di non poter essere presente. Mi raccomando, cercate di diffondere l’iniziativa, fatelo sapere ai vostri amici, scrivetene sul vostro blog… 😉 Vi rimando alla pagina del sito ufficiale per la descrizione più dettagliata dell’evento. Ricordate che, naturalmente, l’ingresso è totalmente libero e gratuito.

La rinascita di Gimp Italia

In questi ultimi giorni sono stato abbastanza impegnato per la ristrutturazione completa del sito web portabandiera della comunità italiana di utenti Gimp: Gimp Italia! 🙂

Come alcuni di voi sicuramente sapranno, in passato molte cose hanno traviato la nostra community: spam, mancanza di tempo dell’amministratore, defacciamenti, ed altro. Se siamo riusciti ad uscirne fuori, il merito non deve certo andare tutto a me, anzi. Ogni giorno posso contare su un team di moderatori ed un collega amministratore che mi aiutano tantissimo con il forum; che è ciò che richiede più attenzioni. A loro va il mio ringraziamento!

Il nostro orgoglio, il forum!
Il nostro orgoglio, il forum!

Potete avere una panoramica più approfondita sulla nostra storia leggendo la pagina apposita. Nel frattempo, soffermatevi a visitare il sito. Come detto sopra, me ne sto occupando da alcuni giorni, ma sono già soddisfatto di come sta venendo. Ci sarà spazio per l’informazione base su Gimp (cos’è, cosa fa, …) nonché per guide, tutorial, news, e chi più ne ha più ne metta. 😛

Un'evoluzione continua da plasmare ad arte...
Un’evoluzione continua da plasmare ad arte…

Per questo, ed anche perché è sempre bello parlare di un software favoloso come Gimp, la nostra community sta cercando nuovi membri e persone che abbiano voglia di partecipare al forum, nonché di scrivere magari qualcosa per il sito! 😀

Quello che voglio realizzare è un progetto di cui tutti si sentano artefici, ciascuno nella sua parte. Il sito è ancora piccolo, ma sta crescendo in fretta e può diventare qualcosa di molto concreto.

Venite a trovarci numerosi!

Come installare i font di Microsoft Office 2007 in Linux

Sapete bene che non sono per nulla entusiasta di gran parte di ciò che riguardi Microsoft. Il suo monopolio purtroppo crea un problema abbastanza irritante che è anche legato ai documenti. Se una persona che usa Office 2007 mi invia un documento di testo, probabilmente lo farà in docx. È un formato un po’ antipatico, ma fortunatamente OpenOffice lo può leggere. Bene, fin qui ci siamo.

Ora che l’ho aperto è tutto sballato. Wow, favoloso. Cos’è successo? È relativamente semplice da capire, non sono in possesso dei font che l’incauto utente ha ben pensato di ritenere universali e di includere in ogni parte del documento. In passato i font più diffusi erano Arial, Times New Roman, e simili. Non sono font liberi, ma comunque reperibili dal sito del progetto Core Fonts. Tempo fa Microsoft aveva deciso di farli diventare lo standard per il web e quindi li aveva distribuiti, anche se in forma di exe inalterabile.

Fermo restando che chi progetta un sito web dovrebbe sempre usare criterio e predisporre un layout visualizzabile con font più banali possibile (Sans e Serif) e eventualmente poi aggiungerne altri, rimangono i problemi relativi ai documenti.

Ora che sta prendendo piede la brutta moda di Office 2007 e Windows Vista, il rischio di non poter almeno vedere i documenti correttamente aumenta in modo considerevole. Casualmente mi è capitato di leggere sul blog di OpenOffice Ninja un post che descriveva come installare alcuni di questi font ricavati dal PowerPoint Viewer.

Dopo aver provato il suo procedimento, ho verificato che la versione demo gratuitamente scaricabile dal sito di Microsoft di Office 2007 contiene svariati font in più. Giusto per essere chiari, oltre a dire che il download del file contente i font è reso disponibile dalla stessa Microsoft, è bene citare la licenza riportata dal prodotto:

c. Componenti dei Tipi di Carattere. Mentre il software è in esecuzione, il licenziatario potrà utilizzare i relativi tipi di carattere per visualizzare e stampare il contenuto. Il licenziatario potrà solo

  • incorporare i tipi di carattere nel contenuto nella modalità consentita dalle restrizioni relative all’incorporamento dei tipi di carattere e
  • scaricarli temporaneamente in una stampante o altro dispositivo di output per consentire la stampa del contenuto.

La classicissima frase che dice tutto e non dice niente. Quando il software è in esecuzione? Quindi se volessi scrivere in Arial con Paint devo assicurarmi di avere aperto e ridotto a icona Excel? Mi spiegate come mai quando si disinstalla Office, i font rimangono? Curioso come fatto.

Detto questo, chi trova coerente proseguire (come il sottoscritto) per sopravvivere all’inondazione di documenti dalle fonti più disparate, lo può fare. Innanzitutto bisogna controllare di avere installato cabextract, ed in caso negativo rimediare. Ora si può procedere al download della demo di Office. Io ho provato con la versione Enterprise, per cui non so se ci siano variazioni per le altre. I link sono tutti qui.

A questo punto, è necessario estrarre dall’installer un file cabinet. Con il terminale, usando cabextract, si deve fare:

cabextract -F EnterrWW.cab Enterprise.exe

Ci metterà un poco. Ora si passa alla creazione di una directory per convertire i font, e poi all’estrazione di questi ultimi. Si esegue pertanto:

sudo mkdir /usr/share/fonts/msoffice2007
sudo cabextract -F *.TT? -d /usr/share/fonts/msoffice2007 EnterrWW.cab

Infine va aggiornata la cache dei font:

fc-cache -fv

Chiudendo e riaprendo i software di videoscrittura si vedranno i nuovi caratteri installati. Il file di installazione ed il cabinet estratto si possono ora eliminare.

Ci sarebbero molte parole da dire su questioni filosofiche per quanto riguarda i font e altre cose del genere. Non mi ci voglio soffermare troppo, perché il post diventerebbe lungo dieci volte tanto. Mi limiterò a dire che questi font dovrebbero essere usati per rimanere compatibili con materiale creato da altri. Distribuire documenti OpenOffice con caratteri strani è molto fastidioso per chi li riceve, per cui evitate.

Se andate pazzi come me per i font e vi piace trovare ogni volta dei font diversi per i vostri documenti, ricordatevi di creare un pdf del risultato. In questo modo potete distribuire tranquillamente ciò che scrivete e non ci saranno problemi a visualizzarlo.

Aggiornamento 20/03/2009: proprio poco tempo dopo che avevo scritto l’articolo, il gestore del blog che avevo linkato ha spostato i suoi post ed alcuni sono inaccessibili. Ho cambiato il link con uno dai contenuti analoghi.

Aggiornamento 08/07/2009: se per caso la visualizzazione dei font Cambria e Candara in Firefox è pessima a causa della mancanza dell’antialiasing, potete sostituirli con quelli contenuti in questo pacchetto di Microsoft (contiene le versioni leggeremente precedenti).

L’interfaccia uniforme tra le librerie grafiche, ovvero UniformUI per GNOME

Personalmente devo dire che specie in passato, ero uno a cui piaceva cambiare spesso il tema di GNOME. C’è stato il periodo in cui impazzivo per Murrine, poi ho apprezzato Clearlooks, ora sul portatile uso Darkroom con i colori modificati.

Nonostante questo però, ancora prima di cambiare tema, mi accorgevo sempre di una cosa abbastanza spiacevole. :\

Usando GNOME è impossibile non accorgersi di quanto le applicazioni basate su altri toolkit grafici siano… potrei dire orrende. Prendiamo per esempio i programmi per KDE 3… Hanno il classico tema Plastik, che non è brutto, però stona. Ed ha anche lo schema di colori blu standard, che con il tema di Ubuntu (nel mio caso) non ha nulla a che vedere.

Lo stesso vale anche per i programmi KDE 4, che hanno un bel tema, ma troppo diverso dallo stile GNOME. La situazione cambia totalmente se si tratta di Qt 3. Ci troviamo di fronte a un look del secolo scorso. L’interfaccia di base è spartanissima e ti fa odiare il lavorare con Qcad o simili. 😛 Con i programmi Qt 4 qualcosa si salva, l’aspetto è un po’ integrato anche se si può migliorare di molto.

Sintomi da incoerenza multipla
Sintomi da incoerenza multipla

Nell’immagine vedete uno screeshot di Ubuntu Intrepid a cui sono stati aggiunti alcuni software con le varie librerie grafiche, senza modificarne l’aspetto. Si salva solo VLC, che almeno è guardabile, anche se i colori sono un po’ più scuri di quanto dovrebbero.

Quando mi sono capitate queste cose, finora, la soluzione era quella di installare i configuratori di Qt (versione 3 e 4) e cambiare i colori e il tema a mano, fino a trovare una combinazione gradevole. Tutto ciò dopo ogni cambiamento di tema e di colori. Per i programmi KDE, la soluzione poteva essere di installare tantissimi pacchetti KDE 4 solo per cambiare il tema, oppure peggio per KDE 3… Nessun modo.

Ero stanco di questa situazione, ed ho voluto crearmi un modo di poter svolgere il lavoro: cambiare quattro configurazioni diverse per ottenere un aspetto omogeneo in un attimo e senza fatica! 😀

Dopo sabati (e altri giorni) passati a programmare, vari tentativi, bug trovati e fix applicati, sono riuscito ad ottenere uno script in bash estremamente semplice da eseguire. Una volta aperto esso ricava la configurazione di GNOME (colori e tema del puntatore, e in più le icone, anche se per ora è un dato non utilizzato) e scrive le configurazioni adatte per KDE 3, KDE 4, Qt 3 e Qt 4; infine le applica.

Il processo è automatico e indolore. 🙂

Una volta chiuse le applicazioni, si riaprono ed ecco il risultato:

Dopo la cura
Dopo la cura

Durante la realizzazione dello script, ho avuto modo di analizzare un po’ la struttura delle varie configurazioni, capire dove dovevano andare le informazioni, e così via. È stato veramente divertente e sono contento di condividere con voi il risultato.

Lo script si chiama UniformUI e penso che sarà utilissimo a tutti gli utenti GNOME. A mio avviso questo script è comodissimo e permette di risparmiare tempo.

Mi piacerebbe perfezionarlo e migliorarlo, e chissà, magari in futuro potrebbe diventare diffuso. Il codice naturalmente è rilasciato sotto licenza GPL. Se volete dare una mano fatemelo sapere e proponetemi i vostri miglioramenti! 😉

Per usare lo script, scaricate il file da qui (versione 1, vedete sotto per le ultime versioni) e dategli i permessi di esecuzione. Infine, fatelo eseguire in un terminale (altrimenti non vedrete l’output). Chiudete le applicazioni che usano librerie Qt e riapritele.

Noterete subito il cambiamento. 😀

Aggiornamento 12/06/2009: È uscita la versione 2! A questa pagina le note di rilascio ed il download.

Guida didattica alla compilazione del kernel Linux

Disclaimer

Ho scritto questa guida come una sorta di appunti per sistemi informatici.

Queste istruzioni sono concepite esclusivamente per fornire un’idea a scopo didattico di come si effettua la compilazione del kernel Linux. Non sono pertanto da ritenersi adatte per ottenere informazioni su come creare un kernel seriamente funzionante e utile all’uso abituale.

Scaricare i sorgenti

Naturalmente la prima cosa necessaria è l’archivio contenente il codice sorgente del kernel. Questo si scarica dal sito www.kernel.org ed è denominato kernel vanilla, ovverosia quello ufficiale, senza le modifiche fatte da alcuni membri della comunità (alcune sono molto famose e si trovano in svariate distribuzioni Linux).

Dal sito è possibile esplorare il server FTP o quello HTTP. Entrambi contengono gli stessi file, e sono veramente molti! Ciò che a noi interessa si trova in http://www.kernel.org/pub/linux/kernel/v2.6/. Dentro a questa cartella del sito possiamo trovare gli archivi dei vari kernel del ramo 2.6. Una volta scelta la versione desiderata, poniamo ad esempio 2.6.27.9, è possibile scaricare l’archivio cercando il file linux-2.6.27.9.tar.bz2.

È indifferente scaricare il file omonimo con estensione .tar.gz, tuttavia esso è compresso in modo differente pertanto ha una dimensione leggermente maggiore. Si tratta solo di risparmiare un po’ di tempo per il download.

L’archivio va scaricato in una directory a piacimento, qui si presupporrà che esso sia stato scaricato nella cartella home dell’utente (che si può indicare in un terminale con ~).

Scompattare l’archivio

A questo punto è il caso di armarci del nostro amato terminale. Una volta individuata la directory in cui è presente il kernel compresso, è sufficiente assicurarsi di spostarci in essa con il comando cd .

cd ~

Ora bisogna estrarre il tutto.

bunzip2 linux-2.6.27.9.tar.bz2
tar xvf linux-2.6.27.9.tar

Ricordo che il primo comando sostituisce il file .tar.bz2 con il suo equivalente non compresso .tar, mentre il secondo estrae dall’archivio i file e crea la giusta struttura di directory, mantenendo il file .tar.

A questo punto si può entrare nella directory:

cd linux-2.6.27.9

La fase di configurazione

Per configurare i parametri con cui sarà compilato il kernel si esegue il comando:

make menuconfig

In caso nel sistema non siano installate le librerie ncurses (e relativi file di sviluppo) il precedente comando restituirà errore. Pertanto dovrete ricorrere ad una configurazione assai più spartana:

make config

La selezione dei parametri è un procedimento lungo e che richiede una certa ponderazione. La trattazione di questa parte richiederebbe svariate competenze nonché un ingente numero di righe di spiegazione. Ciò esula dallo scopo di questo testo. Ritengo comunque molto istruttivo il fatto che chi compila provi diverse configurazioni al fine di notarne le differenze e capire il funzionamento.

In sostanza si tratterà di decidere che cosa andrà compilato ed incluso nel kernel, che cosa non dovrà essere compilato, ed infine cosa andrà compilato ma utilizzato come modulo. Si vedrà meglio in seguito che cosa significa tutto ciò.

Finita la configurazione, possiamo procedere alla compilazione propriamente detta.

La compilazione

Prima di tutto vi avverto che in questo paragrafo ci saranno dei procedimenti che richiederanno molto tempo, per cui assicuratevi di avere il computer a disposizione senza interruzioni.

Infatti è arrivato il momento! Un semplice comando stresserà il vostro processore per diverso tempo e compilerà ciò che avete impostato:

make

Il procedimento ha un tempo variabile, che dipende soprattutto dal vostro processore, comunque vi posso indicativamente dire che su un computer moderno medio ci mette circa un’ora. Naturalmente, salvo eventuali errori!

Immagine compressa, moduli e ramdisk

Il più è fatto. Ora è il momento che vi faccia una piccola digressione su come è composto il kernel Linux. Esso è stato progettato come monolitico, ovvero un grande file che contiene tutto. Successivamente è stato però aggiunto il sistema dei moduli.

Questo consente di evitare di gonfiare come un pallone il kernel che nella fase di boot viene caricato in RAM. In questo modo, ciò che non è essenziale subito può essere caricato dopo.

In questo momento abbiamo compilato tutto ma non abbiamo ancora messo al loro posto né i moduli, né l’immagine del kernel (ovvero il grosso file principale). A dire la verità, quest’ultima dobbiamo ancora crearla. Per questo, si esegue:

make bzImage

Questo processo è decisamente più breve della compilazione, in quanto si tratta sostanzialmente di creare un archivio compresso. Fatto ciò, nella sottodirectory arch/---/boot/ si troverà il file senza estensione bzImage. Al posto di ---, va la sigla che indica l’architettura per cui è stato compilato il kernel (nel nostro caso, quella che stiamo eseguendo). Per i sistemi a 32 bit è x86.

Creato il kernel, è il momento di installare i moduli. Avendo dato in precedenza il comando make senza nessuno dei possibili argomenti, essi sono già stati compilati. È sufficiente installarli, però avete bisogno dei permessi di amministratore. Al fine di ottenere una console di amministratore date il comando:

su

Inserite la password dell’utente root. In alcune distribuzioni, in particolare Debian e derivate (come Ubuntu), l’utente amministratore può essere disabilitato, e in alternativa è possibile che il vostro utente sia abilitato a operazioni privilegiate tramite autenticazione. Per verificarlo, eseguite (dopo aver fallito il comando di cui sopra):

sudo -s

In questo caso dovrete inserire la password del vostro account.

Una volta in possesso dei privilegi richiesti, potete finalmente installare i moduli:

make modules_install

Ecco fatto. Manca solo un’ultima cosa: un ramdisk. Si tratta, come può suggerire il termine, di una porzione di ram che viene utilizzata come un disco. Nello specifico, questo avviene nella fase di avvio. Il kernel risiede nella ram fino a che non è disponibile il disco fisso reale del computer. Questa è la funzione del file denominato initrd.img.

Per crearlo, ora che siete amministratori, eseguite:

mkinitramfs -o /boot/initrd.img-2.6.27.9 2.6.27.9

Come potete intuire, in questo modo il file viene già collocato nella sede giusta, mentre il secondo parametro indica la versione del kernel di cui generare il ramdisk.

Ora tutto è stato compilato, ed i moduli sono già al loro posto. Manca solo da piazzare adeguatamente alcuni file e poi abilitare il kernel.

Copia dei file

I file relativi al kernel devono essere posizionati nella directory /boot che contiene tutto il necessario per l’avvio del sistema operativo.

Saranno da inserire l’immagine del kernel e un file che mappi il sistema, ovverosia un registro degli indirizzi di memoria relativo a variabili e funzioni. Inoltre è consigliabile copiare anche la configurazione usata, sia perché può tornare utile nel caso sia funzionante, sia per analizzare eventuali errori successivi. Come accennato, il ramdisk è già al suo posto.

È possibile verificare il contenuto della directory al fine di avere un’idea sul da farsi:

ls -l /boot/
totale 19972
-rw-r--r-- 1 root root  507665 2008-11-21 00:46 abi-2.6.27-5-generic
-rw-r--r-- 1 root root   91364 2008-11-21 00:46 config-2.6.27-5-generic
drwxr-xr-x 2 root root    4096 2008-12-13 20:54 grub
-rw-r--r-- 1 root root 8192633 2008-12-17 22:18 initrd.img-2.6.27.9
-rw-r--r-- 1 root root 8192548 2008-12-13 20:54 initrd.img-2.6.27-5-generic
-rw-r--r-- 1 root root  124152 2008-09-11 22:11 memtest86+.bin
-rw-r--r-- 1 root root 1029585 2008-11-21 00:46 System.map-2.6.27-5-generic
-rw-r--r-- 1 root root    1073 2008-11-21 00:48 vmcoreinfo-2.6.27-5-generic
-rw-r--r-- 1 root root 2244304 2008-12-13 20:03 vmlinuz-2.6.27-5-generic

I file nominati con un’altra versione del kernel sono relativi al kernel che sta eseguendo il sistema in uso. È da notare che volendo ci sono anche altri file che possono essere messi.

Per copiare il kernel vero e proprio nella sua destinazione eseguite:

cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.27.9

Modificate il comando dato in caso utilizzaste una architettura diversa.

Il file di mappatura prima menzionato si chiama System.map. Lo potete copiare facendo:

cp System.map /boot/System.map-2.6.27.9

Ora rimane solo da copiare il file con la configurazione utilizzata:

cp .config /boot/config-2.6.27.9

Vi ricordo che i file che cominciano con il punto sono nascosti. Pertanto, per vederlo elencato nel terminale insieme al restante contenuto della directory, dovete fare:

ls -a

Ora che tutto è stato copiato, si può verificare controllando il contenuto della directory:

ls -l /boot/
[...]
-rw-r--r-- 1 root root   82474 2008-12-18 14:26 config-2.6.27.9
[...]
-rw-r--r-- 1 root root 8192633 2008-12-17 22:18 initrd.img-2.6.27.9
[...]
-rw-r--r-- 1 root root  892153 2008-12-18 14:25 System.map-2.6.27.9
[...]
-rw-r--r-- 1 root root 2244304 2008-12-18 14:22 vmlinuz-2.6.27.9

L’output è stato abbreviato. L’unica cosa che resta da fare è modificare il bootloader affinché permetta di avviare il sistema operativo col kernel appena compilato.

Modifica di GRUB

Partirò dal presupposto che la vostra macchina utilizzi come bootloader GRUB, che è ormai presente in quasi tutte le distribuzioni. Nel caso usaste LILO, fate riferimento alla relativa documentazione per le istruzioni.

Si apre con un editor di testo (sempre come amministratori) il file di configurazione:

nano /boot/grub/menu.lst

Si può scorrere con le frecce lungo le righe del file. Cercate la parte dove sono presenti le varie voci, qualcosa di simile a questo:

title Ubuntu 8.10, kernel 2.6.27-5-generic
root (hd0,0)
kernel /boot/vmlinuz-2.6.27-5-generic   root=UUID=cbc39258-1c72-46b0-b398-3c6f81cc6574 ro quiet splash
initrd /boot/initrd.img-2.6.27-5-generic
quiet

title Ubuntu 8.10, kernel 2.6.27-5-generic (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.27-5-generic   root=UUID=cbc39258-1c72-46b0-b398-3c6f81cc6574 ro single
initrd /boot/initrd.img-2.6.27-5-generic

Nell’esempio sono indicate due modalità di avvio, una normale multiutente, ed una monoutente da usare in caso di problemi. Il nostro scopo è copiare la modalità normale e modificarla per usare il kernel compilato. Pertanto si può scrivere sotto alle due indicate qualcosa del genere:

title Ubuntu 8.10, kernel 2.6.27.9 Compilato da me!
root (hd0,0)
kernel /boot/vmlinuz-2.6.27.9   root=UUID=cbc39258-1c72-46b0-b398-3c6f81cc6574 ro quiet splash
initrd /boot/initrd.img-2.6.27.9
quiet

Prestate molta attenzione ai due parametri root (uno come riga di configurazione, e l’altro come argomento del parametro kernel). Essi indicano infatti la partizione che deve essere avviata. Non dovete copiare il mio esempio, invece assicuratevi di impostarla in modo uguale a quanto avete già per le voci funzionanti.

Salvate ed uscite (rispettivamente con Ctrl + O e Ctrl + X). Ora non vi resta che riavviare e selezionare la voce relativa al vostro nuovo kernel, per verificare se davvero funziona ed avete fatto tutto bene. Buon lavoro!

Fonti, spunti e approfondimenti

La maggior parte di questi url mi ha aiutato nello scrivere questa piccola guida. Alcuni sono invece semplicemente dei riferimenti utili per approfondire.

Ubuntu 8.10 sul Dell XPS M1530

Come vi avevo già accennato, ho acquistato il mio favoloso Dell XPS M1530, e mi è arrivato il 9 ottobre. Come è naturale per qualsiasi persona seria, ho provveduto subito ad installarci Linux (ci mancherebbe) e mi sono sorpreso (anche se ne avevo sentito parlare online) del fatto che sia bastato poco per avere un sistema funzionante in ogni parte a puntino.

La poesia occupa meno di 16"
La poesia occupa meno di 16″

Prima di passare alle istruzioni, questa è la configurazione hardware:

  • Laptop Dell XPS M1530 colore Tuxedo Black
  • Processore Intel® Core™ 2 Duo T8300 (2,40 GHz, FSB 800 MHz, cache L2 3 MB)
  • Webcam da 2 megapixel
  • Schermo TFT UltraSharp™ widescreen WSXGA+ (1680 x 1050) da 15,4″ con TrueLife™
  • SDRAM DDR2 a doppio canale da 3072 MB a 667 MHz
  • Disco rigido SATA da 250 GB e 5400 rpm
  • nVidia® GeForce™ Go 8600M GT con 256 MB di memoria grafica dedicata
  • Unità di caricamento a slot sottile fissa DVD+/-RW 8x
  • Batteria principale 6 celle agli ioni di litio (56 Wh)
  • Modulo Dell™ Wireless 355 Bluetooth 2.0 (fino a 3 Mb/s)
  • Scheda mini Intel® Pro Wireless 3945 802.11a/b/g, Europa

Ho poi preso il mouse ottico Dell base e una borsa, precisamente la Kensington Contour Active Notebook Messenger.

Ho trascritto le azioni che ho compiuto in ordine cronologico, ma poi ho deciso di suddividerle in settori più orientati al tipo di operazione. Per questo motivo, riporto qui le azioni fatte nell’ordine in cui sono più coerenti.Continua a leggere “Ubuntu 8.10 sul Dell XPS M1530”