![[pvr 150 mce]](150.jpg) I just bought a Hauppauge
PVR-150 MCE (NTSC) from Amazon.com
for about $65.  It provides hardware MPEG-2 encoding of analog TV signals
-- i.e., broadcast or most cable systems.  It works reasonably well under
Linux, but the process for getting it to work is not well documented yet.
That's where this page comes in -- it's a a run-down of what worked for
me, but not quite a HOWTO.  Feedback
is always welcome!
I just bought a Hauppauge
PVR-150 MCE (NTSC) from Amazon.com
for about $65.  It provides hardware MPEG-2 encoding of analog TV signals
-- i.e., broadcast or most cable systems.  It works reasonably well under
Linux, but the process for getting it to work is not well documented yet.
That's where this page comes in -- it's a a run-down of what worked for
me, but not quite a HOWTO.  Feedback
is always welcome!
The Hardware
- Product: Hauppauge PVR-150 MCE (NTSC)
- Tuner label: 26552 Rev. B268
- Encoder: CX 23416-12 (iTVC16)
- PCI ID: 4444:0016 (rev 01)
The Status
- Tuner: working at 720x480 for all channels; other resolutions do
not work
- Sound: working, good quality
- S-Video: not tested; produces a stable black screen
- Composite: working, good quality
- FM Radio: not tested; is this even supported under Linux?
The Software
A vague HOWTO
-  Get a 2.6.18 or newer Linux kernel, and configure it to enable the
"Cryptographic API."  You'll have an easier time if you do not enable bttv
(i.e., bt-878 drivers), because ivtv wants to use its own tuner and
msp3400 modules.  But it's doable.
-  Compile, install, and boot said kernel.
-  Get the ivtv drivers.  I used 0.10.4.
- NB: the 2.6.22 Linux kernel includes the IVTV drivers.  For Linux
2.6.22, you should get ivtv-1.0 package, which includes tuning tools,
etc., but not the driver.  I haven't tested this yet.
 
-  untar the ivtv drivers.  cd ivtv-x.y.z/driver/.  make.  make
install.
-  Depending on your kernel config, ivtv may recommend that you delete
tuner.ko and/or msp3400.ko from your /lib/modules.  Do it.
-  Get the firmware files recommended by the IVTV
firmware page.
-  Extract the video-encoder firmware using utils/ivtvfwextract.pl
pvr_NN.NN.NN_inf.zip .
-  Copy ivtv-fw-enc.bin to /usr/lib/hotplug/firmware/v4l-cx2341x-enc.fw.
Your directory may vary according to distribution.  Try grep
FIRMWARE_DIR `locate firmware.agent` for hints.
-  Unzip the audio firmware, preferably into its own directory.
-  Copy HcwMakoA.ROM to /usr/lib/hotplug/firmware/v4l-cx25840.fw.
-  Copy v4l-cx2341x-init.mpg from the ivtv directory to
/usr/lib/hotplug/firmware/.
-  modprobe ivtv.  I used to use module parameters to set the
tuner type and "no black magic," but they are no longer necessary.
-  Check dmesg and see if the module loaded OK.  The last few lines will
indicate the ivtv error (e.g., no firmware) if there is one.
-  cd to ivtv-x.y.z/utils/ and make ivtvctl.  You
should probably copy it to /usr/local/bin.
-  Make the appropriate video devices if they do not already exist:
- mknod /dev/video0 c 81 0
    
- mknod /dev/video1 c 81 1
    
- You may also want to chgrp them to video or mythtv, chmod them 660
or 666, etc.  Make them accessible to the appropriate non-root accounts.
 
-  Now, the card may or may not be tuned.  Mine was tuned to channel 4,
so a simple mplayer /dev/video0 got me a signal.  You can also
cp /dev/video0 foo.mpg and just hit control+C after a few
seconds.  If the card is untuned, you should get static.  If it's set to
the wrong input (e.g., s-video), you may get a black screen.
-  If you need to switch the inputs, type ivtvctl -d /dev/video0
-n to get a list of the inputs.  Find "Tuner 0" (probably #6) and use
ivtvctl -d /dev/video0 -p 6 (or whichever number) to set it.
-  If you need to switch channels, find the frequency for the desired
channel.  Here is a
list for US cable channels 2 through 125 -- use the "Standard" column.
For example, channel 3 is 61.25 MHz.  Multiply the frequency in MHz by 16
-- e.g., channel 3 is 980.  Now use ivtvctl -r 980 (or whichever)
to set the channel.
-  Once you've set the tuner and the channels, use mplayer or
cp to test your video again.
MythTV configuration
Troubleshooting
-  Use lspci to make sure Linux found and identified your card.
-  Check the output of dmesg to see if there were errors
initializing, tuning, or recording from the card.
-  Use ivtvctl -d /dev/video0 -a to see everything ivtv knows
about your card.
-  If the card works with mplayer but not MythTV, use ivtvtcl
-a before and after starting mythbackend to see which settings
change.
-  Check /var/log/mythtv/mythbackend.log to see if MythTV reports any
errors.
-  More at the ivtv
troubleshooting page.
Notes and hints
- MPEG-2 needs a high bitrate to look good, particularly if you have a
moderately noisy cable signal.  I record at 4.5 Mbps, with a max of 6.0
Mbps.  Audio sounds fine at 192 Kbps.  You can always transcode later
(even automatically) if you want to save space.