Choosing the desired channels as described below is still possible, but this page needs an update.
Special thanks to Ernst Lobsiger for his numerous suggestions to solve the problems I had initially.
Other install descriptions can be found here:
command | function | example | location command Fedora |
---|---|---|---|
szap | tune dvb-receiver; keep tuner active | szap -c /etc/channels.conf -n 1 | /usr/bin |
dvbnet | Filtering packets | dvbnet -a 0 -p 100 | /usr/bin |
ifconfig | PID routing | ifconfig dvb0_0 192.168.240.230 | /sbin |
multicast routing | ifconfig dummy0 192.168.238.238 multicast | ||
smcroute | multicast routing | smcroute -a dvb0_0 192.168.1.1 224.223.222.223 | /usr/local/sbin |
command | function | example | location |
---|---|---|---|
etokend | script; start and stop etoken | etokend start | $HOME/bin |
etokend | executable | start via script | /usr/local/sbin/etokend |
pcscd | script; start and stop pcscd | pcscd start | $HOME/bin |
pcscd | executable | start via script | /usr/local/sbin/pcscd |
tellicast-client | start and stop Tellicast, | tellicast-client start | $HOME/bin |
tc-recv | actual Tellicast executable | executed via Tellicast | /usr/local/bin/tc-recv |
file | function | location | to edit by user for: |
---|---|---|---|
recv.ini | Init. for Tellicast | /etc | user_name password |
recv-channels.ini | definitions channels to receive | /etc | enable channels; see ecast_cfg location received files |
Channel selection can be done by this tool instead of by Tellicast. For this, enable all channels in recv-channels.ini.
Opera is a USB TV DVB-receiver. There are more receivers like this, e.g. DVBWorld. They look very much the same, and can be used for the same purpose. Installation, however, will differ from the Opera.
If you want to do the translation yourself:
A Perl-script is available at:
get_dvb_firmware
There is no easy download-button on this page (at least, I couldn't find it), but copy-paste will do:
The 2 files are now translated into 2 new files:
(For more information about this firmware see opera-firmware)
eurobird9:11976.82:h:0:27500:::: ^ ^ ^ ^ | | | +-- bit rate | | +---- | +------ polarization: horizontal +--------------- frequency
$ szap -c /etc/channels.conf -n 1 > /dev/null &
After this szap will stay running in background. This is necessary to keep de tuner active.
Stopping szap will cause the dvb-driver to put the tuner in power-off state.
For the rest szap doesn't do anything (after tuning the receiver).
Command to monitor signal strength etc.:
$ femon
This will show next info (about 1 line per sec)
status 1f | signal dd32 | snr a122 | ber 000000ca | unc 00000000 | FE_HAS_LOCK status 1f | signal dc11 | snr a2de | ber 0000008d | unc 00000000 | FE_HAS_LOCK status 1f | signal dad7 | snr a4c7 | ber 00000089 | unc 00000000 | FE_HAS_LOCK ...Note that these numbers should change a bit all the time. If all numbers are fixed then there is no connection to the receiver, and the output of femon is invalid!
All received data is now entering your PC via USB. This can be checked using:
$ dvbtraffic
0000 2 p/s 0 kb/s 4 kbit 0001 2 p/s 0 kb/s 4 kbit 0010 0 p/s 0 kb/s 1 kbit 0011 3 p/s 0 kb/s 5 kbit 0012 16 p/s 2 kb/s 25 kbit 005a 59 p/s 10 kb/s 90 kbit 0064 232 p/s 42 kb/s 349 kbit 0066 1470 p/s 269 kb/s 2210 kbit 012c 1279 p/s 234 kb/s 1924 kbit 012d 55 p/s 10 kb/s 84 kbit 012e 10 p/s 1 kb/s 16 kbit 01f4 1 p/s 0 kb/s 2 kbit 01fe 3514 p/s 645 kb/s 5286 kbit 01ff 0 p/s 0 kb/s 1 kbit ... 2000 25293 p/s 4643 kb/s 38041 kbit -PID--FREQ-----BANDWIDTH-BANDWIDTH-The left column shows PID in hex:
Note: More sophisticated receivers filter PIDS in hardware. This reduces data transfer over USB.
PROBLEM: If receiver is tuned and locked but dvbtraffic doesn't show anything: See DVB problem
Note that up to now no PID's are defined to receive. Apparently no PID-filtering is done in the receiver; all data transmitted by satellite is entering your PC. (Including non-Eumetcast data.)
Filtering packets with a certain PID is done using dvbnet:
$ dvbnet -a 0 -p <pidnr>
Filtered data per PID needs then to be routed to a IP address; This is configured by ifconfig:
$ ifconfig dvb0_<n> 192.168.240.<230+n>
Each time dvbnet is called a new name is defined: dvb0_0, dvb0_1 etc.
The last number has to be used instead of <n>
Example:
$ dvbnet -a 0 -p 100
Status: device dvb0_0 for pid 100 created successfully.
$ /sbin/ifconfig dvb0_0 192.168.240.230
From now on incoming packages can be observed with a sniffer, e.g. wireshark. The source address is always:
Before starting smcroute daemon all remaining needed PID's need to be defined:
$ dvbnet -a 0 -p 500
Status: device dvb0_1 for pid 500 created successfully.
$ /sbin/ifconfig dvb0_1 192.168.240.231
Etc.
To check activated PID's:
$ dvbnet -l
Device: /dev/dvb/adapter0/net0 Query DVB network interfaces: ----------------------------- Found device 0: interface dvb0_0, listening on PID 100 Found device 1: interface dvb0_1, listening on PID 500 ----------------------------- Found 2 interface(s).The data needs to be routed to Tellicast, which, by default, is listening to IP 192.168.238.238. (See recv.ini)
Now start the smcroute daemon:
$ smcroute -d
From now on traffic is also visible using ifconfig:
$ ifconfig dvb0_0
$ ifconfig dvb0_1
Note increasing RX packets each time you run ifconfig for a certain dvb0_<n>.
Then, data at dvb0_0 needs to be routed to this address (TSL anouncement at PID 100):
$ smcroute -a dvb0_0 192.168.1.1 224.223.222.223 dummy0
And the next one: (EUMETSAT Data Channel 1 at PID 500, NOAA etc.)
$ smcroute -a dvb0_1 192.168.1.1 224.223.222.1 dummy0
Next one is a different channel at same PID 500 (EUMETSAT Data Channel 5; MSG1 RSS):
$ smcroute -a dvb0_1 192.168.1.1 224.223.222.29 dummy0
etc.
Traffic is now also visible at dummy0:
$ ifconfig dummy0
Note increasing TX(!) packets each time you run
ifconfig for dummy0.
Show initialized routes:
$ ip mroute
(192.168.1.1, 224.223.222.29) Iif: dvb0_1 Oifs: dummy0 (192.168.1.1, 224.223.222.1) Iif: dvb0_1 Oifs: dummy0 (192.168.1.1, 224.223.222.223) Iif: dvb0_0 Oifs: dummy0PROBLEM: No traffic on dummy 0. See firewallFirewall
$ /usr/local/sbin/smcroute -k
$ /sbin/ifconfig dummy0 down
$ /sbin/ifconfig dvb0_0 down
$ /sbin/ifconfig dvb0_1 down
...
$ dvbnet -d 0
$ dvbnet -d 1
...
killall szap
1. Up:
szap -c /etc/channels.conf -n 1 > /dev/null &
sleep 5 # wait for receiver to tune/lock
dvbnet -a 0 -p 100
ifconfig dvb0_0 192.168.240.230
dvbnet -a 0 -p 500
ifconfig dvb0_1 192.168.240.231
ifconfig dummy0 192.168.238.238 multicast
smcroute -d
sleep 5 # wait for daemon to start
smcroute -a dvb0_0 192.168.1.1 224.223.222.223 dummy0
smcroute -a dvb0_1 192.168.1.1 224.223.222.1 dummy0
smcroute -a dvb0_1 192.168.1.1 224.223.222.29 dummy0
2. Check:
femon
dvbtraffic
dvbnet -l
ifconfig dvb0_0
ifconfig dvb0_1
ifconfig dummy0
ip mroute
3. Down:
ifconfig dummy0 down
smcroute -k # wait for daemon to stop
sleep 5
ifconfig dvb0_0 down
ifconfig dvb0_1 down
dvbnet -d 0
dvbnet -d 1
killall szap
ifconfig dvb0_0 shows packets on RX
ifconfig dummy0 does NOT show packets on TX
ip mrouts shows connection between dvb0_0 etc. and dummy0
Firewall is blocking packets from entering dummy0. Try following:
-I FORWARD -i dvb0+ -o dummy0 -p udp -s 192.168.1.1 -j ACCEPT -I INPUT -i dummy0 -p udp -s 192.168.1.1 -j ACCEPT
MSG:2012-03-25 16:49:21.865:tc-recv starting... [3428] MSG:2012-03-25 16:49:21.865:tc-recv version is 2.4.3a (200602131458200) linux2.4_rh7.3-i86pc (Linux 2.6.23.14-107.fc8 on a 2-processor (GenuineIntel, 1 (Model 3, Stepping 4)) system) MSG:2012-03-25 16:49:21.865:Log level is "verbose". VRB:2012-03-25 16:49:21.876:Created new eToken server [3431] ERR:2012-03-25 16:49:21.876:Cannot resolve own ip address, please check your host name file or domain name server ERR:2012-03-25 16:49:21.876:An error occurred while starting tc-recv. Shutting down! MSG:2012-03-25 16:49:21.876:tc-recv shutting down... [3428] MSG:2012-03-25 16:49:22.019:tc-recv stopped [3428].Then try the command: hostname localhost.localdomain and then restart tellicast again.
opera1 1-6:1.0: no suspend for driver opera1? dvb-usb: Opera1 DVB-S USB2.0 successfully deinitialized and disconnected. dvb-usb: found a 'Opera1 DVB-S USB2.0' in cold state, will try to load a firmware dvb-usb: downloading firmware from file 'dvb-usb-opera-01.fw' dvb-usb: generic DVB-USB module successfully deinitialized and disconnected. opera: start downloading fpga firmware dvb-usb-opera1-fpga-01.fw dvb-usb: found a 'Opera1 DVB-S USB2.0' in warm state. DVB: registering new adapter (Opera1 DVB-S USB2.0) dvb-usb: MAC address: 00:e0:4f:00:39:86 DVB: registering frontend 0 (ST STV0299 DVB-S)... input: IR-receiver inside an USB DVB receiver as /class/input/input12 dvb-usb: schedule remote query interval to 200 msecs. dvb-usb: Opera1 DVB-S USB2.0 successfully initialized and connected.
Module Size Used by stv0299 12873 1 i2c_i801 12113 0 dvb_pll 13637 1 dvb_usb_opera 12745 1 dvb_usb 18509 1 dvb_usb_opera dvb_core 69481 2 stv0299,dvb_usb i2c_core 21825 5 dvb_pll,stv0299,dvb_usb_opera,dvb_usb,i2c_i801