summaryrefslogtreecommitdiff
path: root/multimedia/pvrxxx
diff options
context:
space:
mode:
authorEdwin Groothuis <edwin@FreeBSD.org>2004-10-15 12:12:15 +0000
committerEdwin Groothuis <edwin@FreeBSD.org>2004-10-15 12:12:15 +0000
commit8e3b0d7cfeb496ab9ddbe931dcd45337b1dbabbc (patch)
tree00b246dcdab88deb80b7628fc34667b3c17b9257 /multimedia/pvrxxx
parent- Move BDB check to pre-extract to allow fetching without dependencies installed (diff)
Submit a lkm for the cxm device, found in the Hauppauge PVR-250/350
TV cards. This port contains: - Drivers for the Conexant MPEG-2 Codec driver which can be found on the Hauppauge PVR-250/350 TV cards. These drivers are (c) John Wehle <john@feith.com> On FreeBSD 4.x, the device used is /dev/bktr0. On FreeBSD 5.x, the device used is /dev/cxm0 This driver has been successfully tested on: - FreeBSD 4.10 - FreeBSD 5.2.1 - Two simple programs to modify some ioctls on the card: set the channel and set the window size. Note: - The configuration screen is only applicable for the the Philips FQ1216M tuner. For other tuners ignore this section. Select just one entry. - Note: the maintainer of this port has no inside knowledge of the workings of this software. Please don't contact me about cards which don't work. Please contact me about problems with the port, with possible enhancements, with success stories. Author: John Wehle <john@feith.com> Submitted by: edwin@mavetju.org
Notes
Notes: svn path=/head/; revision=119498
Diffstat (limited to 'multimedia/pvrxxx')
-rw-r--r--multimedia/pvrxxx/Makefile115
-rw-r--r--multimedia/pvrxxx/distinfo4
-rw-r--r--multimedia/pvrxxx/files/patch-modules::cxm::cxm::Makefile9
-rw-r--r--multimedia/pvrxxx/files/patch-modules::cxm::cxm_iic::Makefile9
-rw-r--r--multimedia/pvrxxx/files/patchtuner-bgaustralia11
-rw-r--r--multimedia/pvrxxx/files/patchtuner-bgbroadcast11
-rw-r--r--multimedia/pvrxxx/files/patchtuner-ibroadcast11
-rw-r--r--multimedia/pvrxxx/files/patchtuner-lbroadcast11
-rw-r--r--multimedia/pvrxxx/files/patchtuner-usbroadcast11
-rw-r--r--multimedia/pvrxxx/files/patchtuner-uscable11
-rw-r--r--multimedia/pvrxxx/pkg-descr28
-rw-r--r--multimedia/pvrxxx/pkg-message29
-rw-r--r--multimedia/pvrxxx/pkg-plist2
13 files changed, 262 insertions, 0 deletions
diff --git a/multimedia/pvrxxx/Makefile b/multimedia/pvrxxx/Makefile
new file mode 100644
index 000000000000..d36db169173e
--- /dev/null
+++ b/multimedia/pvrxxx/Makefile
@@ -0,0 +1,115 @@
+#
+# New ports collection makefile for: pvr250
+# Date created: 10 October 2004
+# Whom: Edwin Groothuis <edwin@mavetju.org>
+#
+# $FreeBSD$
+#
+
+PORTNAME= pvr250
+PORTVERSION= 200408
+CATEGORIES= multimedia
+MASTER_SITES= http://www.mavetju.org/download/adopted/
+DISTFILES= cxm-200408.shar hcwPVRP2.sys
+
+MAINTAINER= edwin@mavetju.org
+COMMENT= Hauppauge PVR-250/260 TV cards driver for the cxm device
+
+WRKSRC= ${WRKDIR}
+
+RESTRICTED_FILES= hcwPVRP2.sys
+RESTRICTED= "This port uses a binary driver which is owned by Hauppauge"
+NO_PACKAGE= ${RESTRICTED}
+NO_CDROM= ${RESTRICTED}
+
+OPTIONS= USBROADCAST "US Broadcast" Off \
+ USCABLE "US Cable" Off \
+ BGBROADCAST "B/G Broadcast" Off \
+ BGAUSTRALIA "B/G Australia" Off \
+ IBROADCAST "I Broadcast" Off \
+ LBROADCAST "L Broadcast" Off
+
+pre-everything::
+ @${ECHO_CMD} "Some tuners (for example the Philips FQ1216M) supports multiple standards."
+ @${ECHO_CMD} "Use the following configuration screen (or 'make config') to choose your local TV channel system if you have such a tuner."
+ @${ECHO_CMD} "At this moment only the Philips FQ1216M is known to do this. If you don't have one, just ignore it. If you have one, select one (1) entry."
+ @sleep 5
+
+.include <bsd.port.pre.mk>
+
+.if defined(WITH_USBROADCAST)
+EXTRA_PATCHES= ${FILESDIR}/patchtuner-usbroadcast
+.endif
+.if defined(WITH_USCABLE)
+EXTRA_PATCHES= ${FILESDIR}/patchtuner-uscable
+.endif
+.if defined(WITH_BGBROADCAST)
+EXTRA_PATCHES= ${FILESDIR}/patchtuner-bgbroadcast
+.endif
+.if defined(WITH_BGAUSTRALIA)
+EXTRA_PATCHES= ${FILESDIR}/patchtuner-bgaustralia
+.endif
+.if defined(WITH_IBROADCAST)
+EXTRA_PATCHES= ${FILESDIR}/patchtuner-ibroadcast
+.endif
+.if defined(WITH_LBROADCAST)
+EXTRA_PATCHES= ${FILESDIR}/patchtuner-lbroadcast
+.endif
+
+.if ${OSVERSION} < 500000
+PREFIX= /modules
+.else
+PREFIX= /boot/kernel
+.endif
+
+.if !exists(${DISTDIR}/hcwPVRP2.sys)
+BROKEN= You need the file hcwPVRP2.sys from the CD coming with the PVR-250/350 card. Please place this file in ${DISTDIR} and run make again.
+.endif
+
+.if !exists(/usr/src/sys/dev/iicbus/iicbb.c)
+IGNORE= You need the kernel sources installed to build this module.
+.endif
+
+patch-iicbb:
+.if ${OSVERSION} < 500000
+ @if [ -z "`${GREP} cxm_iic /usr/src/sys/dev/iicbus/iicbb.c`" ]; then \
+ ${PATCH} /usr/src/sys/dev/iicbus/iicbb.c ${WRKDIR}/dev/cxm/Patch.iicbb-fbsd4; \
+ ${ECHO_CMD} "Patched /usr/src/sys/dev/iicbus/iicbb.c"; \
+ else \
+ ${ECHO_CMD} "/usr/src/sys/dev/iicbus/iicbb.c was already patched"; \
+ fi
+.else
+ @if [ -z "`${GREP} cxm_iic /usr/src/sys/dev/iicbus/iicbb.c`" ]; then \
+ ${PATCH} /usr/src/sys/dev/iicbus/iicbb.c ${WRKDIR}/dev/cxm/Patch.iicbb-fbsd5; \
+ ${ECHO_CMD} "Patched /usr/src/sys/dev/iicbus/iicbb.c"; \
+ else \
+ ${ECHO_CMD} "/usr/src/sys/dev/iicbus/iicbb.c was already patched"; \
+ fi
+.endif
+
+do-extract:
+ ${MKDIR} ${WRKDIR}
+ cd ${WRKDIR}; \
+ ${SH} ${DISTDIR}/cxm-200408.shar
+
+do-configure:
+ cd ${WRKDIR}/dev/cxm; \
+ ${CC} -Wall -o cxm_extract_fw cxm_extract_fw.c; \
+ ./cxm_extract_fw ${DISTDIR}/hcwPVRP2.sys
+
+do-build:
+ cd ${WRKDIR}/modules/cxm; \
+ ${MAKE}
+
+do-install:
+ ${INSTALL_DATA} ${WRKDIR}/modules/cxm/cxm/cxm.ko ${PREFIX}
+ ${INSTALL_DATA} ${WRKDIR}/modules/cxm/cxm_iic/cxm_iic.ko ${PREFIX}
+.if ${OSVERSION} < 500000
+ cd /dev; \
+ ./MAKEDEV bktr0
+.endif
+
+post-install:
+ @${CAT} ${PKGMESSAGE}
+
+.include <bsd.port.post.mk>
diff --git a/multimedia/pvrxxx/distinfo b/multimedia/pvrxxx/distinfo
new file mode 100644
index 000000000000..71a60e1a3dcb
--- /dev/null
+++ b/multimedia/pvrxxx/distinfo
@@ -0,0 +1,4 @@
+MD5 (cxm-200408.shar) = a0a766caafef8f93b9adb58d5034cf1c
+SIZE (cxm-200408.shar) = 181292
+MD5 (hcwPVRP2.sys) = aa97703bb05e985418bc29fec5b899b9
+SIZE (hcwPVRP2.sys) = 789824
diff --git a/multimedia/pvrxxx/files/patch-modules::cxm::cxm::Makefile b/multimedia/pvrxxx/files/patch-modules::cxm::cxm::Makefile
new file mode 100644
index 000000000000..b06e1e1445f7
--- /dev/null
+++ b/multimedia/pvrxxx/files/patch-modules::cxm::cxm::Makefile
@@ -0,0 +1,9 @@
+--- modules/cxm/cxm/Makefile.orig Fri Oct 15 20:53:47 2004
++++ modules/cxm/cxm/Makefile Fri Oct 15 20:55:03 2004
+@@ -3,5 +3,6 @@
+ SRCS = cxm.c cxm.h cxm_dec_fw.c cxm_enc_fw.c cxm_audio.c cxm_eeprom.c \
+ cxm_ir.c cxm_tuner.c cxm_video.c opt_cxm.h \
+ bus_if.h device_if.h iicbb_if.h pci_if.h vnode_if.h
++CFLAGS+= -I../../..
+
+ .include <bsd.kmod.mk>
diff --git a/multimedia/pvrxxx/files/patch-modules::cxm::cxm_iic::Makefile b/multimedia/pvrxxx/files/patch-modules::cxm::cxm_iic::Makefile
new file mode 100644
index 000000000000..8fd5589aa033
--- /dev/null
+++ b/multimedia/pvrxxx/files/patch-modules::cxm::cxm_iic::Makefile
@@ -0,0 +1,9 @@
+--- modules/cxm/cxm_iic/Makefile.orig Fri Oct 15 20:55:23 2004
++++ modules/cxm/cxm_iic/Makefile Fri Oct 15 20:55:43 2004
+@@ -2,5 +2,6 @@
+ KMOD = cxm_iic
+ SRCS = cxm_i2c.c cxm.h \
+ opt_cxm.h bus_if.h device_if.h iicbb_if.h pci_if.h
++CFLAGS += -I../../..
+
+ .include <bsd.kmod.mk>
diff --git a/multimedia/pvrxxx/files/patchtuner-bgaustralia b/multimedia/pvrxxx/files/patchtuner-bgaustralia
new file mode 100644
index 000000000000..ced226ac7e7d
--- /dev/null
+++ b/multimedia/pvrxxx/files/patchtuner-bgaustralia
@@ -0,0 +1,11 @@
+--- dev/cxm/cxm_tuner.c.org Fri Oct 15 21:31:06 2004
++++ dev/cxm/cxm_tuner.c Fri Oct 15 21:31:24 2004
+@@ -227,7 +227,7 @@
+ { 48250, { 0x8e, 0xa0 } } },
+ 0, 0,
+ { 0 },
+- { &l_air_channels, NULL } },
++ { &bg_australia_channels, NULL } },
+ { "Philips FI1236 MK2",
+ CXM_TUNER_TV_SYSTEM_MN,
+ { { 0 }, { 0 }, { 0 }, { 0 }, { 0 } },
diff --git a/multimedia/pvrxxx/files/patchtuner-bgbroadcast b/multimedia/pvrxxx/files/patchtuner-bgbroadcast
new file mode 100644
index 000000000000..fe56272487bd
--- /dev/null
+++ b/multimedia/pvrxxx/files/patchtuner-bgbroadcast
@@ -0,0 +1,11 @@
+--- dev/cxm/cxm_tuner.c.org Fri Oct 15 21:31:06 2004
++++ dev/cxm/cxm_tuner.c Fri Oct 15 21:31:24 2004
+@@ -227,7 +227,7 @@
+ { 48250, { 0x8e, 0xa0 } } },
+ 0, 0,
+ { 0 },
+- { &l_air_channels, NULL } },
++ { &bg_air_channels, NULL } },
+ { "Philips FI1236 MK2",
+ CXM_TUNER_TV_SYSTEM_MN,
+ { { 0 }, { 0 }, { 0 }, { 0 }, { 0 } },
diff --git a/multimedia/pvrxxx/files/patchtuner-ibroadcast b/multimedia/pvrxxx/files/patchtuner-ibroadcast
new file mode 100644
index 000000000000..a849446ea525
--- /dev/null
+++ b/multimedia/pvrxxx/files/patchtuner-ibroadcast
@@ -0,0 +1,11 @@
+--- dev/cxm/cxm_tuner.c.org Fri Oct 15 21:31:06 2004
++++ dev/cxm/cxm_tuner.c Fri Oct 15 21:31:24 2004
+@@ -227,7 +227,7 @@
+ { 48250, { 0x8e, 0xa0 } } },
+ 0, 0,
+ { 0 },
+- { &l_air_channels, NULL } },
++ { &i_air_channels, NULL } },
+ { "Philips FI1236 MK2",
+ CXM_TUNER_TV_SYSTEM_MN,
+ { { 0 }, { 0 }, { 0 }, { 0 }, { 0 } },
diff --git a/multimedia/pvrxxx/files/patchtuner-lbroadcast b/multimedia/pvrxxx/files/patchtuner-lbroadcast
new file mode 100644
index 000000000000..62481031b8ca
--- /dev/null
+++ b/multimedia/pvrxxx/files/patchtuner-lbroadcast
@@ -0,0 +1,11 @@
+--- dev/cxm/cxm_tuner.c.org Fri Oct 15 21:31:06 2004
++++ dev/cxm/cxm_tuner.c Fri Oct 15 21:31:24 2004
+@@ -227,7 +227,7 @@
+ { 48250, { 0x8e, 0xa0 } } },
+ 0, 0,
+ { 0 },
+- { &l_air_channels, NULL } },
++ { &l_air_channels, NULL } },
+ { "Philips FI1236 MK2",
+ CXM_TUNER_TV_SYSTEM_MN,
+ { { 0 }, { 0 }, { 0 }, { 0 }, { 0 } },
diff --git a/multimedia/pvrxxx/files/patchtuner-usbroadcast b/multimedia/pvrxxx/files/patchtuner-usbroadcast
new file mode 100644
index 000000000000..6ed81cd14d43
--- /dev/null
+++ b/multimedia/pvrxxx/files/patchtuner-usbroadcast
@@ -0,0 +1,11 @@
+--- dev/cxm/cxm_tuner.c.org Fri Oct 15 21:31:06 2004
++++ dev/cxm/cxm_tuner.c Fri Oct 15 21:31:24 2004
+@@ -227,7 +227,7 @@
+ { 48250, { 0x8e, 0xa0 } } },
+ 0, 0,
+ { 0 },
+- { &l_air_channels, NULL } },
++ { &us_air_channels, NULL } },
+ { "Philips FI1236 MK2",
+ CXM_TUNER_TV_SYSTEM_MN,
+ { { 0 }, { 0 }, { 0 }, { 0 }, { 0 } },
diff --git a/multimedia/pvrxxx/files/patchtuner-uscable b/multimedia/pvrxxx/files/patchtuner-uscable
new file mode 100644
index 000000000000..7efe23a85125
--- /dev/null
+++ b/multimedia/pvrxxx/files/patchtuner-uscable
@@ -0,0 +1,11 @@
+--- dev/cxm/cxm_tuner.c.org Fri Oct 15 21:31:06 2004
++++ dev/cxm/cxm_tuner.c Fri Oct 15 21:31:24 2004
+@@ -227,7 +227,7 @@
+ { 48250, { 0x8e, 0xa0 } } },
+ 0, 0,
+ { 0 },
+- { &l_air_channels, NULL } },
++ { &us_cable_channels, NULL } },
+ { "Philips FI1236 MK2",
+ CXM_TUNER_TV_SYSTEM_MN,
+ { { 0 }, { 0 }, { 0 }, { 0 }, { 0 } },
diff --git a/multimedia/pvrxxx/pkg-descr b/multimedia/pvrxxx/pkg-descr
new file mode 100644
index 000000000000..1ef392fc4994
--- /dev/null
+++ b/multimedia/pvrxxx/pkg-descr
@@ -0,0 +1,28 @@
+This port contains:
+
+- Drivers for the Conexant MPEG-2 Codec driver which can be found
+ on the Hauppauge PVR-250/350 TV cards.
+ These drivers are (c) John Wehle <john@feith.com>
+
+ On FreeBSD 4.x, the device used is /dev/bktr0.
+ On FreeBSD 5.x, the device used is /dev/cxm0
+
+ This driver has been successfully tested on:
+ - FreeBSD 4.10
+ - FreeBSD 5.2.1
+
+- Two simple programs to modify some ioctls on the card: set the
+ channel and set the window size.
+
+Note:
+
+- The configuration screen is only applicable for the the Philips
+ FQ1216M tuner. For other tuners ignore this section. Select just
+ one entry.
+
+- Note: the maintainer of this port has no inside knowledge of the
+ workings of this software. Please don't contact me about cards
+ which don't work. Please contact me about problems with the port,
+ with possible enhancements, with success stories.
+
+Author: John Wehle <john@feith.com>
diff --git a/multimedia/pvrxxx/pkg-message b/multimedia/pvrxxx/pkg-message
new file mode 100644
index 000000000000..0400644bf911
--- /dev/null
+++ b/multimedia/pvrxxx/pkg-message
@@ -0,0 +1,29 @@
+PVR-250/350 - Nearly done!
+
+If you haven't patched /usr/src/sys/dev/iicbus/iicbb.c yet, and
+rebuild a new kernel, and rebooted, these are the following steps:
+
+ - Run "make patch-iicbb". This will enable cxm to use the i2c bus.
+ - Add this to your kernel configuration file:
+ DEVICE iicbus
+ DEVICE iicbb
+ - Rebuild your kernel.
+ - Reboot.
+
+Next step is to load the drivers:
+ - Run "kldload cxm_iic"
+ - Run "kldload cxm"
+
+Check your console (or /var/log/messages if you're running X) and
+you should see something like:
+
+ cxm0: <Conexant iTVC15 MPEG Coder> mem ... irq ... at device ... on pci ...
+ cxm_iic0: <Conexant iTVC15 / iTVC16 I2C cnotroller> on cxm0
+ iicbb0: <I2C bit-banging driver> on cxm_iic0
+ cxm0: Philips FI1236M K2 Tuner
+ cxm0: SAA7115 rev 1 video decoder
+ cxm0: MSP3435G-B6 audio decoder
+ cxm0: IR Remote
+
+To test the card, either do "cat /dev/bktr0 > filename.mpg" (FreeBSD
+4.x) or "cat /dev/cxm0 > filename.mpg" (FreeBSD 5.x).
diff --git a/multimedia/pvrxxx/pkg-plist b/multimedia/pvrxxx/pkg-plist
new file mode 100644
index 000000000000..a1933816cf67
--- /dev/null
+++ b/multimedia/pvrxxx/pkg-plist
@@ -0,0 +1,2 @@
+cxm.ko
+cxm_iic.ko