Watch TV with VLC and a Freecom DVB-T Stick

One of the things I need my Aspire One to do is watch TV.  When you’re away, it’s nice to be able to watch a little TV.  I bought a Freecom DVB-T USB stick years ago and have always had success under Linux.  It’s small, sensitive and selective.

I was surprised, especially on Ubuntu, how easy it was to setup.

My netbook runs Arch, so I installed it on that and my Dell 1545 running Ubuntu 9.04.


In Ubuntu the firmware was added to linux-restricted-modules 2.6.24, so it’s picked up straight away.  Under Arch the firmware is missing but there’s a copy here which needs to be put in /lib/firmware before plugging in.  Once plugged in checking dmesg shows the device is recognised, don’t worry about the error message:

dvb-usb: found a 'WideView WT-220U PenType Receiver (based on ZL353)' in warm state.
dvb-usb: will use the device's hardware PID filter (table count: 15).
DVB: registering new adapter (WideView WT-220U PenType Receiver (based on ZL353))
DVB: registering adapter 0 frontend 0 (WideView USB DVB-T)...
input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-3/input/input11
dvb-usb: schedule remote query interval to 300 msecs.
dvb-usb: WideView WT-220U PenType Receiver (based on ZL353) successfully initialized and connected.
dvb-usb: recv bulk message failed: -110

Notice that the IR receiver is also initialised, more on that later.


I’m using VLC but need a couple of other utilities too:

sudo apt-get install dvb-apps dvb-utils vlc for Ubuntu.

sudo pacman -S linuxtv-dvb-apps vlc for Arch.

Now scan for channels.  You need to know your transmitter, which you can find out from Ofcom (in the UK) and replace “Sudbury” with it:

scan /usr/share/dvb/dvb-t/uk-Sudbury -o zap|tee /home/dougie/channel-list.conf

Opening this file in VLC will now give you TV playback:

vlc /home/$USER/channel-list.conf

Create a launcher and you’re done.  Well unless you want to use the remote of course.


It’s relatively straight forward in Ubuntu, install lirc:

sudo apt-get install lirc

When the menu appears, choose Freecom DVB-T USB Stick and click OK.  Next select None and click OK.  Lastly choose /dev/input/by-path/pci-2-3-event-ir and click OK.

I had to transpose the VOL_DOWN / CH_DOWN and VOL_UP / CH_UP in /usr/share/lirc/remotes/freecom/lircd.conf.freeconf, your mileage may vary as there appears to be two remote layouts.

Now if you run irw in a terminal and press the buttons on the remote, you should see output like:

0000000080010071 00 MUTE Freecom_DVB-T_USB

Now we’re nearly there, just need to tell applications (in this case VLC) what to do.  This is done by editing ~/.lircrc.

Configuration is not particularly well documented but centres around ~/.lircrc.  Each button has a configuration block, starting with begin and ending with end.  You need to stipulate the program to receive (in our case VLC), the button (which we know from irw) and what it does in the receiving program.  For example, assigning the volume up button to increase the volume in VLC.

prog = vlc
button = VOL_UP
config = key-vol-up
repeat = 1

Open VLC and click Tools -> Preferences, then under “Show settings” click “Advanced”.  Under “Interfaces/Control Interfaces” tick “Infrared remote control interface”.  Click “Save” to close.

VLC Infrared Option
VLC Infrared Option

Sadly, I couldn’t get it to work on Arch.  The remote is recognised without lirc, detecting some of the keypresses – power, mute, volume and the numbers but checking sendkey and xev shows there is no keycode generated.

With lirc, irw doesn’t see input and yet the /etc/input/event does.  I’m reasonably sure that a module is overriding lirc and tried removing the obvious but to no avail.

After spending the better part of a day farting about with it, I realise that on a small screen the chances of me needing a remote negate the effort.  Bugs me that I haven’t got it though, so I guess I’ll revist it when I’ve more time.

8 Replies to “Watch TV with VLC and a Freecom DVB-T Stick”

  1. This is a perfect example of something that could, and should “just work” as soon as the dongle is plugged it; if a sequence can be performed manually, it can be codified and performed automagically based on the USB hardware IDs.

    …Or at the very least a meta-package that Depends on the appropriate packages.

    Please could you file two bug reports, and include a link to the list of items above: (“Should work with Freecom XYZ remote automatically”) (“Should work with Freecom ABC DVB-T automatically”)

    I notice you’ve included a note about being in the UK; is this dongle widely available (eg. Maplin, Lidl…)?

    1. I’m not sure why I should file a bug, as lirc works by following it’s own install guide. As said, from what I’ve read it appears most people have the volume and channel buttons where lirc thinks they are. If I was triaging it (which I might be) then it’d be “Low” at best as only a small number are affected.

      I wouldn’t say this is VLC’s issue either, as they do support lirc – which is correct, they shouldn’t be attempting to directly support every remote (remember lirc polls the hardware directly not hal). Although supporting remotes by default might be an idea.

      I bought the Freecom years ago but Google reckons they’re available 😉

  2. With kaffeine you simply plug in your dvb-t stick and click on “scan” and – i just works. no installing of packages, no tinkering with the command line, no searching for the right settings for your location…. thats how it should be done 😉

  3. HAL automatically configures the X11 server with all connected keyboards.
    This includes the remote controls, so LIRC is unable to get exclusive access to the remote control.
    Ubuntu’s lirc supplies a HAL configuration file that tells HAL to ignore keyboards that are known to be remote controls.
    You may need to copy this file from Ubuntu to Arch.

    1. I’ve copied the HAL file (/usr/share/hal/fdi/preprobe/20thirdparty/lirc.fdi) across to Arch and it does inhibit the remote being identified as a keyboard, its still not working through LIRC.

      Thanks for the pointer though, I’ll play around with it some more tonight.

Comments are closed.