I just started writing this up, comments welcome! Drivers:
There are at least three driver ports for digital TV providing the /dev/dvb
provides the /dev/dvb
api for a few CX2388x-based PCI(e) DVB-T and ATSC tuners, see http://corona.homeunix.net/cx88wiki
provides the /dev/dvb
api for a few Siano-based DVB tuners, see http://contribs.martymac.org
runs Linux v4l/dvb drivers in FreeBSD userland to access a lot of different USB DVB-T/T2/C/S/S2 and ATSC tuners, see http://wiki.freebsd.org/WebcamCompat
for tuners people tested on FreeBSD and the linuxtv wiki for (incomplete) lists of more USB tuners that have good chances of working:http://www.linuxtv.org/wiki/index.php/DVB-T_USB_Deviceshttp://www.linuxtv.org/wiki/index.php/DVB-T2_USB_Deviceshttp://www.linuxtv.org/wiki/index.php/DVB-S2_USB_Deviceshttp://www.linuxtv.org/wiki/index.php/DVB-S_USB_Deviceshttp://www.linuxtv.org/wiki/index.php/DVB-C_USB_Deviceshttp://www.linuxtv.org/wiki/index.php/ATSC_USB_DevicesTo use webcamd:
Many tuners need firmware files, put them in /boot/modules
. (See also http://wiki.freebsd.org/WebcamCompat
Then install the webcamd port, add your user to the webcamd group (and log it back in), make sure cuse4bsd.ko gets loaded (add it to /boot/loader.conf
), add webcamd_enable="YES" to /etc/rc.conf
, and plug in the tuner. Now you should see device nodes like /dev/dvb/adapter0/demux0
. If the tuner has a CI slot (for decoding crypted channels) you should also get /dev/dvb/adapter0/ca0
. (I think for crypted channels you need VDR or maybe MythTV, and of course the right CAM and smartcard.)
You can build the webcamd port with the DEBUG knob and start it manually on a root shell with "-d x.y -H" to see log messages by the Linux drivers in case there are problems (run usbconfig as root to find the usbus x and device y the tuner is on.)
Some tuners need webcamd run with "-m dvb-usb-init.force_pid_filter_usage=1" to receive clean streams (you can put that in webcamd_flags in /etc/rc.conf
), tho that breaks some methods of channel scanning like multimedia/w_scan
and the scanning in multimedia/kaffeine
so you need to restart webcamd (for example by re-plugging the tuner) with webcamd_flags commented out for the duration of the scan.Receiving TV, now that you have /dev/dvb nodes:
- The easy (GUI) way: multimedia/kaffeine
(This looks for the /dev/dvb
nodes via hald which I think currently only works for webcamd when it's started with -H; and it should now also work for the cx88 drivers that meanwhile know about hald too.)
To use kaffeine for digital TV install the port, make sure hald and dbus are running and webcamd was started with -H (should be default), start kaffeine, select "Configure television", click on "Update scan data over the Internet", select your tuner and region (or satellite details), then select "Channels" and start a scan. If the scan finished without finding channels (and it's not the antenna setup) then check for missing firmware files and that webcamd isn't run with "-m dvb-usb-init.force_pid_filter_usage=1", see above for how to get logs from webcamd.
One you have setup your channel list (for example "copy filtered" w/o filters will copy all the found channels, then click "OK"), you can select "Digital Television" from the main menu and zap to your channels.
- The 'minimal' way: multimedia/w_scan
If you want to use mplayer make sure it's built with the V4L knob enabled and that you have a ~/.mplayer/channels.conf
file. To get one you can use w_scan with 'scan' channels.conf type, i.e. that's -X . See the w_scan homepage http://wirbel.htpc-forum.de/w_scan/index_en.html
for options and examples.
Once you have a channels.conf you can try: [cmd=$]mplayer dvb://
- The 'full-featured'/automated/networked way: multimedia/vdr
and related ports:
This has its own page on the FreeBSD wiki: http://wiki.freebsd.org/VDR
(and it's what I prefer.
- The alternative 'full-featured'/automated/networked way: multimedia/mythtv
and related ports:
This is probably preferred for ATSC. It has a page on the FreeBSD wiki too: http://wiki.freebsd.org/MythTV
Note there was a bug in the Linux dvb drivers used by webcamd < 184.108.40.206 affecting mythtv-setup, if that happens to you (symptom is a failed FE_GET_INFO ioctl) just update your webcamd port.
There are more apps that can receive from /dev/dvb
like vlc, xine, etc (some people even use Linux binaries like SageTV via the Linuxolator and multimedia/linux_dvbwrapper-kmod
), but from what I tested VDR works best, closely followed by current kaffeine.