È da un poco che uso KDE sul netbook (prima usavo Openbox), e di questo tip segnalatomi da Dieghen89 ne parlavo già sul mio blog quando feci il passaggio di DE. Ora ho trovato il tempo per approfondirlo.
Il tip, come già detto, ci dà il modo di scegliere il DE al grub riuscendo a fare a meno di un login manager. Va detto che le modifiche al inittab valgono anche per altre distro oltre ad Archlinux, e potrete evitare un Login Manager anche se avete un unico DE. Spiego verso la fine.
premessa
Dovete sapere che siamo ad un livello di smanettamento un po' fine a se stesso. Voglio dire, se avete due DE e li alternate spesso, vi conviene un login manager. Io però scelgo di non avere GDM, KDE o SLIM perché non voglio che il sistema carichi un daemon in più per niente, tanto userei l'autologin e visto che ho tempi di boot al di sotto dei 35 secondi, se mai dovessi cambiare ambiente grafico posso riavviare il netbook e sarò operativo in meno di un minuto.Più di un ambiente grafico senza Login Manager
Ho imparato dalla wiki di Arch, che questa distro non dà una grande importanza ai runlevels, ed è proprio questo che ci dà un vantaggio all'ora di saltare i login manager, per arrivare alla sessione in modo veloce.Non riporterò tutta l'intera procedura, dato che sulla wiki di Arch è spiegata molto bene e in chiaro. Vi spiegherò però in cosa consiste.
Praticamente, noi non faremo altro che indicare - nella voce del GRUB - a quale runlevel vogliamo accedere, dopodiché il file /etc/inittab si occuperà di fare l'auto-login (non dovremo mettere nessuna password) e avvierà il Desktop Manager indicato nel file .xinitrc. In quest'ultimo file, a seconda del runlevel in cui ci troviamo, verrà avviato il DE scelto (KDE o Openbox).
Quindi le cose da ritoccare saranno 3, il file inittab, il file .xinitrc - che si trova dentro la home - e la voce del grub: /boot/grub/menu.lst.
Risultato: vi ritroverete dritti dentro la sessione come se avreste messo l'auto autenticazione nel login manager, ma - con la differenza - che risparmierete il tempo perso da gdm, slim o kdm.
Passi da seguire
Prima applicate queste modifiche "Start X at boot: etc/inittab". Nel mio caso devo cambiare il suddetto file in questo modo(ovviamente in NOMEUTENTE va il vostro):id:5:initdefault: [...] x:45:once:/bin/su NOMEUTENTE -l -c "/bin/bash --login -c xinit >/dev/null 2>&1"
Ora tocca fare la modifica dentro .xinitrc, Xinitrc at start up, nel mio caso:
rl=$(runlevel | grep -o [0-6]) case $rl in 4) exec dbus-launch --exit-with-session ck-launch-session openbox-session;; 5) exec dbus-launch ck-launch-session startkde;; esac
dopodiché modifico il grub come indicato. Anzi, replico la voce che ho già, ma aggiungo il numero del runlevel. Nel mio caso ho aggiunto due voci, una con il numero 4 e l'altra con il numero 5. Quest'ultima avvia la sessione di KDE, mentre la prima quella di openbox (come indicato nel file .xinitrc) Ecco l'interno di /boot/grub/menu.lst
[...]
#Kernel-Netbook
title kernel-netbook KDE
root (hd0,0)
kernel /boot/vmlinuz-netbook root=/dev/sda1 elevator=noop rootfstype=ext4 ro 5 quiet
#Kernel-Netbook
title kernel-netbook Openbox
root (hd0,0)
kernel /boot/vmlinuz-netbook root=/dev/sda1 elevator=noop rootfstype=ext4 ro 4 quiet
[...]
come potrete notare quello che avvia kde ha il runlevel 5 mentre quello che avvia openbox ha il runlevel 4.
Ricapitolando
Una volta caricato il kernel e i servizi, all'avvio, il sistema andrà a leggere il file inittab, questo farà il login da solo e leggerà il file xinitrc, il quale - a seconda del runlevel in cui ci troviamo - caricherà il desktop scelto al grub.-------------------------------------
Con un unico DE
Per gli utenti di Arch
Se avete un unico DE la faccenda diventa facile. Tenendo presente le cose imparate prima, dovrete modificare il file inittab da root indicando di fare l'autologin e guardare in .xinitrc come spiegato nella Wiki ufficiale. Dopodiché vi toccherà aggiungere nel file .xinitrc la riga che indica il DE da caricare.suggerimento, nella wiki ufficiale viene riportata questa riga
x:5:once:/bin/su USERNAME -l -c "/bin/bash --login -c /usr/bin/startx >/dev/null 2>&1"io però consiglio questa
x:5:respawn:/bin/su USERNAME -l -c "/bin/bash --login -c xinit >/dev/null 2>&1"Non è che cambi molto, al posto di once c'è respawn e al posto di startx c'è xinit. Diciamo che rende le cose più dirette ma sono preferenze.
Per utenti di Debian
ringrazio Doc per avermi passato queste righe:Per lo startx automatico:
$ nano .bash_profilee copiate quanto segue
if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then startx fi
Per l'autologin (non fatto da Doc, poiché è contrario):
# nano /etc/inittabe commentare con # la stringa
1:2345:respawn:/sbin/getty 38400 tty1Quindi, sotto la precedente, aggiungere la seguente riga
1:2345:respawn:/bin/login -f YOUR_USER_NAME tty1 </dev/tty1 >/dev/tty1 2>&1ovviamente, modificando in modo opportuno YOUR_USER_NAME.
very interesting :D
RispondiEliminaprossimamente lo farò anche io
interessantissimo post :D
RispondiEliminaScusate, ma un banale:
RispondiEliminaaptitude install nodm???
@Candido Ricorsi
RispondiEliminaPersonalmente, non conoscevo questo pacchetto.
Lo provo subito su una mia installazione secondaria!
Grazie mille!
@Candido Ricorsi
RispondiEliminaInteressante neppure io lo conoscevo, non so se c'è per Arch ma ti ringrazio lo stesso, direi che non è niente di banale a questo punto ;)
@Santiago
RispondiEliminaInstallato nodm sul mio sistema di prova.
La configurazione è semplicissima
sudo nano /etc/default/nodm
e poi basta modificare un paio di cose all'inizio:
# Set NODM_ENABLED to something different than 'false' to enable nodm
NODM_ENABLED=true
# User to autologin for
NODM_USER=proprio_nome_utente
Riavvio e... tutto finito!
Ovviamente, non è da consigliare se si vogliono usare più ambienti.