This is from www.verbraak.org/wiki/index.php/Linux_Mantis_driver but his site seems to be down a lot so I have mirrored it here because I am trying to get my 1034 card to work with Linux.
Linux Mantis driver
From My Interesting Version
Currently the Mantis chipset driver for linux is in Alpha state.
This Mantis chipset is used on DVB board for reception of DVB-T, DVB-S, DVB-S2, DVB-C signals.
In this small Howto i explain how I got the mantis driver up and
running in my vanilla linux kernel.
I had to do it in this way because I also own two Hauppauge PVR cards
(PVR-350 and PVR-150) which do not work well with the mantis module.
This example has been tested with linux kernel source 2.6.22
and the ivtv driver from the linuxtv.org hg reposititory and the one
included in the kernel on a Fedora Core 6 setup.
WARNING: IVTV 0.10.3 and Mantis and kernel 2.6.21 and up do not work together. From kernel 2.6.22 the ivtv module is part of the kernel and you do not need to download it from the ivtvdriver.org website. To get ivtv and the mantis working in kernel 2.6.21 and up you need to add extra module parameters to the saa7115 module. See the instructions at the end for this.
[edit] Following steps you need to take (short ways for kernel 2.6.23.1):
- Download the patch file for kernel 2.6.23.1.
- use your current kernel or take a kernel source tree from http://www.kernel.org. Make sure you have the kernel headers/sources files/packages installed and you have the kernel up and running.
- Apply the patch.
#> cd <path to kernel source> #> patch -p1 < <path to mantis-2.6.23.1.patch file>/mantis-2.6.23.1.patch
- Activate the mantis modules in your kernel config. Answer yes to the Mantis parts.
#> make oldconfig
- Compile.
#> make #> make modules_install
- When you use your current kernel sources do load the modules
#> modprobe mantis #> dmesg | grep -i dvb found a VP-1034 PCI DVB-S/DSS device on (02:05.0), DVB: registering new adapter (Mantis dvb adapter). mantis_frontend_init (0): Probing for MB86A16 (DVB-S/DSS) mantis_frontend_init (0): found MB86A16 DVB-S/DSS frontend @0x08 DVB: registering frontend 0 (Fujitsu MB86A16 DVB-S)...
[edit] Following steps you need to take (long way for kernels 2.6.21 and up):
- use your current kernel or take a kernel source tree from http://www.kernel.org. Make sure you have the kernel headers/sources files/packages installed and you have the kernel up and running.
- Get the mantis dvb source tree from http://jusst.de/hg/mantis/archive/tip.tar.bz2
- Copy the directory <path to mantis
tree>/linux/drivers/media/dvb/mantis to <path to kernel
source>/drivers/media/dvb/ - Add the following three lines to the file <path to kernel
source>/drivers/media/dvb/Kconfig. Add them before the last entry in
this file.
comment "Supported Mantis Adapters" depends on DVB_CORE && PCI && I2C source "drivers/media/dvb/mantis/Kconfig"
- Add the following option "mantis/" to the file path to kernel source>/drivers/media/dvb/Makefile. It should look like this
# # Makefile for the kernel multimedia device drivers. # obj-y := dvb-core/ frontends/ ttpci/ ttusb-dec/ ttusb-budget/ b2c2/ bt8xx/ cinergyT2/ dvb-usb/ pluto2/ mantis/
- Copy the files <path to mantis
tree>/linux/drivers/media/dvb/frontends/mb86a16* to <path to
kernel source>/drivers/media/dvb/frontends - Copy the files <path to mantis
tree>/linux/drivers/media/dvb/frontends/cu1216* to <path to
kernel source>/drivers/media/dvb/frontends - Add the following lines to the file <path to kernel source>/drivers/media/dvb/frontends/Kconfig just after the config DVB_TDA10086
config DVB_MB86A16 tristate "Fujitsu MB86A16 based" depends on DVB_CORE && I2C default m help A DVB-S/DSS tuner module. Say Y when you want to support this frontend. config DVB_CU1216 tristate "Philips CU1216 tuner based" depends on DVB_CORE && I2C default m help A DVB-C tuner module. Say Y when you want to support this frontend.
- Add the following two lines to the file <path to kernel source>/drivers/media/dvb/frontends/Makefile
obj-$(CONFIG_DVB_MB86A16) += mb86a16.o obj-$(CONFIG_DVB_CU1216) += cu1216.o
- Change in the file <path to kernel
source>/drivers/media/dvb/frontends/cu1216.c line 37 to look like
this (ignore the line numbers)
34 #include <linux/slab.h> 35 36 #include "dvb_frontend.h" 37 #include "../mantis/mantis_core.h" 38 #include "cu1216.h" 39 #include "cu1216_regs.h"
- You can now compile your kernel in the normal way and install
the modules. If you wish to make sure the Mantis modules have been
selected do a make menuconfig
#> cd <path to kernelsource> #> make menuconfig #> make #> make modules_install
- When you use your current kernel sources do load the modules
#> modprobe mantis #> dmesg | grep -i dvb found a VP-1034 PCI DVB-S/DSS device on (02:05.0), DVB: registering new adapter (Mantis dvb adapter). mantis_frontend_init (0): Probing for MB86A16 (DVB-S/DSS) mantis_frontend_init (0): found MB86A16 DVB-S/DSS frontend @0x08 DVB: registering frontend 0 (Fujitsu MB86A16 DVB-S)...
- Check the output of the dmesg command to see if the mantis modules loaded. Sometimes a reboot of the system is needed.
- IMPORTANT: For kernels 2.6.21 and below the order in which you do the installations is also important. Every time you perform a make modules_install for the kernel you need to do the make install for the ivtv driver as well.
To get the Hauppauge cards working do the following:
- The ivtv module is now part of the kernel since 2.6.22. So
check your kernel. If you have a kernel below 2.6.22 then do the
following - Get the ivtv source from http://dl.ivtvdriver.org/ivtv/archive/0.10.x/ivtv-0.10.5.tar.gz. See http://www.ivtvdriver.org for latest version.
- Extract the source, build and install it.
#> tar -zxvpf ivtv-0.10.5.tar.gz #> cd ivtv-0.10.5 #> make; make install
- Install the ivtv firmware files in /lib/firmware
#> cd /lib/firmware #> wget http://dl.ivtvdriver.org/ivtv/firmware/firmware.tar.gz #> tar -zxvpf firmware.tar.gz
- Load the ivtv modules:
#> modprobe ivtv #> dmesg | grep -i ivtv ivtv: ==================== START INIT IVTV ==================== ivtv: version 0.10.3 (development snapshot compiled on zo 20 mei 2007 08:57:55 CEST) loading ivtv: Linux version: 2.6.21.1 SMP mod_unload PENTIUM4 4KSTACKS ivtv: In case of problems please include the debug info between ivtv: the START INIT IVTV and END INIT IVTV lines, along with ivtv: any module options, when mailing the ivtv-users mailinglist. ivtv0: Autodetected Hauppauge card (cx23415 based) ivtv0: loaded v4l-cx2341x-enc.fw firmware (376836 bytes) ivtv0: loaded v4l-cx2341x-dec.fw firmware (262144 bytes) ivtv0: Encoder revision: 0x02060039 ivtv0: Decoder revision: 0x02020023 ivtv0: Autodetected Hauppauge WinTV PVR-350 tuner 1-0061: chip found @ 0xc2 (ivtv i2c driver #0) saa7115 1-0021: saa7115 found (1f7115d0e100000) @ 0x42 (ivtv i2c driver #0) saa7127 1-0044: saa7127 found @ 0x88 (ivtv i2c driver #0) msp3400 1-0040: MSP4418G-A2 found @ 0x80 (ivtv i2c driver #0) ivtv0: Registered device video0 for encoder MPEG (4 MB) ivtv0: Registered device video32 for encoder YUV (2 MB) ivtv0: Registered device vbi0 for encoder VBI (1 MB) ivtv0: Registered device video24 for encoder PCM audio (1 MB) ivtv0: Registered device radio0 for encoder radio ivtv0: Registered device video16 for decoder MPEG (1 MB) ivtv0: Registered device vbi8 for decoder VBI (1 MB) ivtv0: Registered device vbi16 for decoder VOUT ivtv0: Registered device video48 for decoder YUV (1 MB) ivtv0: loaded v4l-cx2341x-init.mpg firmware (155648 bytes) ivtv0: Initialized Hauppauge WinTV PVR-350, card #0 ivtv: ====================== NEXT CARD ====================== ivtv1: Autodetected Hauppauge card (cx23416 based) ivtv1: loaded v4l-cx2341x-enc.fw firmware (376836 bytes) ivtv1: Encoder revision: 0x02060039 tuner 2-0043: chip found @ 0x86 (ivtv i2c driver #1) tuner 2-0061: chip found @ 0xc2 (ivtv i2c driver #1) ivtv1: Autodetected Hauppauge WinTV PVR-150 ivtv1: reopen i2c bus for IR-blaster support tuner 2-0043: chip found @ 0x86 (ivtv i2c driver #1) tuner 2-0061: chip found @ 0xc2 (ivtv i2c driver #1) cx25840 2-0044: cx25843-23 found @ 0x88 (ivtv i2c driver #1) wm8775 2-001b: chip found @ 0x36 (ivtv i2c driver #1) ivtv1: Registered device video1 for encoder MPEG (4 MB) ivtv1: Registered device video33 for encoder YUV (2 MB) ivtv1: Registered device vbi1 for encoder VBI (1 MB) ivtv1: Registered device video25 for encoder PCM audio (1 MB) ivtv1: Initialized Hauppauge WinTV PVR-150, card #1 ivtv: ==================== END INIT IVTV ====================
- Check the output of the dmesg command. Sometimes a reboot is needed.
When you are using kernel 2.6.21 and higher ivtv and mantis will
nog work together. Depening on which module loads first the mantis
module will freeze.
To resolve this problem you will have to add extra module parameters to the saa7115 module.
Do the following to determine the values for the module parameters:
- Get i2c bus number used by the Mantis driver.
#> modprobe i2c-dev #> i2cdetect -l i2c-3 i2c ivtv i2c driver #1 I2C adapter i2c-2 i2c ivtv i2c driver #0 I2C adapter i2c-1 smbus Mantis I2C SMBus adapter i2c-0 smbus SMBus I801 adapter at 0400 SMBus adapter
- The i2c bus used by the Mantis driver is bus 1 (see i2c-1 part) in this example.
- Add the following line to your /etc/modprobe.conf
options saa7115 ignore=1,0x25,1,0x24,1,0x21,1,0x20
- Replace all the 1’s (one’s) with your i2c bus number leave the hexadecimal numbers intact.
- Now reboot your machine and both the mantis and the ivtv modules should load without a problem and work without a problem.