1

I am using a DVB Tuner, USB tuner. I have added driver to the kernel and it is being registered. But when the device is connected, it doesnt invoke the probe function.

Is there anything I have to add? Like should the device driver be mapped to the device or something? and please explain how a driver is loaded, based on the type of usb device. The kernel I am using is linux 3.5.

TPS
  • 2,483
  • 5
  • 27
  • 45

1 Answers1

0

Do you know for certain that your device works with the driver? If so:

Firmware

Some devices also need additional firmware. Unfortunately, the method needed to extract the firwmware and install it, depends on the device. Some require you to download a copy of the Windows driver and use tools to extract the firmware. Google will help you here.

Changed Vendor & Product IDs

Sometimes vendors change the vendor and product ID, which is the method drivers use to recognise compatible devices.

These IDs are hard-coded in the driver. Fortunately, modern device drivers have a method to temporarily add vendor and product Ids at runtime.

Use lsusb to get the IDs of your device:

# lsusb
Bus 002 Device 001: ID 1234:abcd Acme Corp DVB Tuner

Unplug your device and unload the driver (to get a fresh starting point):

# rmmod acme_dvb

Next, load your driver:

# modprobe acme_dvb

Finally, tell the driver about the new USB IDs:

# echo 1234 abcd > sys/bus/usb/drivers/acme_dvb/new_id

Note that the exact path may vary.

Plug your device in and check if it's been recognised:

# dmesg

If this works, the right thing to do would report it as a bug against the driver so that hopefully the maitainer will add the new IDs.

garethTheRed
  • 33,289
  • 4
  • 92
  • 101
  • Hi garethTheRed, – Christy George Nov 05 '14 at 11:31
  • Thanks for the reply. Sadly I am not able to use lsusb, since I'm using it on a set-top box. It doesn't have any of those binaries. But yes, thanks for that command to tell about new USB IDs. Now I finally get the device node, but getting two frontends, where only one is supposed to be created. – Christy George Nov 05 '14 at 11:34
  • What do you mean by *two frontends*? Also, add the make/model (and maybe USB Id) of the device to your question. – garethTheRed Nov 05 '14 at 11:39
  • I mean usually there'll be just one device node created in /dev.. like /dev/device/adapter0/frontend0.. But now its like, there are /dev/device/adapter0 and /dev/device/adapter1/frontend0 – Christy George Nov 07 '14 at 04:45
  • My tuner is Happauge Ministick 2 with USB id 2040:f900 – Christy George Nov 07 '14 at 04:45
  • Having two nodes in `/dev` is not necessarily a problem. Have you read the [Gentoo article](https://wiki.gentoo.org/wiki/Hauppauge_WinTV_Ministick) on installing this device? You can't use it as a step-by-step guide, but it should give you some clues. For instance, it seems you need to install firmware. – garethTheRed Nov 07 '14 at 06:35