Old:Dual Boot Linux-Windows: differenze tra le versioni

Nessun cambiamento nella dimensione ,  2 dic 2005
m
Inversione di lettere
Nessun oggetto della modifica
m (Inversione di lettere)
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]]
4

contributi