Hello,
please find attached, the first, very alpha, release of cross platform vtuner binaries and source code. The intended audience are people familiar with DVB, Dreamboxes and C programming language.
Tested combinations so far are:
- DVB-S, server i686, client DM800
- DVB-S, server Dbox2, client DM800
- DVB-S, server DM600PVR, client DM800
- DVB-C, server i686, client DM800 (reported by H2Deetoo)
- DVB-S, server DM7020, client DM800 (reported by mamba0815)
- DVB-S, server DM7025, client DM800 (reported by Homey[GER])
- DVB-S, server DM500, client DM800 (reported by Zonk2007)
- DVB-C, server Dbox2, client DM800 (reported by jadne)
- DVB-T, server DM8000, client DM800 (reported by MartiniB)
- DVB-T, i686-Server, Client-DM800-S . ( change /etc/vtunerc.conf > DAEMON="/usr/sbin/vtunerct", reported by thatave)
- DVB-S, server Kathrein UFS-910, client DM800 (reported by muffi_1, binary attached on page 6, built from sources 2009-08-26)
- DVB-S, server Topfield7700PVR, client DM800 (reported by dampfhns3, using sh4 binaries contributed by muffi_1)
- DVB-T, server siemens gigaset M740, client unknown (reported by jjskiner, binary and patch attached on page 30)
If you want to use DVB-C/DVB-T please update to latest DVB Modules in flash (2008-08-20).
Only DM800 or DM8000 can be used as client (maybe DM500 HD in future).
Major improvements, compared to the several versions in the wild, are:
- handling of byte ordering across multiple platforms
- auto discover of idle servers from clients (no need to give IP address)
- handling of more than one tuner per server
- improved "dead client" detection (on power cycle or network failure)
- client track it's state (frequency, pid list) and reconnect if server fails
Know Limitations:
- it's known to work only with very recent experimental images for DMM (Aug 2009 or later)
- DiSEQ is know to work on all platforms, due to limited feedback I'm not sure to which extend. I can't test this myself. Please report both failure and sucess and include a short description of your DiSEQ equipment and type (eg. rotor, 1.1 switch etc.)
- scaning is know to work with DVB-S and DVB-T, it can not be supported with DVB-C
- encrypted channels are not working with dbox2
- WLAN is likely not to work, this is a draw back of the performance boost implement 2009-08-22
Know Bugs (only for latest release):
- none so far
How to start:
- make sure that the DVB device is idle in your "tuner server" (eg. kill vdr/kaffein/mythbackend or whatever on your PC or enigma/neutrino/zapit on you dbox2)
- copy vtunerd.i686 to your "tuner server" and execute (EDIT 2009-08-17: vtunerd.ppc is for E1 boxes, vtunerd.db2 fpr DBox2, vtunerd.mipsel for DM8000/DM7025/DM800). By default adapter0/frontend0 .../demux0 .../dvr0 is used. To select a different tuner, or more than one, you can add the following parameters:
vtunerd number_of_tuners adapter frontend demux dvr [ adapter frontend demux dvr ]
eg:
vtunerd 1 0 0 0 0 #same as default
vtunerd 2 0 0 0 0 0 3 7 2 #uses /dev/dvb/a0/frontend0,/dev/dvb/a0/demux0, /dev/dvb/a0/dvr1 and /dev/dvb/a0/frontend0,/dev/dvb/a0/demux7, /dev/dvb/a0/dvr2
Please do not use demux0 on your DM8000 if you want to run enigma in parallel (most likely you will). As enigma allocates demuxes from bottom up you should use any high numbered demux instead.
vtunerd 1 0 1 2 0 should be ok
Please note that dvr isn't used by vtunerd.mipsel but anything must be given (even nonsens)
- install the latest client package and change /etc/vtunerc.conf as needed. You can find more details about the parameters here: http://code.google.com/p/dreamtuner/source/detail?r=61
- restart enigma on your DM800/DM8000 (eg. init 4; sleep 10; init 3 )
- change configuration of "Tuner B" in enigma.
How to (re)compile:
- I've added a simple shell script to compile (compile.sh). Most likely you'll have to change several variables to match your local build environment.
- latest binaries can be found at http://dreamtuner.googlecode.com/svn/trunk/dist/
How to contribute:
- source is available at http://dreamtuner.googlecode.com/svn/trunk/. I'll provide write access on request, please send a PM
- Test, try to reproduce your problem and describe exactly. If you can fix yourself, please post your patch.
What's missing:
- integration with enigma, detection of unused tuners (client and server)
Changes:
2009-09-13: again revoked, issue with DVB-T/DVB-C
- several bugfixes
- pushing status, BER etc, corrected for ppc platforms
- tuner discovery had several flaws for DVB-T/DVB-S
- enigma didn't crash/hang anymore if vtunerc can't connect to vtunerd
2009-09-05: Due to serious flaws, this version has been revoked
- TS data transport switched from UDP to TCP
- support for client reconnect/failover
- status, BER, SNR is now pushed from server to client
- vtunerd.mipsel needs libvtuner-service.so, either copy this to /lib or set/export LD_LIBRARY_PATH
2009-08-26: - added support for DiSEQ with i686/mipsel and dbox2 vtunerd
- minor changes to debug messages
- implemented MSG_READ_UCBLOCKS call
2009-08-24: - fixed DVB-T issue (thanks to MartiniB)
- added a feature to limit packet latency to 100ms, DVB-S scaning is working now
- added command line options for vtunerd to choose adapter/frontend/demux, as well as support to server more than one frontend
2009-08-22-B: - fixes for vtunerd for DM8000/DM7025 and DM800, only tested with a simulated client (vtunerc-test.c)
2009-08-22: - some performance improvements for both vtunerd and vtunerc, thanks to Ghost for the hint and H2Deetoo for the testing
2009-08-21-B: - copy of TS data is now an independent thread
- further DVB-C/DVB-T fixes (thanks to H2Deetoo)
2009-08-21: - fixed PID Handling issue with E1 boxes (tested on DM600PVR)
2009-08-20: - fixed issue with vtunerd, that caused hang sometimes after switching channel
- frontend info is now forwarded to client, this is a preparation of upcoming driver release from DMM (DVB-C/DVB-T support)
2009-08-19: - added debug output for vtunerc
- several fixes for E1/ppc, support still incomplete
2009-08-17: - fixed issue in vtuner-network.h
I'll update this from time to time, with latest information. Please check first, maybe your question is already answered here.