Tutorial Slackware Linux
|
Tutorial
|
1) Dialog (finestre
di dialogo in Slackware)
2) Hdparm
(ottimizzare dischi eide)
3)
Convertire pacchetti .rpm in .tgz
4) Creare un mini-cd live di Salckware
5)
Attivare il supporto al framebuffer
6)
Compilare il nuovo kernel 2.6.0
7)
Slackware
Live CD HowTo
Dialog
Il comando dialog e' alla base dell'installazione grafica di
molte distribuzioni tra cui
la Slackware. Usare questo comando per disporre di un interfaccia
grafica degli script
di shell e' abbastanza semplice. Ho raccolto brevemente le principali
nozioni
per un uso comune. Il comando aumenta notevolmente la potenza degli
scripts di shell.
dialog - per disporre di un'interfaccia grafica negli scripts di shell
SINTASSI
dialog --clear
dialog --create-rc file
dialog [ --title titolo ] [ --backtitle sottotitolo ]
[--clear ] [ --separate-output ] box-options
DESCRIZIONE
DialogDialog e' un programma che permette la visualizzazione
di finestre di dialogo e di visualizzazione contenuto
negli script di shell. Attualmente sono implementate i seguenti tipi
di finestra (box):
yes/no box, menu box, input box, message box, testo box,
info box, checklist box, radiolist box, and guage box.
OPZIONI
--clear
Resetta lo schermo all'uscita ai valori predefiniti
dall'utente.
--create-rc nomefile
Il programma dialog supporta la configurazione a run-time, puo'
importare cioe' dei valori leggendoli dal file specificato
dall'argomento
dell'opzione file.
--separate-output
Usato nelle checklist box, manda in output una riga alla volta
, senza le virgolette. Questo facilita l'analisi dell'output
da parte di un altro programma.
--title titolo
Specifica il titolo cioe' la stringa visualizzata in
alto nella finestra.
--backtitle sottotitolo
Specifica il sottotitolo cioe' la stringa visualizzata in
secondo piano, in alto nella finestra.
Opzioni delle finestre di dialogo
(box)
--yesno testo altezza larghezza
Sara' mostrata una finestra di dialogo con i pulsanti yes/no
di dimensioni definite da altezza e larghezza
La stringa specificata dal parametro testo apparira'
nella finestra, se la stringa e' troppo lunga per apparire
su una linea singola verra' visualizzata su righe diverse
automaticamente. La stringa di testo puo' contenere
delle sotto-stringhe "\n" o caratteri di newline
`\n' per controllare esplicitamente i ritorni a capo.
Questa finestra e' utile per sottoporre all'utente scelte
booleane, selezionabili tramite il comando TAB .
--msgbox testo altezza larghezza
Sara' mostrata una finestra di dialogo molto simile alla finestra
yes/no precedente. La differenza e' la presenza di un solo pulsante
OK. Mostra all'utente il messaggio contenuto nel parametro testo
premendo il tasto INVIO la finestra si chiudera' e lo
script continuera' nell'esecuzione.
--infobox testo altezza larghezza
Un infobox e' fondamentalmente un msgbox modificato,
il comando dialog terminera' subito dopo aver mostrato
all'utente il messaggio. Lo schermo non verra' ripulito
all'uscita del comando e il messaggio rimarra' sullo schermo
fino ad una successiva chiamata dello script. Utile quando
si vuole informare l'utente dello svolgimento di un'operazione
che puo' richiedere del tempo per la conclusione.
--inputbox testo altezza larghezza [init]
Sara' mostrata una finestra di input cioe' di immissione,
utile per richiedere all'utente eventuali valori. Se viene fornito il
parametro init la casella di immissione conterra' la stringa
digitata come valore preimpostato. Per cancellare errori di battitura
si puo' usare il tasto BACKSPACE . Se la stringa eccede lo spazio
impostato verra' impostato uno scorrimento. In uscita il testo digitato
e' diretto sullo stderr.
--textbox file altezza larghezza
L'opzione textbox ci permette di visualizzare un file di testo.
E' molto simile a un comando less graficizzato, l'utente puo' scorrere
il testo semplicemente usando i tasti UP/DOWN, PGUP/PGDN,
LEFT/RIGHT e HOME/END disponibili su quasi tutte le tastiere.
Sono disponibili anche le funzioni cerca, sia in avanti chee indietro
--menu testo altezza larghezza numero oggetti [ tag oggetto ] ...
Come suggerisce il nome l'ozione menu mostrera' all'utente
un menu' con la possibilita' di selezionare gli elementi contenuti.
Ogni voce del menu' consiste in una stringa tag e una stringa item.
La stringa tag definisce il valore che verra' passato se verra'
selezionata la voce. Si puo' scorrere il menu' con i tasti UP/DOWN ,
o usando la prima lettera della stringa tag come scorciatoia, oppure
usando i tasti numerici 1-9. Verranno visulizzate un numero di
scelte pari al valore dell'argomento numero oggetti se le voci sono in
numero maggiore ci sara' la possibilita' di scorrere la lista. Il
comando
dialog in uscita restituira' il valore contenuto nell'elemento tag
dirigendolo su stderr.
--checklist testo altezza larghezza numero oggetti [ tag oggetto
stato ] ...
La finestra di dialogo checklist e' simile alla finestra menu .
La differenza sta' nella possibilita' di selezionare piu' di un elemento
alla volta. Si puo' fare in modo che la scelta appaia preselezionata
usando
il parametro stato che puo assumere i valori di on o off .
Il comando dialog in uscita restituira' i valori contenuti
negli elementi tag dirigendoli su stderr.
--radiolist testo altezza larghezza numero oggetti [ tag oggetto
stato ] ...
La finestra di dialogo radiolist e' simile alla finestra menu .
La differenza sta' nella possibilita' di preselezionare un elemento
con il parametro stato settato su on.
--guage testo altezza larghezza percentuale
La finestra di dialogo guage mostra una barra di progressione.
I valori sono letti dallo standard input, un valore per linea. La barra
viene aggiornata per riflettere il nuovo valore in percentuale.
Il comando esce quando raggiunge EOF (End Of File) dello standard input.
CONFIGURAZIONE DURANTE L'ESECUZIONE
1. Si puo' creare un file di configurazione digitando:
"dialog --create-rc <file>"
2. Il comando dialog viene configurato nel seguente
modo:
a) Se esiste la variabile d'ambiente DIALOGRC il suo
valore fornisce il nome del file di configurazione.
b) se il file del punto (a) non esiste, cerchera' il file
di configurazione $HOME/.dialogrc .
3. Edita il file creato e copialo in una delle posizioni indicate
al punto 2 affinche' dialog possa trovarle.
AMBIENTE
DIALOGRC Definisci questa variabile per specificare
il nome del file di configurazione da usare.
FILES
$HOME/.dialogrc Il file di configurazione di default
CODICI DI USCITA
Il comando restituisce 0 se e' stato premuto il bottone Yes
oppure il bottone OK, 1 se e' stato premuto il bottone No oppure Cancel
.
In caso di errori o alla pressione del tasto ESC verra' restituito -1.
BUGS
I file di testo che contengono i caratteri di tabulazione
possono dare problemi nelle finestre textbox. Espanderli in spazi.
Cominciamo a fare esempi piu'
pratici cominciamo come tradizione digitando:
% dialog --title 'Messaggio' --msgbox 'Ciao, mondo!' 5 20
questo ci fara' apparire una finestra di dialogo premendo il tasto
INVIO scomparira'
la finestra sara' alta cinque righe e larga venti caratteri
% dialog --title "Messaggio" --yesno "Ti piace dialog?" 6 25
questo ci fara' apparire una finestra di dialogo con due pulsanti
yes/no con rispettivi
valori di ritorno yes=0 no=1 .
% dialog --infobox "Attendere prego" 10 30 ; sleep 4
questo ci fara' apparire una finestra di messaggio e andra' in attesa
per quattro secondi
% dialog --inputbox "Inserisci il nome:" 8 40 2>mio_file
questo ci fara' apparire una finestra di input, il testo digitato puo'
essere diretto su un
file come nell'esempio
% dialog --textbox /etc/profile 22 70
questo ci fara' apparire una finestra dentro la quale verra'
visualizzato il contenuto del
file. I tasti gia' elencati permettono lo scorrimento.
% dialog --menu "Scegli:" 10 30 3 1 rosso 2 verde 3 blu
questo ci fara' apparire una finestra dentro la quale verra'
visualizzato un menu' di scelta
% dialog --checklist "Scegli:" 10 40 3
1 Rosso on
2 "Rosso vivo" on
3 Rosa off
questo ci fara' apparire una finestra dentro la quale verra'
visualizzato un menu' di scelta
con caselle selezionabili con il tasto SPAZIO .
% dialog --backtitle "Scelta"
--radiolist "Scegli:" 10 40 4
1 100 off
2 101 on
3 102 off
4 103 off
questo ci fara' apparire una finestra dentro la quale verra'
visualizzato un menu' di scelta
con caselle selezionabili con il tasto SPAZIO . Unica differenza con la
precedente
e' la possibilita' di impostare solo una scelta alla volta
Per un esempio pratico potete scaricare sul sito www.slack.z00.it,
nella sezione download
lo script di automatizzazione dell'installazione della Slackware 8.0
che fa' largo uso del
comando dialog .
pierluigi
the z00keeper of
www.z00.it
www.slack.z00.it
GPL2 2002
Hdparm
I dischi rigidi (hard-disk) aderenti allo standard ata-ide supportano
quattro
tipi di modalita' traferimento dati
PIO (con 5 possibili specifiche )
Single-word DMA (con 3 possibili specifiche)
Multi-word DMA (con 3 possibili specifiche)
Ultra DMA (con 8 possibili specifiche)
Con queste informazioni possiamo grazie al comando hdparm migliorare le
prestazioni del nostro disco rigido. Gli argomenti da passare sono
riassunti
nella tabella seguente:
hdparm -X00 -> torna ai valori di default
hdparm -X01 -> disabilita la funzione IORDY (solo per vecchi hd)
Specifiche PIO (Programmed IO) (disk mode + 8)
hdparm -X08 -> PIO 0 3.3MB/sec
hdparm -X09 -> PIO 1 5.2MB/sec
hdparm -X10 -> PIO 2 8.3MB/sec
hdparm -X11 -> PIO 3 11.1MB/sec
hdparm -X12 -> PIO 4 16.7MB/sec
Specifiche SDMA (Single-word DMA) (disk mode + 16)
hdparm -X16 -> SDMA 0 2.1MB/sec
hdparm -X17 -> SDMA 1 4.2MB/sec
hdparm -X18 -> SDMA 2 8.3MB/sec
Specifiche MDMA (Multi-word DMA) (disk mode + 32)
hdparm -X32 -> MDMA 0 4.2MB/sec
hdparm -X33 -> MDMA 1 13.3MB/sec
hdparm -X34 -> MDMA 2 16.6MB/sec
Specifiche UDMA (Ultra-DMA) (disk mode + 64)
hdparm -X64 -> UDMA 0 (ATA16) 16.7MB/sec
hdparm -X65 -> UDMA 1 (ATA 25) 25MB/sec
hdparm -X66 -> UDMA 2 (ATA 33) 33MB/sec
hdparm -X67 -> UDMA 3 (ATA 44) 44.4MB/sec
hdparm -X68 -> UDMA 4 (ATA 66) 66MB/sec
hdparm -X69 -> UDMA 5 (ATA 100)100MB/sec
Per effettuare la messa a punto del disco rigido dobbiamo loggarci nel
sistema
come root,
--tutte le operazioni sono riferite esclusivamente ai dischi ide/eide,
NON
eseguite questi comandi su dischi rigidi scsi --, meglio se siete in
modalita'
utente singolo.
Prima di tutto vediamo di scoprire il valore della nostra attuale
velocita di
I/O su hd:
hdparm -t /dev/hda
dopo qualche secondo dovrebbe apparire il risutato del test.
es:
Timing buffered disk reads: 64 MB in 11.12 seconds = 10.03 MB/sec
Successivamente controlleremo i valori booleani che indicano l'uso
dll'I/O a
32-bit e del DMA con il comando:
hdparm -c -d /dev/hda
oppure con la versione omnicomprensiva
hdparm -v /dev/hda
controlleremo cosi' le impostazioni, i valori dipendono dalla
distribuzione.
Se non fossero abilitati i valori di I/O e DMA possiamo abilitarli con:
hdparm -c 1 -d 1 /dev/hda
e vediamo che e' successo con
hdparm -t /dev/hda
sul mio vecchio computer succede questo
/dev/hda
Timing buffered disk reads: 64 MB in 4.86 seconds = 13.17 MB/sec
Essendoci stato un miglioramento ho pensato bene di inserire il tutto
in
/etc/rc.d/rc.local
aggiungendo quindi allo script di avvio la seguente linea
hdparm -c 1 -d 1 -k 1 /dev/hda
L'argomento -k 1 fa si' che le impostazioni vengano tenute tra un soft
reboot
e un'altro ed e' ridondante ma meglio abbondare...
Ricordate che
hdparm -X00 vi riporta ai valori di default
fate le modifiche con un comando solo es:
hdparm -c 1 -d 1 -X66 /dev/hda
controllate dopo ogni modifica i risultati, a volte si peggiora
hdparm -t /dev/hda
NON usate parametri pericolosi OCCHIO che potete danneggiare il disco
rigido
usate solo quelli che ho elencato e non farete danni.
buon divertimento
pierluigi
the z00keeper of
www.z00.it
www.slack.z00.it
Made with VIM 6.0
Under GPL2 2002
94 linee 528 parole 3226 caratteri
Convertire pacchetti .rpm in pacchetti (Slackware) .tgz
Esiste la possibilità di convertire i pacchetti
in formato .rpm in formato .tgz. Tale possibilità è data da un tool
chiamato rpm2tgz.
Il tool rpm2tgz consente di trasformare un pacchetto RPM nel formato
gestito dal Package Manager (PackageTool) di
Slackware. Questo tool crea un pacchetto con
estensione .tgz partendo da un pacchetto RPM, la sua sintassi è:
rpm2tgz nomefile.rpm.
Un esempio del suo utilizzo potrebbe essere il seguente:
rpm2tgz nmap-3.00-1.i386.rpm
Dopo la conversione del file .rpm file si ottiene un pacchetto di tipo
.tgz, il quale può essere comodamente gestito dalle utility di
Slackware come pkgtool, installpkg, removepkg o upgpackage.
Slackware
Mini-CD Live How To
Copyright (c) 2003, Simone
Bianchini, http://web.tiscali.it/gnu.linux.
This document is free; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This document is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA.
Questo tutorial vi guiderà nella creazione di una distribuzione
slackware live contenuta in un mini cd di 180-250 MB utilizzando gli
scripts creati da Tomas Matejicek nel suo progetto
slackware-live.
Anzitutto è necessario procurarsi l'occorrente per poter procedere.
Bisogna avere una installazione su disco di una distribuzione Linux
qualunque (ma è preferibile una Slackware 9.0 o 9.1), ed è proprio
sulla base di questa distro e delle applicazioni
presenti che verrà creata la corrispettiva versione live.
Procuratevi poi i seguenti pacchetti e installateli nella distro di
lavoro che intendete
rendere live:
mkisofs
upx
mkcramfs
dbdiff
Gli scripts in particolare sono settati su questi PATH:
/usr/bin/upx
/usr/bin/mkcramfs
/usr/bin/mkisofs
assicuratevi che i percorsi siano questi.
E...chiaramente procuratevi gli slacklive
scripts di Tomas Matejicek.
Potete scaricare l'archivio completo
gzippato con tutto il necessario descritto sopra qui:
Ora, una piccola ma importantissima
precisazione prima di cominciare. La procedura che mi appresterò a
descrivere può essere utilizzata anche per la creazione di una distro
live che ecceda il limite dei 250 MB....tuttavia, il filesystem CRAM
non può superare la soglia dei 250 MB per ciascuna delle immagini che
verranno create in corrispondenza delle varie directory root (/usr,
/opt, /lib, /bin, /sbin). Quindi è necessario che le suddette dir prese
singolarmente non eccedano il limite dei 250 MB. Se ognuna delle
directory supera il limite, non sarà possibile creare le immagini
cramfs (per intenderci quelle che verranno caricate in memoria al boot
della distro) rendendo la distro inservibile.
Bene, prendete gli slacklive scripts e scompattateli in /tmp.
Spostatevi in /tmp/slacklive.scripts-2.9.0.22/isolinux e sostituite
l'immagine del kernel
vmlinuz con la vostra
che troverete nella dir /boot della distro di lavoro. Questo perchè
l'immagine vmlinuz fornita nello script non ha il supporto per il
cramfs attivo (vi assicuro che questa cosa è essenziale....).
L'occorrente è questo.
La prossima fase è a vostra discrezione: ossia quella di creare su
disco la distro che volete trasformare in cd live. Il consiglio è
quello di una installazione minimale della distro a cui aggiungere man
mano solo e dico solo quello che volete senza
inutili ridondanze.
Una volta installato tutto ciò che vogliamo che sia ricompreso nel
mini-cd saremo pronti perlanciare lo script.
Ora vi descriverò brevemente lo script ./runme presente negli slacklive
scripts di Tomas Matejicek:
lo script runme avvierà in sequenza tutti
gli scripts descritti di seguito, producendo una immagine ISO del
vostro live-cd.
Il runme script richiama i seguenti scripts nella creazione del live-cd:
./delete_mess ...
richiamato solo se marcato come eseguibile (chmod a+x ./delete_mess).
Dovrebbe essere usato solo per la distribuzione Slackware 9.0. Sul mio
sistema ha cancellato circa 200 MB di files inutilizzati. Tuttavia
sconsiglio il suo impiego in quanto cancella contenuti nella distro di
lavoro che possono essere utili. Quindi non rendete lo script
eseguibile a meno di necessità particolari di spazio.
./compress_executables
... tutti gli eseguibili binari in /usr e in /opt vengono compressi da
upx. Quando avrete bisogno di riavviare i binari, verranno
automaticamente decompressi in /tmp e avviati da quella posizione.
Questa fase può richiedere 10 minuti o più per essere terminata.
./images_cram ... crea
i files CRAM (immagini compresse delle vostre dir root, quali /usr,
/opt, /lib, etc...). E' necessario avere compilato e installato il
programma mkcramfs o potete usare mkfs.cramfs presente nella distro
Slackware (/sbin/mkfs.cramfs) ma questo richiede una modifica dello
script per quanto riguarda il percorso dell'eseguibile e le relative
opzioni. Può richiedere oltre 10 minuti per completarsi e probabilmente
avrete bisogno di attivare la vostra partizione di swap o avere
altrimenti 250 MB o + di ram libera. Altrimenti fallirà. Il ./runme
script attiva automaticamente la vostra memoria swap, se ne avete una.
./initrd/initrd_create
... Questo script andrebbe utilizzato solo in presenza di una
distribuzione Slackware installata, negli altri casi raccomando di
guardare ad esso semplicemente come ad un esempio di come la dir initrd
viene organizzata. Esso creerà la /initrd.img.gz, la rootdisk image,
che contiene tutti gli scripts di inizializzazione e verrà caricato
nella memoria del computer al boot.
/tmp/liveCD_data/create_bootiso
viene richiamato alla fine per generare l'immagine ISO del vostro
live-cd.L'immagine ISO verrà creata in /tmp/liveCD.iso
Bene, spostatevi in /tmp/slacklive.scripts-2.9.0.22 e lanciate come superutente lo script runme:
# ./runme
Aspettate che si
concludano le operazioni con la creazione dell'immagine ISO del live-cd.
Attenzione ai messaggi che compaiono a video per verificare
eventuali errori.
Fatto. Burn it & boot it :-P
--velenux
Attivare il supporto
al framebuffer
Chi ha a che fare per le prime volte con GNU/Linux,
potrebbe trovare la console poco pratica, per nulla orientata alla
grafica, preferendovi di certo l’ambiente a finestre X Window.
Capita ogni tanto che molti utenti "Windows oriented", all’oscuro
dell’esistenza di GNU/Linux, confondano questo O.S. con MS DOS. In
realtà non ci vuole molto a capire che si tratta di un sistema
operativo molto potente e la praticità è probabilmente solo una
questione di abitudine.
Inoltre, grazie al supporto al framebuffer è possibile utilizzare
la console anche per cose spesso considerate possibili solo con
programmi per X Window. Fanno parte di queste la visualizzazione
di immagini o addirittura di filmati, che non perde nulla in
qualità. Il supporto al framebuffer fornisce "un’astrazione" per
le schede video, garantendo alle applicazioni un’interfaccia
generica ad alto livello ben definita. In poche parole consente
alle applicazioni un più facile uso della periferica alla quale è
associato anche un character device (/dev/fbX, dove X è un numero,
0 se avete una sola scheda video). Tra le applicazioni che ne
traggono maggiore vantaggio vi è XFree86 stesso che può girare
anche sulle schede sulle quali non è supportato direttamente ma
che sono compatibili con VESA 2.0 (requisito necessario per
il supporto al framebuffer). Alcuni programmi (come mplayer per la
visualizzazione di filmati) consentono di utilizzare direttamente
il frame buffer, rendendo di fatto più agevole il compito al
programma, che non deve ricorrere al server X. È consigliabile
però utilizzare il server X per framebuffer solo quando è
strettamente necessario in quanto si farebbe a meno
dell’accelerazione alla nostra scheda video. È comunque possibile
utilizzare il server relativo alla propria scheda video anche se
si usa il framebuffer per la console. Si può anche accedere al
frame buffer come una memoria: utilizzando il character device
corrispondente potremo essere in grado addirittura di salvare ciò
che è sullo schermo. Basterà un semplice: cp /dev/fb0
fileframebuffer per salvare uno "screenshot" che potremo
visualizzare con "cp fileframebuffer /dev/fb0".
Vediamo quindi come sia possibile abilitare il supporto al
framebuffer e configurarlo opportunamente. Molte distribuzioni
abilitano direttamente il supporto necessario, per cui è possibile
che non abbiate bisogno di eseguire la parte relativa alla
compilazione del kernel. Segno di distinzione del supporto in
questione è il logo di TUX (il pinguino di Linux) in alto a
sinistra. È comunque possibile sostituire il logo, per cui badate
al fatto se vi sia o meno un’immagine sullo schermo in fase di
boot.
Prima di tutto è necessario assicurarsi che il kernel sia stato
compilato con il supporto relativo. Per questo tutorial è stato
preso di riferimento LILO come bootloader e il kernel della serie
2.4, ma le differenze per la configurazione pratica con i kernel
2.2.X non sono molte. Bisognerà ricompilare il kernel,
un’operazione che probabilmente lascerà perplessi quelli che tra
di voi hanno poca esperienza con GNU/Linux. Per coloro che non
hanno la minima idea di cosa voglia dire "ricompilare il kernel"
rimando a un mio tutorial su questo stesso spazio web.
È importante abilitare (come built-in, non come modulo) le voci:
-
VGA Text Console
- Video mode selection support
dal
menù "Console Drivers".
Sempre dallo stesso menù entrate nel sottomenù "Frame-buffer
support" e attivate (sempre come built-in):
- Support for frame buffer devices (EXPERIMENTAL)
- VESA VGA graphics console
- Advanced low level driver options
- Monochrome support
- 2 bpp packed pixels support
- 4 bpp packed pixels support
- 8 bpp packed pixels support
- 16 bpp packed pixels support
- 24 bpp packed pixels support
- 32 bpp packed pixels support
Fatto questo bisognerà impostare il file di configurazione di LILO.
Apriamo quindi con un editor a scelta il file /etc/lilo.conf.
L’unica cosa da aggiungere è la risoluzione con la quale vorremo
far partire il sistema operativo. Per questo, basta aggiungere una
riga del tipo "vga=XXXX" nel file in questione. La riga può essere
messa anche in un blocco relativo a un’immagine di boot, in modo
da essere specifica a quel sistema operativo. Al posto di XXXX può
essere messo "ask" in modo che ci venga chiesta ogni volta al boot
la risoluzione da noi scelta, oppure uno dei valori espressi in
tabella (tratta dal Framebuffer-HOWTO):
Colours 640x400 640x480 800x600
1024x768 1152x864 1280x1024 1600x1200
4 bits
?
?
0x302 ?
?
?
?
8 bits
0x300 0x301
0x303 0x305
0x161 0x307
0x31C
15 bits
?
0x310 0x313
0x316 0x162
0x319
0x31D
16 bits
?
0x311 0x314
0x317 0x163
0x31A
0x31E
24 bits
?
0x312 0x315
0x318 ?
0x31B
0x31F
32 bits
?
?
?
0x164 ?
?
Come potete vedere le colonne rappresentano le risoluzioni
disponibili, mentre le righe i colori (16 per 4 bit, 256 per 8
bit, 32.768 per 15 bit, 65.536 per 16 bit, 16,8 milioni per 24 bit
e 32 bit). Poichè è probabile che non tutte le risoluzioni siano
supportate dal vostro hardware, è bene prima testare quella che fa
al caso nostro (inserendo "vga=ask" in /etc/lilo.conf e lanciando
nuovamente lilo). Al boot ci verrà chiesto di premere invio per
inserire la modalità scelta. Scriveremo quindi uno dei valori
indicati in tabella senza la x. Se ad esempio volessimo utilizzare
la risoluzione 1024x768 a 16 bit (con 65.536 colori) dovremo
scrivere 0317, mentre scriveremo 0301 per una 640x480 con 256
colori. Una volta scelta la modalità grafica che fa al caso nostro
potremo modificare opportunamente il file /etc/lilo.conf inserendo
il valore appropriato dopo "vga= ", stavolta anche con la x
(ricordatevi sempre di lanciare il comando lilo ad ogni modifica
del file di configurazione). Ad esempio se volessimo far partire
sempre Linux nella modalità 800x600 a 16,8 milioni di colori
dovremo inserire (o modificare se già presente) la riga:
vga=0x315.
Se disponete di una scheda video Matrox, nVidia, Permedia, Cirrus
Logic, Cyber Pro, SiS, ATI, Trident, 3Dfx, NeoMagic, potete
provare anche ad utilizzare i driver specifici (per alcune di
queste come la Permedia la scelta è obbligata) forniti nel kernel
abilitando la voce corrispondente. La trattazione dei driver
specifici esula dagli obiettivi di questo articolo perché per ogni
scheda video meriterebbe di essere dedicato dello spazio a parte,
vista la vastità dell’argomento e le opzioni disponibili per ogni
driver. Rimando quindi alla documentazione relativa o a un futuro
articolo. Un’ultima avvertenza: fate attenzione alla
ricompilazione del kernel e soprattutto vi consiglio di utilizzare
le opzioni del framebuffer sempre relativamente a un’immagine del
kernel e di avere un’immagine "di riserva" senza supporto al
framebuffer in modo da non rischiare una poco gradevole
inusabilità del sistema derivata dall’aver impostato Linux per
fare il boot in una modalità non supportata dalla vostra scheda
video.
La console grafica può rilevarsi uno strumento molto potente e non
sono pochi quelli che pensano che possa essere un valido sostituto
al più pesante X Window. I programmi ci sono (vi consiglio fbi per
la visualizzazione di immagini e mplayer per quella dei filmati) e
altri sono in fase di sviluppo (ad esempio la prossima versione di
links, il browser testuale, sarà anche in versione "framebuffer").
Sicuramente non vi farà sbarazzare di X, ma certo vi renderà più
gradevole l’uso della console.
Compilare il nuovo
kernel 2.6.0
- Le novità
- La preparazione
- La configurazione e la
compilazione
- Prima del boot
- Il boot con il nuovo
kernel
- Riassunto delle
operazioni
1) Le Novità
Il
nuovo kernel 2.6 introduce molte novità, alcune delle quali
riguardano il modo di compilarlo. E' necessario anzitutto
verificare la versione di alcuni tool installati nel proprio
siatema prima di poter procedere: il nuovo linux necessita
dell'aggiornamento di alcuni programmi. Uno degli strumenti
indispensabili è chiamato module-init-tools, che serve per
gestire il nuovo sistema di caricamento dei moduli.
I
relativi sorgenti li trovate qui:
www.kernel.org/pub/linux/kernel/people/rusty/modules/
Il nuovissimo kernel 2.6.0,
tra le tantissime novità, include la feature della
Preemption (una feature molto interessante, si può avere qualche
informazione nella
homepage del progetto.
Alcune interessanti novità sono le seguenti:
- la preemption (ovviamente:-)
- gestione dei moduli, fatta attraverso
Module-Init-Tools
- suono: con la linea 2.6 OSS diventa
deprecato (pare che nel 2.7 verrà rimosso), a favore di ALSA
- supporto per il software suspend e per
ACPI
- nuova grafica
- riorganizzazione (e ordinamento) del
Makefile principale per la compilazione
- nuovo filesystem di supporto (SYSFS),
che contiene un sacco di informazioni sull'hardware, ad esempio
tutte le vare temperature, velocità delle ventole, voltaggi, ecc
Ovviamente le novità incluse non sono solo
queste :-)
Innanzitutto scaricate i
sorgenti del kernel dall'ftp di kernel.org
l'ultima versione (2.6.0-test7).
Finalmente al Makefile è stato aggiunto un
help:
velenux:/usr/src/linux# make help
Cleaning targets:
clean - remove most generated files but keep the config
mrproper - remove all generated files + config + various backup files
Configuration targets:
oldconfig - Update current config utilising a line-oriented program
menuconfig - Update current config utilising a menu based program
xconfig - Update current config utilising a QT based front-end
gconfig - Update current config utilising a GTK based front-end
defconfig - New config with default answer to all options
allmodconfig - New config selecting modules when possible
allyesconfig - New config where all options are accepted with yes
allnoconfig - New minimal config
Other generic targets:
all - Build all targets marked with [*]
* vmlinux - Build the bare kernel
* modules - Build all modules
modules_install - Install all modules
dir/ - Build all files in dir and below
dir/file.[ois] - Build specified target only
rpm - Build a kernel as an RPM package
tags/TAGS - Generate tags file for editors
Documentation targets:
Linux kernel internal documentation in different formats:
sgmldocs (SGML), psdocs (Postscript), pdfdocs (PDF)
htmldocs (HTML), mandocs (man pages, use installmandocs to install)
Architecture specific targets (i386):
* bzImage - Compressed kernel image (arch/i386/boot/bzImage)
install - Install kernel using
(your) ~/bin/installkernel or
(distribution) /sbin/installkernel or
install to $(INSTALL_PATH) and run lilo
bzdisk - Create a boot floppy in /dev/fd0
fdimage - Create a boot floppy image
make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build
make C=1 [targets] Check all c source with checker tool
Execute "make" or "make all" to build all targets marked with [*]
For further info see the ./README file
2) La Preparazione
La versione di GCC usata è il 3.3.1,
Google non mi da riferimenti di particolari problemi con
questa versione, quindi procedo con questo GCC.
3) La Configurazione e la Compilazione
E' venuto il momento di iniziare la
compilazione. Questa si può eseguire tranquillamente con un utente
normale; solo al momento di installare il nuovo kernel si dovranno
avere i diritti di amministratore. La procedura di configurazione
è più snella che in passato e si nota anche la scomparsa del
vecchio xconfig, sostituito da uno nuovo basato sulle librerie Qt,
oltre che da altri front-end. I metodi utilizzabili per la
configurazione diventano quindi:
make config - l'interfaccia grafica a
caratteri standard, simile a quella del kernel 2.4.
make menuconfig - anch'essa simile a
quella precedente (make xconfig), la nuova interfaccia basata
sulle librerie Qt.
make gconfig - nuova interfaccia basata
su GTK+.
Siete
liberi di scegliere il metodo di configurazione preferito.....vi
suggerisco make menuconfig.
La
sequenza dei comandi da digitare è quindi questa:
make menuconfig (o una delle altre
alternative)
make all
make modules_install && make install
Il
primo comando, make menuconfig, non fa altro che porvi una
serie di domande sulla configurazione che volete costruire del
vostro kernel, per poi salvarle in un file chiamato .config
utilizzato dai comandi successivi. Per conoscere in dettaglio le
innumerevoli opzioni vi rimando al kernel HowTo.
Il
comando make all crea in un'unica soluzione i moduli e
l'immagine del kernel adatta al vostro sistema (bzimage).
Gli
ultimi due comandi, make install e make modules_install
si occupano invece di installare il nuovo kernel e i moduli
caricabili al volo.
È
interessante notare che nella directory /lib/modules viene creato
il file modprobe.conf, che viene gestito dal comando
update-modules.
4) Prima del boot
Aggiungo a lilo la
linea per il boot con il nuovo kernel:
image=/boot/vmlinuz-2.6.0-test7
label=test2.6.0
read-only
Date nel terminale un bel #lilo -v
E siete a posto con la configurazione e l'aggiornamento del bootloader.
È
stato introdotto un nuovo filesystem di supporto (sysfs)
quindi al file /etc/fstab ho aggiungo la seguente riga:
sys /sys sysfs defaults 0 0
e quindi mkdir /sys.
5) Il boot con il nuovo kernel
All'avvio del sistema scegliete test2.6.0 e incrociate le dita che tutto vada ok.
Occhio ai messaggi a video....e se qualche modulo non viene caricato fatelo voi con un bel
#modprobe nomemodulo
6) Riassunto delle operazioni
Per cominciare copiare i sorgenti in /usr/src
Scompattarli con
tar xjvf linux-2.6.0-test7.tar.bz2
Fare il collegamento a linux in quella dir con
ln -s linux-2.6.0-test7 linux
Entrare nella dir linux
cd /usr/src/linux
Poi dare
make mrproper
make menuconfig
da li inserire i moduli e poi dare in sequenza
make all
make modules_install
make install
Poi se il kernel non ha dato problemi di sorta aggiungere a lilo.conf questa parte
image=/boot/vmlinuz-2.6.0-test7
label=test2.6.0
read-only
Dare un lilo -v da console
Al rebot caricare il nuovo kernel
Have fun!!!
Slackware Live CD HowTo
COSTRUIRE UNO "SLACKWARE LIVE CD" v.1.0
Copyright (c) 2003, Simone Bianchini,
http://web.tiscali.it/gnu.linux.
This program is free software; you can redistribute it and/or
modify
it under the terms of the GNU General Public License as published
by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
INTRODUZIONE
Coloro i quali acquistano il set ufficiale di CD della Slackware
hanno già a disposizione uno Slackware Live CD. Tuttavia, è spesso
molto più usabile un Live CD customizzato, il quale è sviluppato
per uno o più specifici scopi. Potreste, per esempio, creare un
CD-ROM che contiene solamente un Live System e Open Office. In
questo documento cercherò di spiegare le basi necessarie per la
realizzazione di uno Slackware Live CD. Questo è ciò di cui avete
bisogno:
1 - Un sistema su cui gira Slackware Linux.
2 - Il CD-ROM di installazione di Slackware ( CD1 del set di CD
della Slackware).
3 - Il CD della Slackware "Ready-To-Boot Linux Disc" ( CD2 del set
di CD della Slackware).
4 - Un Masterizzatore e gli applicativi cdrecord e mkisofs.
5 - Sufficiente spazio su disco per la distro live desiderata.
Se avete solamente il CD di installazione dovete procurarvi il
file initrd.img del Live CD. Il file initrd.img contiene un
sistema di base che configura il sistema live utilizzando degli
scripts di inizializzazione.
COSTRUIRE IL SISTEMA
La prima fase nella costruzione del Live CD consiste nel costruire
l'installazione Slackware che initrd andrà ad utilizzare. Da
questo momento in poi mi aspetto che voi costruiate il Live CD
nella dir /root/livecd. Il primo passo richiede di
costruire la struttura delle directory per il Live CD:
mkdir /root/livecd
cd /root/livecd
mkdir isolinux
mkdir kernels
mkdir live
La directory isolinux/ contiene i files utilizzati per il
boot del sistema (il bootloader isolinux per bootare da cd-rom), i
kernels che si desidera rendere disponibili per il boot verranno
posizionati nella directory kernels/, e la directory
live/ verrà utilizzata per costruire l'installazione Linux del
Live CD. Dopo aver creato la struttura delle directory potete
iniziare l'installazione delle parti necessarie per il vostro
Slackware Live CD. Per fare questo avete bisogno del CD-ROM di
installazione della Slackware. Mettete il CD-ROM nel drive,
montatelo e posizionatevi nella directory slackware/a/ sul
CD. E' una buona idea quella di installare il set "a" completo dei
pacchetti, perchè si tratta dei pacchetti di base del sistema,
considerando anche il fatto che i pacchetti nel set "a" non sono
molto grandi. Potete installare i pacchetti del diskset "a"
utilizzando il seguente comando:
installpkg -root /root/livecd/live *.tgz
installpkg visualizzerà dei brevi messaggi di descrizione per
ciascun pacchetto e, appena installpkg avrà terminato, avrete già
un sistema di base Slackware in /root/livecd/live. Ora
potete aggiungere tutti i pacchetti degli altri disksets di cui
avete bisogno (considerando la portata max di 700MB del CD)
eseguendo:
installpkg -root /root/livecd/live <package.tgz>
Attenzione al fatto che molti pacchetti necessitano di librerie
extra che a loro volta dovranno essere installate.
Volendo concretizzare il tutto con un esempio: potete realizzare
uno speciale Browser Live CD installando i seguenti pacchetti
unitamente ai pacchetti del diskset "a":
libungif-4.1.0b1-i386-3
mozilla-1.0-i386-1
dhcpcd-1.3.22pl1-i386-3
glib-1.2.10-i386-1
tcpip-0.17-i386-13
gtk+-1.2.10-i386-2
windowmaker-0.80.0-i386-2
xfree86-4.2.0-i386-5
xfree86-fonts-100dpi-4.2.0-i386-1
xfree86-fonts-misc-4.2.0-i386-1
xfree86-fonts-scale-4.2.0-i386-1
Durante la prossima fase dovrete verificare alcune cose e fare
degli aggiustamenti minori al sistema. E' una buona idea quella di
fare ciò utilizzando il nuovo sistema. Prima di tutto dovete
assicurarvi che i symbolic links per alcune librerie siano in
posizione eseguendo ldconfig -r/root/livecd/live/. Andate
poi nella directory /root/livecd/live/ ed eseguite chroot
(man chroot per informazioni). Dopo aver eseguito chroot, la shell
del sistema del Live CD verrà avviata e il sistema del Live CD
sarà la directory /. Questo è il momento di verificare che
abbiate tutte le librerie necessarie. Potete farlo eseguendo
ldd /path/to/binary e vedere se risultano perse alcune
librerie. Attenzione! Questo non varrà per gli scripts di shell.
Se avete installto XFree86 e volete utilizzare il kernel virtual
framebuffer eseguite cp /etc/X11/XF86Config-fbdev /etc/X11/XF86Config.
Se volete utilizzare il vostro XF86Config copiatelo in /root/livecd/live/etc/X11/
dopo essere usciti dall'ambiente chroot. Inoltre, è possibile
configurare quale window manager voler utilizzare utilizzando il
comando (da chroot) xwmconfig.
Quando ogni cosa sarà settata come desiderate, potrete uscire
dall'ambiente chroot semplicemente digitando exit.
RENDERE IL SISTEMA PRONTO PER IL BOOT
Per rendere il sistema pronto per il boot avete ora bisogno del CD
di Slackware "Ready-To-Boot Linux Disc". Montate il CD e copiate
tutti i files dalla directory isolinux/ in /root/livecd/isolinux/
e i kernels che volete utilizzare da kernels/ nella
directory /root/livecd/kernels/. Potete utilizzare il
kernel bare.i di default in Slackware per hard-disck ATA (che si
trova in kernels/bare.i/bzImage sul CD2 di Slackware) copiandolo
in /root/livecd/kernels/bare.i/bzImage/.
Fatto ciò, il file /root/livecd/isolinux/isolinux.cfg
necessita di essere configurato. Il file originale rappresenta un
buon esempio di come isolinux può essere configurato. Il modo più
semplice di farlo è utilizzare il kernel bare.i senza un prompt al
boot per l'inserimento di parametri extra:
default /kernels/bare.i initrd=initrd.img load_ramdisk=1
prompt_ramdisk=0 ramdisk_size=16384 rw root=/dev/ram SLACK_KERNEL=bare.i
vga=ask prompt 0
Il parametro "vga=" è importante. Questo parametro vi
permette di specificare la modalità grafica che desiderate
utilizzare. Leggete il file Documentation/fb/vesafb.txt nella
directory dei sorgenti del kernel per maggiori informazioni sulle
modalità VESA.
MASTERIZZARE IL CD
A questo punto isolinux e il sistema sono pronti per essere
utilizzati. Un'ultima cosa rimane da fare: creare una immagine ISO
e masterizzare il CD. L'immagine ISO (bootabile) può essere creata
utilizzando il seguente comando nella directory /root/livecd/:
mkisofs -o /root/livecd.iso -R -J -hide-rr-moved -v -d -N
-no-emul-boot -boot-load-size 32 -boot-info-table -sort isolinux/iso.sort
-b isolinux/isolinux.bin -c isolinux/isolinux.boot
Questo creerà l'immagine ISO /root/livecd.iso. Il parametro
"-b" specifica quale file dovrà essere usato come programma
di boot per il CD.
Last, but not least, dovete masterizzare l'immagine ISO su un CD.
Se avete un CD-Writer identificato come SCSI device 0,0,0 ( potete
ottenere il codice identificativo del device eseguendo cdrecord
-scanbus), potete masterizzare l'immagine ISO eseguendo:
cdrecord -v speed=24 dev=0,0,0 /root/livecd.iso.
Bene....potete bootare il vostro Live CD nuovo fiammante
(modificando la sequenza di boot nel BIOS) per vedere come lavora.
:-P
ALCUNI CONSIGLI FINALI
Prima di tutto, poichè la realizzazione di un Live CD
perfettamente funzionante richiederà certamente diversi tentativi,
questo potrebbe costarvi non pochi CD, quindi, vi consiglio di
testare il Live CD con CD riscrivibili.
Se l'immagine ISO che avete creato è maggiore di 650 o 700 MB non
entrerà in un normale CD. Il kernel Linux a partire dalla versione
2.4.14 supporta un sistema trasparente di decompressione che vi
permette di comprimere in un solo CD-ROM dati per circa 1500 MB
(in alcune situazioni). Date un'occhiata alle man pages di
mkisofs e mkzftree per maggiori informazioni.
Alcune parti del sistema non possono essere settate modificando i
files nella directory live/, come i files di inizializzazione o
altri files in /etc, come /etc/motd, poichè essi sono inclusi in
initrd.img. Initrd.img è una immagine disco compressa che può
essere decompressa con gunzip e poi montata utilizzando
l'interfaccia loopback (mount -o loop "image" "mountpoint).