You are hereInstalling the driver

Installing the driver


By bbackx - Posted on 15 May 2008

OUTDATED!!!

Please check out the new howto, the text that follows is outdated, a lot has changed since it was written.





This page explains how you can install the currently available linux-driver for the FireDTV/FloppyDTV devices. Please remember: the driver is far from finished. Currently, it should work with the C/S/T devices (S2 not yet supported) and only FTA-channels will work.

I'm starting from a clean Ubuntu 8.04 installation (only updates are installed, nothing more). This howto is largely based on the one from the Ubuntu wiki.





Preparation

Let's first install the tools we need:

sudo apt-get update
sudo apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 kaffeine libdvdread3 git-core
sudo /usr/share/doc/libdvdread3/install-css.sh

(I added kaffeine, libdvdread3 and the initialisation of libdvdread3 so we are able to check if everything is working)

Next step: get the latest kernel form the git-tree:

cd /usr/src
sudo git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
cd kernel-2.6

In all what follows, I assume you are executing the commando's from /usr/src/linux-2.6 !!!





Apply some patches

Once this is done, we clean a bit and apply the kernel-patch to add the firesat-driver:

sudo make clean
sudo wget http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/patches/bad/ldp/dvb-add-firesat-driver.patch
sudo patch -p1 < dvb-add-firesat-driver.patch --dry-run

If you're not getting any errors running those commands, it's safe to apply the patch using the following command:

sudo patch -p1 < dvb-add-firesat-driver.patch

Please check the following file: net/irda/irnet/irnet_irda.c and see if <asm/unaligned.h> is included. It should be fixed with the newest git-tree from Linus, but you never know.

For the owners of a S2-device, there are two additional patches which add support for DVB-S to the driver (DVB-S2 is not yet working for the moment). You also need the most recent firmware which can be found here.

sudo wget http://firedtv.bbackx.com/sites/default/files/device-recognition.patch
sudo wget http://firedtv.bbackx.com/sites/default/files/add_dvbs.patch
sudo patch -p1 < device-recognition.patch --dry-run
sudo patch -p1 < add_dvbs.patch --dry-run

And if no errors where found:

sudo patch -p1 < device-recognition.patch
sudo patch -p1 < add_dvbs.patch





Build the new kernel

Ok, we're done fixing now. Let's build our new kernel, shall we?

First, copy your current configuration to your new kernel-tree:

cp /boot/config-`uname -r` .config

(Please mind the ``, '' won't work)

Next, update the config-file to the new kernel-tree:

sudo make oldconfig

Next, check if the firesat-drive is selected using:

sudo make menuconfig

Go to Device Drivers (enter to open it), then select Multimedia devices (again enter to show the options), go to DVB/ATSC adapters (again, enter to show further options), go to the bottom and you should see FireSat devices. Select it and press the space bar. In front of it, there should appear an M (" FireSat devices").

Select Exit (4 times) and click yes to save the new kernel configuration.

Finally, let's build the new kernel:

sudo make-kpkg clean
CONCURRENCY_LEVEL=N fakeroot make-kpkg --initrd --append-to-version=-firesat kernel_image kernel_headers

("N" in CONCURRENCY_LEVEL=N is how many CPUs to use to build the kernel)
The last command takes quite some time, so go read a book or something ;-)





Booting the new kernel

Once the kernel is build, you obviously want to boot it. First, we have to 'install' them using the following commandos:

cd /usr/src
sudo dpkg -i linux-image-2.6.26-rc2-firesat_2.6.26-rc2-firesat-10.00.Custom_i386.deb
sudo dpkg -i linux-headers-2.6.26-rc2-firesat_2.6.26-rc2-firesat-10.00.Custom_i386.deb


Now, reboot, select your new kernel, start kaffeine and play with your FireDTV/FloppyDTV receiver in Linux :-)





Notes

When booting my custom kernel, I noticed some problems with graphics- and audio-drivers. I'm still trying to find out what's going wrong. If anybody knows a solution, you can say it in this topic on the Digital Everywhere forum.

Also have a look at firesat.kurelid.se, it contains an interesting patch which implements support for the Common Interface.