kernel parameters in bash scripts


Posted: maggio 9th, 2009 | Author: | Filed under: Programmazione | Tags: , , , , , , | No Comments »


Vi è mai capitato di dover differenziare il comportamento di uno script sin dall’avvio del  vostro computer?

Ad esempio mi occorreva disabilitare l’avvio automatico di X subito dopo il login da tty (vedere xttydm), ecco come farlo passando un semplice parametro al kernel in fase di caricamento.

Il funzionamento è molto semplice: tutti i parametri di avvio del kernel possono essere trovati in /proc/cmdline, basta semplicemente controllare che il parametro che ci interessa esista:

case $TERM in
linux) 
START=`cat /proc/cmdline | grep xtty`
if [[ -n $START ]]; then
~/bin/startx.sh &&
fi ;;
*) ;;
esac

inserite questo codice in .bashrc e ad ogni login da tty se l’opzione xtty è presente come parametro del kernel, X verrà automaticamente fatto partire.

Semplice no? 😀


howto (re)install debian (promemoria per uno smemorato)


Posted: febbraio 27th, 2009 | Author: | Filed under: Guide | Tags: , , , , , , , , , , | No Comments »


Dopo tanti anni di perfetto funzionamento il mio laptop ha deciso di lasciarmi (o quasi), sono corso così ai ripari con un nuovo desktop che da tanto desideravo.

Nell’installare la mia amata debian sono incappato in alcuni piccoli problemini, questa “guida” è in primo luogo un promemoria per il futuro.

  1. KDE: ho provato a utilizzare la versione 4.2 dai repository unstable/experimental (il cubo mi piace molto per switchare tra i desktop :P) ma dopo aver configurato tutto quanto (apt-pinning compreso) rimanevo poco soddisfatto della puliza del sistema. alla fine ho deciso di utilizzare i backport della 4.1 (http://kde4.debian.net) per testing.
  2. AUTO-DNS: avete presente quella comoda opzione (dns-nameservers) di `network/interfaces` che permette di impostare automaticamente i dns di un’interfaccia? necessita del pacchetto `resolvconf` installata
  3. KERNEL64: compilo il mio primo kernel a 64 bit… ovvio mi dimentico qualcosa: `ia32-compatibility` per la precisione, skype e wine non erano molto contenti della cosa 😀
  4. XMODMAP: necessitavo di impostare i tasti multimediali della mia tastiera direttamente da KDM subito dopo il login, ecco la soluzione:
    aggiungere questo codice:

    if [ -f $HOME/.Xmodmap ]; then
    /usr/bin/xmodmap $HOME/.Xmodmap
    fi
    ;;
    

    al file /etc/kde4/kdm/Xsession, automaticamente andrà a caricare i file .Xmodmap presenti nelle home degli utenti.


xttydm (aka lanciare X dopo il login da tty)


Posted: febbraio 5th, 2009 | Author: | Filed under: Guide, Programmazione | Tags: , , , , , | 1 Comment »


non so voi ma io nutro una particolare avversione verso tutti quei login manager (gdm, kdm, xdm) che reputo pesanti e poco funzionali, soprattutto perché utilizzando un laptop ritenevo un inutile spreco di risorse (leggasi batteria) avviare tutto l’ambaradan per (ad esempio) modificare qualche piccolo file o effettuare qualche piccola operazione.
E poi voglio far vedere a tutti il mio favoloso issue :)

da sempre quindi disattivo questo tipo di applicativi preferendo un più semplice login da terminale (tty) e poi (all’occorrenza) avviare x tramite il comando `startx`.

Per vari motivi ho deciso di muovere un ulteriore passo dato che iniziavo a digitare ad ogni avvio quel comando:
pe
rchè non posso avviare X automaticamente dopo aver effettuato il login ad esempio dalla tty1?

Bene, la soluzione è tutto sommato semplice, ho creato uno scriptino che effettua dei controlli (se eventualmente il server X è già attivo e se è tutto ok allora lancio X tramite startx appunto.
Eccolo qui:

#!/bin/bash

function check {
if [[ -f /tmp/login ]]; then
if [[ ! -f /tmp/.X0-lock ]]; then
rm /tmp/login
return 0
else
return 1
fi
else
touch /tmp/login
return 0
fi
}

check

if [[ $? -eq 0 ]]; then

startx 1>/dev/null 2>/dev/null

fi

Successivamente c’è da modificare .bashrc e metterci un ulteriore controllo e richiamare lo script:

case "$TERM" in
linux) ~/bin/startx.sh & ;;
*) ;;
esac

ovviamente ~/bin/startx.sh è il path completo allo script precedentemente creato.

Infine non ci resta che editare (da root) il file  /etc/X11/Xwrapper.conf settando come allowed_users=anybody

Ecco fatto ora tutto funziona alla perfezione.


  • Articoli Recenti:

  • Tag

  • Categorie

  • Meta

  • Licenza Creative Commons

    Copyright © 2017, | ldlabs.org – Blog is proudly powered by WordPress All rights Reserved | Theme by Ryan McNair modified By Francesco Apollonio

    Smilla Magazine Il Bloggatore iwinuxfeed.altervista.org Feedelissimo - tecnologia WebShake - tecnologia