Hybrid Pro Stick PCTV Pinnacle (330e ID 2304:0226) + Debian 20 Ottobre 2007 - 19:26
Inviato da Antonio De Luci (imu) in : Debian, Guide, Kernel, O.S. Revolution, Only Nerd, Pericolosi , trackback
Update 12/06/2008
Innanzi tutto vorrei che nel mondo ci fosse gente molto più giudiziosa di me, dovremmo imparare a boicottare Aziende che non supportano il nostro sistema semplicemente non comperando i suoi prodotti. L’acquisto non è dei più economici, anche perché nella confezione sono inclusi due cd contenente software proprietario Pinnacle, funzionante solo su sistemi Windows che non usero mai. Comunque dopo queste mie note dolenti proverò a descrivere la procedura per far semi-funzionare questo ricevitore analogico/digitale terrestre, dove la parte relativa al DVB-T resterà vuota perchè non Funziona (Ancora).
Per semplificare il tutto ed evitare di descrivere passaggi da utente ad amministratore, questa parte verrà interamente svolta da root :
Installazione moduli e firmware:
I moduli vanno compilati, quindi procuriamoci gli stumenti necessari, ricordo a tutti che io non uso i kernel precompilati di debian, quindi non installo nessun linux-headers-$(uname -r), mi basta avere in /usr/src la direcotory del kernel attualmente in uso.
# apt-get install build-essential mercurial linux-headers-$(uname -r)
Spostiamoci in /usr/src
# cd /usr/src
Con l’installazione di mercurial avremo a disposizione il comando “hg” con il quale scaricare il repository remoto, nel quale ci sono i moduli necessari per utilizzare la nostra periferica ” em28xx” “em28xx-audio” “em2880-dvb” :
# hg clone http://mcentral.de/hg/~mrec/em28xx-new
Una volta scaricati in locale ci spostiamo dentro la nuova directory :
# cd em28xx-new
Avviamo lo script :
#./build.sh
[...]
./build.sh build … building the modules
./build.sh load … for loading the modules
./build.sh install … for installing the modules
Quindi installiamo i moduli come suggerito dallo script:
# ./build.sh build # ./build.sh install
Finito, passiamo al caricarmento i moduli :
# modprobe em28xx card=48
outuput di dmesg dopo il caricamento :
Linux video capture interface: v2.00
em28xx v4l2 driver version 0.0.1 loaded
usbcore: registered new interface driver em28xx
poi carichiamo il modulo audio :
# modprobe em28xx-audio
outuput di dmesg dopo il caricamento :
Em28xx: Initialized (Em28xx Audio Extension) extension
Infine il modulo che al momento non funziona per la DVB-T :
# modprobe em2880-dvb
outuput di dmesg dopo il caricamento :
em28xx v4l2 driver version 0.0.1 loaded
usb 2-2: new full speed USB device using uhci_hcd and address 3
usb 2-2: configuration #1 chosen from 1 choice
em28xx new video device (2304:0226): interface 0, class 255
em28xx: device is attached to a USB 2.0 bus
em28xx #0: Alternate settings: 8
em28xx #0: Alternate setting 0, max size= 0
em28xx #0: Alternate setting 1, max size= 0
em28xx #0: Alternate setting 2, max size= 1448
Bluetooth: Core ver 2.11
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
em28xx #0: Alternate setting 3, max size= 2048
em28xx #0: Alternate setting 4, max size= 2304
em28xx #0: Alternate setting 5, max size= 2580
em28xx #0: Alternate setting 6, max size= 2892
Bluetooth: HCI USB driver ver 2.9
em28xx #0: Alternate setting 7, max size= 3072
input: em2880/em2870 remote control as /devices/virtual/input/input4
em28xx-input.c: remote control handler attached
moduleid: 1
tuner-stub: adding support for Xceive - xc3028
tuner-stub: userspace driver version 1
tuner-stub: Copyright: Markus Rechberger <mrechberger@gmail.com>
tuner-stub: adding support for Texas Instruments - tvp5150
tuner-stub: userspace driver version 1
tuner-stub: Copyright: Mauro Chehab
em28xx: registered module_id 1
requesting to change mode
requesting to change mode
em28xx #0: V4L2 VBI device registered as /dev/vbi0
em28xx #0: V4L2 device registered as /dev/video0
em28xx #0: Found Pinnacle Hybrid Pro (2)
usbcore: registered new interface driver hci_usb
usbcore: registered new interface driver em28xx
em28xx-audio.c: probing for em28×1 non standard usbaudio
em28xx-audio.c: Copyright (C) 2006 Markus Rechberger
Em28xx: Initialized (Em28xx Audio Extension) extension
em2880-dvb.c: DVB Init
requesting to change mode
switching to digital TV
requesting drx3975d driver!
tuner-stub: adding support for Micronas - drx3975d
tuner-stub: userspace driver version 1
tuner-stub: Copyright: Markus Rechberger <mrechberger@gmail.com>
drx3975d_callback not implemented (2)
DVB: registering new adapter (em2880 DVB-T)
DVB: registering frontend 0 ((userspace) drx3975d)…
Em28xx: Initialized (Em2880 DVB Extension) extension
attach_inform: eeprom detected.
em28xx #0: i2c eeprom 00: 1a eb 67 95 04 23 26 02 d0 12 5c 03 8e 16 a4 1c
em28xx #0: i2c eeprom 10: 6a 24 27 57 46 07 01 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom 20: 46 00 01 00 f0 10 02 00 b8 00 00 00 5b e0 00 00
em28xx #0: i2c eeprom 30: 00 00 20 40 20 6e 02 20 10 01 00 00 00 00 00 00
em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 24 03 50 00 69 00
em28xx #0: i2c eeprom 70: 6e 00 6e 00 61 00 63 00 6c 00 65 00 20 00 53 00
em28xx #0: i2c eeprom 80: 79 00 73 00 74 00 65 00 6d 00 73 00 00 00 16 03
em28xx #0: i2c eeprom 90: 50 00 43 00 54 00 56 00 20 00 33 00 33 00 30 00
em28xx #0: i2c eeprom a0: 65 00 00 00 1c 03 30 00 37 00 30 00 34 00 30 00
em28xx #0: i2c eeprom b0: 31 00 38 00 38 00 34 00 34 00 35 00 36 00 00 00
em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
EEPROM ID= 0×9567eb1a
Vendor/Product ID= 2304:0226
AC97 audio (5 sample rates)
500mA max power
Table at 0×27, strings=0×168e, 0×1ca4, 0×246a
w83627hf: Found W83627HF chip at 0×290
Come possiamo notare tutto è andato per il verso giusto, almeno sulla parte relativa alla tv analogica, ma prima di provare a vedere la tv dobbiamo intanto eseguire le procedure di scan frequenze e soprattutto usare dei trucchetti per ascoltare l’audio, per tvtime possiamo usare uno script del genere trovato sul forum Gentoo , creato seguendo sempre il wiki v4l per saa7134-alsa :
#!/bin/sh
#Starts TVTime:
/usr/bin/tvtime &
PROCIDTVTIME=`pgrep tvtime`
TESTETV=`pgrep tvtime`#while tvtime is working do:
while [ $TESTETV -eq $PROCIDTVTIME ]; do
#sox -q -w -r 32000 -t ossdsp /dev/dsp1 -t ossdsp /dev/dsp & #this causes a delay
arecord -D hw:1,0 -r 32000 -c 2 -f S16_LE | aplay & #em teste
sleep 4m #wait 4 minutes
#killall -9 sox
killall -9 arecord
killall -9 aplay
TESTETV=`pgrep tvtime`
done
Per Mplayer invece dopo aver inserito le frequenze basta rifarsi a questa guida sul wiki v4l in alternativa di seguito riporto una breve (LOL) descrizione della procedura fatta da “darkbasic” :
Sintonizzazione dei canali con mplayer:
mplayer tv:// -tvscan autostart:period=2.0:threshold=70 driver=v4l2:device=/dev/video0:chanlist=europe-west
verrà restituita una stringa del tipo
channels=33-ch1,36-ch2,54-ch3
Eliminate i canali che non volete, ordinateli a vostro piacimento e assegnategli il nome dell’emittente.
A questo punto, per vedere la tv con mplayer, create un file di testo nel vostro desktop e inserite all’interno:
#! /bin/bash
channels="channels=36-italia1,33-rai2,54-rai3,48-rete4,30-canale5,31-mtv,66-la7,28-allmusic,23-tvrs" && \
gmplayer tv:// -tv ${channels}:driver=v4l2:device=/dev/video0:chanlist=europe-west:alsa:adevice=hw.1,0:amode=1:audiorate=32000:volume=100:immediatemode=0:norm=PAL -vf pp=lb,pp=ac,hqdn3d -sws 9 &
NOTA: i canali sopra elencati sono solo indicativi, stai a voi sintonizzarli e creare una lista di canali fruibili.
Rendetelo eseguibile con chmod +x nomefile, dopodichè sarà sufficiente clickarci per vedere la tv.
L’output verrà filtrato (deblocking, deringing, denoiser), deinterlacciato e scalato con lanczos.
Se la vostra cpu non regge il passo provate senza filtri e con un algoritmo di scaling più leggero:
#! /bin/bash
channels="channels=36-italia1,33-rai2,54-rai3,48-rete4,30-canale5,31-mtv,66-la7,28-allmusic,23-tvrs" && \
gmplayer tv:// -tv ${channels}:driver=v4l2:device=/dev/video0:chanlist=europe-west:alsa:adevice=hw.1,0:amode=1:audiorate=32000:volume=100:immediatemode=0:norm=PAL -vf
pp=lb &
E’ sufficiente premere h e k per passare da un canale all’altro (più avanti vedremo come configurare ~/.lircrc per utilizzare il telecomando con mplayer).
Vediamo ora come registrare una trasmissione televisiva:
channels="channels=36-italia1,33-rai2,54-rai3,48-rete4,30-canale5,31-mtv,66-la7,28-allmusic,23-tvrs" && \
mencoder -tv ${channels}:driver=v4l2:device=/dev/video0:fps=25:chanlist=europe-west:\
audiorate=32000:alsa:adevice=hw.1:input=0:amode=1:normid=0:width=640:height=480 \
-ovc x264 -x264encopts bitrate=800:subq=5:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b:threads=3 \
-oac faac -faacopts br=64 -vf pp=lb,pp=ac,hqdn3d -sws 9 -o /your/path/record.avi tv://nome_canale
In questo modo l’output della scheda verrà compresso in tempo reale con codec video mpeg4-avc (x264) e codec audio aac (faac), ovvero quanto c’è attualmente di meglio in circolazione. Non dovete preoccuparvi troppo per l’occasionale perdita di frame, perché mencoder penserà a mettere in cache tutto quello che gli sfuggirà (naturalmente se la vostra cpu non è sufficientemente potente prima o poi la cache si saturerà).
Utilizzate queste impostazioni solo se avete un dual core, altrimenti state pur tranquilli che la vostra cpu non riuscirà a gestire la compressione in real time. Con queste impostazioni potrete riversare due ore di video in circa 700 MB con una qualità eccellente, grazie ai codec mpeg4-part10 ed aac.
I fortunati possessori di processori quadcore, invece, possono modificare i settaggi del codec x264 in questo modo, per ottenere la massima qualità possibile:
channels=”channels=36-italia1,33-rai2,54-rai3,48-rete4,30-canale5,31-mtv,66-la7,28-allmusic,23-tvrs” && \
mencoder -tv ${channels}:driver=v4l2:device=/dev/video0:fps=25:chanlist=europe-west:\
audiorate=32000:alsa:adevice=hw.1:input=0:amode=1:normid=0:width=640:height=480 \
-ovc x264 -x264encopts bitrate=800:subq=6:partitions=all:8x8dct:me=umh:frameref=6:bframes=3:b_pyramid:weight_b:threads=5 \
-oac faac -faacopts br=64 -vf pp=lb,pp=ac,hqdn3d -sws 9 -o /your/path/record.avi tv://nome_canale
Chi non avesse un pc ninja può ricorrere a queste impostazioni:
channels="channels=36-italia1,33-rai2,54-rai3,48-rete4,30-canale5,31-mtv,66-la7,28-allmusic,23-tvrs” && \
mencoder -tv ${channels}:driver=v4l2:device=/dev/video0:fps=25:chanlist=europe-west:\
audiorate=32000:alsa:adevice=hw.1:input=0:amode=1:normid=0:width=640:height=480 \
-ovc x264 -x264encopts bitrate=800:subq=4:bframes=2:b_pyramid:weight_b:threads=auto \
-oac faac -faacopts br=64 -vf pp=lb -o /your/path/record.avi tv://nome_canale
Se anche con queste impostazioni non riuscite ad ottenere un framerate accettabile o se preferite semplicemente mantenere la compatibilità con i lettori SA potete optare per un più classico xvid/mp3:
channels="channels=36-italia1,33-rai2,54-rai3,48-rete4,30-canale5,31-mtv,66-la7,28-allmusic,23-tvrs" && \
mencoder -tv ${channels}:driver=v4l2:device=/dev/video0:fps=25:chanlist=europe-west:\
audiorate=32000:alsa:adevice=hw.1:input=0:amode=1:normid=0:width=640:height=480 \
-ovc xvid -xvidencopts bitrate=1000:vhq=2:bvhq=1:chroma_opt:quant_type=mpeg \
-oac mp3lame -lameopts cbr:br=96:aq=0 -vf pp=lb,pp=ac,hqdn3d -sws 9 -o /your/path/record.avi tv://nome_canale
Dal momento che attualmente il codec xvid non è multi-threaded, questi sono i settaggi limite per un processore moderno (core 2 duo e6600 - athlon64 >= 2.6Ghz)
Se non avete un processore molto potente potete optare per dei settaggi più soft:
channels="channels=36-italia1,33-rai2,54-rai3,48-rete4,30-canale5,31-mtv,66-la7,28-allmusic,23-tvrs" && \
mencoder -tv ${channels}:driver=v4l2:device=/dev/video0:fps=25:chanlist=europe-west:\
audiorate=32000:alsa:adevice=hw.1:input=0:amode=1:normid=0:width=640:height=480 \
-ovc xvid -xvidencopts bitrate=1000:turbo:vhq=0 \
-oac mp3lame -lameopts cbr:br=96 -vf pp=lb,pp=ac,hqdn3d -o /your/path/record.avi tv://nome_canale
e nel caso di cpu vetuste:
channels="channels=36-italia1,33-rai2,54-rai3,48-rete4,30-canale5,31-mtv,66-la7,28-allmusic,23-tvrs" && \
mencoder -tv ${channels}:driver=v4l2:device=/dev/video0:fps=25:chanlist=europe-west:\
audiorate=32000:alsa:adevice=hw.1:input=0:amode=1:normid=0:width=640:height=480 \
-ovc xvid -xvidencopts bitrate=1000:turbo:nochroma_me:notrellis:max_bframes=0:vhq=0 \
-oac mp3lame -lameopts cbr:br=96 -vf pp=lb -o /your/path/record.avi tv://nome_canale
Per far sì che mencoder termini la registrazione una volta raggiunte le dimensioni di 700 MB (se ad esempio volete masterizzare il vostro file per poi vederlo nel vostro lettore SA), dovrete aggiungere questo parametro subito prima di “-o /your/path/record.avi tv://nome_canale”
-endpos 700mb
Se preferite che si arresti dopo due ore dall’avvio invece:
-endpos 02:00:00
Se volete che la registrazione parta ad un determinato orario, potete inserire il comando per avviare la registrazione all’interno di uno script ed utilizzare cron
Più avanti nella sezione dedicata a lirc (telecomando) trovare il ~/.lircrc accordato per mplayer con i “button” di questa guida …
Mplayer :

TvTIME :

Non resta che inserire con un editor i nostri tre moduli nel file /etc/modules in modo da caricarli all’avvio del sistema :
# vim /etc/modules [...] em28xx card=48 em28xx-audio em2880-dvb [...]
Telecomando con lirc :
Per la configurazione del telecomando procederemo facendo ne più ne meno dei passi descritti nella mia vecchia guida sulla scheda tv saa7134, comunque per correttezza e maggiore chiarezza riporto i passaggi:
Intanto guardando l’output del comando “dmesg” dopo aver attaccato la nostra scheda tv alla porta usb2 noteremo questa riga :
input: em2880/em2870 remote control as /devices/virtual/input/input4
Ora diamo uno sguardo a questo file per trovare le informazioni necessarie :
$ cat /proc/bus/input/devices
e controlliamo la sezione relativa alla nostra scheda tv, che assomiglierà alla mia :
I: Bus=0003 Vendor=0000 Product=0000 Version=0000
N: Name=”em2880/em2870 remote control”
P: Phys=USB
S: Sysfs=/devices/virtual/input/input4
U: Uniq=
H: Handlers=kbd event4
B: EV=100003
B: KEY=c0000 100040 0 0 0 0 8000 180 80000001 1e0000 0 0 40100ffd
La parte che ci interessa veramente è Handlers=kbd event4 , perfetto annotiamoci questo e partiamo con la creazione del nostro lirc.conf :
Installazione di lirc :
$ sudo apt-get install lirc
appena installato stoppiamo il demone :
$ sudo /etc/init.d/lirc stop
Poi, vi rimando al manuale, avviamo tramite un suo tool “irrecord” la configurazione inserendo i dati da noi scoperti :
Driver da usare :
-H dev/input
device trovato precedentemente :
-d dev/input/event4
directory e nome del file da creare :
/tmp/lircd.conf
Quindi daremo questo :
$ irrecord -H dev/input -d /dev/input/event4 /tmp/lircd.conf
avremo il seguente output ometterò tutta la pappardella iniziale :
irrecord - application for recording IR-codes for usage with lirc
Copyright (C) 1998,1999 Christoph Bartelmus(lirc@bartelmus.de)
[…]
[…]
Press RETURN to continue.
date invio e premete un pulsante a piacere sul telecomando in modo da far agganciare il segnale, non lasciatelo finché i puntini del caricamento non terminano sul terminale ed appaia la scritta :
Hold down an arbitrary button.
………………………………………………………………………………………
Found gap length: 132844
Now enter the names for the buttons.
Please enter the name for the next button (press to finish recording)
ora dobbiamo inserire il nome del pulsante che vogliamo memorizzare e premere invio dopo di che premere quel pulsante sino a quando non ci richiede di inserire il nome per il prossimo pulsante, la procedura si ripete all’infinito quindi una volta terminata la memorizzazione dell’ultimo dei nostri pulsanti al posto nel nuovo nome premete INVIO e aspettate che salvi il nostro file .
[...]
[…]
[…]
Please enter the name for the next button (press to finish recording)
ch-
Now hold down button “ch-”.
Please enter the name for the next button (press to finish recording)
###PREMIAMO ENTER
Checking for toggle bit.
Please press an arbitrary button repeatedly as fast as possible (don’t hold
it down!).
irrecord: no data for 10 secs, aborting
No toggle bit found.
Successfully written config file.
Eccovi il mio file appena creato :
# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.0(userspace) on Sat Oct 20 16:48:20 2007
#
# contributed by
#
# brand: /tmp/lircd.conf
# model no. of remote control:
# devices being controlled by this remote:
#
begin remote
name /tmp/lircd.conf
bits 16
eps 30
aeps 100
one 0 0
zero 0 0
pre_data_bits 16
pre_data 0x8001
gap 132843
toggle_bit 0
begin codes
power 0x0074
pinnacle_logo 0x001E
mute 0x0071
vol+ 0x0073
vol- 0x0072
ch+ 0x0192
ch- 0x0193
0 0x000B
1 0x0002
2 0x0003
3 0x0004
4 0x0005
5 0x0006
6 0x0007
7 0x0008
8 0x0009
9 0x000A
fullscreen 0x0174
T 0x0014
indietro 0x00A8
play/pause 0x00CF
avanti 0x009F
record 0x00A7
stop 0x0080
? 0x0166
end codes
end remote
Ricordo che avendo una scheda tv uguale alla mia si puo’ saltare tutta la configurazione e usare direttamente il mio file generato. Quindi sovrascriviamo l’originale nella directory /etc/lirc con il nostro :
$ sudo cp /tmp/lirc.conf /etc/lirc/lircd.conf
Infine modifichiamo con un editor nella stessa directory il file “hardware.conf”, con sudo oppure da root, in questo modo :
# /etc/lirc/hardware.conf # # Arguments which will be used when launching lircd LIRCD_ARGS="-d /dev/input/event4" #Don't start lircmd even if there seems to be a good config file #START_LIRCMD=True #Don't start irexec, even if a good config file seems to exist. START_IREXEC=True #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="" MODULES="" # Default configuration files for your hardware if any LIRCD_CONF="/etc/lirc/lircd.conf" LIRCMD_CONF=""
Ora lirc è configurato a puntino manca solo il file di configurazione nella propria $HOME (~/.lircrc) , in questo file sono configurati i comandi per i vari player , in pratica lirc funge da server, quando ha un input dal telecomando controlla nella vostra $HOME il file di configurazione per capire cosa inviare ai player partendo dal file di configurazione hardware creato in precedenza.
Esempio di~/.lircrc per mplayer :
begin button = vol+ prog = mplayer config = volume 10 repeat = 5 end begin button = vol- prog = mplayer config = volume -10 repeat = 5 end begin button = mute prog = mplayer config = mute end begin button = play/pause prog = mplayer config = pause end begin button = stop prog = mplayer config = seek 0 1\npause end begin button = power prog = mplayer config = quit end begin button = fullscreen prog = mplayer config = vo_fullscreen end begin button = avanti prog = mplayer config = seek 60 end begin button = indietro prog = mplayer config = seek -60 end begin button = ch+ prog = mplayer config = tv_step_channel 1 end begin button = ch- prog = mplayer config = tv_step_channel -1 end begin button = 1 prog = mplayer config = tv_set_channel 1 end begin button = 2 prog = mplayer config = tv_set_channel 2 end begin button = 3 prog = mplayer config = tv_set_channel 3 end begin button = 4 prog = mplayer config = tv_set_channel 4 end begin button = 5 prog = mplayer config = tv_set_channel 5 end begin button = 6 prog = mplayer config = tv_set_channel 6 end begin button = 7 prog = mplayer config = tv_set_channel 7 end begin button = 8 prog = mplayer config = tv_set_channel 8 end begin button = 9 prog = mplayer config = tv_set_channel 9 end
Premendo il tasto pause sarà possibile mettere in pausa anche la diretta e riprendere la visione premendolo nuovamente. Gli altri tasti non hanno bisogno di spiegazioni ![]()
Consiglio vivamente di rifarsi a questo splendido esempio creato nella documentazione Francese di Ubuntu per vari player :
http://doc.ubuntu-fr.org/lircrc
oppure al wiki Gentoo:
http://gentoo-wiki.com/HOWTO_LIRC
L’importante è rispettare i nomi della riga “Button” accordandoli con quelli inseriti nel file “/etc/lirc/lircd.conf” .
Dove aver sreato tale file possiamo riavviare il demone Lirc e usare la scheda tv per telecomandare mplayes, totem, amarok, kaffeine e molti molti altri ancora.
$ sudo /etc/init.d/lirc start
TV DIGITALE TERRESTRE DVB-T
07/03/2008 Work dvb-t:
Funziona tutto alla perfezione, kaffeine è consigliatissimo per lo scan in automatico dei canali:
- Pinnacle PCTV Hybrid Pro Stick 330e - Installation Guide Installation Guide
- Pinnacle PCTV Hybrid Pro Stick 330e - Using Guide Using Guide
- Pinnacle PCTV Hybrid Pro Stick 330e - Device Information Device Information
Link utili :
http://www.linuxtv.org/v4lwiki/index.php/Pinnacle/330e
http://mcentral.de/wiki/index.php/Talk:Em2880
Tutto il contenuto di questo 

Commenti»
[...] ein Bild von dem guten Stück: Hier habe ich eine Anleitung gefunden, die recht gut aussieht, aber leider italienisch ist. Hier mit [...]
Salve
mi sapreste spiegare il perchè di questo errore?
dovrebbe essere un errore di compilazione.
dovrei fare il debug del codice a mano?
oppure è dovuto a problemi con la mia architettura hw (powerpc)?
ho anche provato a seguire la guida “ufficiale”
grazie mille per l’attenzione
beaver:/usr/src/em28xx-userspace2# ./build.sh
make -C /lib/modules/2.6.18-5-powerpc-smp/build SUBDIRS=/usr/src/em28xx-userspace2 modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.18-5-powerpc-smp’
CC [M] /usr/src/em28xx-userspace2/em2880-dvb.o
/usr/src/em28xx-userspace2/em2880-dvb.c: In function ‘em2880_zl10353_init’:
/usr/src/em28xx-userspace2/em2880-dvb.c:276: error: ‘struct dvb_frontend_ops’ has no member named ‘write’
/usr/src/em28xx-userspace2/em2880-dvb.c: In function ‘em2880_dvb_init’:
/usr/src/em28xx-userspace2/em2880-dvb.c:645: warning: implicit declaration of function ‘dvb_attach’
/usr/src/em28xx-userspace2/em2880-dvb.c:645: warning: assignment makes pointer from integer without a cast
/usr/src/em28xx-userspace2/em2880-dvb.c:699: warning: assignment makes pointer from integer without a cast
/usr/src/em28xx-userspace2/em2880-dvb.c:809: warning: assignment makes pointer from integer without a cast
/usr/src/em28xx-userspace2/em2880-dvb.c:870: warning: assignment makes pointer from integer without a cast
/usr/src/em28xx-userspace2/em2880-dvb.c:934: warning: assignment makes pointer from integer without a cast
/usr/src/em28xx-userspace2/em2880-dvb.c:983: warning: assignment makes pointer from integer without a cast
/usr/src/em28xx-userspace2/em2880-dvb.c:1033: error: ‘struct dvb_frontend_ops’ has no member named ‘ts_bus_ctrl’
/usr/src/em28xx-userspace2/em2880-dvb.c: In function ‘em2880_dvb_fini’:
/usr/src/em28xx-userspace2/em2880-dvb.c:1089: warning: implicit declaration of function ‘dvb_frontend_detach’
make[2]: *** [/usr/src/em28xx-userspace2/em2880-dvb.o] Error 1
make[1]: *** [_module_/usr/src/em28xx-userspace2] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.18-5-powerpc-smp’
make: *** [default] Error 2
rm -rf /lib/modules/2.6.18-5-powerpc-smp/kernel/drivers/media/video/em28xx/em28xx.ko ; \
make INSTALL_MOD_PATH= INSTALL_MOD_DIR=kernel/drivers/media/video/em28xx \
-C /lib/modules/2.6.18-5-powerpc-smp/build M=/usr/src/em28xx-userspace2 modules_install
make[1]: Entering directory `/usr/src/linux-headers-2.6.18-5-powerpc-smp’
DEPMOD 2.6.18-5-powerpc-smp
make[1]: Leaving directory `/usr/src/linux-headers-2.6.18-5-powerpc-smp’
depmod -a
@beaver
HO un problema identico con kernel 2.6.25. Con il 2.6.24 compila a meraviglia. Ti suggerirei di provare a compilarli su un altro kernel almeno >=2.6.20.
non ho capito se il digitale ti funziona, con questo ricevitore.
@motoplux
Assolutamente si!
posso sapere quale kernel utilizzi?
io ho provato con il 2.6.25.1, 2.6.25.2 e 2.6.24.6 e non riesco o a compilare i driver o, se la compilazione va a buon fine, a inserirli.
ok. come non detto

mi era sfuggito uno degli ultimi tuoi commenti.
Ho ricompilato un kernel 2.6.24 e tutto sembra funzionare alla perfezione
Grazie mille
@motoplux
il ho il 2.6.25 (presto aggiorno all’ultima versione) però ho dovuto modificare i sorgenti, molta pazienza e un po’ di culo. Ho rischiato e funziona mi è bastato commentare parecchie righe di codice FORTUNATAMENTE codice che serviva per altri modelli di schede tv che usano lo stesso driver.
Ciao imu, volevo comprare anche io questa stick USB, ma non ho capito se questa permette o meno l’acquisizione di video da fonti analogiche esterne visto che questo aspetto mi interesserebbe parecchio (oltre alla TV analogica e Digitale)…
Guardando nel sito ufficiale, vedo infatti che è presente un connettore laterale con tre cavetti di input (video-composito s-video ed audio-jack): possono essere usati come input per acquisire video da una fonte esterna come una vecchia videocamera od videoregistratore analogici (al di là dei connettori)?
Grazie…
@Treviño
Assolutamente si, su Linux non ho provato ma ho fatto alcune prove su Windows (serviva ad un mio amico per acquisire da un vecchia videocamera) comunque funziona bene anzi stupendamente. L’unica che che mi viene da suggerirti è :
Avere un hybrido non serve a nulla, cioè se devi vedere la tv, tanto vale usare la dvb-t con la possibilità di registrare quello che si vuole in un paio di click(finalmente non perdo più le puntate di CSI e simili). Quindi io consiglierei la versione dvb-t la differenza è notevole in soldi, calcola che questa costa(va) € 99,00 mentre quella in dvb-t € 69,00.
Beh, considera che io Windows non so nemmeno cos’è :P, quindi spero vivamente che ci sia un modo di usarla con Linux come periferica di acquisizione (intuitivamente, mi viene da pensare che ci sia una sorta di “frequenza speciale” che di fatto acquisisce dall’analogico piuttosto che dall’antenna, anche se è solo un ipotesi… Magari è tutta un’altra cosa
).
Comunque, Il fatto è che questa la pagherei 65€ e seppur la priorità sia l’acquisizione analogica, non mi farebbe per niente schifo prendere un sintonizzatore TV analogico e magari anche Digitale tutto-in-uno (considerando anche che una penna per il DVB-T ce l’ho già da un paio d’anni…).
@Treviño
A € 65,00 ne prenderei un altra anch’io! Comunque nessuna frequenza speciale, credo basti un qualsiasi programma di acquisizione (kdenlive, cinelerra, kino) roba del genere insomma
Ehm, che intendi? Questa non vale 65€? Considerando che è Digitale+Analogico+Acquisizione mi pare presa bene… No?
Ad ogni modo, non so se funziona con kdenlive & company visto che questi software usano come periferica di acquisizione una periferica su firewire, e mi pare strano che questa usb-stick ne “emuli” una… Penso ci sia altro onestamente…
Non è che puoi provare?
@Treviño
Forse non si è capito ma …. parlavo seriamente, qui costa ancora € 99,00 !
Se non funzionano kdenlive&Company esisterà un programma di acquisizione via composite&Company al massimo si potrebbe usare Xsane (visto che la rileva)
Comunque credo usi proprio il dispositivo video per acquisire …. Ed ho trovato questo in rete usa Xdtv (tanto per citarne uno) http://www.openlinux.eu/content/view/51/69/
Ok, thanks… Comunque da essedi, dove la comprerei, viene 65€, mi pare un buon prezzo per quanto offre, no?!
@Treviño
Ottimo direi, ti ripeto “ora che hanno creato il driver per Linux” la ricomprerei
[...] Hier habe ich eine Anleitung gefunden, die recht gut aussieht, aber leider italienisch ist. Hier mit Babelfish übersetzt. [...]
ciao,
ho un problema spero mi possa aiutare.
quando vado a caricare i moduli #modprobe em28xx card=48 mi resitutisce:
WARNING: /etc/modprobe.d/options line 7: ignoring bad line starting with ‘gspca’
FATAL: Module em28xx_audio not found.
da quello che ho capito va in conflitto con i gspca della web cam…
ti prego dammi qualche suggerimento!!!
grazie!!!
Scusandomi per l’intrusione non dovuta, mi ritrovo con una versione di Ubuntu 8.04 Hardy Heron…
Lo so, la mia domanda poco c’entra con il post ma mi chiedevo a cosa servisse esattamente il cambio di Kernel descritto nel punto 0-0 della Wiki (aggiungendo il fatto che eseguo il wget ma non mi trova nessun kernel è_é)…
Per sbadataggine avevo seguito questa guida prendendola come buona per ubuntu, poiché l’ho sempre conosciuto come una distro basata su Debian, di conseguenza la procedura da Lei descritta mi si ferma al comando “# modprobe em28xx card=48″.
Cosa fare a questo punto? Devo trovare un kernel come descritto nella wiki?
E installando questo nuovo kernel, a cosa vado incontro?
Potrò mai godere della vista della mia Hybrid Pro Stick 330E su ubuntu?
@Charlie
La 8.04 dovrebbe avere un kernel recente (superiore al 2.6.21) quindi non serve installarne un altro.
Ad occhio e croce questa guida dovrebbe funzionare anche sulla tua ubuntu dato che l’originale e basata proprio su di essa.
Se hai lanciato quel comando dovresti avere la tua scheda funzionante quindi apri un player (kaffeine o me-tv) esegui lo scan e guarda la tv.
Innanzitutto La ringrazio per la celere risposta, mi sono accorto solo ieri della sua tempestività
Ricominciando la configurazione ex-novo mi appare il solito messaggio di errore:
FATAL: Error inserting em28xx (/lib/modules/2.6.24-21-rt/empia/em28xx.ko): Unknown symbol in module, or unknown parameter (see dmesg)
E, con il dmesg appare (ricopio solo la parte riguardante em28xx):
[ 231.883816] em28xx: Unknown symbol down_read_trylock
[ 231.884435] em28xx: Unknown symbol down_write
[ 231.884487] em28xx: Unknown symbol up_write
[ 231.884568] em28xx: Unknown symbol _spin_unlock_irqrestore
[ 231.884741] em28xx: Unknown symbol mutex_lock
[ 231.884964] em28xx: Unknown symbol __mutex_init
[ 231.885261] em28xx: Unknown symbol _spin_lock_irqsave
[ 231.885351] em28xx: Unknown symbol mutex_unlock
[ 231.885609] em28xx: Unknown symbol up_read
[ 231.885719] em28xx: Unknown symbol kmalloc_caches
[ 271.802623] usb 5-3: new high speed USB device using ehci_hcd and address 3
[ 271.925530] usb 5-3: configuration #1 chosen from 1 choice
[ 271.988206] em28xx: Unknown symbol down_read_trylock
[ 271.988703] em28xx: Unknown symbol down_write
[ 271.988756] em28xx: Unknown symbol up_write
[ 271.988838] em28xx: Unknown symbol _spin_unlock_irqrestore
[ 271.988916] em28xx: Unknown symbol mutex_lock
[ 271.989139] em28xx: Unknown symbol __mutex_init
[ 271.989449] em28xx: Unknown symbol _spin_lock_irqsave
[ 271.989704] em28xx: Unknown symbol mutex_unlock
[ 271.990182] em28xx: Unknown symbol up_read
[ 271.990581] em28xx: Unknown symbol kmalloc_caches
[ 274.657268] NVRM: Xid (0001:00): 6, PE0000 0284 00001400 0000fde0 00eeeeff 023604f1
[ 274.674254] NVRM: Xid (0001:00): 36, L1 -> L0
[ 286.175302] em28xx: Unknown symbol down_read_trylock
[ 286.175797] em28xx: Unknown symbol down_write
[ 286.175850] em28xx: Unknown symbol up_write
[ 286.175931] em28xx: Unknown symbol _spin_unlock_irqrestore
[ 286.176008] em28xx: Unknown symbol mutex_lock
[ 286.176229] em28xx: Unknown symbol __mutex_init
[ 286.176530] em28xx: Unknown symbol _spin_lock_irqsave
[ 286.176624] em28xx: Unknown symbol mutex_unlock
[ 286.176880] em28xx: Unknown symbol up_read
[ 286.176989] em28xx: Unknown symbol kmalloc_caches
Come avrà certamente intuito, sono un neofita e non me ne intendo molto (diciamo che non me ne intendo affatto)…
Un paio di amici, interpellati sulla questione, mi hanno consigliato di eseguire un “purge” per reinstallare tutto dall’inizio…
Lei me lo consiglia? (E magari, potrebbe spiegarmi la procedura per eseguirlo nel caso in cui me lo consigliasse?)
Grazie mille per la pazienza
Ah, riprendendo l’ultimo messaggio specifico subito:
In: /lib/modules/2.6.24-21-rt/empia/em28xx.ko si nota chiaramente come la versione del kernel sia rt; questo perché ho installato un programma per campionare la musica ed installare degli effetti sonori per la mia chitarra (anche questo non funzionante) e ho dovuto installare il kernel musicale ad hoc…
L’errore appare comunque anche nel kernel originale; ho provato premendo ESC nel GRUB e selezionando appositamente il kernel 2.26.24-21 standard.
@Charlie

Forse non sono stato chiaro io ma non devi usare quel modulo precompilato del kernel, ma rimuoverlo e seguire la procedura descritta in questa guida. Tanto per chiarire io ho il 2.6.27.1 e il modulo interno (mio_kernel/empia/em28xx.ko) non funziona ancora.
Quindi non ti rimane che rimuoverlo da root o con sudo :
rm -rf /lib/modules/2.6.24-21-rt/empia/em28xx.koe armarti di santa pazienza e ricompilarlo.
Per la cronaca ci vogliono 2 minuti, non reinstallare nulla, non serve ed è da stupidi
A proposito, visto che usi ubuntu forse ti converrebbe seguire la guida originale scritta proprio su ubuntu (che infatti dice di rimuovere un sacco di merda “permettimi l’espressione):
http://mcentral.de/wiki/index.php5/Installation_Guide