TvCard saa7134 - Script per trovare type e tuner number

Iniziative e progetti della comunità legati a Ubuntu.
Regole della sezione
Questa sezione ha lo scopo di raccogliere le iniziative/progetti della nostra Comunità legati ad Ubuntu. I progetti ospitati nascono da iniziative degli utenti o gruppi di utenti. In futuro i progetti potrebbero rimanere iniziative "personali" o essere integrate nella distribuzione, sponsorizzate da Ubuntu o da Canonical a discrezione dei responsabili. All'interno di essa sarà possibile inserire delle discussioni che hanno la funzione di pubblicizzare avvenimenti, iniziative e progetti software su Ubuntu e GNU/Linux in generale. Sarà inoltre possibile per gli utenti proporre lo sviluppo di nuovi software e in questo caso la discussione di richiesta avrà la funzione di generare un requisito funzionale del prodotto da sviluppare.

Sezione I - Iniziative
  • Fanno parte di iniziative, ad esempio, le seguenti categorie: corsi, progetti editoriali, libri.
  • La segnalazione di un'iniziativa avviene creando una discussione con l'annuncio.
  • Una volta effettuata la segnalazione, la discussione viene chiusa dal Gruppo Forum.
  • Se l'iniziativa esposta comporta un costo di adesione o fruizione, questo deve essere esplicitamente riportato all'interno della discussione.
  • È obbligatorio segnalare all'interno della discussione i riferimenti per poter contattare/partecipare all'iniziativa.

Sezione II - Progetti
  • La segnalazione di un progetto software, come per le iniziative, avviene e si sviluppa all'interno di una singola discussione.
  • Sarà consentito l'inserimento di software solo se rilasciati sotto licenza GPL (in tutte le sue versioni) o equivalente FOSS, tale da garantire agli utenti l'utilizzo del prodotto senza restrizioni e agli sviluppatori la proprietà intellettuale del codice prodotto.
  • Nell'oggetto della discussione dovrà essere riportata la categoria (es. [Iniziativa], [Progetto] o [Proposta]) e una semplice descrizione del progetto.
  • Se il progetto ha già un sito che lo ospita sarà a discrezione del Gruppo Forum chiuderla come segnalazione o lasciarla aperta.
  • Se il progetto non ha un sito che lo ospita si potranno aprire due discussioni, una per proporre modifiche/implementazioni (dove nel titolo occorre specificare [sviluppo]) ed una per segnalare problemi (e nel titolo dovrà comparire [supporto]).
  • Non è consentita l'apertura di nuove discussioni in riferimento a versioni superiori o modificate di un prodotto già riportato in precedenza.
  • Se il software oggetto del progetto ha una dimensione non superiore ai 128 kB, per prodotti che non hanno un sito che li ospita, sarà possibile allegarlo alla discussione.

Sezione III - Proposte
  • Una proposta deve essere eseguita e si svilupperà all'interno di una singola discussione.
  • Le proposte dovranno essere inserite direttamente nella sezione "Progetti della Comunità".
  • Dovranno essere specificate le funzionalità che devono essere sviluppate.
  • Non dovranno essere riportate diciture tipo "...deve fare come questo software...", ma indicare nel miglior modo possibile i requisiti.
  • Una volta segnalata la discussione resterà aperta per consentire uno scambio di idee su come sviluppare il codice o finché gli sviluppatori non forniranno una soluzione (da pubblicizzare poi, come visto prima, nella sezione Progetti) che ne soddisfi il requisito.

Per quanto non esposto sopra, si fa comunque riferimento al Regolamento del forum ed al Codice di Condotta della Comunità.

TvCard saa7134 - Script per trovare type e tuner number

Messaggioda Alkatron » martedì 9 novembre 2010, 0:17

Dovendo installare una tvcard abbastanza vecchia, una empire enjoy tv, maverick non me la riconosceva, o meglio la riconosceva ma non me la impostava correttamente.

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

e una volta partito si usa:

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()
Allegati
tvcard.rar
(5.97 KiB) Scaricato 18 volte
Ultima modifica di Alkatron il martedì 9 novembre 2010, 0:29, modificato 1 volta in totale.
Avatar utente
Alkatron Non specificato
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1090
Iscrizione: aprile 2009
Distribuzione: debian wheezy 64

Torna a Progetti della Comunità

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 0 ospiti