I finally got a chance to do some testing with the PCTV 74e, using the GPL reference driver that Abilis provided. I’m happy to report that at least our initial testing shows that it works out of the box!
Testers are welcome to try the following hg tree:
http://kernellabs.com/hg/~dheitmueller/v4l-dvb-as102
To build:
hg clone http://kernellabs.com/hg/~dheitmueller/v4l-dvb-as102
cd v4l-dvb-as102
make
make install
reboot
Note, under Ubuntu if you receive errors about not being able to compile the firedtv driver, open “v4l/.config” and change the firedtv=m to be firedtv=n.
You will need to get the firmware from the following location and copy it to /lib/firmware
http://kernellabs.com/firmware/as102/
The code will still need some codingstyle fixes in order to be accepted upstream, but it appears from a functional perspective to work properly as-is.
Thanks go out to Rainer Miethling from PCTV Systems for working to get the driver released under the GPL and Pierrick Hascoet from Abilis for authoring the driver.
Feedback welcome (both positive or negative) by commenting below.
Yes! Success!
Thank you very much to Devin, Mr Miethling, and Mr Hascoet for making Linux support of the PCTV 74e a reality! I’m glad that I did not return the stick when I noticed my mistake that Linux support was not yet available but waited for it to finally arrive (which did not take long).
My system: Kubuntu “Kaotic” Koala 9.10 with kernel 2.6.31-20. Driver works flawlessly out of the box. I use Kaffeine for watching DVB-T.
Just a minor glitch: when I remove the stick and reattach it, then the first removal is noticed but reattaching it is not noticed any more. Trying to rmmod the dvb_as102 causes rmmod to hang.
Hello Harald,
Thanks for the feedback. Could you tell me what scan file you used? I have only so far tested it with 8MHz, so it would be good to know what you tested with as it will give me some idea as to whether the other bandwidths are working properly.
Regarding the disconnect issue, I will see if I can reproduce that here, and if so I will fix it.
Devin
I’ve just run an automatic scan in Kaffeine. The channel data gathered only listed 8MHz channels.
BTW — I’ve copied over the modules to an EeePC Netbook 901Go which now quite nicely works as a small TV set.
Hello Devin
I testet the driver with another as-102 device. It is the Elgato EyeTV DTT delyxe.
It did not work out of the box but after adding the USB vendor ID and product ID to the Sources it worked like a charm.
dvb-usb-as102.h:
/* EyeTV DTT deluxe */
#define EYETV_DTT_NAME “EyeTV DTT deluxe”
#define EYETV_DTT_VID 0x0fd9
#define EYETV_DTT_PID 0x002c
dvb-usb-as102.c:
static struct usb_device_id as102_usb_id_table[] = {
{ USB_DEVICE(AS102_USB_DEVICE_VENDOR_ID, AS102_USB_DEVICE_PID_0001) },
{ USB_DEVICE(PCTV_74E_USB_VID, PCTV_74E_USB_PID) },
{ USB_DEVICE(EYETV_DTT_VID, EYETV_DTT_PID) },
{ } /* Terminating entry */
};
Please add the device to the driver.
Hi Joerg,
I figured it wouldn’t be long before someone pointed this out. Yeah, I’ll put this onto my todo list.
Devin
… thanx to everyone who was/is involved (also joerg for the code my overpriced but goodlooking eyetv device) … hopefully we will see the drivers in ubuntu 10.04
Hi Devin,
Worked great, out of the box (once I remembered yet again to disable the firefw module!)
I have restarted MythTV several times and it seems happy still. I will try it in production from today.
Bob
Hi Bob,
Great to hear you had some success. I specifically mentioned the firedtv issue in the announcement after eight or ten people ran into it when I released the PCTV 340e driver.
Please do report back once you’ve had a chance to do some more testing with other applications (such as MythTV). I am very interested in hearing how well it behaves from an application compatibility standpoint.
Cheers,
Devin
Hi Devin,
Well, it was used intently last night. I didn’t get any EIT with the default settings, but I don’t blame it until I have done some more exploration because this is my first attempt with MythTV.
Interestingly with the default settings in MythTV it didn’t find the muxes on a channel scan, the signal level was good as it passed the channels but it didn’t lock any of the muxes. It looked like the time-out was too quick to get a signal lock. But using “scan” to tzap and import the channels worked immediately.
Sometimes when tuning it took a surprisingly long time to tune between muxes (more than a couple of seconds) and I don’t think it was because that channel was long-GOP, it was far too long to be an MPEG sync issue.
Sensitivity looked OK because I am already a little marginal and it was stable. Just trying to get used to a non-Windows media centre now! I use linux often at work but my old media centre was a windows beast that has been replaced with an Acer Revo (Atom 330 + nVidia ION).
Thanks for the good work.
Hi Bob,
Given my experience with the MythTV channel scanner, it’s a bit premature to blame the card. Have you tried increasing the lock timeout in the card configuration page in mythtv-setup before running the scan? I think it’s 500ms by default, which might be a bit short.
Regarding the tuning time, it might be worthwhile to run tzap a few times on the mux in question and see how long it takes to get a lock. MythTV tends to be a pretty poor choice for evaluating tuning time since it does a large amount of buffering when switching channels (several seconds worth). It would be good to know whether the problem occurs 100% of the time against a specific mux, or whether it is random across all muxes.
Devin
Tested on ubuntu 9.10 64bit and card pctv nano 74e.
Everything worked well following the instruction in the post.
Installing the above package solved also another problem I had with another card:
ID 1822:3202 Twinhan VisionDTV USB-Ter/HAMA USB DVB-T
which was not working anymore after the update from ubuntu 9.04 to 9.10
Hello GBG,
Glad it’s working well for you.
Bear in mind that the tree you installed was not *just* the 74e driver, but also the rest of the current v4l-dvb tree. Hence it would not be surprising if you got some other fixes as well (which you would have gotten if you had just installed the current v4l-dvb tree from linuxtv.org).
Cheers,
Devin
Hi Devin,
I want to make an RPM package for the driver. Is it enough to package dvb_as102.ko and firmware or you made changes in other modules as well?
Currently I put there all modules not included in my kernel.
Regards,
Peter
Yes, finally some information I can use. Been going nutz attempting to get a PCTV 80e to work under Suse 11.2 with little success till now. Although the mini HDTV USB is not new to the market, found one on clearance, it does seem to be new enough to SuSe that it’s been a problem to get a close enough reference to put me in the ball park of getting it working.
This is as close to the source as you can get.
Thnx.
Hello trlinde,
The 80e is not going to be working under Linux anytime soon, due to licensing problems with the chipset vendor.
You can read about the history of the issue here:
http://www.linuxtv.org/pipermail/linux-dvb/2008-December/030719.html
I wish I had better news for you.
Cheers,
Devin
Hy Devin
All work fine with Impressive tuning time with Fedora 12 x86_64
Cam you implement a S/R meter like a Cynergy T2 (With kaffeine i can see correct Signal Meter buyt S/R meter remain always at 1%)
Compliments
Great Work
Hi LordByte,
Could you clarify *when* you did the hg checkout? I’m asking because I pushed in a bunch of changes last night, and it would be good to know if your testing included those.
Regarding the SNR, I will have to talk to the person at Abilis to see how it is represented. The big issue is that every driver represents the SNR field in a different unit of measure, so you should feel fortunate that what shows up with your Cynergy T2 actually looks reasonable under whatever app you are using. There is a complete lack of a standard, and as a result the individual applications implemented whatever happened to look “ok” under whatever card the developer happened to have owned.
Devin
File List:
-rw-rw-r– 1 fld0249 fld0249 95500 17 feb 19:40 as102_data1_st.hex
-rw-rw-r– 1 fld0249 fld0249 81820 17 feb 19:40 as102_data2_st.hex
-rw-rw-r– 1 fld0249 fld0249 4148218 17 feb 19:41 v4l-dvb-as102-fd4a76510915.tar
Hour is in Italian TZ (GMT+1)
Hi LordByte,
Ah, ok. Yeah, that’s the code before I did all the cleanup work. If you were to try out the latest version of the tree, I would definitely be interested in feedback. In theory, it should work *exactly* the same, so I am looking for reports of regressions that may have resulted from my cleanup work.
Cheers,
Devin
Thanks a lot!!!
I have a PCTV PiroStick, and now I can use it in ubuntu 9.10.
thans.
Arrrh!
Turned on my htpc this morning and now the device isn’t working. very strange because if I fit it to my laptop it seems to be recognised. lsmod shows the device including dvb_core and em28xx_dvb. It even shows up in gnome-device-manager but there is no /dev/dvb device structure.
Devin, I have looked all over the web but I can’t see how you diagnose the lack of /dev/dvb, perhaps it is something to do with udev but don’t know what it means when a device no longer works that once did?
Bob
Hi Bob,
Did your Linux distro install a kernel update? If so, you will need to recompile the tree you downloaded from kernellabs (after doing a “make distclean”).
Also, I don’t now why em28xx_dvb would get loaded, since the 74e is not an em28xx based device.
If you email me the dmesg output after connecting the device, I will see if I can provide some better advice.
Devin
Hi folks,
thanks for the good work! My EyeTV Deluxe V2 is up and running now on Ubuntu 8.10 kernel 2.6.31-19-generic.
Bringfried
One more remark. I noticed that dvb_as102 has to be unloaded/reloaded on suspend/resume. Otherwise the firmware will not be found when resuming. In order to take care of that, create a file in /etc/pm/config.d/ which contains SUSPEND_MODULES=”dvb_as102″.
Bringfried
Hello,
can you estimate, when the driver will be upstreamed?
Thanks
Hi Everybody,
I have troubles using the driver with kaffeine. In many cases kaffeine does not detect the device if it is plugged in. It has to be unplugged and plugged in back several times to be detected. However, dmesg says that driver and firmware is successfully loaded each time the device is plugged in. Does anybody face the same problem? I use Fedora 12.
Can you advise some other easy to use player for DVB-T in linux?
I have been able to successfully build, install and run it with my PCTV 74e on Centos 5.4 (2.6.18-164.15.1.el5) after simply commenting out lines referencing dev.parent in linux/drivers/media/video/gspca/gspca.c (function gspca_input_connect – yes I know it’s an ugly hack). Thank you very much!
Hello, where can i find the v4l/.config?
I really can`t find it. I`ve Kubuntu 10.04.
Thank you for help.
Thomas
Hi thomas,
you can create it
#cd v4l-dvb-as102
#make xconfig
#ls -a v4l
Today I bought a HAMA USB-DVB-T dongle with Abilis AS102 Chip. Installation worked perfectly on Kanotix with Kernel 2.6.32-13. Absolutely no problems using Kaffeine. Many Thanks!
I’m actually impressed that worked. HAMA must be using the Abilis default USB ID (otherwise a code change would have been required to add the USB ID to the driver).
Devin
One thing I noticed today is, that reception with the Windows-Driver seems may be a bit more stable – using the tiny antenna.
. If you’d need some more feedback, just send me a mail.
Andreas
Hello,
just tested the driver and had success under openSUSE 11.1 (32 bit) and vanillas kernel 2.6.33.3 – automatic scan of tv worked (germany, Frankfurt am Main), nice picture and sound.
BUT: compile errors under 2.6.34 (implicit function declaration). Is this a known error? And how are the chances to get this driver into the stable kernel tree?
Greetings Oli
Dear Devin Heitmueller,
thanx for your driver …
… works very well with my elegato/ubuntu. Why does nobody (elegato/pctv/you/your team) push the driver into the stable kernel tree? I also want to try it soon on my openwrt router …
Hi Cg,
I haven’t had a chance to get it upstream because of the amount of work required to meet the kernel “coding standards”. The coding standard is a bunch of rules which dictate things like whitespace, indentation, and variable naming.
The code will not be accepted upstream without meeting the coding standard, regardless of whether it works.
Elgato had nothing to do with the release (and could frankly care less about whether you can use their sticks under Linux). PCTV and Abilis did the work required to get the code released under the GPL in the first place.
I just haven’t found the four or five hours to spend cleaning up the code. Since nobody paid to see this work done, it’s really not on the top of my priority list relative to customers who *are* paying to see code merged upstream.
Devin
Dear Devin,
thanks for your answer. Now i can see the position of the ball, hopefully THE other ones can see this too …
Dear Devin,
I bought myself a 74e, because under WinXP it works like a charm. And I thought it would be relatively easy to make it work under Ubuntu 10.04. How I was wrong. I’ve tried everything, but still it does not work. Would it be to much for you to let me know all the steps I need to follow to make it work (as I am still very novice to Ubuntu and Linux from command-prompt)?
Thank you very much in advance.
EdwinvB,
hg clone http://www.kernellabs.com/hg/~dheitmueller/v4l-dvb-as102-2
cd v4l-dvb-as102-2
make
<this command will fail with errors trying to compile the firedtv driver)
edit v4l/.config to set the firedtv driver to be "=n"
make
make install
reboot
Oh, and don't forget to install the firmware into /lib/firmware.
Devin
Hi Devin
Great work. I am a linux newbie trying to get my Elgato EyeTV DTT deluxe working, and I had mixed success. On a lucid minimal install i’am trying to follow your script. I think I got it working after i installed gcc, but I do get some weird errors. I’ve managed to get my system to recognize the stick, and i also succeded in doing a channel scan. But after each reboot my stick isn’t recognized. I have to pull it out from one usb port and insert it again….why is that and how do I solve that? I will post the errors/warnings i’m getting when installing for troubleshooting.
Again thanks for your work and thanks in advance.
Hi Devin,
Thank you for your great work. I am a newbie trying to make the pctv 74e work on ubuntu. I’ve installed the v4l-dvb-as102. In my dmesg I could see that the adapter is registered correctly and that the firmware is uploaded,
[ 2782.383193] DVB: registering new adapter (PCTV Systems picoStick (74e))
[ 2782.383621] DVB: registering adapter 0 frontend 0 (PCTV Systems picoStick (74e))…
[ 2782.383689] usb 2-4: firmware: requesting as102_data1_st.hex
[ 2782.547740] as10x_usb: fimrware: as102_data1_st.hex loaded with success
but I do not see the device when I execute lsusb. Also when I try do a scan with w_scan it says:
main:2911: FATAL: ***** NO USEABLE DVB CARD FOUND. *****
Please check wether dvb driver is loaded and
verify that no dvb application (i.e. vdr) is running.
the result of ls /dev/dvb/adapter0/ is
demux0 dvr0 frontend0
The result of lsmod is:
Module Size Used by
cryptd 8116 0
aes_x86_64 7912 2
aes_generic 27607 1 aes_x86_64
binfmt_misc 7960 1
ppdev 6375 0
vboxnetadp 5171 0
vboxnetflt 15064 0
vboxdrv 1792439 2 vboxnetadp,vboxnetflt
snd_hda_codec_nvhdmi 4760 1
snd_hda_codec_realtek 278890 1
dvb_as102 20758 0
arc4 1473 2
dvb_core 102058 1 dvb_as102
snd_hda_intel 25645 2
snd_hda_codec 85727 3 snd_hda_codec_nvhdmi,snd_hda_codec_realtek,snd_hda_intel
snd_hwdep 6924 1 snd_hda_codec
snd_pcm_oss 41394 0
snd_mixer_oss 16299 1 snd_pcm_oss
snd_pcm 87850 3 snd_hda_intel,snd_hda_codec,snd_pcm_oss
snd_seq_dummy 1782 0
snd_seq_oss 31219 0
snd_seq_midi 5829 0
snd_rawmidi 23388 1 snd_seq_midi
snd_seq_midi_event 7267 2 snd_seq_oss,snd_seq_midi
snd_seq 57417 6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
rtl8187 53204 0
snd_timer 23553 2 snd_pcm,snd_seq
snd_seq_device 6824 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq
mac80211 238128 1 rtl8187
fbcon 39270 71
tileblit 2487 1 fbcon
led_class 3732 1 rtl8187
cfg80211 148386 2 rtl8187,mac80211
eeprom_93cx6 1765 1 rtl8187
video 20623 0
font 8053 1 fbcon
bitblit 5811 1 fbcon
output 2503 1 video
softcursor 1565 1 bitblit
snd 70978 16 snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
edac_core 45423 0
edac_mce_amd 9214 0
nvidia 10832442 39
vga16fb 12757 1
vgastate 9857 1 vga16fb
i2c_nforce2 6099 0
soundcore 8052 1 snd
snd_page_alloc 8500 2 snd_hda_intel,snd_pcm
lp 9336 0
parport 37160 2 ppdev,lp
usbhid 40988 0
hid 83376 1 usbhid
dm_raid45 75436 0
xor 4685 1 dm_raid45
ahci 37646 2
forcedeth 55592 0
pata_amd 11962 0
All help is appreciated,