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à.
Scrivi risposta
Avatar utente
Alkatron
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1248
Iscrizione: giovedì 16 aprile 2009, 13:26
Distribuzione: debian jessie 64
Contatti:

TvCard saa7134 - Script per trovare type e tuner number

Messaggio da Alkatron »

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 38 volte
Ultima modifica di Alkatron il martedì 9 novembre 2010, 0:29, modificato 1 volta in totale.
Scrivi risposta

Ritorna a “Progetti della Comunità”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 11 ospiti