[Linux, il Baltico e un povero ardisch] [About] [Copertina] [Linux, il Baltico e un povero ardisch]

Articoli


3.1 In cui, (come negli inferi), si scende nel dettaglio

La Slackware, gloriosa e benemerita distribuzione, è famosa per installare un sistema completo e precompilato, ma poi per poter aggiungere un pezzo, per upgradare un pacchetto, ti devi procurare la confezione sorgente e, dopo una sapiente decantazione a suon di configure, distillare con amore (e pazienza) nell'alambicco del make.

Molto divertente, stimolante ed istruttivo. Ma, quando qualcosa va male, se lo spiritello dispettoso ci mette lo zampino, allora diventa un inferno. Bisogna leggersi tonnellate di documentazione scritta frettolosamente nella convinzione che tanto nessuno l'avrebbe letta, scrutare entro script scritti da smaliziati hacker forgiati ad ogni asprezza da lunga pratica del forth, coltivando religiosamente ogni carattere ASCII per coglierne ogni più recondito aspetto.

Così, tanto per divertirmi, decido di compilarmi non uno, ma ben due kernel, crepi l'avarizia! Un 1.2.13, nella speranza che mi dia quella stabilità che mi sembra di avere smarrito con l'inizio di questa avventura, e l'1.3.20, non perchè sia meglio, ma perchè questo mi propone lo Slackware.

Creiamo /etc/lilo.conf, e ci mettiamo tutti i kernel possibili che ho a disposizione: il vecchio Slack2, sia 1.2.8 che 1.2.13, ma entrambi a.out, lo Slack3, sia 1.2.13 (ELF) che 1.3.20, il Picasso, anch'esso 1.3.20, lasciando spazio per il Debian a cui resta tuttora riservata la hdb3.

/etc/fstab. Dovrebbe essere creato automaticamente dal programma di installazione, e lo è, ma ... manca sempre qualcosa, inoltre, chissà perchè, le colonne vengono separate da un numero fisso di spazi (invece che Tab), creando quell'effetto a fisarmonica che, sinceramente, sembra proprio fatto apposta per urtare i nervi ad un maniaco paranoico come me.

Così mi sono abituato a riscrivere sempre tutto il file (in realtà non faccio altro che copiarlo da una partizione all'altra, modificandolo di volta in volta per la bisogna).

# device:       mount:          fs-type:        options:        dump:   fsck:
# _______       ______          _______         ________        ____    ____
#
/dev/hdb5       none            swap            sw              0       0
/dev/hdb1       /               ext2            defaults        1       1
/dev/hdb6       /usr            ext2            defaults        1       2
/dev/hdb7       /usr            ext2            defaults        1       2
/dev/hdb8       /home           ext2            defaults        1       2
/proc           /proc           proc            defaults        0       0
#
/dev/hdc        /cdrom          iso9660         user,ro,noauto  0       0
/dev/fd0        /a              msdos           user,noauto     0       0
/dev/fd0        /floppy         ext2            user,noauto     0       0
#
# altre installazioni
#
# Slackware 2           1.2.8   1.2.13  a.out
/dev/hda1       /slack2         ext2            defaults        0       2
#
# Slackware 3           1.2.13  1.3.20  ELF
#/dev/hdb1      /slack3         ext2            defaults        0       2
#/dev/hdb6      /slack3/usr     ext2            defaults        0       2
#/dev/hdb7      /slack3/var     ext2            defaults        0       2
#/dev/hdb8      /slack3/home    ext2            defaults        0       2
#
# Picasso (Red Hat 3.0.3)       1.3.20  ELF
/dev/hdb2       /picasso        ext2            defaults        0       2
#/dev/hdb8      /picasso/home   ext2            defaults        0       2
/dev/hdb9       /picasso/usr    ext2            defaults        0       2
/dev/hdb10      /picasso/opt    ext2            defaults        0       2
#
# Debian 0.93   1.2.13  ELF
#/dev/hdb3      /debian         ext2            defaults        0       2
#
Non sembra tutto più ordinato e metodico?

Ovviamente tocca anche ricordarsi di creare i mount point per tutte queste partizioni (/slack2 /slack3 /picasso /debian /a /fd0, invece /cdrom c'è già, bontà loro).

Ora tocca alle seriali. Ho quattro seriali, due parallele e tre o quattro IRQ. Oh, come mi piacerebbe mettere le mani sul kernel 1.4 (siamo già all'1.99, quindi toccherà al 2.0). Dicono abbia supporto per condivider gli IRQ tra seriali! Per l'intanto accontentiamoci di dire in /etc/rc.d/rc.serial che cua2 usa l'irq5, così il modem può funzionare.

Bisogna anche ricordarsi di far partire questo /etc/rc.d/rc.serial, scommentando adeguatamente in /etc/rc.d/rc.S. Già che ci siamo qui si deve anche aggiungere il flag -u al comando /sbin/clock -s, per consentire all'orologio del kernel di leggere l'ora dell'hardware usandola come Universal Time, che altro non è che il buon vecchio Greenwich. Il settaggio di default, orrore!, presuppone che voi usiate MS-Dos con l'orologio locale.

/etc/profile è il posto dove far confluire tutte le personalizzazioni dell'ambiente della shell che voglio trascinarmi dietro tra i vari utenti che uso correntemente (sono uno dalle multiple personalità, io). Oltre al solito diluvio di variabili volute da questo o quel programma, io sono solito settare con cura la variabile PAGER per accedere di default a less invece che a more, LESSCHARSET posta al solito latin1, ma soprattutto mi costruisco una spaventosa

PS1="\u@\h:\w [\d \t]\n\$SHLVL$ "
che mi consente di sfoggiare un prompt cervellotico a due righe come
fabrizio@pongo:~/work/pluto-journal/sgml [Fri Jun 21 00:45:50]
1$ _
dove si incontrano (nell'ordine) l'utente, l'host, la working-dir, data e ora, il numero di shell nidificate e il prompt vero e proprio (# in caso di superuser). Ora che ci penso, manca il nome del terminale. Bisognerà rimediare.

Le mie funzioni preferite:

function h()    { history | less +G ; }
export -f h 
function l()    { ls -CoAF $* | less -E ; }
export -f l 
function ll()   { ls -loAF $* | less -E ; }
export -f ll 
function pg()   { less -E $*; }
export -f pg
Preferisco usare funzioni piuttosto che alias in quanto le funzioni si possono esportare (dalla ksh in poi), mentre gli alias no (oddio, saranno 5 anni che non provo, ma non credo che la cosa sia cambiata); questo è molto comodo quando da shell si lancia un'altra istanza della shell, magari su.

Passiamo ora a X. Anche se c'è un programmino apposta, io preferisco editarmi a manina il file /etc/XF86Config. Questo di come configurarsi il monitor e la scheda video è un discorso lungo, che andrebbe approfondito. Meglio rimandare. State sintonizzati! Idem con patate, per gli altri due file canonici, /var/lib/X11/fvwm/system.fvwmrc ed il personalissimo ~/.xinitrc.

Non pensate che Slackware 3 sia esente da errori. Per esempio /usr/bin/sleep viene usato in fase di spegnimento e/o reboot anche dopo che il file system è stato smontato. Con quali risultati potete immaginarlo. O eliminano lo sleep dall'rc oppure spostano sleep in /bin. In attesa di un intervento di Patrick (o del fsstnd che se ne è subito interessato), mi sono copiato il file. Un altro piccolo problema viene dai messaggi visualizzati durante il reboot quando questo è esguito mediante la solita tripletta CtrlAltDel su una console fuori login. Dovete sapere che la mappatura del \n in LF-CR viene eseguita modificando il settaggio (disciplina) della linea seriale dopo il login. Pertanto ogni messaggio inviato ad un terminale non loggato va condito con la solita coppia \n\r come in Dos. Questo non avviene nelle echo dello script /etc/rc.d/rc.6, per cui occorre aggiungere \r alla fine di ogni stringa. E poichè la echo builtin nella bash non accetta di default questo carattere, occorre anche aggiungere l'opzione -e.


[Linux, il Baltico e un povero ardisch] [About] [Copertina] [Linux, il Baltico e un povero ardisch]