1. Lezione Cinque: Advanced Using
Lezione Cinque: Advanced Using
Dario Mazza - Sebastiano Merlino
Universit` degli Studi di Catania - Facolt` di Ingegneria
a a
13 Maggio 2010
1 / 16
2. Lezione Cinque: Advanced Using
Compilazione da Sorgenti
Compilazione da Sorgenti
La compilazione ` il processo mediante il quale si trasforma un semplice
e
file sorgente (non ` altro che un file di testo in un linguaggio di
e
programmazione) nel cosiddetto linguaggio macchina, comprensibile alle
macchine (composto esclusivamente da sequenze di 0 ed 1).
Sebbene questa possa sembrare un’operazione complessa ed
effettivamente lo sia nel caso in cui si richiedesse all’utente di utilizzare
strumenti informatici come compilatori, linker, ecc..., risulta realmente
semplice su Linux grazie all’utilizzo di uno speciale comando: make.
Tale comando sfrutta l’utilizzo di un file chiamato Makefile che altro non
contiene se non i passi necessari alla compilazione (ci` che in effetti
o
andrebbe fatto manualmente), eseguendoli per noi.
2 / 16
3. Lezione Cinque: Advanced Using
Compilazione da Sorgenti
Compilazione da Sorgenti
Sebbene ci si possa trovare in svariate situazioni, generalmente l’utilizzo
di make comprende tre comandi consecutivi da effettuare dall’interno
della cartella del sorgente:
1 ./configure (permette la preconfigurazione del codice e verifica
eventuali precondizioni; pu` essere spesso omesso anche se ` un
o e
passaggio caldamente consigliato).
2 make (compila effettivamente i sorgenti).
3 make install (trasferisce gli eseguibili ottenuti nelle cartelle di
sistema al fine di poterli eseguire come software dello stesso)
Spesso durante la compilazione ` possibile trovare errori a causa di una
e
libreria mancante. In questi casi il compilatore dar` un messaggio
a
d’errore indicando quale file manca (in genere un file con estensione .h):
per risolvere il problema basta usare il comando apt-file (visto nella
precedente lezione) per trovare il pacchetto contenente quel determinato
file e rilanciare il comando make per la compilazione.
3 / 16
4. Lezione Cinque: Advanced Using
Creazione di un pacchetto DEB
Creazione di un pacchetto DEB
`
E l’operazione mediante la quale si ottengono pacchetti .deb a partire da
sorgenti. Una tale operazione avviene mediante l’utilizzo del gi` a noi noto
a
strumento dpkg. Si utilizzer`, quindi il comando:
a
dpkg -b nomecartella
La cartella indicata in nomecartella dovr`, a sua volta, contenere una cartella
a
chiamata DEBIAN nella quale dovr` essere presente un file detto control
a
(indicante dipendenze, incompatibilit` e varie altre informazioni) ma che potr`
a a
contenere anche altri file (script postinst, prerm e un eventuale conffile per le
configurazioni).
La cartella indicata in nomecartella dovr` inoltre presentare una struttura
a
interna uguale a quella del sistema in cui si andr` ad installare il software,
a
cosicch´ dpkg potr` sapere ove inserire i vari file.
e a
4 / 16
5. Lezione Cinque: Advanced Using
Tecniche Avanzate
Tecniche Avanzate
Risoluzione di problemi inerenti i gruppi di sistema
Spesso risulter` necessaria la creazione di nuovi gruppi o l’aggiunta di utenti ad un
a
gruppo. Tutti i dati inerenti i gruppi si trovano all’interno del file /etc/group.
Comandi utili in tal senso saranno:
addgroup opzioni utente gruppo : aggiunge un nuovo gruppo o un nuovo utente
o entrambi al sistema in base alle opzioni specificate.
groupdel group : cancella un gruppo.
groupmod opzioni group : modifica le informazioni inerenti il gruppo group.
Risoluzione di problemi inerenti il path di sistema e le variabili
Risoluzione di problemi inerenti il path di sistema e le variabili Pu` spesso risultare
o
utile visualizzare o modificare il path di sistema e le sue variabili dette anche ”variabili
d’ambiente“. I file in cui ` contenuto il path di sistema sono /etc/profile (path
e
generale) e ∼/.profile (path per l’utente). Comandi utili saranno:
set : visualizza l’elenco delle variabili d’ambiente
export nomevariabile = valore : imposta una variabile d’ambiente. Eventuali altre
variabili (non d’ambiente ma solo per la shell in uso) possono essere definite mediante
la notazione “nomevariabile = valore” e richiamate mediante $nomevariabile.
5 / 16
6. Lezione Cinque: Advanced Using
Tecniche Avanzate
Tecniche Avanzate
Risoluzione di problemi inerenti i dischi
Nel caso di aggiunta o rimozione di partizioni del disco o dell’installazione di nuovi
hard-disk sul sistema ` utile conoscere l’esistenza e la sintassi di due particolari file:
e
/etc/fstab : contiene informazioni statiche sui dischi che vengono lette dai
programmi al fine, ad esempio, di montare in automatico i dischi in esso contenuti
(comando mount -a). La sintassi di tale file pu` essere facilmente compresa leggendo
o
la descrizione dal man. /etc/mtab tiene nota dei filesystem attualmente montati.
Note: dump ` un comando
e
che determina di quali file sia
necessario avere un backup;
fsck controlla e ripara filesystem
di tipo ext2 o ext3. Per montare
automaticamente all’avvio
partizioni windows inserire in
fstab la riga:
device mountpoint ntfs-3g
default 0 0
6 / 16
7. Lezione Cinque: Advanced Using
Tecniche Avanzate
Tecniche Avanzate
Risoluzione di problemi inerenti i Moduli del Kernel
Un modulo ` uno speciale insieme di funzionalit` di sistema operativo che possono
e a
`
essere inserite o rimosse cos` da potenziare o alleggerire il sistema stesso. E spesso
ı
necessario agire sui moduli nel kernel. Tali procedure possono essere svolte tramite
l’utilizzo di specifici comandi:
modprobe opzioni modulo : permette di aggiungere o rimuovere moduli del
kernel.
insmod nomefile : inserisce nel kernel il modulo identificato da nomefile (i
moduli hanno in genere estensione .ko).
rmmod nomemodulo : rimuove dal kernel il modulo identificato da nomemodulo.
`
E utile conoscere l’esistenza di:
/etc/modules : qui vengono inseriti i moduli di cui si vuole forzare l’inserimento nel
sistema all’avvio dello stesso.
/etc/modprobe.d/blacklist : qui vengono inseriti i nomi dei moduli di cui si vuole
evitare il caricamento all’avvio e che il sistema altrimenti caricherebbe in automatico.
/etc/modprobe.d/ : ` una cartella nella quale ` possibile specificare le opzioni da
e e
passare ai moduli; ci` pu` esser fatto inserendovi un file (con lo stesso nome del
o o
modulo da gestire) contenente le opzioni da passare.
7 / 16
8. Lezione Cinque: Advanced Using
Tecniche Avanzate
Tecniche Avanzate
Risoluzione di problemi inerenti l’audio
Nel caso di problemi con l’audio, ci vengono in aiuto vari comandi (supponendo di
usare un motore alsa: Advanced Linux Sound Architecture), quali:
alsamixer : permette di gestire l’equalizzatore di sistema (con aiuto semigrafico).
amixer : permette di gestire l’equalizzatore di sistema (a meno di auto grafico).
alsactl store : permette di salvare la configurazione corrente dell’equalizzatore.
alsaconf : realizza una configurazione di base per il sistema audio.
Tutte le configurazioni per alsa vengono salvate all’interno del file:
/etc/modprobe.d/alsa-base che pu` essere modificato al fine di adattarlo al sistema
o
in uso.
Risoluzione di problemi inerenti le schede Wireless
Non sono spesso di semplice risoluzione e richiedono spesso l’inserimento di nuovi
moduli nel kernel o lo scaricamento di driver dai siti dei produttori. Casi estremi
richiedono l’utilizzo del software ndiswrapper che permette l’emulazione dei driver per
le schede wireless usando i driver delle stesse realizzati per linux. L’utilizzo di
ndiswrapper ` differente in base alla specifica scheda e viene, comunque, ampiamente
e
spiegata nelle documentazioni allegate allo stesso.
8 / 16
9. Lezione Cinque: Advanced Using
Tecniche Avanzate
Tecniche Avanzate
Risoluzione di problemi inerenti le webcam
Molte sono ormai supportate su linux. Possono spesso richiedere l’utilizzo di driver
specifici; i pi` usati risultano essere i driver della linea gspca e quelli di tipo uvcvideo.
u
Risoluzione di problemi inerenti le schede video
Non comportano, generalmente, molti problemi essendo praticamente ormai realizzati
da tutti i produttori i driver per Linux. In genere basta scaricare i driver dai siti dei
produttori ed installarli seguendo le specifiche procedure.
Utile ` in questi casi il file /etc/X11/xorg.conf nel quale ` possibile specificare
e e
opzione per la configurazione della scheda video (per il server X video) ma anche di
dispositivi quali: tastiera, mouse, touchpad e monitor.
Risoluzione di problemi inerenti la configurazione di modem o router
Sono spesso abbastanza semplici da configurare. Si consiglia l’installazione dei
pacchetti: ppp, pppconfig, pppoe, pppoeconf, pppstatus. Lanciando da shell il
software pppoeconf esso configurer` in pochi passi qualunque modem collegato via
a
ethernet. Si sconsiglia l’uso di modem USB che risultano spesso mal supportati.
9 / 16
10. Lezione Cinque: Advanced Using
HowTo
Modificare le impostazioni di GRUB
HowTo: Modificare le impostazioni di GRUB
Le impostazioni di GRUB sono contenute nel file /etc/default/grub. Per modificare
tale file sono necessari i diritti da superutente. Le opzioni principali sono le seguenti:
GRUB DEFAULT: indice della linea del grub in cui apparir` all’avvio il selezionatore
a
`
(la barra bianca). E importante sottolineare che l’indice del primo elemento ` e
zero.
GRUB TIMEOUT: numero di secondi del conto alla rovescia al boot che viene
annullato se si preme qualsiasi tasto.
Una volta effettuate tutte le modifiche ` necessario salvare il file ed eseguire il
e
comando update-grub da superutente.
10 / 16
11. Lezione Cinque: Advanced Using
HowTo
Rimuovere vecchie versioni del Kernel
Rimuovere vecchie versioni del Kernel
Spesso la lista del boot-loader diventa molto lunga a causa degli aggiornamenti di
`
versione del kernel Linux. E buona norma cancellare le versioni troppo vecchie in
modo da tenere ordinato il men` del GRUB.
u
Rimuovere una versione del Kernel ` semplice: basta disinstallare il pacchetto
e
corrispondente. Il nome dei pacchetti contenenti i kernel su Ubuntu/Debian hanno un
nome del tipo:
linux-image-NUMERO VERSIONE-generic
Ad esempio, un nome potrebbe essere linux-image-2.6.31-14-generic.
`
E importante non rimuovere il kernel attualmente in uso. Per scoprire la versione del
kernel corrente basta usare il comando:
uname -r
che dar` un output del tipo 2.6.31-20-generic.
a
11 / 16
12. Lezione Cinque: Advanced Using
HowTo
Installare Codec Non-Free
HowTo: Installare Codec Non-Free
Aggiungete il repository Medibuntu:
sudo wget --output-document=/etc/apt/sources.list.d/medibuntu.list
http://www.medibuntu.org/sources.list.d/$(lsb release -cs).list && sudo
apt-get --quiet update && sudo apt-get --yes --quiet
--allow-unauthenticated install medibuntu-keyring && sudo apt-get
--quiet update
Aggiungete la chiave GPG per il repository:
sudo apt-get update && sudo apt-get --yes -q --allow-unauthenticated
install medibuntu-keyring && sudo apt-get update
Installate i non-free codecs:
sudo apt-get install non-free-codecs
Nel caso in cui l’installazione fallisse scrivete (ed eseguite):
sudo apt-get install libxine1-ffmpeg libarts1-mpeglib libarts1-xine
libakode2-mpeg
12 / 16
13. Lezione Cinque: Advanced Using
HowTo
Reinstallare GRUB
HowTo: Reinstallare GRUB
Avviare il PC con la live di Ubuntu. Dare un’occhiata alla tabella delle
partizioni per trovare la root di Ubuntu sul proprio disco fisso (la partizione che
di solito si monta nella cartella /). Se si ha solo una partizione a parte quella di
Windows (come Ubuntu fa in automatico) ` sicuramente quella (si pu`
e o
controllare tutto tramite GParted).
1) Apri la shell
2) Crea una cartella e chiamala come preferisci (ad esempio disk)
mkdir disk
3) Supponendo che la partizione di root di Ubuntu dia /dev/sda1 (la tua sar`
a
quasi sicuramente diversa) scrivi:
mount /dev/sda1 disk
4) Adesso scrivi (serve a far vedere le periferiche al chroot):
mount -o bind /dev disk/dev
5) Fai diventare il disco linux la tua root:
chroot disk
13 / 16
14. Lezione Cinque: Advanced Using
HowTo
Reinstallare GRUB
HowTo: Reinstallare GRUB
6) Entra nella cartella del grub:
cd /boot/grub
7) Entriamo nella grub-shell:
grub
8) Indichiamo dove sta il disco al grub (nel mio caso sda1 si tradurrebbe in (hd0,0) in
pratica traduci come a=0, b=1 ed inoltre siccome grub conta le partizioni a partire da
zero ed io sono nella prima partizione (inquanto sda1) dopo la virgola metto uno 0;
se fosse stato sda2 avrei scritto (hd0,1) e se fosse stato sdb1 avrei scritto (hd1,0);
in breve do il comando:
root (hd0,0)
9) Con la stessa logica di scrittura di prima:
setup (hd0)
10) quit
A questo punto esci dalla shell di linux e riavvia.
`
E importante prestare attenzione utilizzare versioni live a numero di bit uguale a quello
della versione installata. Rimane consigliabile usare una live della versione stessa
installata sul sistema.
14 / 16
15. Lezione Cinque: Advanced Using
HowTo
USB e VirtualBox
HowTo: USB e VirtualBox
Accade spesso che VirtualBox non riesca automaticamente a fornire al
sistema Host un accesso diretto (in lettura e scrittura) alle periferiche
USB.
Tutto ci` ` dovuto al fatto che l’utente che installa il software non
oe
appartiene al gruppo degli utilizzatori di VirtualBox autorizzati.
Al fine di concedere l’accesso alla macchina bisogna quindi eseguire:
sudo add group user vboxusers
Avere accesso diretto alle periferiche USB pu` essere molto utile nel caso
o
in cui non si riesca a trovare alcun driver in grado di gestire la specifica
preferisca e si sappia che il sistema host invece ` dotata di driver.
e
15 / 16
16. Lezione Cinque: Advanced Using
Help
Help
Nel momento in cui ci si trovi ad effettuare operazioni di configurazione o di
compilazione da sorgenti, saranno quasi sempre presenti file di nome readMe oppure
install che forniranno le istruzioni su come procedere. Un modo semplice per risolvere
qualsivoglia problema ` chiedere aiuto alla rete tramite l’utilizzo di forum specializzati,
e
blog o tutorial. Consigliamo qui solo un certo numero di siti di interesse; ognuno, in
seguito, con la sua personale esperienza potr` scegliere quelli che gli sembrano i
a
migliori.
http://forum.ubuntu-it.org: forum ufficiale di supporto al progetto
http://ubuntuforums.org: portale contenente i riferimenti a tutti i siti a supporto del progetto
http://www.ubuntu-it.org: versione italiana del sito ufficiale di Ubuntu
http://www.linuxfoundation.org: sito ufficiale della fondazione linux
http://www.linux.com:sito di supporto alla comunity linux versione italiana ` http://www.linux.it
e
http://www.debianizzati.org: sito di supporto alla comunity debian - molto utile anche per utenti ubuntu
http://www.debianitalia: come sopra, anch’esso molto importante
http://www.ziobudda.net: importante portale di informazione diretta agli utenti linux
http://linuxos.pensieroartificiale.com: forum di riferimento per questo corso ma che rimarr` attivo anche in seguito
a
Nota: quantunque si richieda aiuto su un forum specializzato si consiglia il rispetto della Netiquette (buona educazione), basta salutare e
presentarsi se si ` nuovi del forum e comunque non offendere altri utenti; si consiglia inoltre di postare l’output del comando dmesg
e
possibilmente evidenziando le righe di interesse o selezionando queste tramite la combinazione di dmesg e grep attraverso pipe.
16 / 16