Mantis with DKMS: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
(First Entry for Mantis DKMS Installation)
 
(Add ir-core to build modules. Don't use pushd/popd in make command so that it works with dash.)
 
(One intermediate revision by one other user not shown)
Line 30: Line 30:
BUILT_MODULE_NAME[5]="tda10023"
BUILT_MODULE_NAME[5]="tda10023"
BUILT_MODULE_LOCATION[5]="v4l"
BUILT_MODULE_LOCATION[5]="v4l"
BUILT_MODULE_NAME[6]="ir-common"
BUILT_MODULE_NAME[6]="ir-core"
BUILT_MODULE_LOCATION[6]="v4l"
BUILT_MODULE_LOCATION[6]="v4l"
BUILT_MODULE_NAME[7]="stb0899"
BUILT_MODULE_NAME[7]="ir-common"
BUILT_MODULE_LOCATION[7]="v4l"
BUILT_MODULE_LOCATION[7]="v4l"
BUILT_MODULE_NAME[8]="stv0299"
BUILT_MODULE_NAME[8]="stb0899"
BUILT_MODULE_LOCATION[8]="v4l"
BUILT_MODULE_LOCATION[8]="v4l"
BUILT_MODULE_NAME[9]="dvb-core"
BUILT_MODULE_NAME[9]="stv0299"
BUILT_MODULE_LOCATION[9]="v4l"
BUILT_MODULE_LOCATION[9]="v4l"
BUILT_MODULE_NAME[10]="dvb-core"
MAKE[0]="pushd ${dkms_tree}/mantis/mercurial/build; make KSRC=$kernel_source_dir KVER=$kernelver; popd"
BUILT_MODULE_LOCATION[10]="v4l"
MAKE[0]="cd ${dkms_tree}/mantis/mercurial/build; make KSRC=$kernel_source_dir KVER=$kernelver"
DEST_MODULE_LOCATION[0]="/kernel/drivers/media/dvb/mantis"
DEST_MODULE_LOCATION[0]="/kernel/drivers/media/dvb/mantis"
DEST_MODULE_LOCATION[1]="/kernel/drivers/media/dvb/frontends"
DEST_MODULE_LOCATION[1]="/kernel/drivers/media/dvb/frontends"
Line 46: Line 48:
DEST_MODULE_LOCATION[5]="/kernel/drivers/media/dvb/frontends"
DEST_MODULE_LOCATION[5]="/kernel/drivers/media/dvb/frontends"
DEST_MODULE_LOCATION[6]="/kernel/drivers/media/common"
DEST_MODULE_LOCATION[6]="/kernel/drivers/media/common"
DEST_MODULE_LOCATION[7]="/kernel/drivers/media/dvb/frontends"
DEST_MODULE_LOCATION[7]="/kernel/drivers/media/common"
DEST_MODULE_LOCATION[8]="/kernel/drivers/media/dvb/frontends"
DEST_MODULE_LOCATION[8]="/kernel/drivers/media/dvb/frontends"
DEST_MODULE_LOCATION[9]="/kernel/drivers/media/dvb/dvb-core"
DEST_MODULE_LOCATION[9]="/kernel/drivers/media/dvb/frontends"
DEST_MODULE_LOCATION[10]="/kernel/drivers/media/dvb/dvb-core"
AUTOINSTALL="yes"
AUTOINSTALL="yes"


Line 319: Line 322:
# CONFIG_SND_FM801_TEA575X is not set
# CONFIG_SND_FM801_TEA575X is not set


Please not that the config can change with each new v4l source. It is recommende to create a valid configuration with ''make menuconfig''
Please note that the config can change with each new v4l source. It is recommended to create a valid configuration with ''make menuconfig''


=== Step 4: Install the Mantis Module ===
=== Step 4: Install the Mantis Module ===

Latest revision as of 11:14, 6 February 2010

Installing the Mantis Driver using DKMS

DKMS provides an easy way to automatically upgrade modules when installing new kernel versions.

The following installation example works under Ubuntu, it should be easily adaptable to other distributions.

Step 1: Get the Mantis Drivers

cd /usr/src
sudo apt-get install mercurial linux-headers-$(uname -r) build-essential
sudo hg clone http://mercurial.intuxication.org/hg/s2-liplianin
sudo mv s2-liplianin mantis-mercurial

Step 2: Create a DKMS Configuration

Create file /usr/src/mantis-mercurial/dkms.conf and paste the following content:

PACKAGE_NAME="mantis"
PACKAGE_VERSION="mercurial"
CLEAN="rm -f *.*o"
BUILT_MODULE_NAME[0]="mantis"
BUILT_MODULE_LOCATION[0]="v4l"
BUILT_MODULE_NAME[1]="lnbp21"
BUILT_MODULE_LOCATION[1]="v4l"
BUILT_MODULE_NAME[2]="mb86a16"
BUILT_MODULE_LOCATION[2]="v4l"
BUILT_MODULE_NAME[3]="stb6100"
BUILT_MODULE_LOCATION[3]="v4l"
BUILT_MODULE_NAME[4]="tda10021"
BUILT_MODULE_LOCATION[4]="v4l"
BUILT_MODULE_NAME[5]="tda10023"
BUILT_MODULE_LOCATION[5]="v4l"
BUILT_MODULE_NAME[6]="ir-core"
BUILT_MODULE_LOCATION[6]="v4l"
BUILT_MODULE_NAME[7]="ir-common"
BUILT_MODULE_LOCATION[7]="v4l"
BUILT_MODULE_NAME[8]="stb0899"
BUILT_MODULE_LOCATION[8]="v4l"
BUILT_MODULE_NAME[9]="stv0299"
BUILT_MODULE_LOCATION[9]="v4l"
BUILT_MODULE_NAME[10]="dvb-core"
BUILT_MODULE_LOCATION[10]="v4l"
MAKE[0]="cd ${dkms_tree}/mantis/mercurial/build; make KSRC=$kernel_source_dir KVER=$kernelver"
DEST_MODULE_LOCATION[0]="/kernel/drivers/media/dvb/mantis"
DEST_MODULE_LOCATION[1]="/kernel/drivers/media/dvb/frontends"
DEST_MODULE_LOCATION[2]="/kernel/drivers/media/dvb/frontends"
DEST_MODULE_LOCATION[3]="/kernel/drivers/media/dvb/frontends"
DEST_MODULE_LOCATION[4]="/kernel/drivers/media/dvb/frontends"
DEST_MODULE_LOCATION[5]="/kernel/drivers/media/dvb/frontends"
DEST_MODULE_LOCATION[6]="/kernel/drivers/media/common"
DEST_MODULE_LOCATION[7]="/kernel/drivers/media/common"
DEST_MODULE_LOCATION[8]="/kernel/drivers/media/dvb/frontends"
DEST_MODULE_LOCATION[9]="/kernel/drivers/media/dvb/frontends"
DEST_MODULE_LOCATION[10]="/kernel/drivers/media/dvb/dvb-core"
AUTOINSTALL="yes"

Step 3: Create a V4L Kernel Configuration

Create a V4L Kernel config with the necessary drivers:

cd /usr/src/mantis-mercurial
make menuconfig

Select the necessary kernel modules (especially the Mantis driver) and save the configuration.

You can alternatively paste the following content to /usr/src/mantis-mercurial/v4l/.config: (config made with s2-liplianin revision ecdc9c389f8a)

CONFIG_INPUT=y
CONFIG_USB=y
CONFIG_PARPORT=m
# CONFIG_ARCH_DAVINCI_DM644x is not set
# CONFIG_SPARC64 is not set
# CONFIG_PLAT_M32700UT is not set
CONFIG_NET=y
# CONFIG_ARCH_DAVINCI is not set
CONFIG_FB_CFB_COPYAREA=y
CONFIG_SND_FM801=m
# CONFIG_PXA27x is not set
# CONFIG_SGI_IP22 is not set
CONFIG_I2C=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_GPIO_PCA953X=m
# CONFIG_ARCH_DAVINCI_DM355 is not set
# CONFIG_HAVE_CLK is not set
# CONFIG_FIQ is not set
CONFIG_SND=m
CONFIG_MODULES=y
CONFIG_MT9M001_PCA9536_SWITCH=y
CONFIG_HAS_IOMEM=y
# CONFIG_ARCH_OMAP2 is not set
CONFIG_PROC_FS=y
# CONFIG_SPARC32 is not set
# CONFIG_MACH_DAVINCI_DM6467_EVM is not set
CONFIG_I2C_ALGOBIT=m
CONFIG_HAS_DMA=y
CONFIG_INET=y
CONFIG_FB=y
CONFIG_CRC32=y
# CONFIG_ARCH_MX1 is not set
CONFIG_SYSFS=y
# CONFIG_ISA is not set
CONFIG_PCI=y
CONFIG_SONY_LAPTOP=m
# CONFIG_MX3_IPU is not set
CONFIG_SND_PCM=m
CONFIG_PARPORT_1284=y
CONFIG_EXPERIMENTAL=y
# CONFIG_M32R is not set
CONFIG_FB_CFB_FILLRECT=y
CONFIG_IEEE1394=m
CONFIG_MT9V022_PCA9536_SWITCH=y
CONFIG_VIRT_TO_BUS=y
# CONFIG_VIDEO_KERNEL_VERSION is not set
CONFIG_MEDIA_SUPPORT=m 

#
# Multimedia core support
#
CONFIG_VIDEO_DEV=m
CONFIG_VIDEO_V4L2_COMMON=m
CONFIG_VIDEO_ALLOW_V4L1=y
CONFIG_VIDEO_V4L1_COMPAT=y
CONFIG_DVB_CORE=m
CONFIG_VIDEO_MEDIA=m 

#
# Multimedia drivers
#
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_TUNER=m
CONFIG_MEDIA_TUNER_CUSTOMISE=y
CONFIG_MEDIA_TUNER_SIMPLE=m
CONFIG_MEDIA_TUNER_TDA8290=m
CONFIG_MEDIA_TUNER_TDA827X=m
CONFIG_MEDIA_TUNER_TDA18271=m
CONFIG_MEDIA_TUNER_TDA9887=m
CONFIG_MEDIA_TUNER_TEA5761=m
CONFIG_MEDIA_TUNER_TEA5767=m
CONFIG_MEDIA_TUNER_MT20XX=m
CONFIG_MEDIA_TUNER_MT2060=m
CONFIG_MEDIA_TUNER_MT2266=m
CONFIG_MEDIA_TUNER_MT2131=m
CONFIG_MEDIA_TUNER_QT1010=m
CONFIG_MEDIA_TUNER_XC2028=m
CONFIG_MEDIA_TUNER_XC5000=m
CONFIG_MEDIA_TUNER_MXL5005S=m
CONFIG_MEDIA_TUNER_MXL5007T=m
CONFIG_MEDIA_TUNER_MC44S803=m
CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L1=m
# CONFIG_VIDEO_CAPTURE_DRIVERS is not set
# CONFIG_RADIO_ADAPTERS is not set
CONFIG_DVB_DYNAMIC_MINORS=y
CONFIG_DVB_CAPTURE_DRIVERS=y 

#
# Supported SAA7146 based PCI Adapters
#
# CONFIG_TTPCI_EEPROM is not set
# CONFIG_DVB_AV7110 is not set
# CONFIG_DVB_BUDGET_CORE is not set 

#
# Supported USB Adapters
#
# CONFIG_DVB_USB is not set
# CONFIG_DVB_TTUSB_BUDGET is not set
# CONFIG_DVB_TTUSB_DEC is not set
# CONFIG_DVB_SIANO_SMS1XXX is not set

#
# Supported FlexCopII (B2C2) Adapters
#
# CONFIG_DVB_B2C2_FLEXCOP is not set 

#
# Supported BT878 Adapters
# 

#
# Supported Pluto2 Adapters
#
# CONFIG_DVB_PLUTO2 is not set 

#
# Supported SDMC DM1105 Adapters
#
# CONFIG_DVB_DM1105 is not set  

#
# Supported Mantis Adapters
#
CONFIG_DVB_MANTIS=m

#
# Supported FireWire (IEEE 1394) Adapters
#
# CONFIG_DVB_FIREDTV is not set 

#
# Supported DVB Frontends
#
CONFIG_DVB_FE_CUSTOMISE=y

#
# Customise DVB Frontends
#

#
# Multistandard (satellite) frontends
#
CONFIG_DVB_STB0899=m
CONFIG_DVB_STB6100=m
CONFIG_DVB_STV090x=m
CONFIG_DVB_STV6110x=m

#
# DVB-S (satellite) frontends
#
CONFIG_DVB_CX24110=m
CONFIG_DVB_CX24123=m
CONFIG_DVB_MT312=m
CONFIG_DVB_ZL10036=m
CONFIG_DVB_ZL10039=m
CONFIG_DVB_S5H1420=m
CONFIG_DVB_STV0288=m
CONFIG_DVB_STB6000=m
CONFIG_DVB_STV0299=m
CONFIG_DVB_STV6110=m
CONFIG_DVB_STV0900=m
CONFIG_DVB_TDA8083=m
CONFIG_DVB_TDA10086=m
CONFIG_DVB_TDA8261=m
CONFIG_DVB_VES1X93=m
CONFIG_DVB_TUNER_ITD1000=m
CONFIG_DVB_TUNER_CX24113=m
CONFIG_DVB_TDA826X=m
CONFIG_DVB_TUA6100=m
CONFIG_DVB_CX24116=m
CONFIG_DVB_SI21XX=m
CONFIG_DVB_MB86A16=m
CONFIG_DVB_CU1216=m
CONFIG_DVB_DS3000=m

#
# DVB-T (terrestrial) frontends
#
CONFIG_DVB_SP8870=m
CONFIG_DVB_SP887X=m
CONFIG_DVB_CX22700=m
CONFIG_DVB_CX22702=m
CONFIG_DVB_DRX397XD=m
CONFIG_DVB_L64781=m
CONFIG_DVB_TDA1004X=m
CONFIG_DVB_NXT6000=m
CONFIG_DVB_MT352=m
CONFIG_DVB_ZL10353=m
CONFIG_DVB_DIB3000MB=m
CONFIG_DVB_DIB3000MC=m
CONFIG_DVB_DIB7000M=m
CONFIG_DVB_DIB7000P=m
CONFIG_DVB_TDA10048=m
CONFIG_DVB_AF9013=m

#
# DVB-C (cable) frontends
#
CONFIG_DVB_VES1820=m
CONFIG_DVB_TDA10021=m
CONFIG_DVB_TDA10023=m
CONFIG_DVB_STV0297=m

#
# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
#
CONFIG_DVB_NXT200X=m
CONFIG_DVB_OR51211=m
CONFIG_DVB_OR51132=m
CONFIG_DVB_BCM3510=m
CONFIG_DVB_LGDT330X=m
CONFIG_DVB_LGDT3304=m
CONFIG_DVB_LGDT3305=m
CONFIG_DVB_S5H1409=m
CONFIG_DVB_AU8522=m
CONFIG_DVB_S5H1411=m

#
# ISDB-T (terrestrial) frontends
#
CONFIG_DVB_S921=m

#
# Digital terrestrial only tuners/PLL
#
CONFIG_DVB_PLL=m
CONFIG_DVB_TUNER_DIB0070=m

#
# SEC control devices for DVB-S
#
CONFIG_DVB_LNBP21=m
CONFIG_DVB_LNBP22=m
CONFIG_DVB_ISL6405=m
CONFIG_DVB_ISL6421=m
CONFIG_DVB_ISL6423=m
CONFIG_DVB_LGS8GL5=m
CONFIG_DVB_LGS8GXX=m

#
# Tools to develop new frontends
#
CONFIG_DVB_DUMMY_FE=m
# CONFIG_DAB is not set

#
# Audio devices for multimedia
#

#
# ALSA sound
#
# CONFIG_SND_BT87X is not set
# CONFIG_SND_FM801_TEA575X is not set

Please note that the config can change with each new v4l source. It is recommended to create a valid configuration with make menuconfig

Step 4: Install the Mantis Module

sudo dkms add -m mantis -v mercurial
sudo dkms build -m mantis -v mercurial
sudo dkms install -m mantis -v mercurial

When installing a new kernel, the DKMS build system should automatically compile the mantis driver and install the resulting modules.

Notes

  • Updating the Mantis source directly in the /usr/src/mantis-mercurial directory with mercurial is possible, the DKMS config needs to be removed, readded, rebuilt and reinstalled afterwards.
  • Naming the directory mantis-<version> instead of mantis-mercurial might be more appropriate. Adjust the dkms.conf entries as well.