venerdì 28 dicembre 2007

Useful Linux Wireless Commands

OPEN / WEP WLAN (DHCP):


iwconfig [interface] mode managed key [WEP key]
(128 bit WEP use 26 hex characters, 64 bit WEP uses 10)

iwconfig essid "[ESSID]"

(Specify ESSID for the WLAN)


dhclient [interface]

(to receive an IP address, netmask, DNS server and default gateway from the Access Point)


ping www.google.it

(if you receive a reply you have access)



OPEN / WEP WLAN (Manual IP Setup):


iwconfig [interface] mode managed key [WEP key]

(128 bit WEP use 26 hex characters, 64 bit WEP uses 10)


iwconfig essid "[ESSID]"


ifconfig [interface] [IP address] netmask [subnetmask]


route add default gw [IP of default gateway]

(Configure your default gateway; usually the IP of the Access Point)


echo nameserver [IP address of DNS server] >> /etc/resolve.conf

(Configure your DNS server)


ping www.google.it

(if you receive a reply you have access)



Configurazione "statica":


aggiungere nel file /etc/network/interfaces:

iface wlan0 inet auto
wireless_essid casa
wireless_mode ad-hoc
wireless_nick username
wireless_rate 54M

Se invece vuole ad es impostare un ip fisso, magari 10.0.0.1:

iface wlan0 inet static
wireless_essid casa
wireless_mode ad-hoc
wireless_nick username
wireless_rate 54M
address 10.0.0.1
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.255.255.255

in seguito basta dare il comando "/sbin/ifup wlan0" Per caricare l'intero profilo della scheda, così come configurato.


martedì 25 dicembre 2007

Twinhan Tech Remote Control with linux !!

Per chi come me possiede una scheda dvb con telecomando e ricevitore usb ad infrarossi questo howto puo' risultare utile :)
Per poter usare il telecomando basta avere un kernel che supporti le periferiche usb HID, infatti attaccando il ricevitore ad infrarossi si puo' notare che il telecomando viene riconosciuto come se fosse una semplice tastiera USB. Per poter pero' sfruttare appieno tutti i tasti e' necessario avere installato lirc.

Step 1:
colleghiamo il ricevitore usb al pc

Step 2:
verifichiamo dove viene mappato:
[root@localhost miki]# cat /proc/bus/input/devices
[...]
I: Bus=0003 Vendor=6253 Product=0100 Version=0110
N: Name="Twinhan Tech Remote Control"
P: Phys=usb-0000:00:1d.0-1/input0
S: Sysfs=/class/input/input9
U: Uniq=1111111
H: Handlers=kbd event9
B: EV=120003
B: KEY=800000 0 e0b0ffdf 1cfffff ffffffff fffffffe
B: LED=1f

I: Bus=0003 Vendor=6253 Product=0100 Version=0110
N: Name="Twinhan Tech Remote Control"
P: Phys=usb-0000:00:1d.0-1/input1
S: Sysfs=/class/input/input10
U: Uniq=1111111
H: Handlers=mouse3 event10
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3

A noi interessa la riga: Sysfs
Possiamo notare subito che vengono creati due device nodes:
S: Sysfs=/class/input/input9
S: Sysfs=/class/input/input10
A noi interessa il primo.
Bisogna fare attenzione, dal momento che potrebbero cambiare ad ogni avvio della macchina.
Dipende dal numero di periferiche usb connesse alla macchina o dalla sequenza di inserimento.
Quindi sorge un problema, come facciamo a fare in modo che venga riconosciuto in maniera
univoca ed indipendente dal numero di periferiche connesse? Per fortuna ci viene in aiuto udev!! :)

Step 3:
[root@localhost miki]# udevinfo -a -p /class/input/input9
output molto prolisso, a noi interessa la prima linea {modalias}
[..]
looking at device '/class/input/input9':
KERNEL=="input9"
SUBSYSTEM=="input"
DRIVER==""
ATTR{modalias}=="input:b0003v6253p0100e0110-e0,1,11,14,k74,75,77,7D,7E,7F,B7,raml0,1,2,3,4,sfw"
ATTR{uniq}=="1111111"
ATTR{phys}=="usb-0000:00:1d.0-1/input0"
ATTR{name}=="Twinhan Tech Remote Control"
[..]

Creamo una nuova regola per udev :
[root@localhost miki]# gedit /etc/udev/rules.d/10-local.rules
e mettiamo dentro:

KERNEL=="event*",ATTRS{modalias}=="input:b0003v6253p0100e0110
-e0,1,11,14,k74,75,77,7D,7E,7F,B7,raml0,1,2,3,4,sfw",SYMLINK="input/irremote"

Step 4:
Scolleghiamo il ricevitore usb ad infrarossi, proviamo a ricollegarlo e verifichiamo se viene
creato il device: /dev/input/irremote

Step 5:
Testiamo se sta funzionando:
[root@localhost miki]# hexdump -C /dev/input/irremote
cliccando alcuni tasti del telecomando dovremmo vedere delle stringhe nel terminale.
Se vengono fuori il telecomando sta funzionado :)
clicchiamo control+c per uscire.

Step 6:
file di configurazione per Lirc:

Per configurare lirc dobbiamo modificare due file presenti in /etc/lirc:
  • hardware.conf
  • lircd.conf
vediamo il primo:

# cat /etc/lirc/hardware.conf

# /etc/lirc/hardware.conf for the TwinHan remote control
# See http://www.doctort.org/adam/wp-admin/post.php?action=edit&post=181
#

# Arguments which will be used when launching lircd
LIRCD_ARGS=""

#Don't start lircmd even if there seems to be a good config file
START_LIRCMD=false

#Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="dev/input"

# If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be
# automatically used instead
DEVICE="/dev/input/irremote"
MODULES=""

# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""

vediamo il secondo:

# cat /etc/lirc/lircd.conf

# LIRC configuration for the TwinHan remote control.
# See http://www.doctort.org/adam/wp-admin/post.php?action=edit&post=181
#

begin remote
name TwinHan
bits 32
begin codes
FULLSCREEN 0x1002c
REC 0x10066
FAVOURITE 0x1002f
REWIND 0x10017
FASTFORWARD 0x10031
CH+ 0x10068
VOL- 0x1006c
PLAY 0x1001c
VOL+ 0x10067
CH- 0x1006d
RECALL 0x1002e
STOP 0x1006b
PAUSE 0x10014
MUTE 0x10032
CANCEL 0x10001
CAPTURE 0x10019
PREVIEW 0x10025
EPG 0x10012
RECORDLIST 0x10026
TAB 0x1000f
TELETEXT 0x1001e
0 0x1000b
1 0x10002
2 0x10003
3 0x10004
4 0x10005
5 0x10006
6 0x10007
7 0x10008
8 0x10009
9 0x1000a
end codes
end remote

MySQL tips & tricks

# Cambia password dell'utente root:
mysqladmin -u root password 'new-password'

# Mostra i database:
SHOW DATABASES;

# Crea un db agenda:
CREATE DATABASE agenda;

# Seleziona il db da utilizzare:
USE agenda;

# Cancella il db miodb
DROP DATABASE miodb

# Visualizza la struttura di una tabella
DESCRIBE tabella;

# Cancella una tabella
DROP TABLE tabella;

# Effettua un copia di backup di un database:
mysqldump -u root -p miodb > miodb_backup.txt

# Ricostruisce la struttura e i dati del db salvato
mysql -u root -p nuovo_miodb < miodb_backup.txt

#inizializza il DB di MythTV su Debian
sudo mysql -p < /usr/share/mythtv/sql/mc.sql

#inizializza il DB su Fedora Core 8
sudo mysql -p < /usr/share/doc/mythtv-docs-0.20.2/database/mc.sql

lunedì 3 dicembre 2007

Debian: Scansione canali DVB-T

Per la sintonia dei canali e' necessario crearsi una lista canali prendendo le frequenze del comune di apparteneza dal sito DGTVI. Basta seguire questa guida.
Nel mio caso :

# MUX DFREE
T 642000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
T 594000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
T 730000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE

# MUX LA7/MTV
T 810000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
T 818000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE

# MUX MEDIASET 1
T 706000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
T 826000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE

# MUX MEDIASET 2
T 562000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
T 850000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE

# MUX-A RAI
T 858000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE

# MUX-B RAI
T 842000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE

# TCS
T 658000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE

# VIDEOLINA
T 610000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE

salviamo queste frequenze in un file frequenze.txt.
creiamo la nostra lista canali "channels.conf" con:

miki@kaos:~/dvbt$ sudo scan -a 2 frequenze.txt | tee channels.conf

giovedì 13 settembre 2007

Garmin e MapSource

Credevo che l'eMap fosse morto......

Non trovava satelliti, ho tolto le batterie gli ho dato qualche botta ed e' tornato a vivere !! :D
Unico problema le mappe preinstallate erano troppo datate (1998). Sono riuscito a procurarmi un cd "MapSource Italy Roads & Recreation" ho aggiornato la mappa della Sardegna e devo dire che e' molto più fedele rispetto alla vecchia. :D

martedì 11 settembre 2007

VDR..... Parte seconda

Per quanto riguarda il sistema operativo, ho utilizzato una Debian Sarge installata tramite il cd minimale "netinst" (circa 180 MB) scaricabile sul sito debian. La "netinst" contiene l'installatore e una ridotta selezione di pacchetti che permettono l'installazione di un sistema minimo.
Tramite apt-get e la rete è molto semplice installare gli altri pacchetti necessari. Ottenendo una distro molto personalizzata e leggera (per tenerla anche "pulita" consiglio deborphan o orphaner)

Come kernel ho utilizzato il 2.6.18 con le debian patch. Ho scaricato i sorgenti (pacchetto linux-source-2.6.18) e lo ho compilato cercando di togliere tutto cio' che non era strettamente necessario per il sistema. Ho preferito farlo modulare per avere maggiore controllo su un eventuale crash delle schede sat. Basta buttare giu' il modulo a colpi di "sudo rmmod nomemodulo" :) o il più "intelligente" modprobe -r nomemodulo, che controlla e rimuove gli eventuali moduli dipendenti.

Per avere un ulteriore allegerimento del sistema, dal bios ho disabilitato tutte le funzionalità non necessarie. Ho disattivato la parallela, l'usb, il floppy da 3,5, il secondo canale ide e una porta seriale. Con questa procedura ho ottenuto un bel po' di IRQ liberi, in modo tale da riservarne a mano due non condivisi alle schede sat.

lunedì 10 settembre 2007

Linux VDR !! :)

Ho tirato su una vdr box molto artigianale e caratteristica :P

Tutto e' nato dal fatto che volevo trovare un modo di poter vedere la televisione satellitare in diverse stanze in maniera del tutto indipendente. Dato che sia i pc che le xbox che ho sono interconnesse e comunicanti tramite due switch fast ethernet in cascata ho pensato perchè non utilizzare il mio fido serverino linux anche come server di stream? :D

HW utilizzato :
- Intel Celeron CPU 2.4 GHz
- due banchi di ram ddr 512MB + 256 MB
- Mainboard Microstar 865PE NEO2-V
- HDD Maxtor 80 GB (da "upgradare" vista la pesantezza dell'mpeg2 ricevuto dal satellite)
- 1 Scheda satellitare Technisat SkyStar 2 TV PCI Rev. 2.3 (quella che davano con netsystem). Attenzione alcuni modelli hanno problemi e scaldano parecchio. Alcune soluzioni per porre rimedio le trovate qui .
- 1 Scheda satellitare PCI skystar1 clone della Hercules Smart TV Satellite
nella confezione davano anche un telecomando con tanto di ricevitore infrarossi da attaccare all'USB ( pienamente compatibile con linux, la ubuntu lo riconosce al volo :D )
- Volutamente non ho installato la scheda video dal momento che non ne avevo alcun bisogno, ma sopratutto anche per diminuire il calore interno al case. Il serverino non ha ne monitor ne tastiera e ne mouse. Lo controllo da remoto con vnc (con la fluxbox e' una scheggia, sembra di avere un desktop che gira in locale), ssh, webmin etc..

Ho utilizzato due schede sat (nelle mie prove vdr le ha gestite in maniera ottimale) in modo da poter gestire in contemporanea flussi video provenienti anche da due transponder differenti.
Con la televisione digitale, la compressione dei dati e il multiplexing, diversi canali video e audio possono viaggiare attraverso un singolo transponder su una singola portante a banda larga. Tale caratteristica ci permette di poter vedere o registrare più canali contemporaneamente. (in alcuni test sono riuscito a registrare/vedere 5 canali in contemporanea :))
Avendo due schede sat è possibile ad esempio vedere un canale e registrarne un altro appartenente ad un altro transponder !! :)

Entrambe le schede sat sono modelli cosuddetti "budget" cioè senza decoder mpeg2 HW on-board. Costano poco pero' hanno un difetto, la decodifica del flusso proveniente dal satellite (MPEG2 Transport Stream) deve essere gestita interamente dalla cpu.
Però nel mio caso poco importa :) tanto grazie a vdr e ad al plugin streamdev è possibile inviare il flusso video MPEG2 TS via lan (fast ethernet) e fare in modo che il client (ad es. l'ottimo VLC) si occupi della decodifica. Risultato: processore quasi inutilizzato nel server :).

Dal momento che la macchina deve stare accesa 24/24 ore ho dovuto effettuare una serie di modifiche molto artigianali ma estremamente economiche :P per tenere bassa la temperatura dei componenti, ma sopratutto delle due schede sat che a lungo andare diventano dei veri e proprio fornelli....
Ho installato 4 ventole supplementari da 12 volt l'una, di dimensioni differenti. 3 da 8cm prese e "restaurate" :) da due vecchi alimentatori AT; una posta sopra l'hard disk, l'altra sul retro del case sotto l'alimentatore vicino alla cpu. Un'altra ancora nella parte anteriore del case (ha il compito di spingere l'aria alla ventola posteriore in modo da creare un flusso d'aria... Almeno quella era l'intenzione :)).
Lateralmente con un trapano ho effettuato una serie di buchi nel case in modo tale da creare una griglia per far passare l'aria, utilizzata dall'ultima ventola (da 12cm) che ha il compito di "raffreddare" le due schede sat.
Una curiosità, ho notato che le ventole vecchie possono essere portate a nuovo semplicemente smontadole, pulendole per bene e reinserendo un po' di grasso nel perno interno. (grazie max!! :))

Appena ho tempo metto qualche foto.

Primi smanettamenti con i gps.... :)

Sono riuscito ad ottenere un garmin "eMap" un bel po' datato e ormai poco supportato.
Cmq sono riuscito ad aggiornare tramite cavo seriale il cosiddetto "unit software" ora e' alla versione 2.90 sembra abbiano risolto un bel po' di bug e siano state aggiunte molte nuove funzionalità non presenti nella versione precedentemente installata (2.61).