aboutsummaryrefslogtreecommitdiff
path: root/multimedia/pvr250
diff options
context:
space:
mode:
authorEdwin Groothuis <edwin@FreeBSD.org>2010-10-20 21:54:01 +0000
committerEdwin Groothuis <edwin@FreeBSD.org>2010-10-20 21:54:01 +0000
commite047e497dd76e2e9184bcb586692b0e7cfdcea62 (patch)
treefbaae2c777ef1b3ed631c84d3f6d7743da534f74 /multimedia/pvr250
parent4f5f0418a7141eccff3746ee43002a3ed13395b1 (diff)
downloadports-e047e497dd76e2e9184bcb586692b0e7cfdcea62.tar.gz
ports-e047e497dd76e2e9184bcb586692b0e7cfdcea62.zip
Notes
Diffstat (limited to 'multimedia/pvr250')
-rw-r--r--multimedia/pvr250/Makefile19
-rw-r--r--multimedia/pvr250/distinfo6
-rw-r--r--multimedia/pvr250/files/cxm.txt94
-rw-r--r--multimedia/pvr250/files/extra-patch-dev::cxm::cxm.c11
-rw-r--r--multimedia/pvr250/files/extra-patch-dev::cxm::cxm.h20
-rw-r--r--multimedia/pvr250/files/patch-modules::cxm::cxm_iic::Makefile9
-rw-r--r--multimedia/pvr250/files/patch-modules_cxm_cxm_Makefile (renamed from multimedia/pvr250/files/patch-modules::cxm::cxm::Makefile)6
-rw-r--r--multimedia/pvr250/files/patch-modules_cxm_cxm__iic_Makefile9
-rw-r--r--multimedia/pvr250/files/pkg-descr.in20
-rw-r--r--multimedia/pvr250/pkg-message29
10 files changed, 139 insertions, 84 deletions
diff --git a/multimedia/pvr250/Makefile b/multimedia/pvr250/Makefile
index a389537e776b..245a8a907f54 100644
--- a/multimedia/pvr250/Makefile
+++ b/multimedia/pvr250/Makefile
@@ -7,8 +7,7 @@
#
PORTNAME= pvr250
-PORTVERSION= 20051030
-PORTREVISION= 1
+PORTVERSION= 20101010
CATEGORIES= multimedia kld
MASTER_SITES= http://www.mavetju.org/download/adopted/
DISTFILES= ${CXMSHAR} hcwPVRP2.sys ${PVRTOOLS}.tar.gz
@@ -18,28 +17,31 @@ MAINTAINER= edwin@mavetju.org
COMMENT= Hauppauge PVR-250/350 TV cards driver for the cxm device
CONFLICTS= pvrxxx-*
+SUB_FILES= pkg-descr
PVRTOOLS= pvr250-1.2
CXMSHAR= cxm-${PORTVERSION}.shar
WRKSRC= ${WRKDIR}
NOFETCHFILES= hcwPVRP2.sys
+DESCR= ${WRKDIR}/pkg-descr
RESTRICTED_FILES= hcwPVRP2.sys
RESTRICTED= "This port uses a binary driver which is owned by Hauppauge"
MAN4= cxm.4
MAN1= pvr250-setchannel.1
+PORTDOCS= cxm.txt
.include <bsd.port.pre.mk>
MODULESDIR= /boot/kernel
PLIST_SUB= MODULESDIR=${MODULESDIR}
-.if ${OSVERSION} >= 700031
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-dev::cxm::cxm.h \
- ${PATCHDIR}/extra-patch-dev::cxm::cxm.c
-.endif
+#.if ${OSVERSION} >= 700031
+#EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-dev::cxm::cxm.h \
+# ${PATCHDIR}/extra-patch-dev::cxm::cxm.c
+#.endif
.if !exists(${DISTDIR}/hcwPVRP2.sys)
IGNORE= 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.
@@ -82,8 +84,7 @@ do-install:
${INSTALL_MAN} ${WRKDIR}/${PVRTOOLS}/cxm.4 ${PREFIX}/man/man4/cxm.4
${INSTALL_MAN} ${WRKDIR}/${PVRTOOLS}/pvr250-setchannel.1 ${PREFIX}/man/man1/pvr250-setchannel.1
${INSTALL_PROGRAM} ${WRKDIR}/${PVRTOOLS}/setchannel ${PREFIX}/bin/pvr250-setchannel
-
-post-install:
- @${CAT} ${PKGMESSAGE}
+ ${MKDIR} ${DOCSDIR}
+ ${INSTALL_DATA} ${FILESDIR}/cxm.txt ${DOCSDIR}
.include <bsd.port.post.mk>
diff --git a/multimedia/pvr250/distinfo b/multimedia/pvr250/distinfo
index bd26d5c87ba5..9e429aee7aad 100644
--- a/multimedia/pvr250/distinfo
+++ b/multimedia/pvr250/distinfo
@@ -1,6 +1,6 @@
-MD5 (cxm-20051030.shar) = 1e10d88c9e35568ad7cfe126341c8d90
-SHA256 (cxm-20051030.shar) = c4258160d83f18c4d4403448ec286d448a5b9ef13542f7c4a478583beb5c5934
-SIZE (cxm-20051030.shar) = 197660
+MD5 (cxm-20101010.shar) = 7a64f1b2600d76edfb9917aa2f78f492
+SHA256 (cxm-20101010.shar) = 3af4459a7a19f31fcf9f0166ab1b03d1ca107ec4ac8861fc74ca7591df9310cf
+SIZE (cxm-20101010.shar) = 195659
MD5 (pvr250-1.2.tar.gz) = ab6bd568158db4c45789777babe672c1
SHA256 (pvr250-1.2.tar.gz) = 477a0fe2f2c032df75838eed0a371f42cc52069765fdbf92c0a64d666986bc4a
SIZE (pvr250-1.2.tar.gz) = 3946
diff --git a/multimedia/pvr250/files/cxm.txt b/multimedia/pvr250/files/cxm.txt
new file mode 100644
index 000000000000..f2f268193029
--- /dev/null
+++ b/multimedia/pvr250/files/cxm.txt
@@ -0,0 +1,94 @@
+[ This is the Oct 10, 2010 snapshot of my source tree. Included are
+ changes to support FreeBSD 8.1. As a result of the changes the
+ driver no longer support FreeBSD 4. I'm unsure of FreeBSD 5 - 7
+ since I don't have a platform to use for building / testing,
+ however it's likely they still work. ]
+
+To use the Hauppauge PVR-250 / 350 on FreeBSD 5, 6, 7, 8:
+
+ 1) On FreeBSD 5 and 6 use patch to apply Patch.iicbb-fbsd5
+ so cxm can use the i2c bus and avoid a crash when unloading
+ as well as update the prototype for iicbus_write to support
+ a const buffer.
+
+ 2) Unshar the enclosed archive into /sys.
+
+ 3) Place a current version of hcwpvrp2.sys from the
+ Hauppauge drivers into /sys/dev/cxm. Extract the
+ the firmware by:
+
+ # cd /sys/dev/cxm
+ # cc -o cxm_extract_fw cxm_extract_fw.c
+ # ./cxm_extract_fw hcwpvrp2.sys
+
+ 4) Rebuilt the kernel and modules to ensure the iicbb
+ patch takes effect.
+
+ 5) Install the new kernel and modules. Reboot.
+
+ 6) Make and install the cxm driver by:
+
+ # cd /sys/modules/cxm
+ # make
+ # cp cxm/cxm.ko cxm_iic/cxm_iic.ko /modules
+ # kldload cxm_iic
+ # kldload cxm
+
+ At which point your console should say something like:
+
+ cxm0: <Conexant iTVC15 MPEG Coder> mem 0xd8000000-0xdbffffff irq 12
+ at device 10 .0 on pci0
+ cxm_iic0: <Conexant iTVC15 / iTVC16 I2C controller> on cxm0
+ iicbb0: <I2C bit-banging driver> on cxm_iic0
+ cxm0: Philips FI1236 MK2 tuner
+ cxm0: SAA7115 rev 1 video decoder
+ cxm0: MSP3435G-B6 audio decoder
+ cxm0: IR Remote
+ cxm0: encoder firmware version 0x2050032
+ cxm0: decoder firmware version 0x2020023
+
+ 7) On FreeBSD 5.2 and later the device node is /dev/cxm0
+ and magically appears when the cxm modules is loaded.
+
+A subset of the bt848 and meteor ioctls are supported.
+The more interesting ones being:
+
+ TVTUNER_SETTYPE - Set the channel map / system (default is tuner specific).
+
+ TVTUNER_SETCHNL - Set the channel (default to 4).
+
+ BT848_SCAPAREA - Set the capture area / format (defaults to DVD).
+
+ VCD: 352 x 240 or 352 x 288
+ SVCD: 480 x 480 or 480 x 576
+ DVD half D1: 352 x 480 or 352 x 576
+ DVD full D1: 720 x 480 or 720 x 576
+
+ METEORCAPTUR - Start / stop the capture.
+
+ Capture is also started if a read
+ occurs when the data buffer is empty.
+
+To capture a MPEG program stream from the current channel
+simply cat /dev/cxm0 > filename.mpeg. Though to ensure
+a clean capture you probably want to do something like:
+
+ 1) Read data until the TV show has ended.
+
+ 2) Use METEORCAPTUR to end the capture.
+
+ 3) Use poll to determine if there is any data
+ remaining in the device. Read the data as
+ long as poll says there's data in the buffer.
+
+otherwise the end of the mpeg program stream will probably be
+corrupt.
+
+Enjoy,
+
+John Wehle
+
+-------------------------------------------------------------------------
+| Feith Systems | Voice: 1-215-646-8000 | Email: john@feith.com |
+| John Wehle | Fax: 1-215-540-5495 | |
+-------------------------------------------------------------------------
diff --git a/multimedia/pvr250/files/extra-patch-dev::cxm::cxm.c b/multimedia/pvr250/files/extra-patch-dev::cxm::cxm.c
deleted file mode 100644
index 8d1b865b3de0..000000000000
--- a/multimedia/pvr250/files/extra-patch-dev::cxm::cxm.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- dev/cxm/cxm.c.orig 2007-09-05 19:08:24.707875447 +0200
-+++ dev/cxm/cxm.c 2007-09-05 19:08:17.000000000 +0200
-@@ -1799,7 +1799,7 @@
- }
-
- error = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_TTY,
-- cxm_intr, sc, &sc->ih_cookie);
-+ NULL, cxm_intr, sc, &sc->ih_cookie);
- if (error) {
- device_printf(dev, "could not setup irq\n");
- goto fail;
diff --git a/multimedia/pvr250/files/extra-patch-dev::cxm::cxm.h b/multimedia/pvr250/files/extra-patch-dev::cxm::cxm.h
deleted file mode 100644
index 5f525b5625c6..000000000000
--- a/multimedia/pvr250/files/extra-patch-dev::cxm::cxm.h
+++ /dev/null
@@ -1,20 +0,0 @@
---- dev/cxm/cxm.h.orig 2007-09-05 19:10:08.361061000 +0200
-+++ dev/cxm/cxm.h 2007-09-05 19:14:25.486827125 +0200
-@@ -211,8 +211,6 @@
- cxm_pal_60hz_source_format,
- cxm_secam_50hz_source_format };
-
--extern const struct cxm_tuner cxm_tuners[];
--
- enum cxm_type { cxm_unknown_type, cxm_iTVC15_type, cxm_iTVC16_type };
-
- /*
-@@ -635,6 +633,8 @@
- const struct cxm_saa7115_command *scaling;
- };
-
-+extern const struct cxm_tuner cxm_tuners[];
-+
- int cxm_saa7115_init( struct cxm_softc *sc );
- int cxm_saa7115_mute( struct cxm_softc *sc );
- int cxm_saa7115_unmute( struct cxm_softc *sc );
diff --git a/multimedia/pvr250/files/patch-modules::cxm::cxm_iic::Makefile b/multimedia/pvr250/files/patch-modules::cxm::cxm_iic::Makefile
deleted file mode 100644
index 8fd5589aa033..000000000000
--- a/multimedia/pvr250/files/patch-modules::cxm::cxm_iic::Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
---- 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/pvr250/files/patch-modules::cxm::cxm::Makefile b/multimedia/pvr250/files/patch-modules_cxm_cxm_Makefile
index b06e1e1445f7..d47665856bfc 100644
--- a/multimedia/pvr250/files/patch-modules::cxm::cxm::Makefile
+++ b/multimedia/pvr250/files/patch-modules_cxm_cxm_Makefile
@@ -1,9 +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
+--- modules/cxm/cxm/Makefile.orig 2010-10-21 08:16:45.000000000 +1100
++++ modules/cxm/cxm/Makefile 2010-10-21 08:17:00.000000000 +1100
@@ -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../../..
++CFLAGS+= -I../../..
.include <bsd.kmod.mk>
diff --git a/multimedia/pvr250/files/patch-modules_cxm_cxm__iic_Makefile b/multimedia/pvr250/files/patch-modules_cxm_cxm__iic_Makefile
new file mode 100644
index 000000000000..eb72ab1cddff
--- /dev/null
+++ b/multimedia/pvr250/files/patch-modules_cxm_cxm__iic_Makefile
@@ -0,0 +1,9 @@
+--- modules/cxm/cxm_iic/Makefile.orig 2010-10-21 08:17:40.000000000 +1100
++++ modules/cxm/cxm_iic/Makefile 2010-10-21 08:17:52.000000000 +1100
+@@ -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/pvr250/files/pkg-descr.in b/multimedia/pvr250/files/pkg-descr.in
new file mode 100644
index 000000000000..bef5fe8bd0b5
--- /dev/null
+++ b/multimedia/pvr250/files/pkg-descr.in
@@ -0,0 +1,20 @@
+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>
+
+ See the file %%DOCSDIR%%/pvr250 for a full description
+ of the functionality of the cxm driver.
+
+- One program to modify some ioctls on the card: set the channel
+ and set the window size.
+
+Note:
+
+- 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/pvr250/pkg-message b/multimedia/pvr250/pkg-message
deleted file mode 100644
index 0400644bf911..000000000000
--- a/multimedia/pvr250/pkg-message
+++ /dev/null
@@ -1,29 +0,0 @@
-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).