Content:

.  Index
.  FAQ
.  Slack Packages
.  Slack Install
. 
Slack Config
.  Slack Tutorial


.  Slack Security
.  Distribuzioni
.  Compilazione
. 
Kernel Linux
.  Downloads
.  Links
. 
Contact


.  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:

software version download size
mkcramfs 1.1 download TGZ 45 KB
dbdiff 2.2 download TGZ 2 KB
UPX packer 1.24 download TGZ 130 KB
LiveCD scripts 2.9.0 download TGZ 1,9 MB
LiveCD (all)   download TGZ 2,2 MB

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:

  1. la preemption (ovviamente:-)
  2. gestione dei moduli, fatta attraverso Module-Init-Tools
  3. suono: con la linea 2.6 OSS diventa deprecato (pare che nel 2.7 verrà rimosso), a favore di ALSA
  4. supporto per il software suspend e per ACPI
  5. nuova grafica
  6. riorganizzazione (e ordinamento) del Makefile principale per la compilazione
  7. 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).
 

 

This site is maintained by velenux
(c) 2003 The Slack-it Linux Project