Linux on a Compaq Evo N1015v
Indice
Il portatile
Il portatile è un Compaq
Evo N1015v, dotato di un processore Athlon AMD XP 1500, con 486Mb di RAM e un disco
da 18465Mb (=18Gb).
Sul portatile era installato Microsoft
Windows XP Professional, il disco era tutto in una unica partizione
(!!!) formattato con NTFS
Perché Debian?
La distribuzioneGNU/Debian è
la mia preferita per vari motivi:
- è free, cioè non è legata ad una
società commerciale che (giustamente) cerca il profitto (es. RedHat);
- non si basa su alcun software proprietario e non liberamente
distribuibile (es. YaST di SuSE) ;
- è ordinata,
cioè se io ho bisogno di trovare un file so subito dove andarlo a
cercare1;
- usa il sistema di pacchettizzazione più evoluto, che se ne
dica non esiste alcun tool migliore di apt1
La preparazione
La prima operazione da fare è quella di ridimensionare Windows.
Utilizzando Partition Magic 8.0, ho partizionato il disco nel
seguente modo:
| Label |
Device
|
Size (Kb)
|
Percento
|
FS (e colore)
|
Descrizione
|
| boot |
/dev/hda3 |
54416 |
0,29% |
ext2 |
partizione di avvio, /boot.
Posizionato in avvio del disco per la gesitione del Boot Loader
|
rootc
|
/dev/hda1
|
6658908
|
35.22%
|
NTFS |
disco "C" per Windows XP, che,
come previsto, non si è accorto di niente, e crede ancora di
essere il sistema operativo
(parola grossa) dominante.
|
dati
|
/dev/hda5
|
6645908
|
35.15%;
|
FAT32
|
Disco di condivisione dei dati
tra Windows e Linux. Deve essere FAT32 perché è leggibile
da Windows e scrivibile da Linux
|
root
|
/dev/hda7
|
497829
|
2.65% |
ext2 |
partizione /
|
usr
|
/dev/hda8
|
3028080
|
16.01%
|
ext2 |
partizione /usr
|
home
|
/dev/hda9
|
2023920
|
10.7% |
ext2 |
partizione /home
|
Graficamente, la struttura del disco è la seguente (ogni blocco
rappresenta una partizione, l'ordine è definito nella tabella
precedente):
La prima installazione
La prima installazione è stata fatta utilizzando i CD di Debian
trovati nella Rivista Linux&C
quindi, Woody 3.0r0.
Tentativo 1
Cerco di installare con il kernel 2.4.18 (opzione bf24), quindi al boot provo con:
bf24 apm=on
e l'installazione si interrompe con una Memory Check Exception.
Dopo qualche indagine con google
scopro che esiste l'opzione nomce,
che serve ad aggirare/correggere problemi tipo questo. In più,
leggo da qualche parte di usare anche l'opzione pci=biosirq.
Riprovo, quindi con
bf24 apm=on nomce pci=biosirq
L'installazione sembra ora procedere al meglio, ma quando arrivo al
passo della partizionatura del disco, ottengo un bel /dev/hda: unable to read.
Dopo un po di altre ricerche su Mailing List (MiLug) e google, identifico il problema con il
fatto che il disco ha il supporto UDMA.
Lo disabilito dal Bios e uso l'opzione ide=nodma.
Ricomincio l'installazione con:
bf24 apm=on nomce pci=biosirq ide=nodma
risultato: fallimento con lo stesso errore. E lo stesso si ha
permutando le opzioni tra loro.
Il tentativo 1 si conclude con un fallimento
Tentativo 2
Al tentativo 1 segue un periodo di un paio di giorni di scoramento. Per
la millesima volta leggo il report di una installazione di Debian su
questo portatile e noto una cosa che strana: parla del kernel 2.2.20.
Ad essere sincero, l'avevo già notato, ma l'avevo bollato come
un errore di digitazione: c'è vermente poca differenza tra 2.4.20
e 2.2.20... ma ora un dubbio mi assale: qual'è l'ultimo rilascio
ufficiale del kernel 2.4.x? Il 2.24.20 è già stato
rilasciato o no? Una veloce verifica
e scopro con orrore (!?) che il 2.4.20 non
è stato ancora rilasciato!
Immediatamente inserisco il CD di Woody e inizio l'installazione:
linux apm=on nomce pci=biosirq
cioè uso il kernel della linea 2.2.x e l'installazione va a buon
fine: il disco (avevo precedentemente riabilitato l'UDMA nel bios) viene
letto e partizionato e Debian Woody 3.0r0 finalmente entra in possesso
di questo portatile!!
Molte feature hardware non funzionano (suono, apm, hotkeys,ecc), alcuni
strumenti sono inadeguati (file system ext2, troppo fragile per questa
macchina1), ma per ora sono contento.
Il Tentativo 2 è stato un successo.
Note sull'installazione
Il partizionamento, del disco, era stato fatto
con Partition Magic in quanto avevo paura del comportamento di Windows,
quindi durante l'installazione ho semplicemente montato le partizioni.
Ho scelto di avere /boot come partizione di avvio, in quanto ricerche
varie effettuate su internet avevano evidenziato il consiglio di operare
in questa direzione. Inoltre, ho letto da più parti di creare il
floppy di boot, invece di installare Lilo di default.
La configurazione
Il portatile è ora disponibile a funzionare, ma va adeguatamente
configurato in previsione dei seguenti utilizzi:
- connessione in rete, sia in ambiente domestico (lan con IP fissi)
che di ufficio (dhcp);
- configurazione come client
per una rete Windows (samba);
- configurazione del protocollo APM per gestire il trasporto della
macchina
Decido che non è il caso di puntare sul kernel 2.2.20, e quindi
comincio con la migrazione nuovo ramo stabile (2.4.x), ma prima devo
essere sicuro di porter lavorare ancora con Windows XP (sigh)!
Il Dual Boot
Storicamente, io mi ritengo un LiLo-ista, nel senso che ho sempre usato
ed apprezzato LiLo, ma, non essendo molto tecnico della procedura di
boot di Windows, cerco su internet indicazioni relativamente a possibili
problemi di gestione del dual boot di Windows e Linux, e trovo un report molto interessante, che mi
suggerisce di usare Grub, in quanto Lilo e XP hanno qualche antipatia
reciproca, nel senso che la gestione è un po complessa.
Ok, mi dico, vada per Grub, proviamo nuove soluzioni a vecchi problemi
:-P.
Di conseguenza:
apt-get update
apt-get install grub
quindi:
zless /usr/share/doc/grub/README.Debian.gz
e, dopo una buona lettura (che non fa mai male RTFM :-):
grub-install --root-directory=/boot /dev/hda
ln -s /boot/boot/grub/menu.lst /etc/grub.conf
Il passo successivo è stato cercare di capire la sintassi. Anche
qui, google è stato di aiuto
:-), un pò di prove e di riavvii, e quindi ecco il grub.conf (menu.lst) corretto.
Al riavvio decisivo, ecco: Windows parte e non si accorge di niente
(hihihi :-). Ora posso procedere più tranquillo.
Il nuovo kernel
Il kernel attualmente stabile è il 2.4.20, quindi opto per
questa versione. Il protocollo APM
supportato è ACPI, quindi ho bisogno della patch opportuna. Poiché
ho voglia di farmi del male decido di provare anche la patch più
recente del ramo AC.
Poiché voglio studiarmi un pò la configurazione, opto per
un primo testà la slackware:
scarico i bz2 dei sorgenti (e non i pacchettizzati Debian), quindi:
cd /usr/src
tar -jxvf linux-2.4.20.tar.bz2
gunzip acpi-20021212-2.4.20.diff.gz
gunzip patch-2.4.20-ac2.gz
ln -s linux-2.4.20 linux
cd linux
patch -p1 < ../acpi-20021212-2.4.20.diff
patch -p1 < ../patch-2.4.20-ac2
make clean
make xconfig
make dep
make bzImage
make modules
make modules_install
cp arc/i386/boot/bzImage /boot/vmlinuz-2.4.20-ac2
cp System.map /boot/vmlinuz-2.4.20-ac2
ecco il .config che ho ottenuto il grub.conf (menu.lst) aggiornato.
Il sitema, al reboot, sale correttamente e (hurra!) Debian gira ora con
il nuovissimo 2.4.20, e riconosce (e gestisce) APCI.
Ora, visto che funziona correttamente, tramite make-kpkg creo e
reinstallo il mio kernel-image-2.4.20-ac2-anc1.0 :-)
XFree86
La configurazione del server X non è particolarmente
problematica:
apt-get install xfree86-common xserver-common
xserver-xfree86
installa e configura quasi
completamente il server X. La scheda video è una ATI, ma il
supporto pare che si avrà solamente con la nuova versione (4.3),
quindi, per ora, mi accontento di usare come driver il Vesa. Attenzione
alla sezione monitor:
Section "Monitor"
Identifier "Generic Monitor"
HorizSync 30-60
VertRefresh 50-75
Option "DPMS" "off"
EndSection
senza impostare a off il DPMS X non parte.
Comunque, aspetto con ansia il nuovo Xfree 4.3 (pacchettizzato per
Debian).
Ecco il file XF86Config-4 che uso.
Audio
Qualche indagine, poi si scopre che la scheda audio è supportata
dal progetto alsa, e il
modulo da usare è snd-ali5451,
quindi:
apt-get install alsa-source alsa-base alsa-utils
alsaconf
quindi RTFM2, e seguendo il punto a)
del /usr/share/doc/alsa-source/README.Debian.gz,
cd /usr/src/linux
make-kpkg --revision anc1.0 --added-modules alsa-driver modules_image
e
dpkg -i alsa-modules-2.4.20-ac2_0.9.2-6+anc.1.0_i386.deb
quando poi viene visualizzato l'elenco delle schede audio:

si sceglie
ali5951 (PCI:ALi PCI Audio M5951)
Ovviamente (stiamo parlando di GNU/Linux, non di bruscolini!!!), al
termine il pinguino parla :-)
EXT3
Il nuovo kernel mette a disposizione un filesystem più
robusto del vecchio EXT2, e cioè un Journaled File System.
La scelta è tra EXT3, il successore naturale di EXT2, e il
più performante ReiserFS. Io ho scelto EXT3 perché ho la
necessità di, eventualmente, leggere le partizioni Linux da
Windows, e ho trovato un solo tool che mi permette di farlo, ho
trovato un delizioso tool, Explore2fs.
Così ho optato per EXT3, quindi, da root ho migrato il filesystem
nel seguente modo:
>apt-get update
>apt-get install e2fsprogs util-linux
>cat /etc/fstab
# /etc/fstab: informazioni statiche sul filesystem
#
# <filesystem> <mount
point> <tipo> <opzioni> <dump> <pass>
/dev/hda7 / ext2 errors=remount-ro 0 1
/dev/hda3 /boot ext2 defaults 0 2
/dev/hda6 none swap sw 0 0
proc /proc proc defaults 0 0
/dev/fd0 /floppy auto user,noauto 0 0
/dev/cdrom /cdrom iso9660 ro,user,noauto 0 0
/dev/hda8 /usr ext2 defaults 0 2
/dev/hda9 /home ext2 defaults 0 2
/dev/hda1 /mnt/rootc ntfs ro,gid=100,umask=020 0 2
/dev/hda5 /mnt/dati vfat rw,usr,gid=100,umask=002 0 2
>for dev in `mount | grep ext2 | awk '{print $1}'` ; do tune2fs -j
-i 365 $dev done
quindi con vi ho sostituito tutte le occorrenze di ext2 con ext3,
cosicche
> grep ext3 /etc/fstab
/dev/hda7 / ext3 errors=remount-ro 0 1
/dev/hda3 /boot ext3 defaults 0 2
/dev/hda8 /usr ext3 defaults 0 2
/dev/hda9 /home ext3 defaults 0 2
ho riavviato et voilà: EXT3 è servito!
La rete
La configurazione della rete necessita di una doppia considerazione
preliminare:
- essendo un portatile deve essere collegato a varie reti, e, in
generale, utilizzare il protocollo DHCP;
- a casa ho una rete BNC-based, quindi non posso usare la scheda
interna, che ha il doppino non adatto
L'hardware non è un problema: la scheda interna è una
comune Realtek RTL-8139/8139C/8139C+: quindi il modulo da utilizzare
è 8139too, o, meglio
ancora il nuovo 8139cp.
Per collegarmi alla rete domestica, invece, uso un PCMCIA Xircom 10/100
gestita tramite il modulo xirc2ps_cs.
Quindi,
apt-get install netenv pcmcia-cs whereami
I pacchetti installati sono quindi:
- netenv, è
comodissimo per scegliere e configurare al volo la tipologia della
connessione di rete (DHCP oppure IP statico);
- pcmcia-cs, server per la
gestione della scheda PCMCIA;
- whereami (mi ha
incuriosito il nome, devo analizzarlo bene, attualmente non fa danni, ma
non fa praticamente nulla:-)
Netenv
Il pacchetto netenv
è pensato proprio per i portatili: la configurazione della rete
cambia in funzione del luogo ove ci si trova.
Per installarlo e configurarlo:
apt-get install netenv
quindi ho modificato il file /etc/pcmcia/network.opts,
aggiungendogli in fondo la seguente riga:
if [ -r /etc/netenv/netenv ]; then .
/etc/netenv/netenv; fi
al file /etc/netenv/netenv ho aggiunto la seguente variabile
export NETENV_SCRIPT=/etc/netenv/netenv_setup
in modo tale da istrutire netenv ad usare uno script custom per
configurare la rete.
Tale file è il seguente:
#!/bin/sh
# This script configures the network environment
# Use DHCP to get an IP...
if [ "$USE_DHCP" = "YES" -o "$USE_DHCP" = "yes" ]; then
if [ ! -z "$MODULE" ]; then
modprobe $MODULE
fi
# configure interfaces
/bin/cp /etc/network/interfaces.dhcp /etc/network/interfaces
# ...or use a static IP.
else
# configure interfaces
/bin/cp /etc/network/interfaces.$STATIC_LAN
/etc/network/interfaces
fi
cioè: se usi il DHCP, allora carica il modulo opportuno e usa il file /etc/network/interfaces.dhcp,
altrimenti, usa quello per la
rete statica.
A questo punto si configura netenv per la gestione degli ambienti
diversi. Attualmente lavoro in due ambienti differenti, quindi uso 2
configurazione
- casa, dove uso un IP statico per allacciarmi alla mia LAN
domestica, per netenv, andromeda-home;
- ufficio, dove uso DHCP, quindi, per netenv andromeda-dhcp;
attualmente è sufficiente per le mie necessità, in quanto
sto gestendo mozilla a mano, in realtà al più presto
aggiungerò la configurazione automatica anche per i proxy.
hdparm
Il tool hdparm è utile per velocizzare e ottimizzare l'utilizzo
dell'hard disk (tempi di accesso ecc). Quindi,
apt-get install hdparm
fatto questo ho creato un file, hdparm.sh che ho copiato nella
directory /etc/init.d, quindi
update-rd.d hdparm.sh start 09 2
in modo da ottimizzare (in runlevel 2) l'utilizzo dell'hard disk. Ho
preferito metterlo nel runlevel 2 perché in caso di problemi,
entrando in single-user-mode (runlevel 1) posso intervenire anche su
questo tool.
Alcuni test con HDPARM mi hanno portato ad utilizzare la seguente
configurazione:
-c1 -B128 -S60 -u1 -W1 -K1
Qualche spiegazione:
| -c1 |
Abilita il suppporto I/O a
32-bit (E)IDE |
| -B128 |
Abilita APM con una policy di
funzionamento mediamente aggressiva |
| -S60 |
Imposta il tempo di timeout per
lo standby a 5 minuti |
| -u1 |
Imposta il flag interrupt-unmask |
| -W1 |
Abilita la feature di
write-caching del disco |
| -K1 |
Abilita la feature
keep_features_over_reset. |
Note
1. opinione personale, quindi opinabile, ma mia opinione.
2. RTFM=Read The Fucked Manual, leggi il fottuto
manuale, il mio dogma (almeno dovrebbe esserlo :-)
Angelo Nicolini
Last modified: Sun Aug 17 17:07:15 CEST 2003
CVS Version: $Revision: 1.3 $
Visite al sito: