A problem with MSI DigiVOX A/D II USB tv tuner

Hi everyone,

I am using openSuSE 11, and I have a problem with this little thingamajig. In Windows it works with drivers provided by manufacturer.

After plugging the device, in X nothing happens. At LinuxTV.org - Television with Linux, the relevant wiki page says that the empia 2883 (or, 28xx) is supported, so I tried to go by the howto they provided, here is the info

lsusb:

Bus 001 Device 006: ID eb1a:e323 eMPIA Technology, Inc.

dmesg, immediately after plugging, and modprobeing em28xx

usb 1-3: new high speed USB device using ehci_hcd and address 6
usb 1-3: configuration #1 chosen from 1 choice
usb 1-3: New USB device found, idVendor=eb1a, idProduct=e323
usb 1-3: New USB device strings: Mfr=0, Product=1, SerialNumber=0
usb 1-3: Product: USB 2883 Device
em28xx v4l2 driver version 0.1.0 loaded

I manually load the em28xx module by modprobeing it, here’s what lsmod|grep em shows

em28xx_alsa 25992 0
ff_memless 21896 1 usbhid
em28xx_dvb 25604 0
dvb_core 97256 1 em28xx_dvb
em28xx 73000 2 em28xx_alsa,em28xx_dvb
videodev 51328 1 em28xx
compat_ioctl32 17664 1 em28xx
videobuf_vmalloc 24068 1 em28xx
videobuf_core 35588 2 em28xx,videobuf_vmalloc
ir_common 56964 1 em28xx
v4l2_common 27776 1 em28xx
tveeprom 28036 1 em28xx
i2c_core 41108 5 em28xx,v4l2_common,tveeprom,nvidia,i2c_nforce2
snd_pcm 100100 4 em28xx_alsa,snd_pcm_oss,snd_hda_intel
k8temp 22016 0
snd 79544 19 em28xx_alsa,snd_pcm_oss,snd_mixer_oss,snd_seq,snd_seq_device,snd_hda_intel,snd_pcm,snd_timer,snd_hwdep
usbcore 164684 7 em28xx_alsa,usbhid,em28xx_dvb,em28xx,ohci_hcd,ehci_hcd

Tvtime, kaffeine don’t detect the device, there is no /dev/video, or /dev/dvb which, going by the howto, should exist.

I tried downloading the v4l-dvb-kernel, and compiling it, but I get this error

In file included from /temp/v4l-dvb-kernel/v4l/dvb_net.h:26,
from /temp/v4l-dvb-kernel/v4l/flexcop-common.h:22,
from /temp/v4l-dvb-kernel/v4l/flexcop-pci.c:10:
include/linux/netdevice.h:1: error: expected identifier or ‘(’ before numeric constant
include/linux/netdevice.h:25: error: stray ‘#’ in program
include/linux/netdevice.h:26: error: stray ‘#’ in program
include/linux/netdevice.h:28: error: stray ‘#’ in program
include/linux/netdevice.h:29: error: stray ‘#’ in program
include/linux/netdevice.h:30: error: stray ‘#’ in program
include/linux/netdevice.h:32: error: stray ‘#’ in program

and after repeating that quite a lot,

/usr/src/linux-2.6.25.5-1.1/include/linux/etherdevice.h:40: warning: ‘struct hh_cache’ declared inside parameter list
/usr/src/linux-2.6.25.5-1.1/include/linux/etherdevice.h:40: warning: ‘struct neighbour’ declared inside parameter list
/usr/src/linux-2.6.25.5-1.1/include/linux/etherdevice.h:43: warning: ‘struct hh_cache’ declared inside parameter list
/temp/v4l-dvb-kernel/v4l/flexcop-pci.c:141: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘flexcop_pci_isr’
/temp/v4l-dvb-kernel/v4l/flexcop-pci.c: In function ‘flexcop_pci_init’:
/temp/v4l-dvb-kernel/v4l/flexcop-pci.c:314: error: implicit declaration of function ‘request_irq’
/temp/v4l-dvb-kernel/v4l/flexcop-pci.c:314: error: ‘flexcop_pci_isr’ undeclared (first use in this function)
/temp/v4l-dvb-kernel/v4l/flexcop-pci.c:314: error: (Each undeclared identifier is reported only once
/temp/v4l-dvb-kernel/v4l/flexcop-pci.c:314: error: for each function it appears in.)
/temp/v4l-dvb-kernel/v4l/flexcop-pci.c:315: error: ‘IRQF_SHARED’ undeclared (first use in this function)
/temp/v4l-dvb-kernel/v4l/flexcop-pci.c: In function ‘flexcop_pci_exit’:
/temp/v4l-dvb-kernel/v4l/flexcop-pci.c:336: error: implicit declaration of function ‘free_irq’
make[5]: *** [/temp/v4l-dvb-kernel/v4l/flexcop-pci.o] Error 1
make[4]: *** [module/temp/v4l-dvb-kernel/v4l] Error 2

I would appreciate any help or directions what to do to get this thing going. I am not very experienced with Linux, and I apologize if my post is too confusing. If any more information is needed, I’ll be happy to post it.

Thanks in advance for your time and effort!

The modules should already be included with the 11.0 distribution, try going to a terminal and then typing:

su -c “modprobe em28xx”
Or
su - and then modprobe em28xx if you prefer to stay as root.

Then observe what dmesg says. The compilation errors are due to a missing #include but you shouldn’t need to compile them. Not hard to fix at all.

Thank you for your swift response. This is what comes out when I follow your instructions:

dmesg:

Linux video capture interface: v2.00
em28xx v4l2 driver version 0.1.0 loaded
usbcore: registered new interface driver em28xx
usb 2-3: new high speed USB device using ehci_hcd and address 4
usb 2-3: configuration #1 chosen from 1 choice
usb 2-3: New USB device found, idVendor=eb1a, idProduct=e323
usb 2-3: New USB device strings: Mfr=0, Product=1, SerialNumber=0
usb 2-3: Product: USB 2883 Device

Yet, other people using the same procedure seem to get a lot more response from dmesg, including identification of the device, settings and some other stuff. Am I missing something (wouldn’t surprise me)?

It depends a lot on the device itself and what features it has.

Does Kaffeine now recognize the device?

DVB-Device…
No DVB-Devices found. The DVB related functions will be hidden.

No :frowning: still nothing :frowning:

Oh, did you copy the firmware to /lib/firmware yet?


su -
cd /lib/firmware
wget http://konstantin.filtschew.de/v4l-firmware/firmware_v2.tgz
tar xvzf firmware_v2.tgz

rmmod em28xx 
modprobe em28xx

Look in dmesg.

Yes, I copied the firmware first thing… an experience from the ralink wireless… Nevertheless, I downloaded the firmware again and extracted it, followed instructions. Nothing new… :frowning:

Well, I got this thing partially solved. After all, I decided to make my way through compiling the darn thing. I fixed the netconfig.h, and touch-ed a config.h, since make complained that it couldn’t find it. I also commented out a certain line in netconfig.h, it generated an error, so make would stop there. In this case, make -i helped it go all the way.

What I have now is automatic loading of drivers when I plug in the device, and it is correctly detected. The /dev/video now exists, and I hope to soon work out what’s left to be worked out.

Your help was priceless, thank you.

You can use YAST TV card to add the device and driver manually or you can add modules you want loaded manually to /etc/sysconfig/kernel under the MODULES_LOADED_ON_BOOT=""

Great thing you got it fixed :slight_smile:

I have this very same TV unit and Kaffeine supports it perfectly on Ubuntu 8.04, out of the box with no configuring.

Let me know if you would like the contents of any information files if you think that might help you.

FWIW, it doesn’t work for me under openSuSE 11 and KDE3.

It don’t mean jack if it works under Ubuntu since they’re still using an old kernel and old DVB stack - a lot of things changed on the way.

i saw rebski managed to get this tuner working on ubuntu. i know that i’m way off topic but if someone could explain me how to get it working on ubuntu i would be very grateful.
if someone knows the solution, pleas send me a pm