Questa guida descrive il procedimento di installazione e la configurazione della distribuzione Linux Fedora Core 6 su un notebook HP Compaq nc6400.
Indice:
- 2. Il notebook
2.1. Caratteristiche
3.1. Lo stato iniziale
3.2. Liberare lo spazio
4.1. Finalmente l'installazione
4.2. Il kernel sbagliato
4.3. La configurazione di Xorg
4.4. Il wireless
4.5. La variazione di frequenza del processore
5.1. Raffinatezze
5.2. Cosa rimane ancora
- 6. Per finire
6.1. Ringraziamenti
6.2. Strumenti utilizzati
6.3. Versioni aggiornate
6.4. Licenza e Copyright
1. Compatibilità con Linux |
La tabella che segue riassume le principali caratteristiche del notebook con il grado di compatibilità rilevato con Fedora Core.
Sottosistema |
Tipo/Modello |
Compatibilità |
Note |
Processore |
Intel Core Duo 1,66GHz (T2300) | Totale |
Richiede un aggiornamento del BIOS almeno alla versione F.06 perché la variazione di velocità del processore funzioni (Sezione 4.5, «La variazione di frequenza del processore»). |
Scheda video |
Intel 945 |
Totale |
Accelerazione 3D e Compiz funzionano immediatamente al termine dell'installazione. Per usare la risoluzione massima richiede alcuni aggiustamenti (Sezione 4.3, «La configurazione di Xorg»). |
Controller dischi |
Intel ICH7 IDE/S-ATA |
Totale |
|
Disco interno |
Hitachi HTS541060 S-ATA |
Totale | |
Masterizzatore |
Combo DVD-ROM/CD-RW | Totale |
|
Audio |
Intel HDA |
Totale |
|
Rete ethernet |
Broadcom BCM5753M Gigabit ethernet |
Totale |
|
Rete wireless |
Intel ipw3945 |
Parziale |
Richiede compilazione del modulo driver ed alcune modifiche (Sezione 4.4, «Il wireless»). |
Bluetooth |
Modulo Broadcom su USB interno |
Totale |
Provato con un telefono cellulare |
Modem |
Winmodem |
Nessuna |
Secondo quanto riportato qui e dallo script di identificazione scanModem, preso sempre dallo stesso sito, dovrebbe funzionare con il driver SmartLink, ma al momento non ho fatto prove estensive. |
PCMCIA | Texas Inst. PCIxx12 |
Totale |
Provato con una scheda Wifi ed una SCSI |
Lettore schede SD/MMC | Texas Inst. PCIxx12 |
Problemi |
Provato con una scheda SD da 1G, il driver riconosce correttamente il chipset, viene rilevata l'inserzione della scheda, i moduli sono caricati, ma non c'è verso di veder creato il device corrispondente, e quindi di montare la memoria. Da una discussione nella mailing list del kernel a cui partecipano Pierre Ossman e Alex Dubov, sviluppatori dei driver per SD/MMC, pare ci siano problemi con i kernel 2.6.20 che impediscono il corretto funzionamento di tutto il supporto per MMC/SD. Quello che non sono riuscito a capire è se i problemi sono stati risolti nell'ultimo kernel disponibile (2.6.20-1.2944.fc6) oppure no. In ogni caso non sono riuscito ad usare la scheda SD con il lettore. |
Lettore smartcard |
Texas Inst. PCIxx12 |
Nessuna | Non esiste traccia di driver, neanche in beta. |
Lettore impronte digitali | Authentec inc. |
Nessuna | Non esiste traccia di driver, neanche in beta. |
Touchpad |
Synaptics | Totale |
|
Gestione energia |
Batteria Li-Ion |
Totale |
Lo stato dell'alimentazione viene riportato correttamente. La durata della batteria è di circa 3 ore, senza uso intensivo di disco/processore. |
Ibernazione |
Parziale |
L'ibernazione in teoria funziona, ma al ripristino alcune periferiche non si riattivano. La sospensione in RAM invece blocca il computer. | |
Pulsanti aggiuntivi |
Totale |
Disattiva wireless, volume audio e mute, luminosità schermo, commutazione schermo LCD/esterno funzionano perfettamente. | |
USB | Intel ICH7 | Totale | Provato con vari dispositivi: pen drive, dischi esterni, scanner. |
Tabella 2. Legenda
Totale |
Funzionamento immediato al termine dell'installazione, o con lievi modifiche a file di configurazione |
Parziale |
Richiede compilazione di driver o del kernel, o pesanti modifiche ai file di configurazione |
Nessuna |
Non funziona con Linux; le modifiche sono talmente pesanti ed estese da sconsigliare il tentativo; non esistono informazioni sufficienti. |
2. Il notebook |
È un modello abbastanza leggero, con monitor da 14 pollici wide.
La dotazione del mio esemplare (part number EH522AV) comprende:
- per la parte elaborazione: Centrino Duo™, velocità 1,66GHz con bus a 667MHz, 1G di RAM a 667MHz DDR2, 2M di cache.
- per la parte storage: HD interno SATA da 60G, combo lettore DVD-masterizzatore CD-RW.
- grafica: chipset Intel 945 con memoria condivisa, display widescreen con risoluzione 1280x800
- comunicazioni: Gigabit ethernet integrata, modem analogico, IrDA, Bluetooth, Wifi 802.11a/b/g.
- porte di I/O: 3 USB2, VGA per monitor esterno, TV-out (connettore minidin a 8 poli), 1 slot PCMCIA, 1 slot per memorie flash SD/MMC, lettore di SmartCard.
- nella categoria periferiche di sicurezza: lettore impronte digitali, dispositivo di protezione del disco fisso con accelerometro.
Fra le altre cose degne di nota, il fatto che pesa poco più di due chilogrammi in assetto normale, cosa da non trascurare, e che è di dimensioni ridotte, come si può verificare sul sito del produttore. L'aspetto è solido, e offre una sensazione di robustezza.
Il sistema operativo fornito di serie è Windows™ XP™ Professional con Service Pack 2 già installato. Al solito, come oramai consuetudine da qualche anno, non vengono forniti i supporti originali per l'installazione del software, ma la consueta partizione nascosta (qui è da 6 gigabyte) col software che provvede alla reinstallazione completa dell'immagine del sistema operativo e di tutte le applicazioni a corredo, ripristinando lo stato del notebook come alla prima accensione. Inoltre c'è una utility che permette di masterizzare un DVD o CD, con tutto il necessario per ricostruire questa partizione nascosta e da lì ricostruire il sistema operativo ed i software. La nota curiosa è che qualcuno prima che mi fosse assegnato il notebook aveva già fatto l'operazione, ed ora il software si rifiuta di farne una seconda copia, affermando che ne è permessa una sola. E se mi perdo i supporti o mi si deteriorano? Mah...
3. Preparazione e installazione |
Alla prima accensione immagino parta la procedura di completamento dell'installazione di Windows™ XP™ in NTFS. Come ho già detto, il notebook mi è arrivato che era già stato “violato” da qualcun altro, quindi non ho idea di come sia all'accensione, ma in fondo poco importa.
Il disco è diviso in sole due partizioni: la prima di 50G con il sistema operativo, la seconda nascosta e contenente il ripristino d'emergenza. Per dirla alla maniera di Linux, sono /dev/sda1 e /dev/sda2, consecutive anche nella tabella delle partizioni.
Se vogliamo mantenere Windows ed attrezzare un dual boot, le operazioni necessarie per fare un backup e liberare lo spazio per l'installazione di Linux in generale e Fedora in particolare, si trovano sul mio manualetto di installazione di Linux Fedora. Sono elencate passo passo e dettagliate per vari scenari iniziali, fra cui appunto quello del singolo disco con la partizione di ripristino, come nel caso di questo notebook. È inutile che le ripeta qui.
4. Installazione e configurazione di Linux Fedora |
4.1. Finalmente l'installazione
Liberato lo spazio possiamo passare all'installazione, anche questa dettagliata nel manualetto di installazione di cui parlavo poco fa. Le varie possibilità e le scelte da fare sono spiegate molto in dettaglio, per cui siamo invitati a leggerlo con attenzione. E' inutile riportare qui le stesse notizie.
È un bug noto di Fedora. Solo con alcuni tipi di processori l'installer sbaglia completamente l'architettura e sceglie un kernel per i586, invece che per i686. Per rimettere le cose a posto basta seguire la mia guida. Poi occorre riavviare ed avremo il kernel giusto installato.
4.3. La configurazione di Xorg
La configurazione di Xorg non pone problemi se non per il fatto che nel BIOS non vengono elencati i modi grafici disponibili, quindi il configuratore di Xorg, anche se forzato ad usare la giusta risoluzione (nel mio caso 1280x800) continua a visualizzare il desktop in 1024x768 pixel. Per risolvere occorre installare una utility chiamata 915resolution dal deposito di Fedora Extras, eseguendo da un terminale come utente root:
# yum install 915resolution Install 1 Package(s) |
Il pacchetto è installato, ora occorre configurarlo.
Apriamo in modifica il file /etc/sysconfig/915resolution il cui contenuto è più o meno:
# Mode to overwrite # RESOLUTION="58 1680 1050" |
ed aggiungiamo una riga in questo modo:
# Mode to overwrite # RESOLUTION="58 1680 1050" RESOLUTION="3c 1280 800" |
Poi occorre impartire il seguente comando:
# chkconfig 915resolution on |
che provvede ad inserire il servizio 915resolution ad ogni avvio del sistema. In realtà non si tratta di un servizio vero e proprio, ma di uno script che esegue il comando 915resolution ad ogni avvio automaticamente.
Per verificare il funzionamento di tutto, prima di riavviare il computer, possiamo impartire il comando:
# 915resolution 3c 1280 800 |
poi passiamo a configurare lo schermo mediante l'apposita utility di Fedora in Sistema, Amministrazione, Schermo. Nel pannello hardware cambiamo il monitor impostando un "Generic LCD Display", in particolare "LCD Panel 1280x800". Poi nel pannello Impostazioni, nella casella "Risoluzione" sceglieremo appunto "1280x800". Confermiamo, e terminiamo la sessione con Sistema, Termina sessione. Il server Xorg si riavvia e dovrebbero immediatamente apparire più nitide le scritte nella schermata di login.
Dal punto di vista della spiegazione tecnica, la motivazione è la seguente: Xorg interroga il BIOS della scheda video per chiedere quali risoluzioni siano disponibili, e la risoluzione pari a quella del display LCD non è elencata fra quelle disponibili. Questo è facilmente verificabile con il comando:
# 915resolution -l Intel 800/900 Series VBIOS Hack : version 0.5.2 Chipset: 945GM BIOS: TYPE 1 Mode Table Offset: $C0000 + $269 Mode Table Entries: 36 Mode 30 : 640x480, 8 bits/pixel Mode 32 : 800x600, 8 bits/pixel Mode 34 : 1024x768, 8 bits/pixel Mode 38 : 1280x1024, 8 bits/pixel Mode 3a : 1600x1200, 8 bits/pixel Mode 3c : 1920x1440, 8 bits/pixel Mode 41 : 640x480, 16 bits/pixel Mode 43 : 800x600, 16 bits/pixel Mode 45 : 1024x768, 16 bits/pixel Mode 49 : 1280x1024, 16 bits/pixel Mode 4b : 1600x1200, 16 bits/pixel Mode 4d : 1920x1440, 16 bits/pixel Mode 50 : 640x480, 32 bits/pixel Mode 52 : 800x600, 32 bits/pixel Mode 54 : 1024x768, 32 bits/pixel Mode 58 : 1280x1024, 32 bits/pixel Mode 5a : 1600x1200, 32 bits/pixel Mode 5c : 1920x1440, 32 bits/pixel |
Come possiamo vedere la risoluzione 1280x800 non è contemplata dal BIOS, anche se è proprio quella del pannello LCD del notebook. L'utility 915resolution si limita a modificare temporaneamente (fino al primo riavvio) questa tabella, sostituendo uno dei modi disponibili che prevediamo di non utilizzare con quello voluto. Nel caso in esame ho preferito sostituire la risoluzione del modo 3c, 1920x1440, che probabilmente non utilizzerò mai. Per come funziona la tabella, vengono modificate tutte le voci che riportano la risoluzione 1920x1440, quindi anche i modi 4d e 5c, assicurando che indipendentemente dal numeri di colori per pixel, la risoluzione di 1280x800 sarà sempre riconosciuta.
Dato che questa modifica è valida fino al primo riavvio, ovviamente occorre ripeterla tutte le volte che avviamo il computer: ecco il motivo per cui abbiamo modificato il file /etc/sysconfig/915resolution ed aggiunto il servizio corrispondente all'avvio automatico.
Il chipset usato per il wireless è Intel IPW3945, per il quale non esiste ancora modulo compreso nel kernel. In questo caso il sito giusto è: http://ipw3945.sourceforge.net/. Non esistono pacchetti già compilati per il kernel di Fedora, per cui occorre procedere alla compilazione.
La procedura è piuttosto complessa, e richiede il prelievo di tre differenti pacchetti: il driver vero e proprio, il firmware per la scheda e un demone specifico. Preleviamo i pacchetti necessari:
- ipw3945-1.2.0.tgz dal sito http://ipw3945.sourceforge.net/, costituente il driver.
- ipw3945-ucode-1.13.tgz dal sito http://bughost.org/ipw3945/, contenente il firmware.
- ipw3945d-1.7.22.tgz sempre dal sito http://bughost.org/ipw3945/, contenente il demone.
Queste sono le versioni disponibili al momento in cui scrivo. Partiamo dal driver, aprendo un terminale e diventando root. Poi andiamo in una directory di appoggio e apriamo il pacchetto con il comando:
# tar xzf ipw3945-1.2.0.tgz |
ci troveremo una directory dal nome ipw3945-1.2.0 in cui entriamo e diamo in sequenza i comandi:
# make Using ieee80211 subsystem version API v2 from: Base: /lib/modules/2.6.18-1.2869.fc6/build/ Path: /lib/modules/2.6.18-1.2869.fc6/build/include/ EXTRA_CFLAGS = -DIPW3945_COMPAT=2 -g -Wa,-adhlms=check_inc.lst mkdir -p /root/dlt/ipw3945-1.2.0/tmp/.tmp_versions make -C /lib/modules/2.6.18-1.2869.fc6/build M=/root/dlt/ipw3945-1.2.0 MODVERDIR=/root/dlt/ipw3945-1.2.0/tmp/.tmp_versions modules make[1]: Entering directory `/usr/src/kernels/2.6.18-1.2869.fc6-i686' CC [M] /root/dlt/ipw3945-1.2.0/ipw3945.o Building modules, stage 2. MODPOST CC /root/dlt/ipw3945-1.2.0/ipw3945.mod.o LD [M] /root/dlt/ipw3945-1.2.0/ipw3945.ko make[1]: Leaving directory `/usr/src/kernels/2.6.18-1.2869.fc6-i686' # make install install -d /lib/modules/2.6.18-1.2869.fc6/kernel/drivers/net/wireless/ install -m 644 -c ipw3945.ko /lib/modules/2.6.18-1.2869.fc6/kernel/drivers/net/wireless/ /sbin/depmod -a 2.6.18-1.2869.fc6 Don't forget to copy firmware to your hotplug's firmware directory and have the hotplug tools in place. See INSTALL for more information. NOTE: This driver is for development and validation purposes only and has not been tested for regulatory compliance. By using this driver you assume responsibility for any compliance issues that may arise. Please see the README.ipw3495 for information on regulatory compliance. |
Se non riceviamo messaggi di errore dovremmo avere il modulo installato e pronto.
Tocca al firmware. Torniamo indietro alla directory di appoggio e apriamo il pacchetto con il comando:
# tar xzf ipw3945-ucode-1.13.tgz |
Entriamo nella directory ipw3945-ucode-1.13 appena creata e copiamo il firmware nella directory giusta:
# cp ipw3945.ucode /lib/firmware/ |
Ora passiamo al demone. Torniamo alla directory di appoggio, e apriamo il pacchetto con il comando:
# tar xzf ipw3945d-1.7.22.tgz |
ci ritroveremo una directory dal nome ipw3945d-1.7.22 in cui entriamo e diamo il comando:
# cp x86/ipw3945d /sbin |
che serve semplicemente a copiare il demone precompilato nella directory dove sono tutti i programmi che servono all'utente root. Per avere il demone sempre attivo all'avvio possiamo modificare il file /etc/rc.local, in questo modo:
#!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. /sbin/ipw3945d --quiet touch /var/lock/subsys/local |
Non è la soluzione migliore, ma è la meno complessa. A parte ovviamente lanciarlo a mano ogni volta.
Ultima modifica, per automatizzare tutta la procedura di caricamento del driver e del demone. Apriamo il file /etc/modprobe.conf ed aggiungiamo le seguenti righe:
alias eth1 ipw3945 install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; sleep 0.5 ; /sbin/ipw3945d --quiet remove ipw3945 /sbin/ipw3945d --kill ; /sbin/modprobe -r --ignore-remove ipw3945 |
È fondamentale che le aggiunte siano esattamente come sono qui e che le istruzioni nella righe install e remove siano tutte di seguito senza andare a capo. Di seguito dare il comando:
# depmod -a |
che serve a rileggere e convalidare le modifiche appena fatte. Ho usato eth1 dato che di solito eth0 è quella ethernet.
Arriva la parte più complicata. Per far vedere la nuova scheda al sistema di networking, occorre creare un profilo nella directory /etc/sysconfig/network-scripts con nome ifcfg-eth1, usando lo stesso nome di interfaccia indicato nelle due righe di configurazione precedenti. La manovra più semplice è di copiare il profilo che appartiene all'interfaccia eth0 che dovrebbe essere già stato creato in automatico durante l'installazione. Quindi:
# cp ifcfg-eth0 ifcfg-eth1 |
dato nella directory indicata sopra. Apriamo il file con un editor, il contenuto iniziale dovrebbe essere simile a questo:
DEVICE=eth0 BOOTPROTO=dhcp HWADDR=00:C0:9F:EB:53:A4 ONBOOT=yes TYPE=Ethernet DHCP_HOSTNAME=defiant |
Lo cambiamo secondo le nostre esigenze, alla fine dovrebbe assomigliare a questo:
# Intel IPW3945 WiFi 802.11a/b/g DEVICE=eth1 BOOTPROTO=dhcp TYPE=Wireless ONBOOT=yes USERCTL=no DHCP_HOSTNAME=maxwell ESSID=skylink CHANNEL=5 SECURITYMODE=restricted MODE=Managed RATE=Auto IPV6INIT=no |
I parametri fondamentali sono:
- TYPE - tipo di interfaccia, in questo caso Wireless. Serve a indirizzare verso l'appropriato script di avvio nella stessa directory, in questo caso ifup-wireless. Guardando dentro questo script possiamo trovare tutte le informazioni sui parametri specifici.
- MODE - il tipo di configurazione wireless, in questo caso, Managed indica la presenza di un access point.
- ESSID - il nome della rete wireless
- DEVICE - deve corrispondere al nome usato in tutti gli altri file, in questo caso eth1
- SECURITYMODE - che può essere open o restricted. Nel mio caso l'access point usa una cifratura WEP, per cui lo imposto a restricted.
Il significato di tutti gli altri valori si trova sia in testa allo script ifup-wireless che nelle pagine di manuale di wlanconfig, iwconfig e iwpriv.
Se la rete wireless ha un chiave WEP, va inserita in un altro file, sempre nella stessa directory, dal nome keys-nomeinterfaccia, nel caso in esame keys-eth1 il cui contenuto sarà:
KEY=la_vostra_chiave |
Se è un valore esadecimale, possiamo inserirlo direttamente, se invece è una stringa, potrebbe essere necessario convertirla in codice esadecimale, usando il valore ASCII dei singoli caratteri, mi sono capitati un paio di access point che usavano questo metodo.
In caso di aggiornamento del kernel è necessario ricompilare ed installare solo il modulo kernel, non occorre toccare il firmware o il demone.
Sperimentiamo un po' senza perderci d'animo, la scheda funziona bene. Speriamo solo che presto integrino anche questo modulo nel kernel.
4.5. La variazione di frequenza del processore
Una delle caratteristiche dei nuovi processori è di risparmiare energia abbassando la velocità del clock, e quindi il consumo, quando il computer è inattivo o lavora a basso carico. Questa caratteristica si chiama in vari modi a seconda del produttore, ma tutti fanno capo ai moduli cpufreq del kernel.
Perché la variazione funzioni occorre una versione di BIOS a partire dalla F.06: l'esemplare in mio possesso aveva la versione F.05 e la variazione non funzionava, rimaneva sempre al massimo. Aggiornando all'ultimo BIOS rilasciato (versione F.08) viene utilizzato totalmente il supporto per la variazione di frequenza, aumentando drasticamente la durata delle batterie e diminuendo il surriscaldamento del computer.
5. Ultimi ritocchi |
Possiamo correggere l'antialiasing predefinito, che rende i caratteri sullo schermo un po' sfocati, e quando sono piccoli quasi illeggibili, usando le impostazioni nel menù Desktop, Preferenze, Tipi di carattere, scegliendo la voce "Sfumatura subpixel (LCD)", il miglioramento è notevole.
Rimangono ancora alcune cose non utilizzabili: il modem, il lettore di impronte digitali ed il lettore di smartcard.
Al momento non vi sono indizi che qualcuno abbia sviluppato un driver utilizzabile per nessuno di questi dispositivi.
6. Per finire |
Un sentito ringraziamento a mia moglie, che tollera le ore passate dal sottoscritto al computer, e che per fortuna non si occupa di informatica.
Senza l'ottimo lavoro fatto dal team di sviluppo di Fedora (http://fedoraproject.org/wiki/), la mia distribuzione Linux di riferimento, questo documento non avrebbe potuto vedere la luce. Ovviamente la stessa gratitudine va agli innumerevoli individui che contribuiscono alla realizzazione di tutto il software Open Source che costituisce il corpo del sistema operativo Linux e il suo contorno di applicazioni adatte a tutte le esigenze.
Un grazie, si fa per dire, alla programmazione televisiva, in virtù della quale ho recuperato tante ore che passo in modi più piacevoli e costruttivi, almeno per me.
Per realizzare questo documento ho usato l'ambiente di creazione ed elaborazione testi di Fedora, aderente allo standard aperto DocBook XML, disponibile sul sito http://www.docbook.org/tdg/en/html/docbook.html. Il file XML sorgente di questo documento è stato realizzato con VIM, usando un file di personalizzazione dei comandi per velocizzare la digitazione dei tag più usati.
Versioni aggiornate di questo documento le potete trovare sul mio sito web: http://ismprofessional.net/pascucci, insieme a molto altro.
Tutto il documento è rilasciato sotto licenza GNU FDL. Potete riprodurlo a piacere, senza modificarlo e citando l'autore originale.