When you're trying to debug what's wrong with your setup be aware of:
dmesg - will tell you kernel messages in regards to anything happening to devices and drivers etc.
ls -al /dev/dvb/ - will list you DVB devices/frontends that the kernel presents to Linux userspace
cat /proc/bus/nim_sockets - will show you what tuners are available for enigma2.
In general you need:
- The physical device (USB tuner)
- drivers (kernel modules)
- firmware for the drivers
- usbtuner binary
Once you connect the USB device to your box you run dmesg on the command line (through SSH or telent) to see what does the kernel say about the device. All the messages maybe rather cryptic but should give you enough idea. You will see some messages about connected USB devices and given USB IDs etc.
To load the the necessary drivers into the kernel you basically do: modprobe <driver_name>
Loading the driver will attempt to load the actual driver and all related drivers because you have to know that it's not just one driver that is required for supporting your device. Various pieces of the h/w in the USB tuner device require various drivers and loading the main driver should automatically load all related drivers for other components. This should be handled automatically by modprobe assuming that all drivers are available/installed and the program and kernel knows about them. As you can imagine there needs to be some kind of way to tell the kernel's module autoloader in what order to load all the drivers and this is where "depmod -a" comes handly. After installing new drivers (kernel modules) the OS (Linux userspace) should run depmod -a to update this database of module relationships. if it's not done automatically you need to run it manually. But you should only require run it once after all your drivers have been installed.
A very important aspect of installing and loading drivers is the firmware. Firmware is a part device drivers that is not provided in an open source and provided as a binary blob (a file) instead. The firmware file needs to be of certain version and needs to be named exactly as the kernel module (driver) expects it. In addition to this the firmware file needs to be placed in /lib/firmware or some sub directory of it - once again this is dependent on what the driver (kernel module) expects.
So once you have everything installed on your box (kernel modules and firmware) when you do "modprobe <kernel_module_name>" there will be some interesting messages produced by the kernel which you will be able to see when you run "dmesg". If you can't see anything interesting try unplugging the device and plugging it back in and right after this check "dmesg". In most of the cases the modules cannot be loaded because firmware file is missing, not in the right place or wrong version. Of course it may also be the case of not being able to load one or more of required drivers/modules. But kernel (through dmesg) should show you.
Sometimes you need to unload all the related modules (modprobe -r <module_name>) and load the device module again (which should try loading all related modules automatically) and if there is any module missing you'll probably see it on the console or in dmesg. When unloading particular modules you will have to do it in a correct order because they depend on each other so if module "z" requires module "y" and module "y" requires module "x" as it's dependency you will not be able to do: modprobe -r "x" because linux will tell you that it's being used by module "y" or module "z" so you will have to first unload module "z" then module "y" and finally if nothing is using module "x" it will let you unload it.
There seem to be a lot of confusion about "modprobe -b" and module-init-tools. There reason why my scripts even touch this subject is because at the time of me creating this whole thing my enigma2 image would freeze during boot when all my usb tuner device drivers were loaded. This had something to do with frontend ordering in /dev/dvb and how enigma2 was expecting it at bootup. The solution to the problem was to blacklist the usb tuner device driver (module) in /etc/modprobe.conf so that the driver doesn't get loaded automatically during boot. Then, once all normal services started and before enigma2 process is started, start the usbtuner service which manually loads the required module/driver, starts usbtuner binary to present the tuner in /proc/bus/nim_sockets and allow enigma2 process to see it as additional tuner.
So the images I looked at by default were using "modprobe" command that did not support blacklist support. Installing module-init-tools rectified it because it was shipping a different version of modprobe program which did support the -b switch but -b is not executed by default so I had to "patch" the script that runs it to add the "-b" switch. After that my box would cleanly boot and not stall half way through. I honestly don't know why doing this on recent gemini or some other OE 2.0 images breaks the boot process. I didn't have time to look at it - and still don't. A way to find this out is to enable console redirection to serial port in the bios and observing the boot process through console (in eg. minicom or hyperterminal).
I know that it's all rather technical and may not help average user who just wants to have an additional tuner in their enigma2 box but may help to understand how the whole process work for someone who decides to take it forward and has some more generic linux admin knowledge.