Miniguida su Linux  

di Captain
Sommario:
 1. Premessa.
 2. Cos'e' Linux ?
 3. Cosa mi occorre per installare Linux?
 4. La Shell Di GNU/Linux.
 5. Il Processo del Boot.
 6. Installazione di programmi.
       Pacchetti RPM.
       apt-get, dpkg, sorgenti e tarball.
 7. Il Kernel.
       Cosa è il kernel.
       Configurazione del kernel.
       Compilazione del kernel.
       Documentazione relativa al kernel.
 8. Linux e i Portatili.
       Installazione.
       L'orizzonte degli eventi.
       Sospensione e sleep del portatile.
       Cambiare la frequenza dela cpu.
 9. Configurazione l'audio con ALSA.


1. Premessa
Questa guida e' indirizzata agli utenti che sono alle prime armi con il sistema Linux. L'obiettivo e' quello di inizializzare il lettore, verso il mondo dei sistemi unix-like.

2. Cos'e' Linux ?

Linux e' un sistema operativo, disponibile per diverse piattaforme hardware tra cui anche i processori Intel o compatibili. Linux appartiene alla famiglia dei sistemi UNIX (Solaris, AIX, HPUX,ecc),ma e' stato scritto per essere compatibile con le specifiche POSIX e include estensioni proveniente dai sistemi System V e BSD.
Linux in se stesso e' costituito solo dal Kernel, il nucleo centrale del sistema operativo che controlla il funzionamento di tutto il computer. La maggior parte delle applicazioni di contorno al sistema sono sviluppate dalla GNU.
GNU e' un e' un acronimo ricorsivo e significa GNU is Not Unix (ovvero "GNU non e' Unix"), e' nato nel 1983 da Richard Stallman, si basa su una gestione dei diritti d'autore sul software libero.
Sito: http://www.gnu.org

Il kernel di Linux e' stato ideato da Linus Torvalds, uno studente finlandese il primo rilascio del kernel e' avvenuto nel 1991.
Sia il kernel di Linux sia il software realizatto dal progetto GNU vengono rilasciati sotto la licenza GPL (General Public Licence) oppure sotto la LGPL (Library GPL). Queste licenze garantiscono sia la tutela del copyright da parte dell'autore sia la possibilita' di poter modificare il codice sorgente da parte dell'utente del software.
Il nome Linux fu attribuito a tale progetto solo in un secondo tempo, da parte dell'amministratore di sistema che permisse l'upload del file sorgente del kernel di Linus sul sistema ftp dell'universita'.
Il 5 ottobre del 1991, Linus invio il seguente "post" sul newsgroup comp.os.minix:

"Do you pine for the nice days of Minix-1.1, when men were men and wrote their own device drivers? Are you without a nice project and just dying to cut your teeth on a OS you can try to modify for your needs? Are you finding it frustrating when everything works on Minix? No more all-nighters to get a nifty program working? Then this post might be just for you. As I mentioned a month ago, I'm working on a free version of a Minix-lookalike for AT-386 computers. It has finally reached the stage where it's even usable (though may not be depending on Linus Torvalds
what you want), and I am willing to put out the sources for wider distribution. It is just version 0.02...but I've successfully run bash, gcc, gnu-make, gnu-sed, compress, etc. under it."


Lo sviluppo del kernel di Linux e' ora portato avanti da Alan Cox, descitto da Linus nel seguente modo:

"Note that nobody reads every post in linux-kernel. In fact, nobody who expects to have time left over to actually do any real kernel work will read even half. Except Alan Cox, but he's actually not human, but about a thousand gnomes working in under-ground caves in Swansea. None of the individual gnomes read all the postings either, they just work together really well."

3. Cosa mi occorre per installare Linux?

Un personal computer ...
.. una distribuzione di Linux ...
... e documentazione sulla distrubuzione
Quale personal computer mi occorre?
Per i computer i386 la configurazione minima prevede l'utilizzo di un i386/SX a 16MHz con 1 MB di RAM. Per installare una distribuzione attualmente sono pero' necessari almeno 4MB di RAM piu' spazio su disco per uno file di swap. Per un normale uso domestico un 486 a 100Mhz con scheda video da 2MB, 16MB di RAM e un disco da 500MB rappresenta davvero un OTTIMA macchina.
Per un uso aziendale un qualsiasi Pentium con 32MB di RAM e' un ottimo server sopratutto con uno o due dischi SCSI molto capienti.

  
Ecco una lista delle migliori distribuzioni Linux:
- Gentoohttp://www.gentoo.org
- Slackwarehttp://www.slackware.org
- Debianhttp://www.debian.org
- Archhttp://www.archlinux.org
- Fedora Core/Red Hathttp://fedora.redhat.com
- Susehttp://www.novell.com/linux/
- Ubuntuhttp://www.ubuntu.com
- altro ...http://distrowatch.com/


4. La Shell Di GNU/Linux

Possiamo vedere i vari comandi della shell di Linux in questo sito :
http://guide.supereva.com/fortran/interventi/2002/06/107905.shtml
La shell di Linux puo essere considerata come un'interfaccia che permette all'utente di interagire con il sistema. Quest'ultima puo essere utuliazzata in console o in un terminale. Inoltre la shell è lo strumento piu potente messo a disposizione per l'utente, attraverso il quale gestisce l'intero sistema. Sono presenti su un sistema Linux diversi tipi di shell:

1. Sh
2. Bash
3. ksh
4. csh
5. zsh
6. tcsh

Per ognuna delle quali e' presente un manual page (man) nel quale potrete trovare tutte le informazioni riguardanti le shell sopra elencate.

5. Il Processo del Boot

E' una macchina di Linux su sistemi x86 intel compatibili(x86: e' per indicare un'architettura di microprocessori inizialmente sviluppata e prodotta dall'Intel),il boot a diversi stadi che sono :
l'accessione al BIOS su rom definisce l'ordine dei device da utilizzare per effettuare il boot;il boot sector del primo device di boot contiene il codice, nel caso di Gnu/Linux il piu' diffuso e' Lilo.
IL bootloader e' un piccolo programma utilizzato,come suggerisce il nome stesso.per il boot del sistema.
Il Lilo e' un acronimo di "LInux LOader";il loader lancia il caricamento del kernel,che si copia in memoria ed esegue i controlli e il riconoscimento dell'hardware; nel fine del caricamento del kernel si esegue il processo di init,e' il padre di tutti i processi,esso gestisce il caricamento di tutti gli altri programmi da eseguire per completare il boot.
Il funzionamento del booloader e' assai complicato ma lo si puo' sintetizzare e semplificare in poche frasi..

- in un momento,il BIOS della macchina carica il bootloader
- questo in seguito,carica il kernel del sistema o i bot sectors di altri sistemi operativi (come windows) passando ad altri programmi la successiva operazione di boot (COMMAND.COM in windows)
A questo punto la funzione del boot loader e' terminata ed inizia la vera e propria frase di bootstrap del sistema operativo.

6. Installazione di programmi

a) PACCHETTI RPM

RPM,e' una utilita' che ci permette di istallare e disinstallare e aggiornare,interrogare,verificare ,costruire pacchetti software.
RPM,permette di istallare programmi gia compilati con una facilita' e rapidita' molto semplice sul nostro sistema operativo(OS).
Esso e' usato su molte distrubuzione di Linux ad esempio su RedHat,e' molto importante utilizzare gli RPM adatti sul nostro sistema;gestisce automaticamente le (dependencies),se proviamo a installare un RPM che richiede librerie o programmi non presenti o non abbastanza aggiornati,il sistema ci dara' un errore e ci verra' indicato quali file che mancano;invece se proviamo a disinstallare un package che contiene dei file utilizzati da altri programm(file in comune),ci verra' indicato un messaggio di errore.
Gli RPM automaticamente distribuiscono i file di un pacchetto nelle directory giuste (logs in /var/log, file di configurazione in /etc/, binari in /usr/bin o /usr/sbin, script di startup in /etc/rc.d/init.d/ ecc.) e verificano la presenza di conflitti o installazioni piu' recenti.
Ma anche esso a dei sui svantaggi in anzi tutto si usano dei file gia compilati,e nn sempre gli RPM vengono resi disponibili in tempi brevi.

  
I comandi di istallazione dei RPM :
rpm -i [opzioni] [pacchetti]
 Installazione pacchetti RPM
rpm -U [opzioni] [pacchetti]
 Aggiornamento di pacchetti RPM
rpm -e [opzioni] [pacchetti]
 Disinstallazione di pacchetti RPM
rpm -q [opzioni] [pacchetti]
 Interrogazione di pacchetti RPM
rpm -V [pacchetto]
 Verifica pacchetto RPM


b) APT-GET,DPKG,SORGENTI E TARBALL:

Il Tarball piu' comunemente chiamato l'archivio dei sorgenti,si presenta molto spesso come una vera e propria struttura che contiene i file sorgenti e anche la documentazione per utilizzo e la compilazione del sotfware,file binari e script che ci aiutano nella procedura di installazione.
I file vengono per prima cosa archiviati come unico file con il programma tar,per poi essere compressi con Gzip o Bzip2.
Ma in questo caso non esiste una vera procedura di istallazione cioe' per la compilazione dei sorgenti e' importantissimo leggere la documentazione che e' insieme ai sorgenti (README).In questa guida inserira' la sintassi di default per la compilazione dei sorgenti:
./configure [ opzioni ] Verifica le dipendenze e crea il Makefile.
make [ opzioni ] Attraverso il Makefile creato precedentemente compila i sorgenti e installa
Questi tipi di file li possiamo trovare in CD ma anche scaricando programmi da internet..Tipicamente la procedura di installazione si riassume in questi passi (leggere sempre i file INSTALL o README per le effettive istruzioni di installazione).

  
Alcune opzioni usate dal tar sono :
-c crea un nuovo archivio.
-f se usato con l'opzione -c, utilizza il nome di file specificato per la creazione del file tar. Se usato con l'opzione -x, estrae dall'archivio il file specificato.
-t visualizza l'elenco dei file nel file tar.
-v visualizza lo stato dei file in fase di archiviazione.
-x estrae i file da un archivio.
-z comprime il file tar con gzip.
-j comprime il file tar con bzip2.

Il tar come detto prima viene usato per scompattare/comprimere un file con estensione tar.gz o tar.bz2. Le sintassi sono queste:
  
Per i tar.gz :
tar xzvf pacchetto.tgz
installpkg pacchetto.tgz
Per i tar.bz2 :
tar xvf pacchetto.tar.bz2
o ancora
tar xjvf pacchetto.tar.bz2

Gestire l'installazione di un pacchetto con estensione .deb e quindi per distro Gnu/Linux in particolar modo Debian,Ubuntu e' semplice, bastera' digitare da terminale il seguente comando
  
Installazione dei pacchetti :
dpkg --install pacchetto.deb
oppure nella forma contratta :
dpkg -i pacchetto.deb
Rimozione dei pacchetti :
dpkg --remove pacchetto
e la relativa forma contratta
dpkg -r pacchetto
Rimozione pacchetti e relative configurazioni :
dpkg -P pacchetto
Installazione da repository :
apt-get install nomepacchetto


7. Il kernel

a) Cosa è il kernel.

Il Kernel è la parte più importante del nostro sistema operativo. Si tratta di un codice che si occupa della gestione delle risorse presenti nel nostro computer e le rende direttamente accessibili agli altri programmi.
In parole molto semplici, il kernel è un mediatore che serve a far interagire il software con l'hardware lavorando a basso livello.
Esistono diverse famiglie di kernel sul sistema Linux:

- 2.2
- 2.4
- 2.6

di cui ogni famiglia presenta upgrade differenti da un kernel della famiglia precedente.

b) Configurazione del kernel.
per intervinire sulla configurazione del kernel occorre innanzitutto procurarsene i sorgenti dal sito http://www.kernel.org .

Il kernel a cui facciamo riferimento e' della famiglia 2.6,gli accorgimenti suggeriti rimangono validi in liena di massina per il kernel 2.4...e ora scarica l'ultima versione del kernel :D
salvare l'archivio di sorgente nella directory /usr/src e decomprimerlo con:
tar xjvf linux<VERSIONE>.tar.bz2

Posizionare nella directory creata dal precedente comando:
cd linux<VERSIONE>

Per eliminare i file e i collegamenti generati da un'eventuale compilazione precedente,e il file .config che contiene il salvataggio della configurazione corrente,lanciare:
make mrproper

Per avviare il programma di gestione della configurazione lanciare:
make gconfig

"Si hanno a disposizione diversi font-end di configurazione del kernel. Dalla directory dei sorgenti e' possibile lanciare make config,make menuconfig,make xconfig,make gcconfig,make kconfig per poter vedere e provare i varu software di gestione della configurazione."

A questo punto vedremo il programma per la configurazione del kernel. Si tratta di abilitare o meno le varie voci suddivise in sezioni e sottosezioni.
Generalmente e' possibile abilitare una funzionalita' in modalita' built-in oppure tramite modulo.La modalita' built-in consiste che la funzionalita' viene caricata staticamente al momento del caricamento del kernel.
Modalita' modulo significa che la funzionalita' puo' essere caricata o rimossa dal kernel mentre esso e' in esecuzione.
Durante la configurazione del kernel, si consiglia di non inserire tutte le voci necessarie in modalita built-in o module.
Questo comporterebbe la creazione di un kernel monolitico o modulare, ognuno dei quali ha vantaggi e svantaggi.
Il kernel monolitico ha tutto incluso, quindi non necessita del caricamento di moduli per periferiche, o altro, quindi piu comodo, il suo svantaggio sta nel fatto che avendo un kernel monolitico predisposto per molte periferiche,device o altro, si va a creare un kernel pesante, il che potrebbe influire sulle prestazioni della computer.
Un kernel modulare, invece, segue un procedimento di creazione dell'immagine, simile al kernel monolitico. Il vantaggio del kernel modulare, a differenza del monolitico, permette di attivare e disattivare moduli mentre il kenrnel e' in esecuzione, come citato precedentemente, e presenta un immagine piu snella. Lo svantaggio maggiore sta nel fatto che un kernel modulare è fonte di molteplici errori per incompatibilita' tra moduli.
Il consiglio per i meno esperti è di creare un kernel che non sia ne modulare, ne monolitico, per evitare problemi vari, e di selezionare solamente le voci necessarie.
Le prime ricompilazioni del kernel saranno dure :) ma con il passar del tempo, con l'acquisizione dell'esperienza necessaria, sarete in grado di creare una configurazione perfetta per la vostra macchina.
Altro punto critico degli user, che si lanciano nella ricompilazione del kernel, e dove incontrano maggiore difficoltà,è nella selezione dell'hardware presente sul sistema, domandandosi: "Che voci devo selezionare? Quali sono i miei componenti?".
Ci sono vari modi per poter conoscere i componenti del proprio computer.

1. Aprirlo e guardare ogni componente, leggerne il modello..ecc..
2. Leggere il log di avvio.
3. Lanciare , da user root, le utilità: dmesg, lspci, lsusb, lsraid.

La rete:

Nel menu principale del programma di getsione della configurazione selezioniamo la voce Device Drivers,che contiene la categoria di supporto alla rete. Per poter usare i servizi di rete occorre abilitare il supporto di rete nel kernel,tramite la sezione Networking Options.
In questa sezione e' consigliabilire abilitare le seguenti voci:
- Packet Socket.
- Network Packet Filtering.
- Unix Domain Sockets.
- TCP/IP Network.
- IP Netfilter Configuration.

c) Compilazione del kernel.

Il passo successivo e' la compilazione del kernel, per effettuare questo si usa la sequenza di comandi make da root.
1: # make clean
2: # make bzImage
3: # make modules
4: # make modules_install

Il primo make serve a eliminare i file creati da una precendete compilazione,mentre il secondo effettua la compilazione vera e propria creano l'immagine del kernel;per quetso motivo questo comando puo' richiedere molto tempo:
1: # make clean
2: # make bzImage

Se tutto va a buon fine e non appaiono messaggi di errore si ottiene il nuovo kernel in /usr/src/linux-version/arch/i386/boot/bzImage.
Ora e' possibile procedere con la compilazione e installazione dei moduli,usando sempre il comando make (sempre da root):
3: # make modules
4: # make modules_install

I moduli creati verranno installati nella directory /lib/modules/. Eseguite queste operazioni e' necessario rendere disponibile al sistema boot il nuovo kernel.
per effettuare questo copiare il nuovo kernel nella directory boot:

ATTENZIONE: CREARE UNA COPIA DELLA VECCHIA IMMAGINE NEL KERNEL PER EVITARE, NEL CASO IN CUI QUALCOSA NON SIA ANDATA BENE.
# cp /usr/src/linux-version/arch/i386/boot/bzImage /boot/vmlinuz-version
# cp /usr/src/linux-version/System.map /boot/System.map

Quindi arrivati a questo punto modificare il file /etc/lilo.conf, in modo tale che si il sistema al riavvio carichi il nuovo kernel.
  
Un esempio del file /etc/lilo.conf e' :
1ba32
boot=/dev/hda
install=/boot/boot-menu.b
map=/boot/map
delay=20
prompt
timeout=150
vga=normal
#Linux-new version begins#
image=/boot/vmlinuz-version
root=/dev/hda2
label=Linuz
read-only
#Linux-new version ends#
#Linux-old version begins#
image=/boot/vmlinuz
root=/dev/hda2
label=LinuxOLD
read-only
#Linux-old ends#

PS. Per maggiori informazioni fare riferimento al man lilo.conf(5).

Per rendere effettivi i cambiamenti e modificare il Master Boot Record bisogna eseguire il comando lilo con l'opzione -v che ha un effetto di rendere l'output dettagliato:

# lilo -v

nel caso in cui vogliate fare una prova della scrittura dell'MBR lanciare

# lilo -t

nel caso in cui il suddetto comando riporti errori, controllare il file /etc/lilo.conf
E in questo momento e' possibile riavviare il pc e logicamente verificare le modifiche.
Al riavvio,dopo esserci autenticati come root,verificheremo i messaggi del kernel con il comando dmesg.
per verificare i moduli che sono caricati dal kernel all'avvio,useremo il comando:
# lsmod

E' possibile caricare i moduli anche a sistema gia' avviato,usando il comando modprobe, un esempio:
# modprobe e100

Effettua un tentativo di caricamento del modulo relativo alla scheda di rete e100.
Per disattivare il modulo e quindi le funzionalita' della scheda di rete utilizziamo il comando rmmod.
# rmmod e100

d) Documentazione relativa al kernel.

La compilazione del kernel puo' risultare un po ostica per chi si avvicina al mondo Linux..ma comunque assieme hai sorgenti ci viene rilasciato anche una documentazione che e' possibile trovare nelle varie directory.

8. Linux e i Portatili

a) Installazione.

Installazione ed ottimazione del sistema operativo sui computer portatili, per ottimizzare le prestazioni e gestire nel miglior modo gli strumenti per il risparmio energetico.
Un computer laptop puo' gestire le proprie funzioni avanzate (gestione batteria) attraverso 2 modi standard,APM & ACPI. Il primo,piu' vecchio, e' stato praticamente abbandonato nei portatili di ultima generazione a favore del secondo e tenendo conto che anche i portatili non molto recenti usano ormai ACPI e noi focalizzeremo le nostre attenzioni su quest'ultimo.
Le maggiori distrubuzioni sono realizzate tenendo conto di questo standard e richiamano i moduli adatti nella fase di avvio del sistema, quindi controlliamo che sia installato il demone ACPID e che il relativo servizio sia in funzione :

ps aux | grep acpid

e quindi scrivere, in caso negativo, se si usa una Debian o derivate :

apt-get install acpid

o il comando della distribuzione utilizzata per installare pacchetti.

b) L'orizzonte degli eventi

Il demone acpid non fa altro che mettersi in ascolto di cio' che avviene in un file (/proc/acpi/event), eseguendo dei programmi appositi ogni volta che si presenta un particolare "evento", in relazione agli accadimenti gestibili da ACPI: inserimento o estrazione della batteria, collegamento o scollegamento dell'alimentatore, pressione del pulsante di accensione del portatile e cosi via.
Vediamo come interpretare questi messaggi.
Innanzitutto, disattiviamo momentaneamente acpid, cosi da impedire comportamenti accidentali (ad esempio, comunemente questo demone viene configurato di default per fare uno shutdown (arresto del sistema) non appena si preme il tasto di accensione, cosa non proprio indicata se vogliamo soltanto far esperimenti con l'ACPI:

/etc/init.d/acpid stop

A questo punto, in un terminale scriviamo:

cat /proc/acpi/event

Ora non ci resta che fare tutte le prove del caso, partendo magari dal classico inserimento della batteria nel portatile e segnando da qualche parte i risultati che compaiono via via sullo schermo. Ma a cosa puo' servirci tutto questo? E' sufficiente portare un esempio: su alcuni portatili, l'ACPI ha un fastidioso bug che fa alzare la temperatura della CPU non appena si inserisce o si toglie "a caldo" la batteria oppure il cavo per l'alimentatore; la soluzione e' in un piccolo script da richiamare al momento del bisogno.
Piuttosto che eseguire ogni volta lo script, ovviamente, sarebbe molto più comodo poterlo far richiamare in automatico per tutte le occorrenze del problema. Ecco come fare: la directory /etc/acpi/events contiene un file per ogni evento ACPI, la cui struttura e' la seguente:

event=nome_evento
action=file_da_eseguire

Nel caso in esame, il nostro file /etc/acpi/events/acpi_bug e' composto dalle due righe:

event=processor
action=/etc/acpi/acpi_bug.sh

L'evento "processor" e' stato ricavato dalla lettura di /proc/acpi/event ed intercorre ogni qual volta nel portatile vengono inserite o tolte batteria o alimentatore mentre /etc/acpi/acpi_bug.sh contiene semplicemente il richiamo allo script di correzione del bug. In modo simile, e' possibile stabilire quali accorgimenti prendere nel caso si chiuda o si riapra il monitor del laptop (solitamente, si tratta dell'evento "button[ /]lid"),oppure si prema il tasto di accensione ("button[ /]power").

c) Sospensione e sleep del portatile

Una funzione estremamente comoda nell'uso quotidiano di un laptop e' quella della cosiddetta "sospensione su disco": invece di spegnere direttamente il computer, si crea una copia della memoria su disco rigido, copia che viene letta alla successiva accensione, con relativo ripristino della sessione di lavoro precedente; il beneficio di tutto cio' e',chiaramente, quello di un riavvio più veloce della macchina, con in più la praticita' di avere il nostro computer nello stato esatto in cui l'avevamo lasciato. Per poter sfruttare il Software Suspend (swsusp) attualmente presente nei sorgenti del kernel, e' necessario far uso di una partizione di swap come "deposito" per i nostri dati; innanzitutto assicuriamoci di avere a disposizione un'area di swap di almeno il 30% più grande del nostro quantitativo di ram. Ad esempio, con 256MB di ram sara' consigliabile esser provvisti di una swap di almeno 330MB.
Quindi, nel caso in cui il nostro kernel non abbia il swsusp abilitato,sara' necessario provvedere ad aggiungere questa funzione. Lanciamo "make menuconfig" (o la relativa versione grafica), quindi entriamo nella sezione "Power management options (ACPI, APM)" del menu principale e selezioniamo le voci "Power Management support" e "Software Suspend" e ricompiliamo il kernel. Fatto cio', non resta altro che istruire il nostro boot loader (grub o lilo), indicando la partizione da cui fare il resume dei dati di sistema; per ottenere questo e' sufficiente aggiungere ai parametri del kernel "resume=/dev/hda2" (/dev/hda2 e' la nostra partizione di swap). Se utilizziamo grub una entry adatta sara' , percio', simile alla seguente:

title kernel 2.6.8.1-3-k7
root (hd0,0)
kernel /boot/vmlinuz-2.6.8.1-3-k7 root=/dev/hda1 ro resume=/dev/hda2
initrd /boot/initrd.img-2.6.8.1-3-k7
savedefault
boot

Ma come sospendere effettivamente la macchina? Possiamo farlo a mano? (dando da root il comando "echo 4 > /proc/acpi/sleep"), ma la scelta migliore e' certamente quella di utilizzare lo script suspend.sh. Vista la delicatezza dell'operazione e visto che alcune parti del nostro sistema possono non reagire correttamente alla sospensione, e' consigliabile fare qualche esperimento e stabilire adeguatamente quali moduli e quali servizi fermare durante il processo e poi riavviare una volta che il sistema viene fatto ripartire. Si parla, invece, di "sleep" (stato di riposo, letteralmente) quando il sistema e le periferiche vengono poste in un regime di bassa alimentazione e lo stato della macchina salvato in memoria; purtroppo, la gestione dello sleep sotto ACPI e' ancora in stato ampiamente sperimentale ed e' molto probabile che sul nostro portatile esso non funzioni o, peggio ancora, non permetta il corretto "risveglio" della macchina (del resto, la stessa documentazione del kernel e' molto chiara in merito visto che consiglia, senza troppi giri di parole, di abilitarlo solo nel caso in cui si partecipi allo sviluppo dei driver stessi). Detto cio', se proprio vi sentite temerari, per far uso di questa funzione sara' sufficiente abilitare il relativo modulo nel kernel ("Sleep States", da Power management options, ACPI Support) e battere sulla tastiera, dopo la necessaria ricompilazione, "echo 1 > /proc/acpi /sleep".

d) Cambiare la frequenza della cpu

Come e' noto, uno dei componenti che maggiormente consumano la preziosa carica della batteria e' il processore; negli ultimi anni, con lo sviluppo di CPU sempre più veloci ed avide di energia, sono stati escogitati, per ridurre il problema, alcuni stratagemmi. Quello più importante consiste nella gestione dinamica della velocita' della CPU: la politica comune e' quella di avere una velocita' bassa di base ed aumentarla via via che le richieste di carico si fanno più pesanti. Per ottenere questo e' necessario avere abilitato nel kernel il CPU Frequency scaling (cpufreq); nel caso si utilizzi una distribuzione recente ed il suo kernel "prefabbricato", e' molto probabile che lo si abbia installato come modulo; in tale evenienza, bastera' aggiungere in /etc/modules il nome del modulo adatto, a seconda della famiglia di CPU utilizzata; ad esempio, se si possiede un AMD Athlon K7, si dovra' inserire il modulo chiamato powernow-k7, e cosi via. Se il nostro kernel non ha il supporto per il cpufreq, bisogna ricompilare.
La sezione che ci interessa e', di nuovo, "Power management options (ACPI, APM)": entriamo in "CPU Frequency scaling" e selezioniamo:

[*] CPU Frequency scaling
'powersave' governor
'userspace' governor for userspace frequency scaling
CPU frequency table helpers

Quindi scegliamo il modulo adatto al nostro microprocessore.. ad esempio: AMD Mobile Athlon/Duron PowerNow!
Una volta ricompilato ed installato il nuovo kernel, per cambiare la frequenza corrente bastera' fornire il valore desiderato ad un file; per abbassare la velocita' fino a 600 MHz si dovra' quindi scrivere:

echo 600000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

E' possibile, inoltre, automatizzare il cambio di frequenza con dei programmi appositi; fra questi vi consiglio powernowd. Questo software si basa esclusivamente sul carico del processore e, nella configurazione di default, permette di passare immediatamente alla frequenza più alta non appena il carico tocca l'80%, scemando pian piano la velocita' non appena si giunge sotto la soglia del 20%. :)

9. Configurazione l'audio con ALSA
Come prima cosa da effettuare apriamo un terminale (eterm,aterm,rxvt,ecc), ed eseguiamo /etc/init.d/alsa-utils stop per disattivare il server sonoro, e subito dopo con alsaconf per accedere al programma di configurazione.
Alsa cerchera' la scheda audio presente nel vostro PC.
Dopo averla identificata possiamo scegliere il modulo da caricare,vale anche per quelle ISA, dopo aver caricati il kodulo apparira' un messaggio per chiedere se modificare il file /etc/modprobe.conf,e dopo un altro per confermare la fine dell'operazione.

Penne USB

Pen Drive letteralmente ha il significato di disco-penna, e' un dispositivo di memoria di massa basato su celle di memoria "Flash", piu' semplicemente di un dispositivo EEPROM collegato a una porta usb.
Dopo aver spiegato il significato di pen Drive passiamo al suo funzionamento e al suo utilizzo :

In anzi tutto apriamo un terminal (konsole,eterm,aterm.. ) dopo logghiamoci come root,inseriamo ora, la penna-sub ed eseguiamo i seguenti comandi:

cd /mnt (ci spostiamo nella directory /mnt)
mkdir penna (creiamo in /mnt la directory penna)
mount /dev/sdb1 /mnt/penna (montiamo la penna-usb su /mnt/penna)
cp nome_file /mnt/penna (copiare un file nella directory /penna)
umount /dev/sdb1 (smontiamo la penna-usb).

Hard disk esterno :

L'hard disk o disco rigido e' un dispositivo utilizzato per la memorizzazione di dati,nel nostro caso tratteremo l'utilizzo di un hard disk esterno. In anzi tutto apriamo un terminal (konsole,eterm,aterm.. ) dopo logghiamoci come root,inseriamo ora,hard disk esterno ed eseguiamo i seguenti comandi:

cd /mnt (ci spostiamo nella directory /mnt)

mkdir hd (creiamo in /mnt la directory hd)

mount /dev/sda1 /mnt/hd (montiamo hard disk su /mnt/hd)

cp nome_file /mnt/hd (copiare un file nella directory /hd)

umount /dev/sda1 (smontiamo hard disk).

Utilizzo di un Cd-Rom :

Il CD-ROM e' un dispositivo di memorizzazione digitale , l'unita' cd-rom invece è un dispositivo che ci permette solo la lettura.
Le unità CD-ROM comuni:

* Unità CD-ROM SCSI
(Da CD_ROM HOWTO) Qualsiasi unità CD-ROM SCSI con una dimensione di blocco di 512 o 2048 byte dovrebbe funzionare con Linux. Questa caratteristica è inclusa nella maggior parte delle unità CD-ROM sul mercato.

* Unità CD-ROM EIDE (ATAPI) (IDECD)
Sono supportate quasi tutte le unità a velocità doppia, quadrupla e sestupla, incluse
o Mitsumi FX400
o Nec-260
o Sony 55E

Le unità CD-ROM proprietarie:

* Aztech CDA268-01A, Orchid CDS-3110, Okano/Wearnes CDD-110, Conrad TXC, CyCDROM CR520ie/CR540ie/CR940ie (AZTCD)
* Creative Labs CD-200(F) (SBPCD)
* Funai E2550UA/MK4015 (SBPCD)
* GoldStar R420 (GSCD)
* Kotobuki (SBPCD)
* Lasermate CR328A (OPTCD)
* LMS Philips CM 206 (CM206)
* Longshine LCS-7260 (SBPCD)
* Matsushita/Panasonic CR-521/522/523/562/563 (SBPCD)
* MicroSolutions Backpack, portdrive parallela (BPCD)
* Mitsumi CR DC LU05S (MCD/MCDX)
* Mitsumi FX001D/F (MCD/MCDX)
* Optics Storage Dolphin 8000AT (OPTCD)
* Sanyo CDR-H94A (SJCD)
* Sony CDU31A/CDU33A (CDU31A)
* Sony CDU-510/CDU-515 (SOMYCD535)
* Sony CDU-535/CDU-531 (SONYCD535)
* Teac CD-55A SuperQuad (SBPCD)

Tutte le unità CD-ROM dovrebbero funzionare in modo simile per la lettura dei dati. Esistono numerosi problemi di compatibilità con le utilità di riproduzione dei CD. (in particolare con le unita' NEC).
Passiamo alla praticita':

In anzi tutto apriamo un terminal (konsole,eterm,aterm.. ) dopo logghiamoci come root,inseriamo ora,il cd-rom ed eseguiamo i seguenti comandi:

cd /mnt (ci spostiamo nella directory /mnt)

mkdir hd (creiamo in /mnt la directory cdrom)

mount /dev/hdc /mnt/cdrom (montiamo il cd-rom su /mnt/cdrom)

ls /mnt/cdrom (per vedere il contenuto dei dati nel cdrom)

umount /mnt/cdrom (smontiamo il cdrom)

oppure

eject (smontiamo il cdrom).

Come si arresta un processo o un'applicazione bloccata?

Quando un'applicazione non ne vuole proprio sapere di sbloccarsi l'unico rimedio e' ucciderla o killarla.
Sono disponibili strumentisuia grafici (Xkill) e sia da riga di comandocome kill.
Per terminare un applicazione o un processo bloccato,come prima cosa e' neccessario visualizzare i processi attivi con il comando

ps -ax

oppure

ps aux |grep nome-processo o applicazione

dopodiche' basta individuare il PID associato alla applicazione bloccata ed eseguire

kill PID

oppure

kill -9 pid_dell'applicazione

L'opzione -9 indica il segnale SIGKILL, per ottenere l'elenco dei possibili segnali da individuare basta eseguire kill -1
In casi particolaro puo' essere utilizzato il comando fuser, per esempio per il CD,il floppy,la penna USB,ecc.

fuser -v /dev/cdrom (individua il processo che occupa il cdrom)
fuser -k /dev/cdrom (invia un segnale di kill al processo e lo termina).

Come si verifica se ci sono settori danneggiati sul disco?

Di questo compito si occupa il comando fsck e le sue numerosi varianti,a secondo del file system utilizzato dalla partizione da controllare.
Ad esempio per esaminare una partizione con file system Ext3 bisogna eseguire:

fsck.ext3 -c /dev/hdaX (dove hda indica il disco e X il numero della partizione)
Per visualizzare tutti i comandi disponibili per gli altri file system basta digitare fsck e premere il tasto tabulazione.

Backup e controllo dell'MBR :

Per fa si di creare una copia di backup nell'MBR (Master Boot Record), il settore di avvio del hd dove viene installato il boot loader e archiviata la tabella delle partizioni,
il metodo piu' semplice e' utilizzare il comando dd, con questo tool e' possibile salvare il contenuto dei primi 512 byte del disco (l'MBR appunto) in un file:

dd if=dev/hda of=MBR.img bs=512 count=1

In questo caso l'intero MBT e' stato salvato nel file MBR.img

Qundi per controllare il contenuto eseguiamo: od -xa MBR.img

cosi se MBR dovesse risultare corrotto e non piu' funzionante lo si puo' rispristinare con :

dd if= MBR.img of=/dev/hda bs=512 count=1

Ringraziamenti:
  Questa miniguida su Linux e' stata realizzata da Captain captain[at]hackroom[dot]org
  con l'ausilio di alcuni componenti del progetto hackroom...
  ringrazio SDNS per le correzioni del lavoro...
  un ringraziamento va' a DiOne per averla messa in formato html nel sito...
  e un immancabile grazie a Tidus che ha partecipato con me alla stesura di questa guida
  (spero abbiate imparato qualcosa di utile... in questo magnifico mondo GNU/Linux)


Ecco cosa pensano le persone...
Loggati e scrivi il tuo commento, e' molto importante per noi conoscere il tuo parere sui nostri articoli, grazie.



Powered by HackRoom
Attendere il caricamento...
Attendere il caricamento del vostro profilo...
Inserisci almeno due lettere
Attendere il caricamento...
Attendere il caricamento...