Table of Contents
Backend
Intro
Latest version is 12.04
Rebuild of the new machine with the dual tuner. The dual tuner card still hangs every few weeks. I think I'm going to tweak this a little so that it:
- Reboots daily
- Only does commercial flagging in the middle of the night
Install
Base
- Did an Update, but that apparently “wiped” the drive anyway…
- Chose the primary backend
- Enabled ALL services: SAMBA, NFS, SSH, Mythtv
- Update the packages to the latest and reboot
- Install some programs I cannot live without:
- jed:
sudo apt-get install jed
Configuration
- Modify your network settings like this:
sudo nano /etc/network/interfaces
- set our IP address to what you want:
# The primary network interface auto eth0 iface eth0 inet static address xx.xx.xx.xx netmask 255.255.255.0 network xx.xx.xx.xx # this one is the same as gateway I think broadcast xx.xx.xx.255 gateway xx.xx.xx.1 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers xx.xx.xx.xx dns-search some.domain.com
- Restart the networking:
sudo /etc/init.d/networking restart
HVR-2250 Drivers
I did a grep of dmesg looking for the 7164 card, and sure enough the support is there, but it can't find the firmware that the kernel was compiled with. I did a quick google and found the link to where the firmware file was. Here is what I did and how I installed the driver:
- Look in the log for what was missing:
[ 6.508493] saa7164_downloadfirmware() no first image [ 6.508515] saa7164_downloadfirmware() Waiting for firmware upload (NXP7164-2010-03-10.1.fw) [ 7.756686] saa7164_downloadfirmware() Upload failed. (file not found?)
- After doing a google search for that firmware, I found the link to here http://www.kernellabs.com/blog/?p=1443, which led to a direct place to get the firmware:
cd ~/Downloads wget http://www.steventoth.net/linux/hvr22xx/firmwares/4019072/NXP7164-2010-03-10.1.fw
- Copy this firmware into the Ubuntu folder:
sudo cp ~/Downloads/NXP7164-2010-03-10.1.fw /lib/firmware/
- Restart the module:
sudo rmmod saa7164 sudo modprobe saa7164
- And there was much rejoicing!
[ 1037.124209] Histogram named irq intervals (ms, count, last_update_jiffy) [ 1037.124220] Total: 0 [ 1037.124224] Histogram named deferred intervals (ms, count, last_update_jiffy) [ 1037.124230] Total: 0 [ 1037.124233] Histogram named irq to deferred intervals (ms, count, last_update_jiffy) [ 1037.124239] Total: 0 [ 1037.124242] Histogram named encoder/vbi read() intervals (ms, count, last_update_jiffy) [ 1037.124248] Total: 0 [ 1037.124252] Histogram named encoder/vbi poll() intervals (ms, count, last_update_jiffy) [ 1037.124257] Total: 0 [ 1037.124261] Histogram named encoder/vbi read() intervals (ms, count, last_update_jiffy) [ 1037.124267] Total: 0 [ 1037.124270] Histogram named encoder/vbi poll() intervals (ms, count, last_update_jiffy) [ 1037.124276] Total: 0 [ 1037.124299] saa7164 0000:01:00.0: PCI INT A disabled [ 1042.954006] saa7164 driver loaded [ 1042.954176] saa7164 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 [ 1042.956572] CORE saa7164[0]: subsystem: 0070:8851, board: Hauppauge WinTV-HVR2250 [card=7,autodetected] [ 1042.956586] saa7164[0]/0: found at 0000:01:00.0, rev: 129, irq: 16, latency: 0, mmio: 0xfd400000 [ 1042.956601] saa7164 0000:01:00.0: setting latency timer to 64 [ 1043.116024] saa7164_downloadfirmware() no first image [ 1043.116041] saa7164_downloadfirmware() Waiting for firmware upload (NXP7164-2010-03-10.1.fw) [ 1043.144214] saa7164_downloadfirmware() firmware read 4019072 bytes. [ 1043.144222] saa7164_downloadfirmware() firmware loaded. [ 1043.144226] Firmware file header part 1: [ 1043.144235] .FirmwareSize = 0x0 [ 1043.144239] .BSLSize = 0x0 [ 1043.144243] .Reserved = 0x3d538 [ 1043.144247] .Version = 0x3 [ 1043.144251] saa7164_downloadfirmware() SecBootLoader.FileSize = 4019072 [ 1043.144263] saa7164_downloadfirmware() FirmwareSize = 0x1fd6 [ 1043.144268] saa7164_downloadfirmware() BSLSize = 0x0 [ 1043.144272] saa7164_downloadfirmware() Reserved = 0x0 [ 1043.144277] saa7164_downloadfirmware() Version = 0x1661c00 [ 1050.004040] saa7164_downloadimage() Image downloaded, booting... [ 1050.108032] saa7164_downloadimage() Image booted successfully. [ 1050.108063] starting firmware download(2) [ 1052.232025] saa7164_downloadimage() Image downloaded, booting... [ 1054.104036] saa7164_downloadimage() Image booted successfully. [ 1054.104067] firmware download complete. [ 1054.152527] tveeprom 14-0000: Hauppauge model 88061, rev C4F2, serial# 7079441 [ 1054.152537] tveeprom 14-0000: MAC address is 00:0d:fe:6c:06:11 [ 1054.152544] tveeprom 14-0000: tuner model is NXP 18271C2_716x (idx 152, type 4) [ 1054.152552] tveeprom 14-0000: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0x88) [ 1054.152559] tveeprom 14-0000: audio processor is SAA7164 (idx 43) [ 1054.152565] tveeprom 14-0000: decoder processor is SAA7164 (idx 40) [ 1054.152571] tveeprom 14-0000: has radio, has IR receiver, has no IR transmitter [ 1054.152577] saa7164[0]: Hauppauge eeprom: model=88061 [ 1054.515587] tda18271 15-0060: creating new instance [ 1054.520221] TDA18271HD/C2 detected @ 15-0060 [ 1054.771027] DVB: registering new adapter (saa7164) [ 1054.771042] DVB: registering adapter 0 frontend 0 (Samsung S5H1411 QAM/8VSB Frontend)... [ 1055.066157] tda18271 16-0060: creating new instance [ 1055.070573] TDA18271HD/C2 detected @ 16-0060 [ 1055.320827] tda18271: performing RF tracking filter calibration [ 1057.669998] tda18271: RF tracking filter calibration complete [ 1057.672579] DVB: registering new adapter (saa7164) [ 1057.672593] DVB: registering adapter 1 frontend 0 (Samsung S5H1411 QAM/8VSB Frontend)... [ 1057.673899] saa7164[0]: registered device video0 [mpeg] [ 1057.904351] saa7164[0]: registered device video1 [mpeg] [ 1058.115641] saa7164[0]: registered device vbi0 [vbi] [ 1058.115759] saa7164[0]: registered device vbi1 [vbi]
Backend Configuration
Run Settings → MythTV Backend Setup
- General
- [Page 1] IP Address to xx.xx.xx.xx
- [Page 1] Master backend IP address to same xx.xx.xx.xx
- [Page 8] Job Que: Start time 00:00 to Stop time 04:20 (Only flag commercials in the middle of the night)
- [Last Page] Automatically run mythfilldatabase
- Capture Cards
- New Capture Card → DVB 0
- New Capture Care → DVB 1
- Video Source
- New Video Source
- Video Source name: Local ATSC
- Username:
- Password:
- PRESS Retrieve lineups and pull up our zip code channels
- Input Connections
- Connect each tuner to the video source
- Scan for channels Once
- Set each to have a good default station, I'm using 67_1 for both
- Exit
- Run mythfilldatabase and that will take a while to get a fresh listing for 2 weeks
Now enable a few more things:
Run Settings → Mythbuntu Control Centre
- MythExport
- Enable MythExport (so we can maybe export shows to iPod format for instance?)
- Plugins
- MythWeb
- Enable Password Protection
Tweaks
Filename Symbolic Links
So that the samba share is actually useful, I will make a cron job that will every day build a list of links to the recorded shows.
- Download the mythname.pl script. I think I modified it, so just in case here is the version that runs on mythth now: mythname.pl.zip
- Place that perl script in /usr/local/bin
- Make a directory / home for the symbolic links
sudo mkdir /var/lib/mythtv/recordings/links/
- Place the following script in mythtv_cronjob_symlink_recordings
#!/bin/sh find /var/lib/mythtv/recordings/links/ -type l -exec rm {} \; cd /var/lib/mythtv/recordings/links/ for filename in /var/lib/mythtv/recordings/*.mpg do # windows did not like the colons in the name, so changing to underscores and periods fname=`/usr/local/bin/mythname.pl --rep=. --subtitle $filename | tr : _ | tr ';.' .`.mpg ##### no need to echo for a cron job ##### echo "Linking $filename to $fname" ln -s $filename $fname > /dev/null 2>&1 done exit 0
- Copy that file into /etc/cron.daily/
sudo cp mythtv_cronjob_symlink_recordings /etc/cron.daily/
- Set the ownership and permissions
sudo chown root:root /etc/cron.daily/mythtv_cronjob_symlink_recordings sudo chmod 755 /etc/cron.daily/mythtv_cronjob_symlink_recordings
- I added these lines to /etc/samba/smbd.conf trying to get the links to work
follow symlinks = yes unix extensions = no wide links = yes
Backend Card Hang / Crash
Use an hourly cron job to check for this error. If you see it, reboot! Here is my cron.hourly script mythtv_check_for_crashed_tuner:
#!/bin/bash # SAA7164ERRORS=$(/bin/dmesg | /bin/grep saa7164_api_i2c_write | /usr/bin/wc -l) if [ $SAA7164ERRORS -ne 0 ]; then MYDATE=$(/bin/date) echo $MYDATE : Rebooting Now Due to saa7164 card crash >> /home/mythbot/mythbot_reboot_log.txt /sbin/reboot fi
Frontend
Basics
- Installed Mythbuntu from CD making this computer just a “front end”
- Enabled SSH
- Left DHCP as I have my daemon giving out the proper IP based on MAC address
Configuration
- Modified theme to the one I LIKE!
- Modified ALSA mixer so that audio SPDIF is output
- Load up the mixer as root
sudo alsamixer
- Modify the line: Item: S/PDIF Output [Off] with the 'M' key
- Save your configuration with:
sudo alsactl store 0
- Modified the Audio output to use S/PDIF:
- Utilities / Setup → Setup → General → Page 4 NOTE Anything but default / stereo breaks the SPDIF output… don't touch this
- Did set the audio outputs to 100% on both Master and PCM
Speaker Configuration from Stereo to 5.1NOTE: This seems to BREAK my audio now?! If I leave it stereo it works.Upmix: BestAudio Processing Capabilities: Check both Dolby Digital AND DTS
- Set our VIDEO output to VDPAU:
- Utilities / Setup → TV Settings → Playback → Page 3/8
- Current Video Playback Profile:VDPAU High Quality
Remote Control Configuration
I added the following lines to my lirc configuration: ~/.lirc/mythtv
### added by david rabine (dlr) 2009.12.28 ### # I added the following - dlr 2008/10/18 # Skip forward (10 min default) begin remote = Streamzap_PC_Remote prog = mythtv button = >> repeat = 0 config = PgDown delay = 0 end begin remote = Streamzap_PC_Remote prog = mythtv button = << repeat = 0 config = PgUp delay = 0 end # Seek to previous commercial cut point begin remote = Streamzap_PC_Remote prog = mythtv button = YELLOW repeat = 0 config = Q end # Seek to next commercial cut point begin remote = Streamzap_PC_Remote prog = mythtv button = BLUE repeat = 0 config = Z end
Media Library
Audio
- Add in symbolic links to our libraries
- Go to Listen to Music and it will scan for new files
Video
- Add in symbolic links for all our shares / files
- Go to Utilities / Setup → Setup → Media Settings → Video Settings → General Settings: /var/lib/mythtv/video as Directories that hold videos
Media Types
mkv
I was having some issues with the internal player not hanging very well with high definition content, so I modified the video player setup to use mplayer
- Surf in the mythtv setup to this menu structure: Utilities / Setup → Setup → Media Settings → Video Settings → File Types
- Change the extension to “mkv”
- Enter the following command into the Command: line
mplayer -cache=16384 -cache-min=10 -fs -zoom -quiet -nosub -vo vdpau -vc ffh264vdpau -heartbeat-cmd "xscreensaver-command -deactivate" %s
- the -vc call makes a huge difference in CPU usage (from 50% to 2% doing a 1080p video) (I thought the -vo would do it on its own but it does not)
- the -heartbeat-cmd “xscreensaver-command -deactivate” keeps the screen from blanking every 10 minutes or so
Trouble Shooting
- The images were “tearing” with some High Definition content, found http://www.mythtv.org/wiki/VDPAU this page. Not sure why disabling the composite output on the card fixes this, but it does.
sudo nvidia-xconfig --no-composite