Setting up a Linux DVR w/ MythTV, Ubuntu 12.04, and a Hauppauge WinTV-HVR 1250 TV tuner card
Setting up MythTV involves a little pain, but once it's set up, it's pretty great. And you don't have to spend lots of money on a DVR from the cable company. With my modest hardware specs, playback is smooth and clear, however Picture in Picture is too jittery to be useful. Here's what I did to get my MythTV DVR running on my Ubuntu machine.
Parameters¶
- Ubuntu 12.04 LTS (Precise Pangolin)
- MythTV 0.25
- Hauppauge 1196 WinTV-HVR-1250 PCI-E x1 TV Tuner 1196 (The included remote does not work with Linux. However this Anker Mini Bluetooth Keyboard from Amazon works really great for controlling MythTV from the couch.)
- Location: North America
- Leaf Indoor OTA (over the air) HDTV Antenna (You can use a cheap $20 HD antenna instead and it will work great, but I liked how the Leaf was so thin and unobtrusive. I tape mine to my window near the computer and run a 25-foot HDMI cable to the TV.)
- Video card: EVGA 01G-P3-1302-LR GeForce 8400 GS 1GB 64-bit DDR3 PCI Express 2.0 x16 HDCP Ready Low Profile Ready Video Card
- Other PC hardware specs: 4GB RAM, Athlon II X3 3.1GHz CPU (full details)
Install the Hauppauge WinTV-HVR 1250 TV tuner card¶
Put the card in the computer. Connect the TV antenna to the card.
Check the TV tuner card is recognized¶
Ubuntu 12.04 includes drivers for the Hauppauge 1250 TV tuner card, so I did not need to install any drivers.
Update 2016-10-16:On Ubuntu 16.04, look in /var/log/syslog instead of /var/log/dmesg.
$ cat /var/log/dmesg
[ 15.211985] cx23885 driver version 0.0.3 loaded [ 15.214279] cx23885 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 [ 15.214492] CORE cx23885[0]: subsystem: 0070:2259, board: Hauppauge WinTV-HVR1255 [card=20,autodetected] [ 15.214600] IR NEC protocol handler initialized [ 15.230936] IR RC5(x) protocol handler initialized [ 15.235576] MCE: In-kernel MCE decoding enabled. [ 15.237132] IR RC6 protocol handler initialized [ 15.237703] EDAC MC: Ver: 2.1.0 [ 15.238256] AMD64 EDAC driver v3.4.0 [ 15.242493] IR JVC protocol handler initialized [ 15.246743] IR Sony protocol handler initialized [ 15.250908] IR MCE Keyboard/mouse protocol handler initialized [ 15.256862] lirc_dev: IR Remote Control driver registered, major 250 [ 15.257125] IR LIRC bridge handler initialized [ 15.284735] lp0: using parport0 (interrupt-driven). [ 15.361892] tveeprom 0-0050: Hauppauge model 22111, rev E2F5, serial# 8323201 [ 15.361895] tveeprom 0-0050: MAC address is 00:0d:fe:7f:00:81 [ 15.361897] tveeprom 0-0050: tuner model is NXP 18271C2 (idx 155, type 54) [ 15.361899] tveeprom 0-0050: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0x88) [ 15.361901] tveeprom 0-0050: audio processor is CX23888 (idx 40) [ 15.361903] tveeprom 0-0050: decoder processor is CX23888 (idx 34) [ 15.361904] tveeprom 0-0050: has no radio, has IR receiver, has no IR transmitter [ 15.361906] cx23885[0]: hauppauge eeprom: model=22111 [ 15.361909] cx23885_dvb_register() allocating 1 frontend(s)
Install MythTV¶
$ sudo apt-get install mythtv
Set up the MythTV backend¶
Run mythtv-setup to select your TV tuner card and scan for channels.
$ mythtv-setup
Click "Yes" to add your user to the "mythtv" group.
Click "Yes" to restart your login session.
Change the following options:
- 2. Capture cards -> (New capture card) -> Card type: DVB DTV capture card (v3.x) -> Finish
- 4. Video sources -> (New video source) -> Video source name: FOOBAR, Listings grabber: North America (SchedulesDirect.org) (Internal), User ID: blank, Pass: blank
- 5. Input connections -> [DVB: /dev/dvb/adapter0/frontend0] -> Video source: FOOBAR -> Scan for channels
Note: if you see the error "Failed to open the card", make sure the mythv-backend is actually stopped. The GUI said it would stop the backend but it was still running.
After running mythtv-setup, it will ask you if you want to start the backend. Select yes to start the backend. It will also ask you if you want to run mythfilldatabase. Select yes to run mythfilldatabase. This may take a while.
Ensure mythv backend is running¶
After running mythtv-setup, the mythtv backend should start running.
To check that the backend is running, run:
$ ps -ef | grep myth
If the mythtv backend is not running, start it using the following command:
$ sudo service mythtv-backend start
Troubleshooting mythbackend¶
If mythbackend doesn't stay running, there may be some configuration that is broken. Check /var/log/syslog. If that does not have enough information, run the backend with the --verbose option:
$ mythbackend --verbose
Run the MythTV frontend¶
$ mythfrontend
Some keyboard shortcuts¶
- P - pause/play
- SPACE - set/clear bookmark
- LEFT/RIGHT ARROW - skip back/forward
- M - menu
- D - delete
Other stuff¶
- You may want to change the theme. I chose the TintedGlass 2.43 theme.
- To get schedule information, I ended up signing up for a membership at www.schedulesdirect.org. It is $25/year (or ~$2/month). It seems to be the recommended way to get schedule information.
How run mythfrontend on another Ubuntu laptop connected to your LAN (Added 2013-06-07)¶
Since MythTV has a flexible client/server architecture, you can run the MythTV backend server on one machine and access it from multiple other machines running a Mythtv frontend. These steps assume the remote frontend is running on a laptop with Ubuntu 12.04 and it is connected to your local network (LAN) (not through the internet (though that is possible.).)
UPDATE: Playing 1080p HD content over my $30 Belkin G wireless router (rated at 54 Mbps) had occasional stalls in the playback. Repositioning my router helped, but after a couple days, I decided to order a Netgear N600 Wireless-N Dual Band Router. Hopefully this will solve my problem.
On the Mythtv backend server configured above:
- Determine the IP address of the Mythtv backend server by running ifconfig
$ ifconfig
For me, it is 192.168.2.2. This will be used in the steps below. - Follow the instructions here: http://www.mythtv.org/wiki/Mythfrontend
- Edit /etc/mysql/my.cnf so the the bind-address line is commented out (on Ubuntu 16.04 edit /etc/mysql/mysql.conf.d/mysqld.cnf):
#bind-address 127.0.0.1
- Allow remote users access to the database. Note: replace "mypassword" with the value found in ~/.mythtv/mysql.txt.
$ mysql -u root mysql> grant all on mythconverg.* to 'mythtv'@'%' identified by 'mypassword'; mysql> flush privileges; mysql> exit
- Restart mysql server:
$ sudo service mysql restart
- Edit /etc/mysql/my.cnf so the the bind-address line is commented out (on Ubuntu 16.04 edit /etc/mysql/mysql.conf.d/mysqld.cnf):
- Ensure mythbackend is not using 127.0.0.1.
- Run mythtv-setup:
$ mythtv-setup
- Change the IP address from 127.0.0.1 to 192.168.2.2 (or IP address you determined from above.)
- Run mythtv-setup:
On the laptop:
$ sudo apt-get install mythtv-frontend
- click "yes" to be added to the mythtv group
- click "yes" to restart your session
- click "OK" to the msg about logging out of your session
- logout and login again
- Run mythfrontend
$ mythfrontend
- For the hostname: enter the IP address of the Mythtv server. For me it is 192.168.2.2.
- Enter the Mysql password. This can be found in ~/.mythtv/mysql.txt (or ~/.mythtv/config.xml or /etc/mythtv/config.xml on newer versions) on the Mythtv server machine. Or you can check the settings of the mythfrontend running on the server machine.
How to watch your recorded videos on your Android phone over the internet¶
- This method uses the MythTV Services API
- PC: Set up a SSH server on your MythTV backend server
- PC: Get the external IP address of your MythTV backend server
$ curl http://ifconfig.me 111.222.333.444
- Android: Install Connectbot on your Android phone and enable port forwarding of 6544. For more info see: http://parker1.co.uk/mythtv_ssh.php
- Android: Using Connectbot, connect to your MythTV server using the IP address from above (111.222.333.444)
- Android: Menu -> Port Forwards -> Menu -> Add port forward:
- Nickname: mythtv
- Type: local
- Source port: 6544
- Destination: localhost:6544
- Android: Disconnect and reconnect
- Android: Install and set up MythTV Android Frontend
- Android: Touch the settings icon -> Away Profiles
- Name: Away
- MythTV Master Backend Address: http://localhost:6544/
- Android: Away -> Recordings -> Select a show to watch -> watch it
- Android: Touch the settings icon -> Away Profiles
See also:
How to restore an old database on a fresh install Added 2016-10-16¶
See https://www.mythtv.org/wiki/Database_Backup_and_Restore
$ wget https://raw.githubusercontent.com/MythTV/mythtv/master/mythtv/programs/scripts/database/mythconverg_restore.pl
$ chmod a+x mythconverg_restore.pl
$ ./mythconverg_restore.pl --directory /mnt/hdd2/mythtv/db_backups --filename mythconverg-1317-20161008080149.sql.gz --drop_database --create_database
$ # if there has been a database schema change, you will need to run mythtv-setup
Help / References¶
Related posts
- Setting up the Lenovo Thinkpad X1 Carbon (2nd gen) fingerprint reader in Ubuntu 14.04 — posted 2014-12-20
- Ordered a Lenovo X1 Carbon for 40% off — posted 2014-11-30
- Got my Leopold Tenkeyless from Elite Keyboards — posted 2011-04-16
- This time I decided to build my Linux desktop PC myself — posted 2011-02-21
- Dell 530N Ubuntu vs. build it yourself — posted 2008-02-01
Comments
Almost. Very helpful, but not for my tuner.
I've got a USB WinTV-950 tuner, and even though Ubu "detects" it, I've yet to find a way to actually get it to work in Ubu.
Tutorials like this all prove "card" based tuners can be made to work, but so far, no solution for us USB WinTV tuner owners. :(
Thanks so much for describing such a well conceived and useful template. I have the graphics card and have ordered the capture card. I specifically bought a used desktop that would accommodate the two. Hope it all works together!
Not working for me. I got as far as 'Click "Yes" to restart your login session', but I never had a chance to 'Change the following options:'. Tried restarting, running mythtv-setup again. It says that the backend is already running, do I want to stop it, and when I say yes an XTerm window opens but doesn't seem to do anything. I skipped ahead to "Run the MythTV frontend", and it runs, BUT: the mouse pointer disappears when I move it into the MythTV area, and when I click 'watch live TV' it tells me that there's no video source selected--or something like that. I'd appreciate any help anyone can offer, but I'm a bit of a noob, so please speak slowly.
I have a swan usb PC DVR-4 when I try to load the disk I ge an error it works fine with windows I can you help THANKS
Most of the populace prefer to call up professional help for this kind of solutions. This was something very easy. Will definitely give a try.
Helpful information. But it is not useful for all tuners. But this information helps me to find exact method for my tuner.