|
|
Riga 1: |
Riga 1: |
| Chi di voi non ha mai visto un boot di linux con lo splash screen attivo , magari su unarivista o da un amico , e ci siamo detti chiss� quanto sia difficile farlo,bene dopo questa guida scoprirete il contrario:
| | ==Personalizzare il prompt== |
|
| |
|
| Mi raccomando occhio a quello che fate dovete essere root per seguire questa guida
| | Dunque come sappiamo bash � un tipo, forse il pi� usato, di shell per linux. Spesso per� c'� la necessit� di amministrare pi� macchine, anche solo all'interno di una rete casalinga. Possiamo riconoscerle certamente dall'hostname, ma se vogliamo fare una cosa anche pi� carina oltre che utile, possiamo colorare il prompt. Per farlo basta editare il file ~/.bashrc. Al suo interno troveremo (se non le abbiamo cancellate in precedenza) delle righe pi� o meno cosi: |
| | |
| inanzitutto se gi� non li abbiamo ci servono i sorgenti del kernel
| |
|
| |
|
| <pre> | | <pre> |
| $wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
| | # Coloriamo bash |
| #cd /usr/src | | if [ "$PS1" ]; then |
| #tar xvfj /path/linux-2.6.10.bz2
| | export PS1="\[\033[1;32m\]\u\[\033[1;37m\]@\[\033[1;31m\]\h\[\033[1;0m\]:\w\$ " |
| #rm linux (in caso avessimo gi� ricompilato questo link � da eliminare , e da ricreare)
| | fi |
| #ln -s linux-2.6.10 linux
| |
| </pre> | | </pre> |
|
| |
|
| poi ci occore la patch per lo splash
| | La sintassi � abbastanza semplice, esploriamo invece i vari comandi: |
|
| |
|
| <pre> | | <pre> |
| # wget http://dev.gentoo.org/~spock/projects/gensplash/archive/fbsplash-0.9.1-2.6.10-rc3-bk6.patch | | u = Il nostro nome utente |
| | @ = il carattere @ |
| | [\033[1;32m\] = cambio il colore in verde |
| | h = hostname |
| | [\033[1;0m\] = colore di default |
| | : = il carattere : |
| | w = directory corrente |
| | $ = $ se siamo user, # se siamo superuser |
| </pre> | | </pre> |
|
| |
|
| Immagino che qulcuno stia dicendo ti sei sbagliato , ma non mi sono sbagliato lo s� che la patch � per il 2.6.10-rc m� questa � la ultima versione disponibile di questa patch e con una minima modifica andr� benone per il nostro scopo
| | Nell'esempio riportato sopra, che � una parte del mio bashrc, possiamo usare bash con la bandiera italiana. Ovviamente potete personalizzarlo come volete, cambiare caratteri, modificare colori e quant'altro. |
| | |
| <pre>
| |
| #mv fbsplash-0.9.1-2.6.10-rc3-bk6.patch linux
| |
| #cd linux
| |
| #patch -p1 < fbsplash-0.9.1-2.6.10-rc3-bk6.patch linux
| |
| </pre>
| |
|
| |
|
| da notare l'errore che ci restituir� patch
| | ==Usare i colori negli script== |
|
| |
|
| ora se ci d� l'errore dobbiamo editare il file che come ho detto poche righe f� crea l'errore
| | Se si vogliono usare spesso i colori negli script bash � molto comodo definire delle variabili mnemoniche alle quali assegnare i codici di ogni colore. Questo pu� essere fatto ad esempio creando un file di nome '''/usr/local/bin/colors''', con il seguente contenuto: |
|
| |
|
| <pre> | | <pre> |
| #vi include/linux/sysctl.h | | #!/bin/bash |
| | export WHITE="\e[1;37m" |
| | export LGRAY="\e[0;37m" |
| | export GRAY="\e[1;30m" |
| | export BLACK="\e[0;30m" |
| | export RED="\e[0;31m" |
| | export LRED="\e[1;31m" |
| | export GREEN="\e[0;32m" |
| | export LGREEN="\e[1;32m" |
| | export BROWN="\e[0;33m" |
| | export YELLOW="\e[1;33m" |
| | export BLUE="\e[0;34m" |
| | export LBLUE="\e[1;34m" |
| | export PURPLE="\e[0;35m" |
| | export PINK="\e[1;35m" |
| | export CYAN="\e[0;36m" |
| | export LCYAN="\e[1;36m" |
| | export Z="\e[0m" |
| </pre> | | </pre> |
| (usate il vostro editor preferito)
| |
|
| |
|
| andate alla riga 138 e subito dopo
| | In questo modo non ci resta che fare un source del file '''/usr/local/bin/colors''' ogni qual volta vogliamo usare i colori. Per fare il source basta inserire: |
|
| |
|
| <pre> | | <pre> |
| KERN_COMPUTE=68, /* adjust timeslices for a compute server */
| | . colors |
| </pre> | | </pre> |
|
| |
|
| aggiungete questa riga
| | in un punto dello script. A questo punto potremo colorare facilmente il nostro output in questo modo: |
| <pre>
| |
| KERN_FBSPLASH=69, /* string: path to fbsplash helper */
| |
| </pre>
| |
| | |
| ok salvate il file , e giunta ora di compilare il nostro kernel.
| |
|
| |
|
| <pre> | | <pre> |
| #make menuconfig
| | echo -e "$LGREEN *** $Z Attenzione: la dir $LGREEN documenti $Z sara' eliminata" |
| </pre> | | </pre> |
| (usate pure il metodo che pi vi aggrada)
| |
|
| |
|
| scegliamo le opzioni che ci servono per il nostro kernel , non scendo nei particolari perch� esula dall argomento trattato da questa guida.
| | che da come risultato nel terminale: |
|
| |
|
| nella sezione Device Driver/Graphic Support
| | <div style="padding: 10px; background-color: black;color: white;"> |
| controlliamo che la voce '''Support for frame buffer devices''' sia impostata come statica
| | <tt><font color="red"> *** </font>Attenzione: la dir <font color="#0FFF2F">documenti</font> sara' eliminata</tt> |
| ovvero * e anche le voci '''VGA 16-color graphics support''' e '''VESA VGA graphics support''' siano sempre settate statiche, mi raccomando non attiviamo la voce '''Logo configuration'''
| | </div> |
| ma attiviamo quella successiva ovvero '''Support for the framebuffer splash'''
| |
|
| |
|
| ok ora finite la vostra configurazione.
| | ;Nota 1: bisogna usare l'opzione '''-e''' con echo per fargli interpretare correttamente i caratteri di escape. |
|
| |
|
| ora partiamo con la compilazione
| | ;Nota 2: la variabile $Z ripristina il colore di default del terminale. |
| | |
| diamo sempre da root il comando
| |
| | |
| <pre>
| |
| #make -j4
| |
| </pre>
| |
| (il -j4 serve per avviare 4 processi di compilazione paralleli, in pratica si ottimizza la compilazione)
| |
| | |
| se non riceviamo errori di sorta procediamo
| |
| | |
| ora se gi� non le abbiamo necessitiamo delle splashutils quindi :
| |
| aggiungiamo nel nostro sources.list il repository
| |
| | |
| <pre>
| |
| deb http://ftp.nluug.nl/ftp/pub/os/Linux/distr/esware/kenny/i386/ ./
| |
| </pre>
| |
| | |
| aggiorniamo il nostro db dei pacchetti
| |
| | |
| <pre>
| |
| #apt-get update
| |
| </pre>
| |
| | |
| e infine installiamo i nostri tools
| |
| | |
| <pre>
| |
| #apt-get install splashutils
| |
| </pre>
| |
| | |
| dopodich� dobbiamo creare il file che conterra la nosta immagine di splash
| |
| | |
| prima per� � meglio se ci creiamo un backup di questo file non si s� mai
| |
| | |
| <pre>
| |
| #cp usr/initramfs_data.cpio.gz usr/initramfs_data.cpio-old.gz
| |
| </pre>
| |
| | |
| ora procediamo ,dobbiamo avere il nostro tema estratto in /etc/splash
| |
| | |
| esempio
| |
| | |
| <pre>
| |
| matrix:~# ls /etc/splash/
| |
| linux
| |
| | |
| matrix:~# ls /etc/splash/linux/
| |
| bootsplash-debblue-1280x1024.jpg
| |
| 1280x1024.cfg vt-debblue-1280x1024.jpg
| |
| </pre>
| |
| | |
| benissimo ora diamo
| |
| <pre>
| |
| #splash_geninitramfs -g usr/initramfs_data.cpio.gz -r 1280x1024 NOME_TEMA
| |
| </pre>
| |
| | |
| sostituite 1280x1024 con lq rsoluzione che usate al boot e NOME_TEMA con il nome del tema che avete scelto e precedentemente etratto in /etc/splash
| |
| | |
| ps controllate il file di configurazione del tema prima di procedere per controllare chepunti alla immagine giusta
| |
| | |
| nel mio caso il file dice:
| |
| <pre>
| |
| # name of the picture file (full path recommended)
| |
| jpeg=/etc/splash/linux/vt-debblue-1280x1024.jpg
| |
| silentjpeg=/etc/splash/linux/bootsplash-debblue-1280x1024.jpg
| |
| </pre>
| |
| | |
| controllo se � davvero cosi
| |
| | |
| <pre>
| |
| matrix:/etc/splash/linux# ls | grep jpg
| |
| bootsplash-debblue-1280x1024.jpg
| |
| vt-debblue-1280x1024.jpg
| |
| </pre>
| |
| | |
| bene possiamo procedere
| |
| | |
| controlliamo per scrupolo se il file davvero contiene l'immagine
| |
| | |
| <pre>
| |
| #ls -l usr/initramfs_data.cpio.gz
| |
| matrix:/usr/src/linux# ls -l usr/initramfs_data.cpio.gz
| |
| -rw-r--r-- 1 root root 125245 2005-01-10 20:53 usr/initramfs_data.cpio.gz
| |
| </pre>
| |
| | |
| benissimo l'immagine c� lo possiamo notare dalla dimensione del file
| |
| | |
| ora ricreiamo l'iimagine del kernel
| |
| | |
| <pre>
| |
| #make -j4 bzImage
| |
| </pre>
| |
| | |
| in seguito creiamo e installiamo i moduli del kernel
| |
| | |
| <pre>
| |
| #make modules && make modules_install
| |
| </pre>
| |
| | |
| se avete gi� un altra versione del kernel 2.6.10 mi raccomando eliminiamo i vecchi moduli
| |
| | |
| bene la configurazione del kernel � finita ora dobbiamo solo copiarlo e modificare lilo/grub
| |
| | |
| <pre>
| |
| #cp System.map /boot/System.map-2.6.10-gensplash
| |
| #cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.10-rc3-ck1
| |
| </pre>
| |
| | |
| ok ora il kernel � installato correttamente non rimane che creare la nostra immagine initrd e siamo quasi al termine
| |
| | |
| <pre>
| |
| #mkinitrd -o /boot/initrd-2.6.10-gensplash.img -r /dev/hdax 2.6.10
| |
| </pre>
| |
| | |
| sostituite hdx con la vostra partizione di boot
| |
| | |
| ora non rimane che modificare lilo/grub
| |
| | |
| <pre>
| |
| #vi /etc/lilo.conf
| |
| image=/boot/vmlinuz-2.6.10-gensplash
| |
| label=2.6.10-gensplash
| |
| read-only
| |
| append="video=vesafb:1280x1024x256 splash=silent,theme:linux"
| |
| initrd=/boot/initrd-2.6.10-gensplash.img
| |
| </pre>
| |
| | |
| allora nella seconda riga occorre sostituire 1280x1024 con la vostra risoluzione , � linux con il nome del tema scelto
| |
| | |
| un altro bel giochino e la voce silent , se lo sostituite con verbose potete vedere i messaggi di boot da subito mentre se lasciate cos� vedrete l'immagine silen ovvero senza messaggi , vi ricordo che se siete in silent potete switchare la visualizzazione in verbose premendo F2
| |
| | |
| ok ora non rimane che rilanciare lilo
| |
| | |
| <pre>
| |
| #lilo -v
| |
| </pre>
| |
|
| |
|
| se non ci mostra errori possiamo riavviare e goderci il nostro splash. | | {{warningbox| I colori sono un caratteristica non POSIX di bash, quindi non usateli se vole fare script portabili}} |
|
| |
|
| Volevo ringraziare ldonesty e debianizzati.org per il supporto nella stesura di questa guida , in caso di problemi postate pure.
| |
|
| |
|
| Autore: debian | | ---- |
| | Autore iniziale: Bedo |
|
| |
|
| [[Categoria:Kernel]] | | Verificata ed estesa da : [[Utente:TheNoise|~ The_Noise]] |