Finalmente anche questa scheda TV funziona su Linux, ci è voluto un pò ma ora funziona.
Ecco i passi da seguire:
Scarichiamo i sorgenti dei drivers:
$ hg clone http://mcentral.de/hg/~mrec/v4l-dvb-experimental
$ cd v4l-dvb-experimental
li compiliamo:
$ make
$ su
Questo passo serve a causa di un conflitto
# rm /lib/modules/`uname -r`/kernel/drivers/usb/media/gspca.ko
EDIT:
come suggerito nel commento sotto, va solamente ricompilato dopo aver installato quanto segue.
Li installiamo.
# make install
Sistemiamo il modulo come preferiamo noi:
# echo "options saa7134 alsa=1" > /etc/modprobe.d/saa7134
Scarichiamo ed installiamo il firmware:
# cd /lib/firmware
# wget http://mcentral.de/firmware/firmware_pinnacle.tgz
# tar xzf firmware_pinnacle.tgz
EDIT:
come suggerito nel commento sotto, abbiamo un firmware migliore di questo:
http://mcentral.de/firmware/firmware_v4.tgz. Corregge alcuni problemi di visualizzazione e perfeziona il tuning.
Ora un bel riavvio sarebbe l’ideale.
Adesso il modulo verrà caricato all’avvio, ma per sentire l’audio dobbiamo fare in questo modo:
# sox -r 16000 -w -c 2 -t ossdsp /dev/dsp1 -t ossdsp /dev/dsp
Il tutto funziona egregiamente su:
Fedora 7 kernel 2.6.21-1.3228.fc7
Ecco il risultato di dmesg.
Occhio non cancellate la cartella con i sorgenti, come vedete sotto SERVONO. al massimo metteteli in /opt/ ad esempio.(ho scritto na cazzata più grande di me scusate)
saa7133[0]: found at 0000:06:03.0, rev: 209, irq: 18, latency: 128, mmio: 0xa0000000
saa7133[0]: subsystem: 1461:a836, board: Avermedia M115 [card=119,autodetected]
...
tuner 1-0061: chip found @ 0xc2 (saa7133[0])
/home/luca/Desktop/aver/v4l-dvb-experimental/v4l/tuner-core.c: setting tuner callback
tuner 0x61: Configuration acknowledged
/home/luca/Desktop/aver/v4l-dvb-experimental/v4l/tuner-core.c: setting tuner callback
/home/luca/Desktop/aver/v4l-dvb-experimental/v4l/xc3028-tuner.c: attach request!
/home/luca/Desktop/aver/v4l-dvb-experimental/v4l/tuner-core.c: xc3028 tuner successfully loaded
saa7133[0]: registered device video0 [v4l2]
saa7133[0]: registered device vbi0
saa7134 ALSA driver for DMA sound loaded
saa7133[0]/alsa: saa7133[0] at 0xa0000000 irq 18 registered as card -1
riferimenti:
Il sito del creatore di tutto questo:
http://mcentral.de/wiki/index.php/AverMedia_Cardbus_Hybrid_TV_FM_E506R
Uno che ha la stessa scheda TV:
http://www.freewebs.com/gkiagia/index.htm?blogentryid=1574224
tra i commenti di questo blog vediamo anche qualche consiglio per vedere la tv e l’audio assieme con mplayer ad esempio.
UPDATE
Visto gli ultimi commenti aggiorno il post, la scheda Avermedia M115 è supportata pienamente anche per quanto riguarda il digitale terrestre ecco uno screenshot di sport italia:



July 27, 2007 @ 12:27 pm
Ciao,
mi permetto di fare alcune osservazioni su ciò che è scritto e di indicare anche un’altra risorsa sulla rete che parla della scheda TV in questione.
Osservazioni:
1) Non serve rimuovere dal tree dei moduli esterni il modulo per la camera (gspca.ko), basta solamente ricompilarlo una volta che si è installato il nuovo tree V4L experimental di Markus Rechberger. In questo modo il driver GSPCA userà le v4l api nuove e funzionerà alla perfezione anche insieme alla tv.
2) C’è un firmware da usare migliore di quello che indica George Kiagiadakis (Gkiagia) ed è questo -> http://mcentral.de/firmware/firmware_v4.tgz. Corregge alcuni problemi di visualizzazione e perfeziona il tuning.
3) Non serve tenere i sorgenti del tree V4L experimental una volta che sono stati compilati. I messaggi che vedi sono semplicemente stringhe di log memorizzate nel modulo stesso e sono puramente indicative. I file sorgenti non vengono più richiamati.
Nella pagina del mio blog riferita al mio portatile -> http://advhertz.altervista.org/install-debian-gnulinux-on-acer-aspire-9113-wlmi ci sono tutte le osservazioni che ho riportato qui ed oltre.
Spero si esserti stato di aiuto, per te e per coloro che leggono questo interessante e ben fatto blog.
Ciao,
Advhertz
July 27, 2007 @ 1:17 pm
Grazie,
ho aggiunto le tue osservazioni.
Scusa per il ritardo ma a volte mi dimentico del blog :p
October 6, 2007 @ 3:08 pm
Ciao,
ho visto che di recente Marcus ha aggiunto il supporto per il DVB-T di alcune schede Avermedia tra cui la M115.
Ne sai qualcosa? Funziona con la tua?
grazie
October 6, 2007 @ 4:49 pm
Grazie tantissimo per la segnalazione me l’ero proprio persa!
Ho appena installato, seguendo la stessa procedura sopra indicata.
Poi usando kaffeine visto che questa scheda supporta l’autoscan.
Funziona tutto alla grande dal video all’audio!
buona visione!
October 6, 2007 @ 9:00 pm
ohh, rabbia!
purtroppoio ho una A16D, ed il supporto al DVB-T non funziona ancora……
complimenti per l’ottimo tutorial!
ciao
January 19, 2008 @ 9:45 am
cacchio non ne ho capito nulla
January 19, 2008 @ 12:48 pm
ciao,
cosa non hai capito?
è molto semplice come procedura:
scarichi i sorgenti,
li compili,
li installi
riavvii.
February 26, 2008 @ 8:23 pm
hg clone http://mcentral.de/hg/~mrec/v4l-dvb-experimental
destination directory: v4l-dvb-experimental
requesting all changes
adding changesets
adding manifests
adding file changes
added 5888 changesets with 16380 changes to 1205 files
913 files updated, 0 files merged, 0 files removed, 0 files unresolved
root@MONSTER:~# cd v4l-dvb-experimental
root@MONSTER:~/v4l-dvb-experimental# make
make -C /root/v4l-dvb-experimental/v4l
make[1]: Entering directory `/root/v4l-dvb-experimental/v4l’
scripts/make_makefile.pl
No version yet.
Updating/Creating .config
Preparing to compile for kernel version 2.6.24
VIDEO_PLANB: Requires at least kernel 2.6.99
Created default (all yes) .config file
./scripts/make_myconfig.pl
make[1]: Leaving directory `/root/v4l-dvb-experimental/v4l’
make[1]: Entering directory `/root/v4l-dvb-experimental/v4l’
perl scripts/make_config_compat.pl /lib/modules/2.6.24.3/build ./.myconfig ./config-compat.h
creating symbolic links…
ln -sf . oss
make -C /lib/modules/2.6.24.3/build SUBDIRS=/root/v4l-dvb-experimental/v4l modules
make[2]: Entering directory `/usr/src/linux-2.6.24.3′
CC [M] /root/v4l-dvb-experimental/v4l/flexcop-pci.o
In file included from /root/v4l-dvb-experimental/v4l/flexcop-common.h:23,
from /root/v4l-dvb-experimental/v4l/flexcop-pci.c:10:
/root/v4l-dvb-experimental/v4l/dvb_frontend.h:42:33: error: media/v4l_dvb_tuner.h: No such file or directory
In file included from /root/v4l-dvb-experimental/v4l/flexcop-common.h:23,
from /root/v4l-dvb-experimental/v4l/flexcop-pci.c:10:
/root/v4l-dvb-experimental/v4l/dvb_frontend.h:165: error: field ‘tuner_ops’ has incomplete type
make[3]: *** [/root/v4l-dvb-experimental/v4l/flexcop-pci.o] Error 1
make[2]: *** [_module_/root/v4l-dvb-experimental/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-2.6.24.3′
make[1]: *** [default] Error 2
make[1]: Leaving directory `/root/v4l-dvb-experimental/v4l’
make: *** [all] Error 2
February 26, 2008 @ 8:34 pm
uname -a
Linux MONSTER 2.6.24.3 #1 SMP Tue Feb 26 11:49:44 CET 2008 i686 Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz GenuineIntel GNU/Linux
February 26, 2008 @ 10:21 pm
ciao,
vedo che usi un kernel piuttosto recente, sinceramente non ho ancora provato con quella versione la 2.6.24 mi sono fermato alla 2.6.23.
per il tuo kernel leggi qua:
http://www.mail-archive.com/em28xx@mcentral.de/msg00728.html
il problema viene risolto con le indicazioni date da uno sviluppatore
February 27, 2008 @ 12:13 am
ti consiglio di aggiornare c’è un exploit in giro
al link http://www.milw0rm.com/exploits/5093
funziona sul kernel 2.6.24 e precedenti
February 27, 2008 @ 12:21 am
vi patch.diff
wrote patch.diff, 355 lines, 12953 chars
root@MONSTER:/usr/local/src/v4l-dvb-experimental# cat patch.diff |patch -p1
patching file linux/drivers/media/common/saa7146_core.c
Reversed (or previously applied) patch detected! Assume -R? [n] y
patching file linux/drivers/media/dvb/dvb-core/dvbdev.c
Reversed (or previously applied) patch detected! Assume -R? [n] y
patching file linux/drivers/media/dvb/dvb-core/dvb_net.c
Reversed (or previously applied) patch detected! Assume -R? [n] y
patching file linux/drivers/media/video/bt8xx/bttv-i2c.c
Reversed (or previously applied) patch detected! Assume -R? [n] y
patching file linux/drivers/media/video/em28xx/em28xx-i2c.c
Reversed (or previously applied) patch detected! Assume -R? [n] y
patching file linux/drivers/media/video/ivtv/ivtv-udma.c
Reversed (or previously applied) patch detected! Assume -R? [n] y
patching file linux/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c
Reversed (or previously applied) patch detected! Assume -R? [n] y
patching file linux/drivers/media/video/saa7134/saa7134-i2c.c
Reversed (or previously applied) patch detected! Assume -R? [n] y
patching file linux/drivers/media/video/usbvideo/konicawc.c
Reversed (or previously applied) patch detected! Assume -R? [n] y
patching file linux/drivers/media/video/usbvideo/quickcam_messenger.c
Reversed (or previously applied) patch detected! Assume -R? [n] y
patching file linux/drivers/media/video/usbvision/usbvision-cards.c
Reversed (or previously applied) patch detected! Assume -R? [n] y
patching file linux/drivers/media/video/usbvision/usbvision-i2c.c
Reversed (or previously applied) patch detected! Assume -R? [n] y
patching file linux/drivers/media/video/v4l1-compat.c
Reversed (or previously applied) patch detected! Assume -R? [n] y
patching file linux/drivers/media/video/video-buf.c
Reversed (or previously applied) patch detected! Assume -R? [n] y
patching file linux/drivers/media/video/w9968cf.c
Reversed (or previously applied) patch detected! Assume -R? [n] y
patching file linux/sound/pci/bt87x.c
Reversed (or previously applied) patch detected! Assume -R? [n] y
make LINUXINCLUDE=”-I`pwd`/linux/include -I`pwd`/v4l -Iinclude -include include/linux/autoconf.h”
make -C /usr/local/src/v4l-dvb-experimental/v4l
make[1]: Entering directory `/usr/local/src/v4l-dvb-experimental/v4l’
creating symbolic links…
make -C /lib/modules/2.6.24.3/build SUBDIRS=/usr/local/src/v4l-dvb-experimental/v4l modules
make[2]: Entering directory `/usr/src/linux-2.6.24.3′
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-pci.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-usb.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-fe-tuner.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-i2c.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-sram.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-eeprom.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-misc.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-hw-filter.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-dma.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/bttv-driver.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/bttv-cards.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/bttv-if.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/bttv-risc.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/bttv-vbi.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/bttv-i2c.o
/usr/local/src/v4l-dvb-experimental/v4l/bttv-i2c.c:288: error: unknown field ‘algo_control’ specified in initializer
/usr/local/src/v4l-dvb-experimental/v4l/bttv-i2c.c:288: warning: initialization from incompatible pointer type
make[3]: *** [/usr/local/src/v4l-dvb-experimental/v4l/bttv-i2c.o] Error 1
make[2]: *** [_module_/usr/local/src/v4l-dvb-experimental/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-2.6.24.3′
make[1]: *** [default] Error 2
make[1]: Leaving directory `/usr/local/src/v4l-dvb-experimental/v4l’
make: *** [all] Error 2
February 27, 2008 @ 12:24 am
make LINUXINCLUDE=”-I`pwd`/linux/include -I`pwd`/v4l -I/usr/src/kernels/2.6.24.3/include/ -Iinclude -include include/linux/autoconf.h”
make -C /usr/local/src/v4l-dvb-experimental/v4l
make[1]: Entering directory `/usr/local/src/v4l-dvb-experimental/v4l’
creating symbolic links…
make -C /lib/modules/2.6.24.3/build SUBDIRS=/usr/local/src/v4l-dvb-experimental/v4l modules
make[2]: Entering directory `/usr/src/linux-2.6.24.3′
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-pci.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-usb.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-fe-tuner.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-i2c.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-sram.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-eeprom.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-misc.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-hw-filter.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/flexcop-dma.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/bttv-driver.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/bttv-cards.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/bttv-if.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/bttv-risc.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/bttv-vbi.o
CC [M] /usr/local/src/v4l-dvb-experimental/v4l/bttv-i2c.o
/usr/local/src/v4l-dvb-experimental/v4l/bttv-i2c.c:288: error: unknown field ‘algo_control’ specified in initializer
/usr/local/src/v4l-dvb-experimental/v4l/bttv-i2c.c:288: warning: initialization from incompatible pointer type
make[3]: *** [/usr/local/src/v4l-dvb-experimental/v4l/bttv-i2c.o] Error 1
make[2]: *** [_module_/usr/local/src/v4l-dvb-experimental/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-2.6.24.3′
make[1]: *** [default] Error 2
make[1]: Leaving directory `/usr/local/src/v4l-dvb-experimental/v4l’
make: *** [all] Error 2
February 27, 2008 @ 12:27 am
http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.23-git9.log
algo_control è stato rimosso sin dal git3 del 2.6.23
February 27, 2008 @ 12:27 am
opps git9
February 27, 2008 @ 12:33 am
quindi a meno di non riuscire a patchare la scelta è tv con computer bucato dagli hackers oppure non tv e computer blindato…. mmmmm …..
qualche geniaccio del c in giro ???
February 27, 2008 @ 12:34 am
ah dimenticavo …
si potrebbe includere nella patch anche il fatto che vorrei non dover rimuovere il modulo della webcam
February 27, 2008 @ 12:40 am
proverei il 2.6.25-test3 ma ho una nvidia ….
—snip dal changelog—–
commit 9dc625e72309e1c919ea3e7f51d0ffca96123787
Author: Peer Chen
Date: Mon Feb 4 23:50:13 2008 -0800
PCI: quirks: set ‘En’ bit of MSI Mapping for devices onHT-based nvidia platform
According to HT spec, to get message interrupt from devices mapped to HT
interrupt message, the ‘En’ bit of MSI Mapping capability need to be set.
The patch do this setting in quirks code for the devices on HT-based nvidia
platform.
[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Andy Currid
Signed-off-by: Peer Chen
Cc: “Eric W. Biederman”
Cc: Ingo Molnar
Cc: Thomas Gleixner
Cc: Andi Kleen
Signed-off-by: Andrew Morton
Signed-off-by: Greg Kroah-Hartman
—–/snip——————–
February 27, 2008 @ 1:01 am
make LINUXINCLUDE=”-I`pwd`/linux/include -I`pwd`/v4l -I/usr/src/kernels/2.6.24.3/include/ -Iinclude -include include/linux/autoconf.h”
make -C /usr/src/v4l-dvb-experimental/v4l
make[1]: Entering directory `/usr/src/v4l-dvb-experimental/v4l’
creating symbolic links…
make -C /lib/modules/2.6.24.2/build SUBDIRS=/usr/src/v4l-dvb-experimental/v4l modules
make[2]: Entering directory `/usr/src/linux-2.6.24.2′
CC [M] /usr/src/v4l-dvb-experimental/v4l/dvb_net.o
/usr/src/v4l-dvb-experimental/v4l/dvb_net.c: In function ‘dvb_net_setup’:
/usr/src/v4l-dvb-experimental/v4l/dvb_net.c:1289: error: ’struct net_device’ has no member named ‘hard_header_cache’
make[3]: *** [/usr/src/v4l-dvb-experimental/v4l/dvb_net.o] Error 1
make[2]: *** [_module_/usr/src/v4l-dvb-experimental/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-2.6.24.2′
make[1]: *** [default] Error 2
make[1]: Leaving directory `/usr/src/v4l-dvb-experimental/v4l’
make: *** [all] Error 2
February 27, 2008 @ 1:02 am
http://www.mail-archive.com/netdev@vger.kernel.org/msg50115.html
aiuto
February 27, 2008 @ 5:49 pm
Rieccomi, l’exploit sfrutta una vulnerabilità del kernel in locale, quindi permette sostanzialmente una exalation di privilegi, ma io ho un pc desktop dove ci accedo solo io, sempre dietro firewall e con nessun servizio esposto come ssh o simili, raramente aggiorno il kernel se non per qualche esigenza particolare!
March 2, 2008 @ 2:02 am
era il 4° o il 7° comandamento “sii paranoico” nel decalogo del buon sistemista ?
March 2, 2008 @ 11:41 am
Eheh,
ovviamente dipende dal contesto in cui si opera!
Non essendo sistemista non ho mai avuto la s/fortuna di leggere i vari comandamenti!
March 4, 2008 @ 4:34 am
era il 9°
May 20, 2008 @ 10:00 pm
[…] http://www.lucaporcu.com/modules/wordpress/2007/07/07/avermedia-m115-su-linux/ Filed under: fedora […]
May 26, 2008 @ 6:48 pm
Linux MONSTER 2.6.26-rc3 #1 SMP Sun May 25 22:13:08 CEST 2008 i686 Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz GenuineIntel GNU/Linux
con questo kernel testing
va senza fare niente altro che creare il firmware
(il file xc3028-v27.fw)….
fa l’autodetect correttamente.
ora devo solo trovare un’antenna decente….
May 26, 2008 @ 9:12 pm
ah a proposito…
qualcuno sa qual’è l’antenna tv portatile + potente in commercio ?
May 28, 2008 @ 8:46 pm
ahah, sei sempre avanti, io sono fermo al 2.6.25
per l’antenna non saprei, se trovi fammi sapere, sarei interessato anche io il digitale terrestre con l’antenna portatile non lo prende benissimo