Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

come cambiare le risposte del kernel alll'avvio??

Per tutti i tuoi problemi Linux entra qui e risolvili!

Moderatori: gunter, zendune

come cambiare le risposte del kernel alll'avvio??

Postdi fe_caesar » 24/06/04 14:51

Ciao a tutti,
volevo sapere (+ per divertimento che per necessità :lol: )
se era possibile(e se si come) cambiare le risposte del kernel all'avvio; ovvero tutti gli "OK", i "FALLITO" e i "SUPERATO", es:

[ OK ]
[OK ]
[ OK ]
[ FALLITO ]
[ SUPERATO]

Ciao e grazie per le risp!
Se la Micro$oft fabbricasse tostapane?
Ogni volta che compri il pane, devi comprare il tostapane. Non ci sarebbe bisogno di ritirare il tostapane, però lo prenderesti lo stesso, perchè il pane più buono funziona solo con i loro tostapane.
fe_caesar
Utente Junior
 
Post: 88
Iscritto il: 23/08/01 01:00
Località: Roma

Sponsor
 

Postdi Nemok » 24/06/04 15:24

Si può sicuramente, ho visto un ragazzi all'università che al posto degli [OK] ci aveva messo dei [ ;-) ]

Sul come però non saprei dirti... :P
Nel 1968 la potenza operativa di 2 C-64 hanno portato un razzo sulla luna. Oggi la potenza operativa di un Athlon 4000+ viene usata per far girare Windows XP....Qualcosa deve essere andato storto....
--Powered by Debian Sid/unstable on 2.6.10--
Nemok
Utente Senior
 
Post: 1420
Iscritto il: 04/09/01 01:00
Località: Roma

Postdi skapizz » 25/06/04 00:34

mmm... nn voglio dirti una fesseria, ma mi pare che i files in /etc/init.d/ contengono gli script per l'avvio dei vari servizi. Penso che siano loro a stampare durante il boot i vari messaggi relativi all'avvio degli stessi. Le righe che stampano messaggi di stato sicuramente usano il comando # echo -e .
Prova a dare un'occhiata a qualche file e a modificare un pò di echo.
Per i colori ci sono dei codici per la bash, dai un'occhiata qui http://www.fiveanddime.net/ss/bashcolors.sh.txt
Per le path devi controllare in quanto può cambiare da distro a distro.

Spero di essere stato chiaro... ciao e fammi sapere! ;)
-=JaH LoV3=-
skapizz
Utente Junior
 
Post: 28
Iscritto il: 15/06/04 00:30

non /etc/init.d non centra!

Postdi fe_caesar » 25/06/04 19:32

ma mi pare che i files in /etc/init.d/ contengono gli script per l'avvio dei vari servizi.

Allora sotto /etc/init.d ci sono i servizi(e demoni) che linux avvia all'accensione, ma non sembrano essere coinvolti nelle risposte[OK][FALLITO] infatti oltre ad aver fatto un grep generale nella cartella(che non ha dato risultati positivi) mi sono accorto che linux risponde non solo quando avvia i demoni ma anche ad esmpio quando rimonta L'hd in lettura scrittura , quando fa il controllo del disco se qualcosa è andato storto e anche in altre varie occasioni, e queste azioni non centrano nulla con i servizi, ma sono compiti di init !!
Penso che sia proprio init ad avere qualcosa a che fare con ciò, ma fino ad ora non sono riuscito a trovare nulla, e penso che la cartella in cui sia + opportuno cercare sia o /boot/ oppure anche nel file /etc/rc.sysinit o forse altrove boh :roll: !
Perchè non invochiamo l'ORACOLO?? :lol:
Volete che lui non lo sappia?
Se la Micro$oft fabbricasse tostapane?
Ogni volta che compri il pane, devi comprare il tostapane. Non ci sarebbe bisogno di ritirare il tostapane, però lo prenderesti lo stesso, perchè il pane più buono funziona solo con i loro tostapane.
fe_caesar
Utente Junior
 
Post: 88
Iscritto il: 23/08/01 01:00
Località: Roma

Postdi skapizz » 25/06/04 22:20

ma scusa che distro usi? :undecided:
-=JaH LoV3=-
skapizz
Utente Junior
 
Post: 28
Iscritto il: 15/06/04 00:30

Postdi skapizz » 25/06/04 23:03

Il boot avviene tramite una chiamata nel file /etc/inittab ad rc.S

># System initialization (runs when system boots).
>si:S:sysinit:/etc/rc.d/rc.S ----> probabilmente il tuo /etc/rc.sysinit

tramite esso init avvia tutti i servizi, sia quelli per la gestione degli hd (vedi devfsd), sia quelli per la rete (che sono demoni, tipo sshd, samba), stampa(lpd, cups), server grafico (X) etc etc...
Quindi probabilmente è lì che devi cercare. Prova a postare il codice e forse saprò dirti. :)

E comunque dipende dalla distribuzione, perchè ad esempio la slackware fa stampare agli script contenuti in /etc/rc.d/ le informazioni sullo stato di servizi e demoni. Infatti lo stesso rc.S è ad avviare devfsd (optional daemon for managing devfs (the Linux Device Filesystem) che contiene righe di questo tipo:

# Start devfsd if necessary
if [ -r /dev/.devfsd ]; then //se .devfsd read-only
if [ -x /sbin/devfsd ]; then //se /dev/devfsd è eseguibile
echo "Starting devfs daemon: /sbin/devfsd /dev" //stampa "Starting devfs daemon....
/sbin/devfsd /dev //chiamata al demone passandogli i device
fi
fi

Questo è solo un esempio di come fa controlli e stampa quindi i risultati.
Spero di essermi spiegato.
e tante altre. :D
-=JaH LoV3=-
skapizz
Utente Junior
 
Post: 28
Iscritto il: 15/06/04 00:30

Postdi fe_caesar » 26/06/04 16:31

Tutto questo è mooooooolto interessante!!
Ma il problema resta.
Allora ricapitolo:
Uso MDK10.0.
Le differenze tra dist e dist non sono così distinte, ad esempio tra un rc.S ed rc.system non mi sembra un gran cambiamento, comunque anche sulla mia MDK il file rc.sysinit inizializza i devfs ma forse non ne controlla lo stato questo non lo so con certezza. Nel post precendente dicevo solo che in /etc/rc5.d(ad esempio) trovo gli script per avviare solo i demoni(come il server X o xinet o partmon etc..) poi è rc.sysinit che è il runlevel avviato all'accensione li fa partire e magari li controlla etc.. etc.. (questo credo che sia uguale in quasi tutte le versioni, forse precedentemente mi ero spiegato male rispetto a questo rc.d) però anche individuando rc.sysinit come 'il responsabile' non riesco a trovare dove scrive OK o FALLITO eppure gli echo li ho controllati, forse è una variabile d'ambiente?? :-?
Se ti può essere d'aiuto per aiutarmi :D io rc.sysinit lo posto ma facendo 'wc rc.sysinit' restituisce 1138 4703 33314 rc.sysinit, che è un pò tantino, non sò se è il caso di postarlo, posso??(moderatori posso??)
Grazie comunque di tutto l'aiuto che mi state dando per una cosa che potrebbe apparire insignificante ma che forse mi aiuterà(alla fine se ne uscirò fuori vincitore) a capire meglio il mio nuovo OTTIMO systema LINUX!! :)
Se la Micro$oft fabbricasse tostapane?
Ogni volta che compri il pane, devi comprare il tostapane. Non ci sarebbe bisogno di ritirare il tostapane, però lo prenderesti lo stesso, perchè il pane più buono funziona solo con i loro tostapane.
fe_caesar
Utente Junior
 
Post: 88
Iscritto il: 23/08/01 01:00
Località: Roma

Postdi skapizz » 26/06/04 17:57

miii... 1138 righe di rc.sysinit ???? :eeh:
Il mio 235!!!
Prova a mandarmelo per e-mail...
-=JaH LoV3=-
skapizz
Utente Junior
 
Post: 28
Iscritto il: 15/06/04 00:30

Inviato!

Postdi fe_caesar » 26/06/04 18:48

Te l'ho appena inviato!
Ricordati però di rispondere sul forum così chiunque potrà vedere la soluzione al problema(problema?? :D )
ciao e grazie ;)
Se la Micro$oft fabbricasse tostapane?
Ogni volta che compri il pane, devi comprare il tostapane. Non ci sarebbe bisogno di ritirare il tostapane, però lo prenderesti lo stesso, perchè il pane più buono funziona solo con i loro tostapane.
fe_caesar
Utente Junior
 
Post: 88
Iscritto il: 23/08/01 01:00
Località: Roma

Postdi skapizz » 27/06/04 02:26

Come immaginavo in questo file viene formattato l'output di qualsiasi servizio/demone. Proprio dei commenti alla riga 65 dicono:
Codice: Seleziona tutto
# We have to set font before printing message, so we cannot
# use ``action message command'' directly because it prints
# message before executing command


E più sotto:
Codice: Seleziona tutto
action "Setting default font ($SYSFONT): " /bin/unicode_start $SYSFONT
# this is done by unicode_start, but apparently
# "action" filters the output, so it has to be redone


Tramite la funzione action esegue il comando e cattura i messaggi dello stesso, stampandoli poi come lui vuole. :undecided:
Infatti alla riga 434:

Codice: Seleziona tutto
# Remount the root filesystem read-write.
state=`awk '/ \/ / && ($3 !~ /rootfs/) { print $4 }' /proc/mounts`
[ "$state" != "rw" ] && \
  action "Remounting root filesystem in read-write mode: " mount -n -o remount,rw /

Tramite awk mette in state come è montata la partizione root tramite le info in /proc/mounts, e solo se $state diverso da rw (cioè NON è montato in lettura-scrittura) esegue \ action ...... /. Action infatti esegue mount in rw e stampa poi le relative info. "Penso" quindi che in base alle variabili di uscita del processo mount, action stampi ok, fallito o altro. Cerca tra rc.sysconfig se c'è qualke riga che esce al boot, senza cercare però gli [ OK ] , [ FALLITO ] etc etc. E così via in altri servizi/demoni

Ma non mi pare sia finita. Oltre alla action viene usata anche la "gprintf". Dalla riga 96:
Codice: Seleziona tutto
# Do the following while waiting for an 'I' from the user...
{
# Print a banner. ;)
# C-like escape sequences don't work as 2nd and up parameters of gprintf,
# so real escap chars were written
PRODUCT=`sed "s/.*release \([0-9.]*\).*/\1/g" /etc/mandrake-release 2> /dev/null`
SYSTEM=${SYSTEM=Mandrakelinux}
if [ "$BOOTUP" != "serial" ]; then
--> gprintf "\t\t\tWelcome to %s" "`echo -en '\\033[1;36m'`$SYSTEM`echo -en '\\033[0;39m'` $PRODUCT"
else
--> gprintf "\t\t\tWelcome to  %s" "$SYSTEM $PRODUCT"
fi
echo -en "\r"
echo

if [ "$PROMPT" != "no" ]; then
---> gprintf "\t\tPress 'I' to enter interactive startup."
 echo -en "\r"
 echo
 sleep 1
fi


Una delle prime due ti stampa all'inizio il Welcome... l'altra poi dovrebbe stamparti la riga Press I to enter interactive startup.
E ce ne sono tante e tante altre di gprintf!!!

Ti trovi con il tuo boot??? Ti stampa queste righe? Se si... è proprio qui che dovresti mettere le manine. Con shell scripting come te la cavi?

Disponibile a darti una mano. 8)
-=JaH LoV3=-
skapizz
Utente Junior
 
Post: 28
Iscritto il: 15/06/04 00:30

[ ;-) ]

Postdi fe_caesar » 27/06/04 12:02

Ci sono RIUSCITOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
:lol: :lol:
Dopo anni di prigionia Micro$oft è stato difficile modificare qualcosa nell'avvio del sistema
che fosse fuori dal default ma ci sono RIUSCITOOO!!
Allora ho trovato guardando tra gli script di avvio /etc/init.d/partmon delle funzioni poco convincienti: echo_success ed echo_failure
nello stesso file c'era scritto che
Codice: Seleziona tutto
# Source function library.
. /etc/rc.d/init.d/functions

Analizzando il file functions l'ho trovatooooooooooo!!!!

Codice: Seleziona tutto
echo_success() {
  [ "$BOOTUP" = "color" ] && $MOVE_TO_COL
  echo -n "["
  [ "$BOOTUP" = "color" ] && $SETCOLOR_SUCCESS
  gprintf "  OK  "
  [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
  echo -n "]"
  echo -ne "\r"
  return 0
}

echo_failure() {
  [ "$BOOTUP" = "color" ] && $MOVE_TO_COL
  echo -n "["
  [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
  gprintf " FAILURE '"
  [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
  echo -n "]"
  echo -ne "\r"
  return 1
}

e ci sono anche le funzioni echo_passed ed echo_warning!!!!!!!!!!!!!!
quindi MISTERO RISOLTO
(utile anche il file /etc/sysconfig/init dove è impostato la colonna in cui scrive [ OK ])


Grazie comunque a tutti coloro che mi hanno aiutato_GRAZIE (Nemok e Skapizz)
Se la Micro$oft fabbricasse tostapane?
Ogni volta che compri il pane, devi comprare il tostapane. Non ci sarebbe bisogno di ritirare il tostapane, però lo prenderesti lo stesso, perchè il pane più buono funziona solo con i loro tostapane.
fe_caesar
Utente Junior
 
Post: 88
Iscritto il: 23/08/01 01:00
Località: Roma

Postdi Nemok » 27/06/04 12:46

Ottimo fe_caesar, complimenti! ;)
Nel 1968 la potenza operativa di 2 C-64 hanno portato un razzo sulla luna. Oggi la potenza operativa di un Athlon 4000+ viene usata per far girare Windows XP....Qualcosa deve essere andato storto....
--Powered by Debian Sid/unstable on 2.6.10--
Nemok
Utente Senior
 
Post: 1420
Iscritto il: 04/09/01 01:00
Località: Roma

Postdi skapizz » 27/06/04 14:24

Ma ogni script in /etc/init.d/ contiene quelle funzioni o uno solo formatta l'output per tutti?
-=JaH LoV3=-
skapizz
Utente Junior
 
Post: 28
Iscritto il: 15/06/04 00:30

Postdi hexen » 27/06/04 17:28

non credo di aver capito qual è la distro in questione :)
hexen
Utente Senior
 
Post: 1340
Iscritto il: 15/07/02 11:10

Postdi disgrazia » 27/06/04 18:14

fe_caesar ha scritto:Allora ricapitolo:
Uso MDK10.0.

;)
disgrazia
Download Admin
 
Post: 708
Iscritto il: 08/07/02 22:16

distro??

Postdi fe_caesar » 27/06/04 18:32

Allora la mia distro è Mandrake 10.0(official ed)
però credo proprio che il file /etc/rc.d/init.d/functions sia presente anche nelle altre dist, vi risulta :?:
Comunque rispondendo a skapizz mi sono accorto che negli altri script in init.d l'unico(almeno mi sembra) ad avere la func echo_success è partmon, però se andiamo ad analizzare nuovamente il file /etc/rc.sysinit(o rc.S a seconda delle distro) troviamo che queste funzioni(echo_successo echo_failure echo_passed etc...) sono usate + e + volte!
Quindi ne deduco che mentre nello script parmon(che tra l'altro è molto corto ed è per questo che io lo stavo leggendo inizialmente) l'output di successo o insuccesso del demone è regolato dallo script stesso, con tutti gli atri demoni(o quasi) e con tutte le altre operazioni di mount umount sui filesistem è rc.system che stampa l'output(quindi la strada che avevamo preso inizialmente di controllare rc.S era giusta solo che data la mole del file non mi ero accorto di tali funzioni!!).
Ciao a tutti.
ps: mi dite se percaso funge anche con le altre distro??
Se la Micro$oft fabbricasse tostapane?
Ogni volta che compri il pane, devi comprare il tostapane. Non ci sarebbe bisogno di ritirare il tostapane, però lo prenderesti lo stesso, perchè il pane più buono funziona solo con i loro tostapane.
fe_caesar
Utente Junior
 
Post: 88
Iscritto il: 23/08/01 01:00
Località: Roma

Postdi hexen » 27/06/04 20:15

:oops:

cmq io ho appena installato gentoo e ho visto al boot gli ok verdi. Appena ho un po' di tempo vedo se è applicabile il cambio delle scritte ;)
hexen
Utente Senior
 
Post: 1340
Iscritto il: 15/07/02 11:10

Re: distro??

Postdi disgrazia » 27/06/04 22:15

fe_caesar ha scritto: mi dite se percaso funge anche con le altre distro??

Su Debian ognuno degli script in /etc/init.d/ che avviano i diversi demoni provvede in maniera autonoma a stampare l'output. Quindi per modificare i messaggi occorrerebbe modificare tutti gli script.
disgrazia
Download Admin
 
Post: 708
Iscritto il: 08/07/02 22:16

Postdi skapizz » 28/06/04 14:39

con tutti gli atri demoni(o quasi) e con tutte le altre operazioni di mount umount sui filesistem è rc.system che stampa l'output(quindi la strada che avevamo preso inizialmente di controllare rc.S era giusta solo che data la mole del file non mi ero accorto di tali funzioni!!).


fa_caesar, quindi era giusta la mia interpretazione. :)
Penso che cmq la maggior parte delle distro che danno questo tipo di output, usino questo metodo. Per altre invece è come dice "disgrazia", stampa info tramite gli script dei demoni stessi semplicemente usando delle echo! (debian e slackware) :diavolo:

Ma secondo voi, un boot di questo tipo, con la formattazione dell'output, è più lento o meno di uno che usa delle semplici echo?
Secondo me più lento... :undecided:
-=JaH LoV3=-
skapizz
Utente Junior
 
Post: 28
Iscritto il: 15/06/04 00:30


Torna a Software Linux


Topic correlati a "come cambiare le risposte del kernel alll'avvio??":


Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti