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:
  1. è free, cioè non è legata ad una società commerciale che (giustamente) cerca il profitto (es. RedHat);
  2. non si basa su alcun software proprietario e non liberamente distribuibile (es. YaST di SuSE) ;
  3. è ordinata, cioè se io ho bisogno di trovare un file so subito dove andarlo a cercare1;
  4. 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:
  1. connessione in rete, sia in ambiente domestico (lan con IP fissi) che di ufficio (dhcp);
  2. configurazione come client per una rete Windows (samba);
  3. 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:

Lista delle schede ALSA

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:
  1. essendo un portatile deve essere collegato a varie reti, e, in generale, utilizzare il protocollo DHCP;
  2. 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:
  1. netenv, è comodissimo per scegliere e configurare al volo la tipologia della connessione di rete (DHCP oppure IP statico);
  2. pcmcia-cs, server per la gestione della scheda PCMCIA;
  3. 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
  1. casa, dove uso un IP statico per allacciarmi alla mia LAN domestica, per netenv, andromeda-home;
  2. 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 :-)

Valid HTML 4.01!


Angelo Nicolini
Last modified: Sun Aug 17 17:07:15 CEST 2003

CVS Version: $Revision: 1.3 $

Visite al sito: