La scheda è basata sul chip saa71xx quindi dovendo scorrermi tutti i card type e i tuner number ho fatto questo script in python (in allegato) che li scorre in automatico uno per volta e lancia tvtime in modo da permettere di verificare se quelle impostazioni sono corrette.
Fornisce anche un output riguardo i moduli da rimuovere chiedendoci conferma
Per la lista dei type e dei tuner ho semplicemente elaborato i 2 file
http://www.kernel.org/doc/Documentation ... ST.saa7134
http://www.kernel.org/doc/Documentation ... LIST.tuner
creando 2 liste in cardlist.py
Come si vede dalle variabili iniziali è facilmente configurabile sia sul modulo che sull'intervallo di valori da provare
Si deve lanciare come root
Codice: Seleziona tutto
# python tvcard_scan.py
Invio per accettare il default [y]
n per uscire
In tvtime
i cambia l'imput source
esc esce da tvtime
Codice: Seleziona tutto
import cardlist, subprocess
MODULO = 'saa7134'
# Card scan
CARD_FROM = 0
CARD_TO = len(cardlist.cardno)
# Tuner scan
TUNR_FROM = 0
TUNR_TO =len(cardlist.trnr)
def runCommand(cmd):
_p= subprocess.Popen(cmd, shell=True,stdout = subprocess.PIPE, stderr = subprocess.PIPE)
_out, _err = _p.communicate()
return _out, _err
def ModRmv(_mod):
while True:
if raw_input('Remove %s ? ([y]/n)' % (_mod) ) =='n': return
cmd ='rmmod ' + _mod
_out, _err = runCommand(cmd)
if _err > '':
print _err
_modfthr = _err.split()[-1].split(',')[0]
ModRmv(_modfthr)
else:
return
def ModLoad(_mod, _card, _turner):
cmd= 'modprobe %s card=%s tuner=%s' % (_mod, _card, _turner)
_out, _err = runCommand(cmd)
if _err > '':
print _err
def TryTv():
cmd= 'tvtime'
_out, _err = runCommand(cmd)
print _out
if _err > '':
print _err
def main():
for _crd in range(CARD_FROM, CARD_TO):
for _trnr in range(TUNR_FROM, TUNR_TO):
_msg = '*' * 80 + '\n'
_msg += 'Card :%s ----- %s \n' % (_crd, cardlist.cardno[_crd])
_msg += 'Turner :%s ----- %s \n' % (_trnr, cardlist.trnr[_trnr])
_msg += '*' * 80 + '\n'
print _msg
ModRmv(MODULO)
ModLoad(MODULO, _crd, _trnr)
TryTv()
_msg = 'Next? ([y]/n) '
if raw_input(_msg) == 'n':return 0
return 0
if __name__ == '__main__':
main()