2007/12/15 (and 16)
If you have a FusionHDTV DVB-T Pro or Dual Express, please try cloning and building the tree at http://linuxtv.org/hg/~pascoe/xc-test/, and see if you can tune Digital TV successfully. Put this tuner firmware file in your /lib/firmware directory before trying to tune. This is a version of what is at v4l-dvb "tip" with extra changes to support these boards. Feedback appreciated, so that I can have these changes merged into the main development tree if they work for a number of users.
I don't expect the IR remote to work on the DVB-T Pro, but it might if you do a modprobe ir-kbd-i2c. Please let me know if this makes it attach (and work) and I will adjust the driver so that it loads it automatically.
If you have a Dual Digital 4 or NANO, you should also use this code, as it supersedes the code below and is much faster to tune and significantly more reliable. NANO users, depending on which version of the hardware you have, may additionally need to put this bluebird firmware file in your /lib/firmware directory (as well as the tuner firmware from above).
If you have any other DViCO card or USB tuner not mentioned above, most recent distributions will have support already built in. Try that first, and if it doesn't work, use the main v4l-dvb repository.
N.B.: If you're not familiar with the procedures to clone and build from the Mercurial trees, there are instructions in the LinuxTV Wiki at
http://www.linuxtv.org/wiki/index.php/How_to_install_DVB_device_drivers.
To build my tree instead of the main development repository, you just need to follow these instructions, making the following changes in the "The LinuxTV drivers" section:
- At step 2, substitute:
hg clone http://linuxtv.org/hg/~pascoe/xc-test/
for the "hg clone" command; - At step 3, use:
cd xc-test
for the "cd" command, and - At step 6, fetch the firmware you need for these devices by running the following commands as root:
cd /lib/firmware
wget http://www.linuxtv.org/downloads/firmware/dvb-usb-bluebird-01.fw
wget http://www.itee.uq.edu.au/~chrisp/Linux-DVB/DVICO/xc3028-dvico-au-01.fw
wget http://www.itee.uq.edu.au/~chrisp/Linux-DVB/DVICO/dvb-usb-bluebird-02.fw
If this is your first time setting up a card, when you are done with this, proceed to http://www.linuxtv.org/wiki/index.php/Testing_your_DVB_device for instructions on how to test your device.
2007/11/12:
Last night, I convinced my friend with the FusionHDTV Dual Digital 4 board to temporarily swap theirs with my Dual Digital 2, and within a few hours I had the IR remote control working on it.
Update 2007/12/28: The code to make the Dual Digitla 4 IR remote control work, together with the new xc3028 driver support, has been integrated into the main v4l-dvb tree. You will need to download the newer firmware files linked from the 2007/12/15 entry, above, before you will be able to tune.
My thanks to Mike Krufky and Shannon Wynter for their work (striked out below) that made all of this possible for users before this merge could take place.
You too can make it work by applying this DViCO FusionHDTV Dual Digital 4 IR Remote patch to your tree before the make step in Shannon's steps, below.
Note that this patch also contains some fixes to improve reliability over module unload/loads and to allow the Dual Digital 4 to coexist with any other card that uses a ZL10353 based tuner (such as the Dual Digital 2). Those changes should not adversely affect you - please let me know if they do.
For those having problems with applying the patches currently floating around against v4l-dvb tip (as of writing, revision 6591), I have rediffed them here for you. Download and apply in this order:
xc-bluebird.patch (adds xc3028 support, from Mike Krufky)dd4.au.patch (patches xc3028 support for Australia)xc-status.patch (adds a status check for the tuner, optional)dd4.remote.patch (adds RC support)
Alternatively, you can just
make (and make install) this prepatched source bundle, unpack this firmware bundle in /lib/firmware (or /lib64/firmware on a 64-bit system), and reboot to get a working Dual Digital 4 tuner and remote. Please note that if you have any problems with this code, I cannot support it. You should download and use the code referred to in the post above, instead.
2007/07/28:
There have been some developments for the Dual Digital 4, and recently Shannon Wynter has put together a list of steps showing how to get a DViCO FusionHDTV Dual Digital 4 going under Linux. I have followed these steps with a friend today and the tuners work perfectly (though it is a little slow to tune and I had to increase the tuning timeouts in their MythTV setup). Note that his IR Remote control does not work after following these steps, and I haven't had an opportunity to investigate why (yet).
2007/01/26:
Happy Australia Day 2007! - I've updated my test tree at linuxtv.org so that it should work with 2.6.19+ kernels. This remains my recommended tree for DViCO users with ZL10353 based boards or users with different board types, because it includes code to accomodate IF offsets that differ between boards and to fix frequency rounding errors that occur as a result.
Note that the Dual Digital 4 board is very different from the Dual Digital 2. Although it uses the ZL10353 it has a different tuner module on it that is not yet supported in DVB mode. Others are working on this - see the LinuxTV lists or IRC channel for details.
2006/10/25:
I've given up on waiting for Intel to respond - seems they don't want to help the open source community to watch TV. But I've added experimental support for retrieving what I think are the ZL10353's signal strength, bit error rate and uncorrectable error count. This is based on examining a few hours worth of register dumps while I gradually degraded the input signal to my boards. If you'd like to look at these values, then please try my test tree at linuxtv.org. Follow the steps in the following entry (but using this test tree instead!), and email me success/failure indications, also as per the instructions below.
Also, if you happen to be using top-of-tree code, you now need to manually "modprobe cx88-dvb" to get the drivers to complete loading. I know why this is the case, but need to find out if there's a reason why this behaviour has changed. If it wasn't a deliberate change, I'll get things changed back to the way they were.
2006/07/17:
Whilst life has pulled me away from active devlopment for a while, other developers have continued to add support for the newer card variants and USB tuners into the current Hg tree. So, if you have a DViCO DVB-T devices and my code (referred to in the entry below) doesn't work out of the box for you, I would appreciate if you could go through the How to install DVB device drivers and Testing your DVB device pages in the LinuxTV DVB wiki (including fetching the latest source code).
If you have build problems with the latest source code on your system, please first consult the LinuxTV lists or IRC channel - that's the best place for disussing distribution specific problems.
If you have successfully built and installed a driver, which loads, recognises your board, but then doesn't tune properly, please see this email for minimal details that I'll need to help out, and I will get back to you as soon as possible.
2006/06/17:
I'm still waiting on an NDA from Intel which will give me the documentation I need to use the ZL10353 development kit.
2006/02/28:
DViCO FusionHDTV DVB-T Plus (Rev 1.1 w/ ZL10353) support is added. I've figured out the new linuxtv.org development tools, and have put a development tree online with support for both the DVB-T Hybrid and Plus boards. The easiest way to download and test is to simply go to my hg tree at linuxtv.org, click "tree" and then "gz" or "bz2" to get a tar file with the current development code in it. To build, follow the steps at the Public CVS and Mercurial Access page.
I'd appreciate feedback either directly to me or to the linux-dvb list as to whether this code works for you, so I can arrange for it to be merged with the mainline code or fixed up, as appropriate.
2006/02/27:
A development kit has arrived from Intel which should permit complete ZL10353 support.
2006/02/05:
DViCO FusionHDTV DVB-T Hybrid patch is updated to add analog TV support. You need the analog audio passthrough cable (I think - I haven't been able to test the audio on analog TV). Get it here.
2006/01/26:
Happy Australia Day - especially for those with a DViCO FusionHDTV DVB-T Hybrid board. I have reverse engineered enough of the ZL10353's protocol to tune DVB channels, return lock status and SNR information. If you have one of these boards, and are v4l-dvb CVS savvy, please try this patch against v4l-dvb CVS which adds basic zl10353 support and let me know how it works for you.
2006/01/24:
A fellow Brisbanite has graciously loaned me one of the Hybrid boards. I expect to make some progress on it over the next week or so.
2006/01/09:
Whilst there haven't been any updates here for a while, rest assured that support for these cards continues. Development is taking place directly in the v4l-dvb CVS. In the V4L Wiki you can find instructions on how to build from v4l CVS and other useful information. The LinuxTV.org DVB Wiki provides more specific information for DVB devices.
Currently supported DVB-T cards from DViCO under Linux include the:
- DViCO FusionHDTV DVB-T1
- DViCO FusionHDTV DVB-T Lite
- DViCO FusionHDTV DVB-T Plus
- DViCO FusionHDTV DVB-T Dual Digital (both the PCI and the USB parts).
If you have queries regarding getting one of these devices recognised on your machine, I recommend first searching the Linux-DVB mail archives and if your question isn't answered, subscribing to the linux-dvb list and asking there.
2005/02/13:
Those who are asking when my driver will be in the stock tree - it was actually included in 2.6.10 but disabled because there were compile errors in some other drivers related to it. If you apply this patch against 2.6.10 or this patch against 2.6.11-rc4, you can enable support for the DViCO FusionHDTV DVB-T1/DVB-T Plus cards in those kernel versions and avoid the external build process. (The Lite card works with stock kernels since 2.6.9). If you apply this patch, you no longer need any other files from this site to have your card recognised (but you might still want the LIRC patch to get the remote control going).
Once you have applied the above patch, you should enable the following kernel options (in this order, otherwise you won't necessarily have all the kernel options presented to you):
- DVB Support (Device Drivers >> Digital Video Broadcasting Devices >> DVB For Linux)
- the DVB core (DVB Core Support)
- the Video For Linux infrastructure (<< Video For Linux (1st option))
- bt8xx cards (Video For Linux (2nd option) >> BT848 Video For Linux)
- cx2388x cards (Conexant 2388x (bt878 successor) support)
- cx2388x cards DVB support (DVB Support for cx2388x based TV cards)
- bt878 cards DVB support (<< Digital Video Broadcasting Devices >> Nebula/Pinnacle PCTV/Twinhan PCI cards)
Then build a kernel as usual. If you chose to build as modules, then you should be able to get everything to load with a simple "modprobe cx88-dvb" (for the DVB-T1 and DVB-T Plus cards) or a "modprobe dvb-bt8xx" (for the DVB-T Lite). If you can convince your distribution to probe those modules at boot, you hopefully won't need to set up any init scripts any longer, either.
2004/12/04:
I have developed a driver for the Australian digitalnow DNTV Live! DVB-T card. Get the driver from here. I have also put together a list of useful Digital TV / Linux links that I have come across or which have been given to me.
2004/10/30:
Now available is a tar with support for all three current cards - the DViCO FusionHDTV DVB-T1, Lite and Plus models. It contains build and init scripts, just fix BUILDDIR in them and go! If you still have "disagrees about version" or "unknown symbols" messages reported when you try to load modules with this release, then you should read these notes contributed by "Justin".
The DViCO FusionHDTV DVB-T is a relatively new Digital TV Tuner card on the Australian market. It sports a third generation tuner from LG with an advanced Zarlink MT352 frontend, as well as S-Video and Composite video inputs with 10-bit video sampling (great for attaching a Playstation to use on a LCD!). The Windows bundled software provides realtime HDTV and AC-3 surround decoding, scheduled recording functionality, and allows simple conversion of recorded programs to DVD, Video CD and DivX, amongst other things.
More interested in getting the card going with the fine MythTV PVR on Linux, I set to develop a Linux driver. As there is no documentation available for the "Conexant 23883 Broadcast Decoder" (big brother to the "Fusion 878") used on this card, I set out with the DScaler source and RegSpy utility and a bus analyser to get a driver going.
After some analysis of the Windows system in operation, I have developed a working driver for Linux. The board performs remarkably, receiving all channels in a poor signal area in Brisbane, Queensland, with a small internal antenna. The other tuner cards and set-top-box I had tried at this location did not fare anywhere near as well. I have exercised the driver with continual tuning requests over a few days and confirmed correct operation with MythTV.
To use the capture card, you'll need:
- The Linux kernel source, configured with CONFIG_I2C=m, CONFIG_I2C_ALGOBIT=m and CONFIG_VIDEO_DEV=m. If you intend to use the remote control, please read below before rebuilding as you'll need to apply a patch to your source tree and pick a few more options. I have only tested this capture card code against stock kernels 2.6.5, 2.6.6 and 2.6.7;
- The LinuxTV project DVB code, with my version of mt352.c installed in place of the distributed version. This snapshot from CVS should build out of the box (and includes my mt352.c); and
- My version of the cx88 driver with DVB support added which has the necessary code to make the Conexant 23883 chip accept the MPEG transport stream from that comes from the tuner.
Unpack and build each of these in turn, install the appropriate modules (here is a "dvb-dvico" initscript that I used for testing - it will need paths adjusted to run on your system, but demonstrates the module load order), and you should be able to tune channels in with "tzap" from the dvb-apps package. I also have a sample ~/.tzap/channels.conf for Brisbane, Australia.
To get the remote control going, you'll need to:
- (OPTIONALLY) Apply this patch for hid-core.c and this patch for hid.h to your Linux Kernel source, and rebuild your kernel. The IR dongle reports itself as a joystick-type device, and the Linux kernel suppresses identical messages from a joystick. Without this patch, it is not possible to catch button-repeats as the Linux USB layer suppresses them (Without this patch you have to press the volume up button multiple times for a large change - holding it down does nothing. This is probably not important for the vast majority of people, which is why this patch is optional). This patch is against 2.6.7 but should also apply to 2.6.6; I'm happy to hit the button more than once, which is why there are no later revisions :);
- Enable at least the options CONFIG_USB_DEVICEFS=y, CONFIG_USB_HID=m, CONFIG_USB_HIDINPUT=y and CONFIG_USB_HIDDEV=y before building your kernel;
- Fetch LIRC 0.7.0 and apply this patch to the LIRC source tree. Select the DViCO remote from the "USB" submenu in "Driver Configuration" when running ./configure. Once built, install the sample config file for the remote (in remotes/dvico of the patched lirc source tree) as lircd.conf in the appropriate place for your system (by default, /etc);
- Configure your system to start lircd as "/usr/sbin/lircd --driver=dvico --device=/dev/usb/hiddev0". If this is not the only USB device on your system you will need to substitute the appropriate device number for your system. (The device number can be discovered by running "dmesg | grep hiddev" after you attach the device. Due to a bug in the Linux kernel, if it says "hiddev96" then the device to use is actually /dev/usb/hiddev0, "hiddev97" is /dev/usb/hiddev1, etc). If all is configured correctly you should be able to run "irw" and see output for every keypress of your remote.
- If you wish to use MythTV's native LIRC support, then build your mythtv with it, and save this lircrc as ~/.mythtv/lircrc. Note that since I configured this on my system I have read that the irxevent method is preferred, which requires a slightly different configuration file, but this way is working for me.
I welcome any feedback on the driver via email to linuxdvb@itee.uq.edu.au.
Many thanks to DViCO and Digital Now for their support in this development exercise.
