|
|
Riga 1: |
Riga 1: |
| == Introduzione ==
| | {{stub}} |
|
| |
|
| Questo how-to spiegher� il procedimento da seguire per compilare (alla debian-way) un kernel 2.6.11 con la patch bootsplash.
| | Gli utenti Debian hanno sempre avuto un rapporto difficoltoso con Java, dovuto prevalentemente alla sua licenza che ne ha ostacolato, per molto tempo, l'inserimento nei [[repository]] Debian. |
|
| |
|
| | Tuttavia, a partire dal 17 maggio 2006 disponibile, nei repository [[non-free]], la versione ufficiale Sun del compilatore ed interprete. |
|
| |
|
| == Software richiesto ==
| | Questa guida vuole dare all'utente una visuale il pi� possibile completa dello stato di Java all'interno di Debian, mostrando le soluzioni possibili per la sua installazione e le alternative, passando per la policy relativa a Java ed alle applicazioni scritte con questo linguaggio. |
| In ambiente Debian, ci viene in aiuto il tool '''[[APT]]''' (Advanced Package Tool), che ci fornir� tutto (o quasi) ci� di cui abbiamo bisogno.
| |
| Anzitutto, editiamo il nostro '''/etc/apt/sources.list''' aggiungendo il [[I_repository_ed_il_loro_utilizzo | repository]] bootsplash:
| |
|
| |
|
| <pre>deb http://www.bootsplash.de/files/debian/ unstable main</pre>
| | = La Policy Java = |
| | == Java in Debian == |
| | Lo scopo di Debian � quello di fornire una piattaforma costituita al 100% da software libero. Per questa ragione, quindi, alcuni programmi Java non sono disponibili nella distribuzione standard di Debian: non gi�, certamente, per motivi tecnologici. Al contrario, sono nati diversi progetti collaterali -- subito incorporati nel sistema Debian -- allo scopo di fornire un'infrastruttura Java, con licenza "libera". |
|
| |
|
| Abbiamo poi bisogno delle librerie e/o programmi che utilizzeremo per la compilazione vera e propria:
| | Il 17 maggio 2006, � stato [http://lists.debian.org/debian-devel-announce/2006/05/msg00010.html annunciato] il rilascio dei pacchetti per la versione ufficiale del compilatore ed interprete: quella della Sun. La nota azienda, infatti, fino a quel momento aveva riservato i diritti sul proprio software, [http://www.debian.org/doc/manuals/debian-java-faq/ch5.html impedendo] cos� la libera fruizione della versione ufficiale di Java alla comunit� "open source". Tuttavia, con il rilascio di una nuova licenza -- la [http://download.java.net/dlj/DLJ-FAQ-v1.2.txt DLJ] -- il 16 maggio 2006 la Sun si � aperta al mondo "open source". |
|
| |
|
| <pre>
| | Allo stato attuale, dunque, Debian rende disponibili le seguenti implementazioni Java: |
| PACCHETTO VERSIONE MINIMA COMANDO
| | * Cacao |
| | * Free-java-sdk |
| | * Kaffe |
| | * Javacc |
| | * Gcj |
| | * Sun Java |
| | * Blackdown Java |
|
| |
|
| binutils 2.12 ld -v
| | == Applicazioni scritte in Java == |
| e2fsprogs 1.29 tune2fs
| |
| gcc 2.95.3 gcc --version
| |
| make 3.78 make --version
| |
| module-init-tools 0.9.10 depmod -V
| |
| procps 3.1.13 ps --version
| |
| util-linux 2.10o fdformat --version
| |
| kernel-package
| |
| initrd-tools
| |
| libncurses-dev
| |
| </pre>
| |
|
| |
|
| Ora possiamo procedere al download dei sorgenti del kernel:
| | = Java in Debian = |
| | == Cacao == |
| | == Free-java-sdk == |
| | == Kaffe == |
| | == Javacc == |
| | == Gcj == |
| | == Sun Java == |
| | == Blackdown Java == |
| | == Pacchetti homemade == |
|
| |
|
| <pre># apt-get install kernel-source-2.6.11</pre>
| | = Alternatives = |
|
| |
|
| Con questo comando, [[APT]] scaricher� un archivio .tar.bz2 in '''/usr/src/''', contenente proprio il sorgente del [[kernel]].
| | = Bookmark = |
| | | * [http://www.debian.org/doc/packaging-manuals/java-policy Debian Java Policy] |
| È inoltre necessario scaricare una patch apposita da applicare al kernel:
| | * [http://www.debian.org/doc/manuals/debian-java-faq/ Debian Java Faq] |
| | |
| [http://www.bootsplash.de/files/bootsplash-3.1.6-2.6.11.diff Patch per Kernel 2.6.11] | |
| | |
| In caso si tenti questa procedura con altri kernel, oppure, essendo la pagina soggetta ad aggiornamento, il file risulti inesistente, è possibile scaricare la patch di interesse cercandola in http://www.bootsplash.de/files/
| |
| | |
| ''formato: bootsplash-versione_patch-versione_kernel.diff''
| |
| | |
| == Compilazione ==
| |
| | |
| === Scompattazione e Patch del Sorgente ===
| |
| | |
| Bene, prima di procedere con la compilazione, è necessario applicare la patch bootsplash (vedi sopra) al nostro kernel.
| |
| | |
| Prima di tutto, scompattiamo l'archivio contenente i sorgenti.
| |
| | |
| Per fare ci�, spostiamoci in '''/usr/src/''', e procediamo con la scompattazione':
| |
| | |
| <pre>
| |
| # cd /usr/src/
| |
| # tar -jxvf kernel-source-2.6.11.tar.bz2
| |
| </pre>
| |
| | |
| A questo punto verrà creata una nuova directory, '''/usr/src/kernel-source-2.6.11/'''.
| |
| | |
| Spostiamoci dunque nella nuova directory e applichiamo la patch che abbiamo scaricato:
| |
| | |
| <pre>
| |
| # cd /usr/src/kernel-source-2.6.11
| |
| # patch -p1 < /usr/src/bootsplash-3.1.6-2.6.11.diff
| |
| </pre>
| |
| | |
| Non dovrebbe essere segnalato alcun errore nella patch a questo punto. In caso contrario, rimuoviamo la directory dei sorgenti e ripetiamo la procedura dall'inizio. È importante applicare la patch bootsplash prima di qualunque altra patch, cioè sul kernel debian originale preso da APT.
| |
| | |
| A questo punto, possiamo procedere con la compilazione del kernel.
| |
| | |
| === Configurazione del Kernel ===
| |
| | |
| Anzitutto, configuriamo il kernel stesso:
| |
| | |
| <pre># make menuconfig</pre>
| |
| | |
| Vediamo cosa selezionare, brevemente.
| |
| | |
| Selezioniamo il nostro modello di processore:
| |
| <pre>
| |
| | Processor type and features
| |
| |--- Processor family (Athlon/Duron/K7)
| |
| </pre>
| |
| | |
| | |
| Attiviamo qualche altra opzione per il boot:
| |
| | |
| <pre>
| |
| | Device Drivers
| |
| |--- Block devices
| |
| |------ <*> Loopback device support
| |
| |------ <*> RAM disk support
| |
| |------ (8192) Default RAM disk size (kbytes)
| |
| |------ [*] Initial RAM disk (initrd) support
| |
| </pre>
| |
| | |
| | |
| Attiviamo le opzioni necessarie a mostrare la schermata di boot:
| |
| | |
| <pre>
| |
| | Device Drivers
| |
| |--- Graphics support
| |
| |------ <M> VGA 16-color graphics support
| |
| |------ <*> VESA VGA graphics support
| |
| |------ Console display driver support
| |
| |--------- [*] VGA text console
| |
| |--------- [*] Video mode selection support
| |
| |--------- <*> Framebuffer Console support
| |
| |------ Bootsplash configuration
| |
| |--------- [*] Bootup splash screen
| |
| </pre>
| |
| | |
| Ricordiamoci ovviamente di indicare, tra i [http://it.wikipedia.org/wiki/Filesystem Filesystem], quelli che utilizziamo sulla nostra macchina in aggiunta a quello ''ROM'', che viene utilizzato per le immagini initrd, le schede che abbiamo, etc...
| |
| | |
| Se stiamo ricompilando un kernel ovviamente sono cose che non si dovrebbero dimenticare!!!
| |
| | |
| === Compilazione con make-kpkg (debian-way) ===
| |
| | |
| Ora che il kernel � configurato, possiamo procedere alla compilazione (debian-way):
| |
| | |
| <pre>
| |
| # make-kpkg clean
| |
| # make-kpkg --initrd --append-to-version -splash binary
| |
| </pre>
| |
| | |
| Prendiamo in considerazione l'ultimo comando:
| |
| | |
| '''make-kpkg''' � uno strumento che ci aiuta a creare kernel pacchettizzati in file binari, con estensione *.deb.
| |
| : --initrd - Crea il RAMDisk iniziale per mostrare l'immagine al boot;
| |
| : --append-to-version -splash - Aggiunge la stringa '-splash' alla versione del kernel che stiamo creando. In questo modo, se stiamo gi� utilizzando un kernel 2.6.11, il nostro nuovo kernel sar� il '2.6.11-splash', cos� in caso di problemi al boot potremo sempre tornare al kernel ''funzionante''.
| |
| : binary - Questo argomento specifica il ''target'' della nostra compilazione:
| |
| | |
| <pre>
| |
| binary specifica che vogliamo compilare kernel_image, kernel_doc, kernel_headers
| |
| e kernel_source
| |
| | |
| kernel_source questo target produce un pacchetto .deb contenente i sorgenti del nuovo
| |
| kernel che stiamo compilando
| |
| | |
| kernel_headers questo target produce un pacchetto .deb contenente gli header inclusi nel
| |
| nuovo kernel
| |
| | |
| kernel_doc questo target produce un pacchetto .deb contenente la documentazione
| |
| relativa al nuovo kernel
| |
| | |
| kernel_image questo target produce un pacchetto .deb contenente il kernel in formato
| |
| binario, con tutti i moduli specificati nella configurazione
| |
| </pre>
| |
| | |
| Una volta terminata la compilazione, troveremo in /usr/src un pacchetto il cui nome sarà qualcosa di molto simile a '''kernel-image-2.6.11-splash_10.00.Custom_i386.deb'''.
| |
| | |
| A questo punto possiamo installare il nostro nuovo kernel!
| |
| | |
| <pre>
| |
| # dpkg -i /usr/src/kernel-image-2.6.11-splash_10.00.Custom_i386.deb
| |
| </pre>
| |
| | |
| Controlliamo la presenza del RAMDisk iniziale. Per fare ciò eseguiamo questo comando:
| |
| | |
| <pre>
| |
| # ls /boot/initrd.img-2.6.11*
| |
| </pre>
| |
| | |
| Se il comando restituisce un errore, creiamo il nostro RAMDisk:
| |
| | |
| <pre>
| |
| # cd /boot/
| |
| # mkinitrd -o /boot/initrd.img-2.6.11-splash 2.6.11-splash
| |
| </pre>
| |
| | |
| == Installazione di Bootsplash ==
| |
| | |
| In questa fase ci viene in aiuto quel repository che abbiamo aggiunto all'inizio al nostro '''/etc/apt/sources.list'''.
| |
| | |
| Aggiorniamo i nostri archivi APT ed installiamo Bootsplash:
| |
| | |
| <pre>
| |
| # apt-get update
| |
| # apt-get install bootsplash sysv-rc-bootsplash bootsplash-theme-tuxinfo-debian
| |
| </pre>
| |
| Attenzione! L'ultimo pacchetto (bootsplash-theme-tuxinfo-debian) è il '''tema che vedremo al boot'''. Per vedere quali temi sono disponibili, diamo il seguente comando:
| |
| | |
| <pre>
| |
| # apt-cache search bootsplash-theme
| |
| </pre>
| |
| | |
| (Suggerimento: conviene inviare l'output in pipe a ''more'' o ''less'', dato che esistono numerosi temi!)
| |
| | |
| Scegliamo in questo caso il tema "tuxinfo-debian".
| |
| | |
| Durante l'installazione comparirà una finestra per la configurazione, che ci chiederà quale immagine utilizzare per il nostro boot.
| |
| | |
| Selezioniamo l'immagine creata in precedenza, cioè '''initrd.img-2.6.11-splash'''.
| |
| | |
| === Errore di post-installazione sysv-rc-bootsplash ===
| |
| Nel caso in cui sysv-rc-bootsplash non riesca a patchare gli scripts di avvio, otterremo un errore del tipo:
| |
| <pre>Testing if patches apply cleanly...
| |
| 4 out of 5 hunks FAILED -- saving rejects to file /etc/init.d/rcS.rej
| |
| Patches would not apply cleanly.</pre>
| |
| In questo caso dobbiamo ovviare al problema manualmente, poich� il pacchetto non riesce a applicare le modifiche necessarie ad abilitare la progress-bar di bootsplash.
| |
| | |
| Procediamo come segue:
| |
| <pre># mkdir /tmp/patch
| |
| # cp /etc/init.d/rc /etc/init.d/rc.originale
| |
| # cp /etc/init.d/rcS /etc/init.d/rcS.originale
| |
| # wget http://ftp.it.debian.org/debian/pool/main/s/sysvinit/sysv-rc_2.86.ds1-1_all.deb
| |
| # dpkg --extract sysv-rc_2.86.ds1-1_all.deb /tmp/patch
| |
| # cp /tmp/patch/etc/init.d/rc /etc/init.d/rc
| |
| # cp /tmp/patch/etc/init.d/rcS /etc/init.d/rcS
| |
| # apt-get install sysv-rc-bootsplash</pre>
| |
| | |
| In poche parole quel che abbiamo fatto non � stato altro che fare una copia di backup degli scripts esistenti, scaricare il vecchio pacchetto sysv-rc (con cui la patch funziona), copiare gli scripts dal pacchetto alla directory corretta (senza installarlo effettivamente) e quindi applicare la patch.
| |
| | |
| === Configurazione del Bootloader ===
| |
| | |
| A questo punto siamo pronti per modificare il nostro bootloader. Facciamo un esempio per i due bootloader più comuni: GRUB e LiLO:
| |
| | |
| Configurazione per GRUB ('''/boot/grub/menu.lst''')
| |
| <pre>
| |
| title Debian GNU/Linux, kernel 2.6.11-splash
| |
| root (hd0,0)
| |
| kernel /boot/vmlinuz-2.6.11-splash root=/dev/hda1 ro bootkbd=it
| |
| initrd /boot/initrd.img-2.6.11-splash
| |
| savedefault
| |
| boot
| |
| </pre>
| |
| | |
| Configurazione per LiLO ('''/etc/lilo.conf''')
| |
| <pre>
| |
| image=/boot/vmlinuz-2.6.11-splash
| |
| label="2.6.11-splash"
| |
| initrd=/boot/initrd.img-2.6.11-splash
| |
| append="splash=silent"
| |
| </pre>
| |
| | |
| Attenzione! Se usate LiLO come bootloader, è necessario aggiornare la sua configurazione con il seguente comando (dopo la modifica di /etc/lilo.conf):
| |
| <pre>
| |
| # lilo
| |
| </pre>
| |
| | |
| == Conclusioni ==
| |
| | |
| Bene, adesso siamo in grado di riavviare la nostra macchina e gustarci un bel bootsplash!
| |
| Nel caso vogliate cambiare tema, dopo aver installato il relativo pacchetto '''bootsplash-theme-*''', basta fare:
| |
| | |
| <pre>
| |
| # dpkg-reconfigure bootsplash
| |
| </pre>
| |
| | |
| Bisogna poi selezionare il nuovo tema che abbiamo installato, di nuovo initrd.img-2.6.11-splash come initrd, ricontrolliamo LiLO / GRUB e riavviamo...
| |
| | |
| Happy Debian!
| |
| | |
| ----
| |
| [[User:Hanska|Hanska]] 20:32, 14 May 2005 (CEST)<br />
| |
| Verificato e esteso: [[Utente:Keltik|keltik]] 05:59, 4 Lug 2006 (EDT)
| |
| | |
| [[Categoria:Kernel]]
| |