Linux & Open Source : Lezione Cinque

16

Click here to load reader

description

Linux & Open Source : Lezione Cinque

Transcript of Linux & Open Source : Lezione Cinque

Page 1: Linux & Open Source : Lezione Cinque

Lezione Cinque: Advanced Using

Lezione Cinque: Advanced Using

Dario Mazza - Sebastiano Merlino

Universita degli Studi di Catania - Facolta di Ingegneria

13 Maggio 2010

1 / 16

Page 2: Linux & Open Source : Lezione Cinque

Lezione Cinque: Advanced Using

Compilazione da Sorgenti

Compilazione da Sorgenti

La compilazione e il processo mediante il quale si trasforma un semplicefile sorgente (non e altro che un file di testo in un linguaggio diprogrammazione) nel cosiddetto linguaggio macchina, comprensibile allemacchine (composto esclusivamente da sequenze di 0 ed 1).Sebbene questa possa sembrare un’operazione complessa edeffettivamente lo sia nel caso in cui si richiedesse all’utente di utilizzarestrumenti informatici come compilatori, linker, ecc..., risulta realmentesemplice su Linux grazie all’utilizzo di uno speciale comando: make.Tale comando sfrutta l’utilizzo di un file chiamato Makefile che altro noncontiene se non i passi necessari alla compilazione (cio che in effettiandrebbe fatto manualmente), eseguendoli per noi.

2 / 16

Page 3: Linux & Open Source : Lezione Cinque

Lezione Cinque: Advanced Using

Compilazione da Sorgenti

Compilazione da Sorgenti

Sebbene ci si possa trovare in svariate situazioni, generalmente l’utilizzodi make comprende tre comandi consecutivi da effettuare dall’internodella cartella del sorgente:

1 ./configure (permette la preconfigurazione del codice e verificaeventuali precondizioni; puo essere spesso omesso anche se e unpassaggio caldamente consigliato).

2 make (compila effettivamente i sorgenti).

3 make install (trasferisce gli eseguibili ottenuti nelle cartelle disistema al fine di poterli eseguire come software dello stesso)

Spesso durante la compilazione e possibile trovare errori a causa di unalibreria mancante. In questi casi il compilatore dara un messaggiod’errore indicando quale file manca (in genere un file con estensione .h):per risolvere il problema basta usare il comando apt-file (visto nellaprecedente lezione) per trovare il pacchetto contenente quel determinatofile e rilanciare il comando make per la compilazione.

3 / 16

Page 4: Linux & Open Source : Lezione Cinque

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 dasorgenti. Una tale operazione avviene mediante l’utilizzo del gia a noi notostrumento dpkg. Si utilizzera, quindi il comando:

dpkg -b nomecartella

La cartella indicata in nomecartella dovra, a sua volta, contenere una cartellachiamata DEBIAN nella quale dovra essere presente un file detto control(indicante dipendenze, incompatibilita e varie altre informazioni) ma che potracontenere anche altri file (script postinst, prerm e un eventuale conffile per leconfigurazioni).La cartella indicata in nomecartella dovra inoltre presentare una strutturainterna uguale a quella del sistema in cui si andra ad installare il software,cosicche dpkg potra sapere ove inserire i vari file.

4 / 16

Page 5: Linux & Open Source : Lezione Cinque

Lezione Cinque: Advanced Using

Tecniche Avanzate

Tecniche Avanzate

Risoluzione di problemi inerenti i gruppi di sistema

Spesso risultera necessaria la creazione di nuovi gruppi o l’aggiunta di utenti ad ungruppo. 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 Puo spesso risultareutile visualizzare o modificare il path di sistema e le sue variabili dette anche ”variabilid’ambiente“. I file in cui e contenuto il path di sistema sono /etc/profile (pathgenerale) 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

Page 6: Linux & Open Source : Lezione Cinque

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 e utile conoscere l’esistenza e la sintassi di due particolari file:

/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 puo essere facilmente compresa leggendo

la descrizione dal man. /etc/mtab tiene nota dei filesystem attualmente montati.

Note: dump e un comandoche determina di quali file sianecessario avere un backup;fsck controlla e ripara filesystemdi tipo ext2 o ext3. Per montareautomaticamente all’avviopartizioni windows inserire infstab la riga:

device mountpoint ntfs-3g

default 0 0

6 / 16

Page 7: Linux & Open Source : Lezione Cinque

Lezione Cinque: Advanced Using

Tecniche Avanzate

Tecniche Avanzate

Risoluzione di problemi inerenti i Moduli del Kernel

Un modulo e uno speciale insieme di funzionalita di sistema operativo che possonoessere inserite o rimosse cosı da potenziare o alleggerire il sistema stesso. E spessonecessario agire sui moduli nel kernel. Tali procedure possono essere svolte tramitel’utilizzo di specifici comandi:

modprobe opzioni modulo : permette di aggiungere o rimuovere moduli delkernel.

insmod nomefile : inserisce nel kernel il modulo identificato da nomefile (imoduli 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 nelsistema all’avvio dello stesso./etc/modprobe.d/blacklist : qui vengono inseriti i nomi dei moduli di cui si vuoleevitare il caricamento all’avvio e che il sistema altrimenti caricherebbe in automatico.

/etc/modprobe.d/ : e una cartella nella quale e possibile specificare le opzioni da

passare ai moduli; cio puo esser fatto inserendovi un file (con lo stesso nome del

modulo da gestire) contenente le opzioni da passare.

7 / 16

Page 8: Linux & Open Source : Lezione Cinque

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 diusare 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 puo essere modificato al fine di adattarlo al sistema

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 e differente in base alla specifica scheda e viene, comunque, ampiamente

spiegata nelle documentazioni allegate allo stesso.

8 / 16

Page 9: Linux & Open Source : Lezione Cinque

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 piu usati risultano essere i driver della linea gspca e quelli di tipo uvcvideo.

Risoluzione di problemi inerenti le schede video

Non comportano, generalmente, molti problemi essendo praticamente ormai realizzatida tutti i produttori i driver per Linux. In genere basta scaricare i driver dai siti deiproduttori ed installarli seguendo le specifiche procedure.

Utile e in questi casi il file /etc/X11/xorg.conf nel quale e possibile specificare

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 configurera in pochi passi qualunque modem collegato via

ethernet. Si sconsiglia l’uso di modem USB che risultano spesso mal supportati.

9 / 16

Page 10: Linux & Open Source : Lezione Cinque

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 modificaretale file sono necessari i diritti da superutente. Le opzioni principali sono le seguenti:

GRUB DEFAULT: indice della linea del grub in cui apparira all’avvio il selezionatore(la barra bianca). E importante sottolineare che l’indice del primo elemento ezero.

GRUB TIMEOUT: numero di secondi del conto alla rovescia al boot che vieneannullato se si preme qualsiasi tasto.

Una volta effettuate tutte le modifiche e necessario salvare il file ed eseguire il

comando update-grub da superutente.

10 / 16

Page 11: Linux & Open Source : Lezione Cinque

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 diversione del kernel Linux. E buona norma cancellare le versioni troppo vecchie inmodo da tenere ordinato il menu del GRUB.Rimuovere una versione del Kernel e semplice: basta disinstallare il pacchettocorrispondente. Il nome dei pacchetti contenenti i kernel su Ubuntu/Debian hanno unnome 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 delkernel corrente basta usare il comando:

uname -r

che dara un output del tipo 2.6.31-20-generic.

11 / 16

Page 12: Linux & Open Source : Lezione Cinque

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

Page 13: Linux & Open Source : Lezione Cinque

Lezione Cinque: Advanced Using

HowTo

Reinstallare GRUB

HowTo: Reinstallare GRUB

Avviare il PC con la live di Ubuntu. Dare un’occhiata alla tabella dellepartizioni per trovare la root di Ubuntu sul proprio disco fisso (la partizione chedi solito si monta nella cartella /). Se si ha solo una partizione a parte quella diWindows (come Ubuntu fa in automatico) e sicuramente quella (si puocontrollare 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 saraquasi 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

Page 14: Linux & Open Source : Lezione Cinque

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) inpratica traduci come a=0, b=1 ed inoltre siccome grub conta le partizioni a partire dazero 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

Page 15: Linux & Open Source : Lezione Cinque

Lezione Cinque: Advanced Using

HowTo

USB e VirtualBox

HowTo: USB e VirtualBox

Accade spesso che VirtualBox non riesca automaticamente a fornire alsistema Host un accesso diretto (in lettura e scrittura) alle perifericheUSB.Tutto cio e dovuto al fatto che l’utente che installa il software nonappartiene 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 puo essere molto utile nel casoin cui non si riesca a trovare alcun driver in grado di gestire la specificapreferisca e si sappia che il sistema host invece e dotata di driver.

15 / 16

Page 16: Linux & Open Source : Lezione Cinque

Lezione Cinque: Advanced Using

Help

Help

Nel momento in cui ci si trovi ad effettuare operazioni di configurazione o dicompilazione da sorgenti, saranno quasi sempre presenti file di nome readMe oppureinstall che forniranno le istruzioni su come procedere. Un modo semplice per risolverequalsivoglia problema e chiedere aiuto alla rete tramite l’utilizzo di forum specializzati,blog o tutorial. Consigliamo qui solo un certo numero di siti di interesse; ognuno, inseguito, con la sua personale esperienza potra scegliere quelli che gli sembrano imigliori.

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 e http://www.linux.it

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 rimarra attivo anche in seguito

Nota: quantunque si richieda aiuto su un forum specializzato si consiglia il rispetto della Netiquette (buona educazione), basta salutare e

presentarsi se si e nuovi del forum e comunque non offendere altri utenti; si consiglia inoltre di postare l’output del comando dmesg

possibilmente evidenziando le righe di interesse o selezionando queste tramite la combinazione di dmesg e grep attraverso pipe.

16 / 16