| Sondaggio | ||
|
Il kernel avvia per default, come
primo processo e con permessi di
root, /sbin/init, che poi leggendo /etc/inittab fa partire tutti i
processi di avvio.
Questo nome di file è "hardcoded" nel kernel, ma si
può cambiare con la
linea di comando del kernel, col parametro init=nomefile. Esempio se
vuoi dimostrare al mondo che emacs è necessario e
sufficiente fai
"init=/usr/bin/emacs" ;) Anche se fa casino col terminale all'uscita...
Per avere la sh basta quindi dare al kernel
init=/bin/sh
Su lilo devi usare la label che usi per il boot:
linux init=/bin/sh
al prompt.
Se usi grub devi editare la riga con "e" ed appendere init=/bin/sh, poi
fare "b".
Questa cosa funziona anche su altre architetture, non solo su x86, ma si
può evitare proteggendo il bootloader con una password. In
quel caso,
se il bios non è protetto da password, si può
ancora bootare da
dischetto o da cd ed essere root. Se il bios è protetto, si
può sempre
sproteggerlo cancellando la memoria, dopo aver aperto il case. Ecco il
significato di "se posso accedere fisicamente alla macchina posso
essere root".
Se usi questa "feature", la partizione "/" è montata
read-only, per
averla read-write la rimonti, ma poi devi ricordarti di rimontarla
read-only prima di spegnere. Per spegnere mi sa che fare halt non serve
a niente perchè non c'è apmd (potrei sbagliare),
quindi remount
read-only e premi il grande tasto rosso ;)
i console-tools piu'
recenti ( > woody ) includono uno script di init numlock-aware,
per cui
basta decommentare LEDS="+num" nel relatico file di configurazione.
Conviene compilare il modulo vesa e
radeon staticamente per evitare di dover usare l'initrd:
In Console drivers:
[*] VGA text console
[*] Video mode selection support
In Frame-buffer support:
[*] Support for frame buffer devices (EXPERIMENTAL)
<M> VESA VGA graphics console
[*] Advanced low level driver options
<M> 8 bpp packed pixels support
<M> 16 bpp packed pixels support
<M> 24 bpp packed pixels support
<M> 32 bpp packed pixels support
(Ti consiglio a proposito la lettura del framebuffer howto se non l'hai
già fatto)
Dopo di che (installata la doc del kernel) guarda
/usr/share/doc/kernel-doc/Documentation/fb/modedb.txt, anche se non
è
indicato ho trovato che anche il modulo radeon supporta parzialmente lo
standard per i modi video.
Dopo varie prove tra modalità supportate e non, ho impostato
video=radeon:1024x768@60 come parametro del kernel, niente di
documentato ma con la mia radeon funziona.
Puoi comunque provare i vari modi supportati usando fbset dopo aver
copiato /usr/share/doc/fbset/examples/fb.modes.ATI in /etc/fb.modes.
Con fbset riesco a fare andare il framebuffer anche 1280x1024 ma i
caratteri sono troppo piccoli sul mio 17 pollici.
Poi ho messo uno script all'avvio che in fase di boot porta il refresh
a 74Hz (con 60Hz avverto un forte fastidio, ma è soggettivo
molti non
notano la differenza (beati loro)). Questo perchè non mi
parte il fb se
dò video=radeon:1024x768@74 come parametro al kernel.
Oppure ti scordi il modulo radeon ed installi semplicemente il vesafb
(statico) ma perdi tutta l'accelerazione in console, e se leggi molti
man (spero che tui lo faccia) la differenza è abissale.