Posted: maggio 26th, 2009 | Author: Francesco Apollonio | Filed under: Guide, Programmazione | Tags: bash, debian, eeepc, Guide, kde, kernel, linux, utility, wireless | 3 Comments »
Anche in vacanza mi fanno lavorare!
“Tutta colpa” di mio fratello che ha comprato un Eeepc 901Go e dopo averci messo kubuntu/ubuntu ha notato il non funzionamento della shortcut Fn+F2 che permette lo spegnimento/accensione della scheda wireless e dell’annesso led in basso.
Son fin da subito riuscito a disattivare il led e la scheda ma il problema era la riaccensione infatti non funzionava se non riavviando il sistema… poi ieri sera finalmente ecco la soluzione!
Bisogna modificare il file /boot/grub/menu.lst per impostare alcuni parametri al caricamento del kernel (infatti il modulo incriminato di questo “malfunzionamento” è pciehp che è compilato staticamente), queste sono le modifiche da effettuare; si devono aggiungere alla linea kernel del file le stringhe “pciehp.pciehp_force=1 pciehp.pciehp_poll_mode=1” in modo da avere alla fine questo risultato:
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=3ddd8611-ec14-4c47-8812-d76a58ffe048 ro quiet splash pciehp.pciehp_force=1 pciehp.pciehp_poll_mode=1
Dopo aver riavviato il sistema passiamo a testare il corretto funzionamento di tutto, prima di tutto disattiviamo la scheda:
ifdown wlan0
ifconfig wlan0 down
echo 0 > /sys/class/rfkill/rfkill0/state
modprobe -r ath5k
Ora proviamo a riattivarla:
echo 1 > /sys/class/rfkill/rfkill0/state
modprobe ath5k
ifconfig wlan0 up
ifup wlan0
A questo punto connettiamoci come solitamente facciamo (dall’applet nella systray da pppoeconf o da qualsiasi altro programma), la scheda è nuovamente attiva!
Ora scriviamo un piccolo script da associare alla combinazione di tasti Fn+F2:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #!/bin/bash
TMP='/tmp/wireswitch'
if [[ -f $TMP ]]; then
rm $TMP
echo 1 > /sys/class/rfkill/rfkill0/state
modprobe ath5k
ifconfig wlan0 up
ifup wlan0
else
touch $TMP
ifdown wlan0
ifconfig wlan0 down
echo 0 > /sys/class/rfkill/rfkill0/state
modprobe -r ath5k
fi |
Ora non vi resta che copiare lo script in /usr/sbin e associarlo al vostro gestore delle shortcut.
Ricordatevi solo che tutti i comandi vanno eseguiti come root quindi, in fase di associazione del comando alla combinazione, ricordatevi di premettere kdesudo o gtksudo al nome dello script.
Posted: maggio 10th, 2009 | Author: Francesco Apollonio | Filed under: Guide | Tags: bash, config, debian, Guide, linux, utility | 1 Comment »
Riprendendo questo articolo segnalo una comoda configurazione di bash history per inserire l’orario e la data di esecuzione di un comando.
Basta inserire in .bashrc questa riga:
1
| export HISTTIMEFORMAT="%h/%d - %H:%M:%S " |
al prossimo login il formato del vostro file .bash_history cambierà.
Posted: maggio 9th, 2009 | Author: Francesco Apollonio | Filed under: Programmazione | Tags: bash, code tips, debian, Guide, utility, varie, X | 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:
1
2
3
4
5
6
7
8
| 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?
Posted: marzo 16th, 2009 | Author: Francesco Apollonio | Filed under: Guide | Tags: bash, config, debian, Guide, internet, linux, proxy, ssh, utility, varie | 2 Comments »
Ho sempre avuto problemi a connettermi al mio pc tramite ssh quando sono in facoltà per colpa del proxy web, poi fu la luce…
Per prima cosa impostate il vostro server ssh sulla porta 443 (https) per bypassare eventuali controlli sulla porta.
Scaricate ProxyTunnel e successivamente passate a modificare (o creare) il vostro file .ssh/config in questo modo:
Host *.miodominio.org
DynamicForward 1080
ProxyCommand PATH_ESEGUIBILE_PROXYTUNNEL/proxytunnel -v -p INDIRIZZO_PROXY:PORTA_PROXY -d %h:%p -H "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)\n"
ServerAliveInterval 30
ora non vi resta che connettervi normalmente al vostro pc tramite il solito comando:
$ ssh -p 443 pc.miodominio.org
Ecco tutto
Posted: marzo 6th, 2009 | Author: Francesco Apollonio | Filed under: Programmazione | Tags: bash, linux, mpd, program, utility, varie | No Comments »
Avevo la necessità di trovare un modo rapido per aprire files e cartelle direttamente facendoci click dal files-manager, ed ecco che è nato questo semplice script (che utilizza mpc).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
| #!/bin/bash
function usage {
echo "Errore nei parametri"
echo "Usage: mpcplay [PARAMETERS] fileName"
echo "-ao --add-only: Aggiunge solo alla playlist"
echo "-p --play: Avvia anche la riproduzione (Default)"
exit
}
function splitName {
echo "$1" | awk -F "$musicRootDirectory" '{print $2}'
}
if [[ $# -lt 1 || $# -gt 2 ]]; then
usage
fi
action="-p"
if [[ $# -eq 2 ]]; then
action="$1"
shift
fi
lastParameter="$@"
musicRootDirectory="Music/"
fileName="$lastParameter"
if [[ -z `echo $lastParameter | egrep '^/'` ]]; then
fileName="`pwd`/$lastParameter"
fi
trackName=`splitName "$fileName"`
mpc clear 1>/dev/null
mpc add "$trackName" 1>/dev/null
case "$action" in
'-ao') echo "Added $trackName" ;;
'--add-only') echo "Added $trackName" ;;
'-p') mpc play 1>/dev/null
echo "Playing $trackName" ;;
'--play') mpc play 1>/dev/null
echo "Playing $trackName" ;;
esac |
La configurazione è semplice, basta sostituire il parametro musicRootDirectory con la directory relativa impostata come music_directory in mpd. Ad esempio nel mio mpd.conf:
music_directory "/home/kekko/Music"
e la variabile musicRootDirectory è:
musicRootDirectory="Music/"
Semplice vero?