Jump to content

Freecom USB Stick DVB


sjaglin
 Share

Recommended Posts

Hi there,

 

I got myself a freecom usb stick digital tv receiver in order to record some programs rather thatn using the video, and to see how it works etc... toy for boy...

 

Well, I eventually got a result with windfart but I had to use a different software than the one provided AND to plug my aerial in the wall (portable one not sufficient).

 

Next of course I want it to work on my proper box : linux-box!

 

Now I went to http://www.linuxtv.org/ where I found a firmware driver (dvb-usb-wt220u-fc03.fw is its little name).

 

Now I don t have a clue what to do with it or how to make it work.

 

Here are a couple of infos about the system so far :

 

[root@localhost stephane]# lsmod | grep usb
usbmouse				4160  0
usb_storage			81220  0
scsi_mod			  121224  4 sg,sd_mod,libata,usb_storage
usbhid				 44544  0
usbcore			   108476  6 usbmouse,usb_storage,usbhid,ehci_hcd,ohci_hcd
[root@localhost stephane]# lsusb
Bus 002 Device 003: ID 14aa:0225 AVerMedia (again) or C&E
Bus 002 Device 002: ID 058f:6362 Alcor Micro Corp.
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 002: ID 045e:00e1 Microsoft Corp.
Bus 001 Device 001: ID 0000:0000
[root@localhost stephane]#

 

AVermedia is the new usb device which appears when I plug the freecom in.

 

I ve seen in places that it seem to work with kafeine on suse (the windoze branch of linux...) and others but I can t find a "how to"

 

I would appreciate some help there!

 

Cheers!

 

Stef

 

:wall:

 

PS It seems I need v4l-dvb but can t find an RPM for that , any ideas?

Edited by sjaglin@yahoo.co.uk
Link to comment
Share on other sites

This is all I've found for available packages:

 

[ian@europa ~]$ urpmf --name v4l
x11-driver-video-v4l
x11-driver-video-v4l
gstreamer-v4l2

[ian@europa ~]$ urpmf --name dvb
dvb-apps
dvbsnoop
dvbstream
dvbtune
libdvb
libdvb-devel
dvb-apps
dvbsnoop
dvbstream
dvbtune
libdvbpsi4
libdvbpsi4-devel
dvbsubs
dkms-dvb-ttpci-sc_patched
dvb-firmware-usb
dvb-firmware-ttpci-sc_patched
dvb-firmware-frontends
dvb-firmware-ttpci

 

v4l is normally something you have compiled into your kernel:

 

[root@europa linux]# slocate v4l | grep kernel
/lib/modules/2.6.17-5mdv/kernel/drivers/media/video/v4l1-compat.ko.gz
/lib/modules/2.6.17-5mdv/kernel/drivers/media/video/v4l2-common.ko.gz

 

seems there's modules for it, so the kernel support is there. Other than that, I've no idea since I've not done this myself, but the wiki's on that website you listed, should help in getting the dvb up and running, or even v4l. I've not looked in-depth, but there should be some stuff there that tells you what to do with the firmware.

 

Sorry I can't help more than that :(

 

Maybe the dvb-firmware-usb will do the trick for you.

Link to comment
Share on other sites

Hi Ian,

Thanx, as fast as the light as usual!

 

Well I ve just read and installed v4l from source (http://www.linuxtv.org/wiki/index.php/How_to_install_DVB) and I have some succes :

 

[root@localhost stephane]# lsmod|grep dvb
dvb_usb_dtt200u		11300  0
dvb_usb				20972  1 dvb_usb_dtt200u
dvb_core			   76680  1 dvb_usb
firmware_class		  7424  1 dvb_usb
dvb_pll				11780  1 dvb_usb
i2c_core			   17360  6 it87,i2c_sensor,i2c_isa,nvidia,dvb_usb,dvb_pll
usbcore			   108476  8 dvb_usb_dtt200u,dvb_usb,usbmouse,usb_storage,usbhid,ehci_hcd,ohci_hcd
[root@localhost stephane]# slocate v4l | grep kernel
/lib/modules/2.6.12-17mdk-i586-up-1GB/kernel/drivers/media/video/v4l1-compat.ko.gz
/lib/modules/2.6.12-17mdk-i586-up-1GB/kernel/drivers/media/video/v4l2-common.ko.gz
[root@localhost stephane]#

 

I now have to find out how to make it work with Kaffeine who so far cant see it!

 

Stef ;)

Link to comment
Share on other sites

In the configure options, there's an entry to enable dvb client. I don't know if that helps.

 

I tried that it does not seem to make anything.

 

On 2006 I have the device recognised as a tv-card but nothing much, at least the device is noticed and its light turns orange (good sign).

 

If I start 2007 from cold device it is not detected (only in lsusb, not in drakconf) on the light stays off. If I boot in 2006, then reboot in 2007 (the device being warm) then it is detected by 2007.

 

Conclusion, this can be used as a thermometer but so far no joy as a tv card!

 

Stef :lol2:

Link to comment
Share on other sites

  • 2 weeks later...
Conclusion, this can be used as a thermometer but so far no joy as a tv card!

 

I've been able to get one of these working in Mandriva 2007 without too much trouble. I'll post a detailed write-up of the process as soon as I can, but it definitely works for me using a recently-purchased Freecom USB-DVB-T stick with a hardware id of 14aa-0225 just like yours.

 

Sorry to 'tease' like this, but it's late (or early, depending upon how you look at it!) and I need to get some sleep - check back here in the next 48 hours and I should have been able to post more information by then!

Link to comment
Share on other sites

Thanks for keeping the thread going. I ahve o admit I gave up as I was in a rush to record some programs. I bought a win-tv nova as I saw it was fully supported by the kernel.

Thanx anyway, this thread and your how-to to come will be useful to other users and to me for when I am in a more courageous mood!

 

Stef ;)

Link to comment
Share on other sites

As promised, here's my blow by blow account of how I got this working under Mandriva 2007...enjoy!

 

This was done on a fresh install of Mandriva 2007 - I'd configured my URPMI sources with the help of the easyurpmi web site at http://easyurpmi.zarb.org/ and then ran 'urpmi --auto --auto-select --update' to pull in all the latest patches. I also updated the kernel to 2.6.17-6mdv and did the rest of the work with this as the active kernel.

 

1. Install kernel-source-2.6.17-6mdv - this will almost certainly also work with the 2.6.17-5mdv kernel that you get after a fresh install, but I'd already appplied all the latest patches before I started playing.

 

2. Grab a copy of the latest DVB source tarball (v4l-dvb-20060717.tar.gz) from http://www.linuxtv.org/downloads/snapshots/ and save this in your home directory.

 

3. Create a directory called 'dvb-stuff' and do 'cd dvb-stuff'

 

4. Unpack the tarball with the command 'tar -zxvf ../v4l-dvb-20060717.tar.gz' - this will give you a bunch of directories and files under /home/yourusername/dvb-stuff.

 

5. Become root with 'su -' and 'cd /usr/src/linux-2.6.17-6mdv'. Stay as root from this point.

 

6. Do 'make menuconfig'

 

7. When you have the kernel config menu appear, press the right-arrow cursor key to highlight the '<exit>' option and press return. Ensure that '<yes>' is highlighted in response to the question 'Do you wish to save your kernel configuration?' and press return.

 

8. You should be back at a shell prompt at this point.

 

9. Open up 'Makefile' in your favourite text editor, e.g 'vi Makefile'.

 

10. Find the line which says 'EXTRAVERSION = -6mdvcustom' and change it to read 'EXTRAVERSION = -6mdv'. Save the amended file. This step avoids the possibility of compiling the DVB kernel modules with a version string which is different to the stock kernel. It probably isn't (if you know much about building your own kernels) the best way to go about this, but it worked for me!

 

11. Do a 'make clean', followed by 'make'.

 

12. Watch the output from the 'make' command carefully - when you see it get to the point where it says something like 'CC init/main.o', you can press Ctrl-C to break out of the 'make' process. All we've done up to this point is ensured that all of the kernel compile preprocessor macros have been run, giving you a sporting chance of getting the DVB bits to compile properly.

 

13. Do 'cd /home/yourusername/dvb-stuff'

 

14. Open up './linux/drivers/media/dvb/dvb-core/dvb_net.c' in your text editor and go to line 1140. Change this block of code:

 

		dvb_net_feed_stop(dev);
	priv->rx_mode = RX_MODE_UNI;
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
	spin_lock_bh(&dev->xmit_lock);
#else
	netif_tx_lock_bh(dev);
#endif

	if (dev->flags & IFF_PROMISC) {
			dprintk("%s: promiscuous mode\n", dev->name);

 

so that it looks like this instead:

 

		dvb_net_feed_stop(dev);
	priv->rx_mode = RX_MODE_UNI;
/* #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
	spin_lock_bh(&dev->xmit_lock);
#else */
	netif_tx_lock_bh(dev);
/* #endif */

	if (dev->flags & IFF_PROMISC) {
			dprintk("%s: promiscuous mode\n", dev->name);

 

This hack *really* shouldn't be necessary, but I don't understand enough about the way Mandriva build their distro kernels to be able to offer anything other than this 'brute force' solution to the problem. If you don't make this change, the build of the DVB modules fails with an error message which suggests to me that something somewhere has been patched in the kernel source tree, such that trying to compile the 'spin_lock_bh' function fails completely.

 

15. Make the exact same change slightly further down the code at line 1169 and save the modified file.

 

16. Now do 'make' and wait for the build process to finish. You will probably see the odd warning here and there as the build progresses, but this doesn't appear to cause any problems in the resulting compiled modules.

 

17. When the compile has finished, type 'make install' to copy the new modules over to the right place on your system.

 

<edited to add>

17.5 Run 'depmod -a' to ensure that all the new module dependencies and symbol maps get properly updated for the newly-installed DVB modules. Things go a bit wierd if you miss this step out! :-)

</edited>

 

18. Next, you will need a copy of the revision 3 firmware for the Freecom DVB stick. You can download this from:

 

http://thadathil.net:8000/dvb/fw/dvb-usb/d...-wt220u-fc03.fw

 

Save this file in /lib/firmware

 

19. Now do 'tail -f /var/log/messages'. This monitors the system log file in real time so you can see what's going on. Plug your Freecom DVB stick in. You should see something like this get written to the log:

 

Nov 23 11:51:24 localhost kernel: usb 4-6: new high speed USB device using ehci_hcd and address 3
Nov 23 11:51:24 localhost kernel: usb 4-6: configuration #1 chosen from 1 choice
Nov 23 11:51:25 localhost kernel: dvb-usb: found a 'WideView WT-220U PenType Receiver (Typhoon/Freecom)' in cold state, will try to load a firmware
Nov 23 11:51:25 localhost kernel: dvb-usb: downloading firmware from file 'dvb-usb-wt220u-fc03.fw'
Nov 23 11:51:25 localhost kernel: usbcore: registered new driver dvb_usb_dtt200u
Nov 23 11:51:26 localhost kernel: usb 4-6: USB disconnect, address 3
Nov 23 11:51:26 localhost kernel: dvb-usb: generic DVB-USB module successfully deinitialized and disconnected.
Nov 23 11:51:27 localhost kernel: usb 4-6: new high speed USB device using ehci_hcd and address 4
Nov 23 11:51:27 localhost kernel: usb 4-6: configuration #1 chosen from 1 choice
Nov 23 11:51:27 localhost kernel: dvb-usb: found a 'WideView WT-220U PenType Receiver (Typhoon/Freecom)' in warm state.
Nov 23 11:51:27 localhost kernel: dvb-usb: will use the device's hardware PID filter (table count: 15).
Nov 23 11:51:27 localhost kernel: DVB: registering new adapter (WideView WT-220U PenType Receiver (Typhoon/Freecom)).
Nov 23 11:51:27 localhost kernel: DVB: registering frontend 0 (WideView USB DVB-T)...
Nov 23 11:51:27 localhost kernel: input: IR-receiver inside an USB DVB receiver as /class/input/input3
Nov 23 11:51:27 localhost kernel: dvb-usb: schedule remote query interval to 300 msecs.
Nov 23 11:51:27 localhost kernel: dvb-usb: WideView WT-220U PenType Receiver (Typhoon/Freecom) successfully initialized and connected.
Nov 23 11:51:29 localhost kernel: dvb-usb: recv bulk message failed: -110
Nov 23 11:51:31 localhost udevd-event[3312]: wait_for_sysfs: waiting for '/sys/devices/pci0000:00/0000:00:1d.7/usb4/4-6/4-6:1.1/bus' failed
Nov 23 11:51:37 localhost kernel: drivers/usb/input/hid-core.c: timeout initializing reports
Nov 23 11:51:37 localhost kernel: input: Digital TV Receiver Digital TV Receiver as /class/input/input4
Nov 23 11:51:37 localhost kernel: input: USB HID v1.10 Keyboard [Digital TV Receiver Digital TV Receiver] on usb-0000:00:1d.7-6

 

20. The next step is to ensure that you have the stuff you need to actually be able to watch TV. For me, I installed the following using urpmi:

 

dvb-apps

dvbsnoop

dvbstream

dvbtune

libdvb

kaffeine

mplayer

mplayer-gui

mplayer-fonts

win32-codecs (from the PLF site, http://easyurpmi.zarb.org/)

 

21. Fire up kaffeine and you should get prompted to select your local TV transmitter, after which you can follow through the channel search wizard. Don't know the name of your local TV transmitter? No problem, take a look here:

 

http://www.dtg.org.uk/retailer/coverage.html

 

Enter your UK postcode and the site will tell you which is your nearest transmitter.

 

<note added on December 7th 2006>

22. If you have the msec package installed, and I believe this gets installed by default now in Mandriva, you'll eventually find that the permissions on /dev/devb/* get altered so that all devices are owned by user root, group video and have permissions set to 660. This means that when you try to tune a channel, you'll get a 'permission denied' error. The solution is to edit /etc/group as root and add your regular user into the 'video' group. In my case, I changed the relevant line in /etc/group from:

 

video:x:82:vdr,mythtv

 

to:

 

video:x:82:vdr,mythtv,phile

 

and this sorted my permissions problem.

</note added on December 7th 2006>

 

Happy DVB-ing!

 

I'd suggest you now go off and read up on some of the stuff on the LinuxTV site. One handy hint which had me stumped for a while...you will inevitably find yourself in a position where you're trying to generate a 'channels.conf' file for use with other apps. All of the docs and howtos out there say that you should use a program called 'scan' to do this. Under Mandriva 2007, this program is installed as 'scandvb' and is part of the dvp-apps RPM package. Just substitute 'scandvb' wherever you see an instruction to use the 'scan' command.

 

Please post back here with any success/failure stories based on these instructions.

Edited by Phil Edwards
Link to comment
Share on other sites

As promised, here's my blow by blow account of how I got this working under Mandriva 2007...enjoy!

 

...

 

10. Find the line which says 'EXTRAVERSION = -6mdvcustom' and change it to read 'EXTRAVERSION = -6mdv'. Save the amended file. This step avoids the possibility of compiling the DVB kernel modules with a version string which is different to the stock kernel. It probably isn't (if you know much about building your own kernels) the best way to go about this, but it worked for me!

 

...

 

/* #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)

 

This hack *really* shouldn't be necessary, but I don't understand enough about the way Mandriva build their distro kernels...

 

Wow, thanks Phil! I've been trying to get my new USB DVB-T stick (a Leadtek WinFast DTV Dongle) to work, and I'd got as far as the compilation errors you mentioned. As far as I can understand, Mandriva seem to have backported some features from 2.6.18 to their customised 2.6.17 kernel, and that makes compiling some things a nightmare unless you know what to change where. By Thursday evening, I'd found some things saying you could hack the v4l source to work with 2007.0, but not what the actual hacks were until now!

 

This looks like it'll work a treat. I've got some stuff running that I don't want to interrupt, so I can't test yet, but I'm pretty confident it'll work B) . I'll post back as requested when I've had a chance to try.

Link to comment
Share on other sites

This looks like it'll work a treat. I've got some stuff running that I don't want to interrupt, so I can't test yet, but I'm pretty confident it'll work B) . I'll post back as requested when I've had a chance to try.

 

OK, it took a bit more work (doesn't it always) to get it to work, but I've got the Leadtek dongle registering now. I had installed the latest version of v4l using mercurial (another versioning system like cvs/svn) instead of the snapshot. It still didn't register the stick until after I deleted /lib/modules/2.6.17-6mdv/kernel/drivers/media/* - presumably a conflict with a module already in the kernel.

 

Then I had a problem when I recompiled ivtv (for the PVR350 already running). It compiled fine, but gave a kernel oops and froze the machine when modprobe'd. Thank goodness for 'linux init=/bin/bash' at the lilo prompt to let me in to disable the ivtv modules!

 

I got ivtv back running by replacing the header files in /usr/src/linux/include/media with the new ones supplied with v4l (maybe there's a better way to do this, but I don't know it). Again, version differences seem to get in the way, although I'm surprised that the v4l make install doesn't copy across the .h files automatically to save headaches...

 

Nick

Link to comment
Share on other sites

  • 2 weeks later...

I've added another note to my long 'howto' post to explain how I corrected a permissions problem which cropped up after leaving my machine on all night to record some stuff. The 'msec' permissions checking kicked in and locked me out of the /dev/dvb/* devices until I worked out what was wrong.

Edited by Phil Edwards
Link to comment
Share on other sites

  • 3 weeks later...
Guest richard anderson

hi

 

I have followed the instructions as far as unpacking the tarball in my folder 'dvbstuff'. however, I have run into a problem in that I get a message on 'make' which says File not found:/lib/modules/2.6.17-mdv/build/ . config at ./scripts/make_kconfig.pl line 30

 

I am an absolute n00bie and am on the outside of my envelope here. can anyone offer me some direction.

I am running Mandriva 2007 Club edition. I didn't carry out every step in the tasks outlined by Phil Edwards as I had the later kernel installed.

 

I am new to the linux command line so I hope that I can use modprobe to insert the file??. if so how.? if not, what do I need to do?

 

to update, I didn't run Lilo after tampering with the kernel brfore reboting so I'm in a bit of a mess. I was also getting problems with the lines I modified in the drivers code getting an error like no xmit-lock.

 

I take it I need to redo the kernel and run Lilo before rebooting. what about the other stuff?

 

If need be, I'll install afresh and start again but if I don't need to, I could do with the practice of wandering around the system

Edited by richard anderson
Link to comment
Share on other sites

  • 3 weeks later...

Richard: if you're running the mdv 2007 stock kernel, I think you can probably skip steps 5-12.

 

If you're still seeing errors about xmit-lock, it's either that the kernel version you're running is newer than Phil and mine and no longer needs the hack in steps 13-15, or that you missed one occurence - step 15 is easy to overlook!

 

As I understand it, you don't need to use modprobe explicitly. Once everything is compiled and installed, the hotplug service will notice a new USB device getting plugged in, and does all necessary module loads for you.

 

Hope you get it working! It'd be good to get feedback if you do/did...

Nick

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...