Old:Compilazione Kernel 2.6.11 con Bootsplash: differenze tra le versioni

m
Riga 1: Riga 1:
{{stub}}
==Contatti==
Pbuilder � uno strumento che permette di creare un ambiente pulito per la compilazione e il test di pacchetti Debian. Inoltre pu� essere usato anche per effettuare i backport, compilazioni particolari e tutto quello che pu� richiedere l'uso di un ambiente pulito e controllato.


= Installazione =
: Antonio (The_Noise) Ingargiola
Pbuilder �, ovviamente, contenuto in Debian:
: Indirizzo email: debian at fastwebnet dot it
<pre>
: Indirizzo jabber: the_noise@jabber.linux.it
# apt-get install pbuilder
</pre>


= Configurazione e Opzioni =
== Guide sul wiki ==
Normalmente non sono necessarie configurazioni particolari, osserviamo, perci�, le opzioni pi� importanti:
* http://guide.debianizzati.org/images/swirl.png [[Guida a Grub]]
* [[Usare Fotocamere Digitali]]
* [[Antispam in Evolution con Bogofilter]]
* [[Installare i driver eagle-adsl]]
* [[Modem adsl Telindus ND220]]
* [[Bash tips]]
* [[Debian Kernel Howto]]
* [[Note sull'installazione di Debian]]
* [[Esempio configurazione kernel]]
* [[Low-latency 2.6 kernel per applicazioni audio realtime]]
* [[Udev e Debian]] ''in collaborazione con [[Utente:Tindal|Tindal]]''
* [[Script: Confronto Configurazioni Kernel]]
* [[Damn Small Linux su chiavetta usb]]
* [[Gestire gli HD: stato di salute, badblocks e ripristino dati]]
* [[Gimp: rendere un logo trasparente]]
* [[Ekiga: installazione e configurazione]]
* [[Patch Con Kolivas: incrementare le prestazioni desktop]]
* [[ifplugd: connessione automatica]]
* [[LaTeX e Vim]]


== pbuilder ==
== Altri contributi minori ==
; --basetgz [base.tgz] : permette di indicare una locazione, per il [[tarball]] dell'ambiente da gestire, diverso da quello di default
* [[Condividere la connessione a internet]]
; --buildplace [location of build] : permette di specificare un directory, diversa da quella di default, dove ricreare l'ambiente ed eseguire le compilazioni
* [[Colorare bash]]
; --mirror [mirror location] : permette di specificare un [[mirror]] Debian diverso da quello predefinito
; --othermirror [other mirror location in apt deb-line format, delimited with | signs] : permette di aggiungere altri mirror (o repository)
; --http-proxy [proxy] : se � presente un proxy http nella rete, � possibile gestirne l'accesso (nella forma http://username:password@server)
; --distribution [distribution(potato|woody|sarge|sid|etch|experimental)] : imposta la distribuzione
; --buildresult [location-to-copy-build-result] : permette di specificare una directory diversa in cui posizionare i pacchetti creati
; --aptcache [location of retrieved package files] : permette di specificare una directory in cui immagazzinare i pacchetti debian scaricati (e usati) per soddisfare le dipendenze per la compilazione
; --configfile [configuration file to load] : specifica un file di configurazione alternativo
; --debemail [mail address] : imposta l'indirizzo email
; --debbuildopts [dpkg-buildpackage options] : permette di impostare delle opzioni aggiuntive per il comando ''dpkg-buildpackage'', che si occupa della creazione di un pacchetto Debian a partire dai sorgenti
; --logfile [filename to output log] : specifica un file di log, utile per analizzare con calma i risultati delle compilazioni
; --binary-arch : permette di impostare l'architettura da usare per la creazione dell'ambiente (utile nel caso di supporto per pi� architetture (macchina a 64 bit))
; --save-after-login/--save-after-exec : permette di salvare lo stato della macchina al termine di una sessione interattiva, ricreando il tarball a partire dall'ambiente modificato (usare con attenzione)


== pdebuild ==
== Pagine create come centri di raccolta collaborativa di informazioni ==
; --use-pdebuild-internal :
* [[Installare i driver eci-adsl]]
; --auto-debsign : impone la firma automatica al termine della compilazione del pacchetto
* [[Installare i driver unicorn (BeWAN)]]
; --debsign-k [keyid] : imposta la chiave con cui eseguire la firma del pacchetto
* [[Modem adsl Aethra Starmodem]]


== Azioni ==
== Progetti di traduzione collaborativa ==
; create : creazione di un nuovo ambiente
* [[Pagina di manuale di module-assistant]]
; update : aggiornametno di un ambiene esistente
; build : compilazione
; clean : pulizia di un ambiente
; login : login all'interno di un ambiente
; execute : esecuzione di un comando all'interno di un ambiente
; dumpconfig : mostra a video la configurazione dell'ambiente specificato, utile per le operazioni di debug


== Dove ho messo il naso? ==
* [[Speciale:Contributions/TheNoise|Lista modifiche su wiki]]


= Utilizzo =
== Creazione Ambiente ==
In questo esempio creeremo un ambiente per la distribuzione sid, con i repository Debian '''main''', '''contrib''' e '''non-free'''.


<pre>
== Miei Link ==
# pbuilder create --basetgz /home/maxer/pbuilder/sid.tgz --mirror http://debian.fastweb.it/debian \
=== Elettronica ===
    --othermirror http://debian.fastweb.it/debian contrib non-free --distribution sid \
* [http://qucs.sourceforge.net/index.html Quite Universal Circuit Simulator]
    --debemail maxer@knio.it --binary-arch i386
* [http://www.lis.inpg.fr/realise_au_lis/kicad/ Kicad]
</pre>
* [http://www.geda.seul.org/ gEDA]
* [http://opencircuitdesign.com/ Open Circuit Design]
==== Microcontrollori ====
* [http://linuxgazette.net/issue79/sebastian.html Getting started with PIC 16F84 on GNU/Linux]
* [http://www.linuxfocus.org/Italiano/November2004/article352.shtml Programmazione dei microcontollori AVR con GCC, libc 1.0.4]
* [http://www.rentron.com/Myke4.htm Build Your Own Programmer for the PICMicro with the "ELCheapo"]
* [http://www.captain.at/electronic-index.php Captain Universe - Electronics]
* [http://www.avrfreaks.com/ www.avrfreaks.com]
* [http://www.bobblick.com/techref/projects/picprog/picprog.html Classic PIC Programmer]
* [http://ouwehand.net/~peter/lcd/lcd.shtml How to control a HD44780-based Character-LCD]


Analizzando il comando osserviamo che:
* con '''--basetgz''' impostiamo un percorso diverso per salvare il [[tarball]] che conterr l'immagine del nostro ambiente;
* con '''--mirror''' specifichiamo un mirror italiano, mentre con '''--othermirror''' aggiungiamo anche ''non-free'' e ''contrib'' (allo stesso modo potremmo aggiungere altri repository...);
* con '''--distribution''' impostiamo la distribuzione di cui vogliamo creare l'ambiente;
* con '''--debemail''' impostiamo la nostra email;
* con '''--bynary-arch''' impostiamo l'architettura dei nostri binari (utile nei sistemi a 64 bit, in cui possibile emulare l'architettura a 32 bit ;-).


Pbuilder scaricher� dalla rete tutto il materiale necessario, e creer� l'immagine (potrebbe volerci molto tempo.. quindi � consigliata una bella tazzona di caff�)!
=== Linux Audio ===
==== Pagine introduttive ====
* [http://www.emillo.net/audio_midi Il mondo dell'audio e del MIDI in GNU/Linux]
* [http://ccrma.stanford.edu/planetccrma/software/ Planet CCRMA at home]: qui si trova una lista e una breve descrizione dei principali programmi audio per GNU/Linux.
* '''[http://linux-sound.org/ Sound & MIDI Software For Linux]''': La lista in assoluto pi� completa di tutto il software audio & midi per GNU/Linux, mantenuta dal mitico ''Dave Philips''.


== Aggiornamento Ambiente ==
==== Guide ====
L'aggiornamento di un ambiente � utile per le release diversa da Stable, nelle quali sono spesso presenti degli aggiornamenti, che potrebbero portare ad una modifica delle dipendenze (si pensi, ad esempio, alla migrazione da xfree ad xorg).
* [http://esaracco.free.fr/documentations/linuxaudio/linuxaudio/ How to create music with GNU/Linux]
* [http://www.helgo.net/gavel/linuxmusic/ Mathias Linux Music Page]


Per aggiornare i pacchetti ed il database dei repository, � sufficiente un
==== Sound Processing ====
<pre> # pbuider update --basetgz /home/maxer/pbuilder/sid.tgz</pre>
* [http://www.crca.ucsd.edu/~msp/techniques/latest/book-html/ Theory and Techniques of Electronic Music]
* [http://www.faqs.org/docs/sp/ Introduction to Sound Processing]


== Compilazione di pacchetti ==
==== Recording & Mastering ====
La compilazione pu� avvenire in due modi:
* [http://users.sarai.net/~ish/contents.html Audio Recording on Linux]
* '''Da un pacchetto di sorgenti''', tramite pbuilder
* [http://www.theprojectstudiohandbook.com/directory.htm The Project Studio Handbook]
* '''Dalla directory che contiene i sorgenti''' tramite pdebuild
* [http://jamin.sourceforge.net/en/tutorial.html Mastering with JAMin and Ardour]
* [http://jamin.sourceforge.net/en/loudness.html Mastering tips: Loudness]


=== Da un pacchetto di sorgenti ===
==== Hardware Hacks ====
Questa procedura funziona se si dispone di un pacchetto Debian in formato ''sorgente''... la procedura � usabile, ad esempio, per ricompilare un pacchetto presente in testing o unstable per una distribuzione stable (tecnica chiamata [[backport]]).
* [http://www.djcj.org/LAU/quicktoots/toots/el-cheapo/ El-Cheapo Howto]
* [http://www.dplay.com/dv/balance/balance.html Balancing Act]


<pre> # pbuild build --basetgz /home/maxer/pbuilder/sid.tgz file_0.0-1.dsc </pre>
==== Kernel & Drivers ====
* [http://people.redhat.com/mingo/realtime-preempt/ Realtime-Preemtion]: Patch per ottenere latenze inferiori al ms in GNU/Linux.
* [http://www.ubuntustudio.com/wiki/index.php/Breezy:Rlimits-Aware_PAM Rlimits-Aware_PAM]: nuovo semplice approccio per consentire agli utenti del gruppo audio di eseguire applicazioni realtime. Basta installare il pacchetto e potrete lanciare jack in modalit� realtime!
* [http://members.optusnet.com.au/ckolivas/kernel/ Kernel patch homepage of Con Kolivas]: homepage delle patch ck. Migliorano la responsivit� del sistema da molti punti di vista. Ad esempio potrete sottoporre il sitema a qualsiasi carico (aggiornamento distribuzione, compilazione kernel...) e non noterete mai nessun rallentamento nell'uso interattivo (questo dando la proirit� SCHED_IDLE ai processi pesanti di sfondo).
* [http://ck.kolivas.org/faqs/audio_hints Con Kolivas Audio Hints]: consigli del famoso kernel hacker per ottimizzare il sistema per scopi audio (soprattutto controller IDE e filesystem).
* [http://alsa.opensrc.org/AlsaOpensrcOrg Alsa Wiki]


Questo comando avvier� la compilazione, esattamente secondo le seguenti fasi:
==== Programmi Preferiti ====
# creazione dell'ambiente a partire dal tarball indicato
* [http://www.nongnu.org/om-synth/ Om Synth]
# risoluzione delle dipendenze per la compilazione
* [http://home.jps.net/~musound/whysynth.html WhySynth]
# compilazione
* [http://dssi.sourceforge.net/ DSSI]
# rimozione ambiente creato (definito ''sporco'')
* [http://www.ladspa.org/ LADSPA]
# eventuale firma GnuPG
* [http://aqualung.sourceforge.net/ Aqualung]
* [http://freewheeling.sourceforge.net/ Freewheeling]
* [http://jackit.sourceforge.net/ Jack Audio Connection Kit]
* [http://ardour.org/ Ardour]
* [http://www.hydrogen-music.org/ Hydrogen]


=== Dalla Directory dei sorgenti ===
Questa procedura, a differenza di quella illustrata precedentemente, molto pi usata (almeno nel mio caso) in quanto pu essere applicata direttamente alla directory dei sorgenti (si sta sempre parlando di pacchetti Debian, quindi i sorgenti devono contenere la directory ''debian/'', che gestisce la creazione dei pacchetti.


Una volta posizionati nella directori contenente i sorgenti, � sufficiente eseguire questo comando:
----
<pre> # pdebuild build --basetgz /home/maxer/pbuilder/sid.tgz</pre>
'''Sentiti libero di contribuire e ampliare i contenuto di questo wiki!'''
 
In questo caso, invece, la procedura seguita da pbuilder sar� leggermente diversa:
# esecuzione ''debian/rules clean'' all'interno della directory dei sorgenti
# creazione dell'ambiente a partire dal tarball indicato
# risoluzione delle dipendenze per la compilazione
# compilazione
# rimozione ambiente creato (definito ''sporco'')
# eventuale firma GnuPG
 
==Firma GnuPG==
Pbuilder permette anche la firma con chiave [[GnuPG]], molto utile in quanto evita l'utilizzo di ''deb-sign'', automatizzando il tutto!
L'unico problema (se cos� si pu� definire) � la necessit� di esportare la propria chiave privata ed importarla nel [[keyring]] dell'utente root.
 
==File di Configurazione==
Una pratica diffusa e molto comoda per semplificare l'utilizzo di pbuider sono i file di configurazione: essi permettono, infatti, di specificare direttamente al loro interno i parametri (oltre ad offrirne molti di pi�).
 
Un altro vantaggio, inoltre, consiste nel poter specificare altre distribuzioni (come ubuntu, knoppix, ...) che altrimenti non sarebbero supportate dal pbuilder dispnibile in Debian.
 
I link seguenti portano a dei file di configurazione ad hoc per le distribuzioni indicate:
* [[Pbuilder: Breezy.conf]]
* [[Pbuilder: Dapper.conf]]
 
=Varie=
==Semplifichiamo i comandi con alias==
I comandi da impartire sono spesso complessi e lunghi... in questo caso ci viene in aiuta ''alias'', che permette di creare un nuovo ''comando'', alias di uno pi� complesso.
 
Per fare questo, � sufficiente inserire nel file ''/root/.bashrc'' delle righe simili alle seguenti:
<pre>
# comandi per la compilazione
alias pdebuild-sarge="pdebuild --auto-debsign --debsign-k 34337C08 --buildresult /var/cache/pbuilder/result/stable -- --basetgz /store3/sarge.tgz \
    --mirror http://debian.fastweb.it/debian"
alias pdebuild-etch="pdebuild --auto-debsign --debsign-k 34337C08 --buildresult /var/cache/pbuilder/result/testing -- --basetgz /store3/etch.tgz \
    --mirror http://debian.fastweb.it/debian"
alias pdebuild-sid="pdebuild --auto-debsign --debsign-k 34337C08 --buildresult /var/cache/pbuilder/result/unstable -- --basetgz /store3/sid.tgz \
    --mirror http://debian.fastweb.it/debian"
alias pdebuild-breezy="pdebuild --auto-debsign --debsign-k 34337C08 --buildresult /var/cache/pbuilder/result/breezy -- --basetgz /store3/breezy.tgz \
    --configfile /root/pbuilder-breezy.conf"
 
# automatizziamo al massimo
alias pdebuild-all="pdebuild-sarge; pdebuild-etch; pdebuild-sid; pdebuild-breezy"
 
# aggiornamento
alias pbuilder-update-sid="pbuilder update --basetgz /store3/sid.tgz --mirror http://debian.fastweb.it/debian"
alias pbuilder-update-etch="pbuilder update --basetgz /store3/etch.tgz --mirror http://debian.fastweb.it/debian"
alias pbuilder-update-sarge="pbuilder update --basetgz /store3/sarge.tgz --mirror http://debian.fastweb.it/debian"
alias pbuilder-update-breezy="pbuilder update --basetgz /store3/breezy.tgz --configfile /root/pbuilder-breezy.conf"
 
# automatizziamo al massimo
alias pbuilder-update-all="pbuilder-update-sarge && pbuilder-update-etch && pbuilder-update-sid && pbuilder-update-breezy"
</pre>
I comandi elencati sono, per l'esattezza, quelli che uso io per creare i pacchetti per qualsiasi release Debian ed Ubuntu.
1

contributo