Introduction
This page will be used to document the development of my 5th Mythtv system which will be based on the Intel DZ68DB moherboard, i3 2120T Processor and 3 Dual Terratec DVB-C tuners. It is not THE most perfect setup but just a documented setup of my system and preferences.
List of hardware
- Motherboard: DZ68DB moherboard
- CPU: Intel i3 2120T
- Memory: Corsair Value Select 4 GB DDR3 (1333 MHz / PC3-10600) Ean's 0843591010061
- Seagate 4TB ST4000DM005 Barracuda
- PSU: Seasonic 80 PLUS Gold
- Capture cards: 3 x Cinergy PCI HD Terratec (total of 6 recordings)
- Case: Silverstone GD07B
- IR receiver: Philips OVU412000 USB IR
- LCD display: 20X4 LCD Smartie USB display Sure Electronics
- USB-CEC adapter for HDMI (Pulse Eight)
BIOS Update
The Intel DZ68DB came with an older BIOS. To update the BIOS (not having a Windows PC) you have the option to place the .BIO file on a USB thumb driver (FAT32), remote the yellow BIOS jumper from the motherboard and boot the system with te thumbdrive plugged in. I'll take a few minutes for the firmware to flash. The process is very simple, but you have to open the case to access the motherboard
Download and install mythbuntu
Download mythbuntu 16.04 and use unetbootin to put it on a USB stick
Boot from USB stick and install myhtbuntu
/dev/sda is large 4TB data disk
/dev/sdc1 is smaller 2.5" hdd for the OS
/dev/sda data disk
/dev/sdc1 mythbunty 16G ext4
/dev/sdc2 swap 8G
Remote Hauppauge TV (nothing selected)
mythbackend draait onder de user mythtv en maakt dus bestanden aan onder deze gebruiker
zorg er dus voor dat de data directory waarin myhthtv mag schrijven van mythtv.mythtv is.
mkdir /mythtv_data (holds mythtv Data)
mkdir /data (holds all my other file as a NAS server)
chown mythtv.mythtv /mythtv_data
Update system
sudo apt-get update
sudo apt-get upgrade
create initial backup
reboot and create backup using sysrecue
chreate backup of root partition
mkdir /data
mount /dev/sda3 /data
mkdir /data/backup
dd if=/dev/sda1 of=/data/backup/mythbuntu16.04_update.dd
backup MBR
dd if=/dev/sda1 of=/data/backup/mythbuntu16.04_updateMBR.dd bs=512 count=1
Network settings
Disable DHCP and set IP, NM, DG etc.
This can easily be done with the Gnome Nerwork manager (/usr/bin/nm-connection-editor)
Disk labels vs UUID
Mythbuntu uses UUID instead of disk labels. This means you can't simply create an image of a system and restore it on a new harddisk. I prever to use disk labels.
You can use e2label or gparted, a grafical tool to do the same in a user friendly way
LABEL=MythTVBoot / ext4 errors=remount-ro 0 1
LABEL=mythtv_data /mythtv_data ext4 defaults 0 2
LABEL=data /data ext4 defaults 0 2
LABEL=Swap none swap sw 0 0
change /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT="root=LABEL=MythTVBoot quiet splash"
uncomment: #GRUB_DISABLE_LINUX_UUID=true
update /boot/grub/grub.cfg:
#sudo update-grub
Mythtv-setup
configure tuners
Start mythtv setup
General:
- TV Format = PAL
- Channel freq. teable = europe west
- allow commercial detection jobs: off
add video capture cards
card type: dvb-T/S/C, ATSC or ISDB-T Tuner card
Frontend ID STV0367 DVB-C DVB-T syptype DVB-C
/dev/dvb/adapter0/frontend0
repeat for:
/dev/dvb/adapter1/frontend0
and
/dev/dvb/adapter2/frontend0
Kies recording options:
Max recordings: 2
v wait for SEQ start header
0 open DVB card on demand
v Use DVB card for active EIT scan
video source name: tvguide
listings grabber: Transmitted quide only (EID)
Channel frequency table: default
Network ID: 4444 (werkt voor alle FTA kanalen)
input connections
=================
input name: dvbinput
video source: tvguide
Scan for channels=>
Desired Services: TV
v unencrypted only
Scan Type: Full Scan (Tuned)
Frequency: 474000000
Symbol Rate 6875000
Modulation QAM 64
(currently scanning fails /dev/dvb/adapter1/frontend0 has crw-rw---- should this be crw-rw-rw- as myth is the user that starts mythtv-setup? TODO)
Network settings
Disable DHCP and set IP, NM, DG etc.
This can easily be done with the Gnome Nerwork manager (/usr/bin/nm-connection-editor)
Mythfrontend settings
setup audio:
Setup->audio-> test -> finish (without this no sound?!)
General
screenshot path /data/screenshots (user mythtv, perm. 777)
setup->video->playback groups->default:
Skip Ahead: 30 sec
Skip Back: 15 sec
Mythwelcome
Use the Session and Settings tool (in XFCE menu) to configure startup applications
Uncheck:
- Update notifier
- screen saver
- XFCE Volume daemon
- Mythtv Frontend
Add:
/usr/bin/mythtwelcome
(press i when the mythwelcome page is open, to enter the settings screen)
Disable update notification
settigns->software & updates -> updates -> automatically check for updates: Never
Display setup didn't need anything special. De monitor was recognized by X and all settings worked without change.
xscreensaver was a little annoying. I disabled the screensaver function but after a suspend, it asked for a login password. I ended up with simply removing xsreensaver completely (why do you want a screensaver on your HTPC anyway...)
apt-get remove xscreensaver
After that, the screen turned black after a few minutes idle.
/usr/bin/xset dpms 0 0 0; /usr/bin/xset -dpms
(one of the xset commands should do, but just to be sure, I did both)
solved this. Add this as start up application
After powering off my TV and switching it back on, MythTV gave a black screen. Only after restarting X
sudo service lightdm stop
sudo service lightdm start
The screen came back. After some googling and trying different options this is what worked for me:
In the directory /usr/share/X11/xorg.conf.d
create a file "20-intel.conf" with this content:
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "Hotplug" "false"
EndSection
MySQL
You can find your root db password here:
In the apache config file:
/etc/apache2/sites-enabled/mythweb.conf
(look for db_password)
Remote Control
There seems to be a bug in the Lirc config. To fix it open:
/etc/lirc/hardware.confg
change
REMOTE_MODULES="lirc_dev lirc_i2c"
to
REMOTE_MODULES="lirc_dev"
(the kernel module lirc_i2c is not present, and with this configuration lirc will not work)
After this change reboot your system.
Most of the time I use the TV guide and the Recorded video's menu. So I created a few jumppoints to get there quickly with a single button:
configure jumppoints:
start mythweb en go to settings->mythtv->key bindings
Program Guide: Ctrl+g
TV Recording Playback: Ctrl+p
Main menu: Ctrl+m
edit /home/asrock/.lirc/mythtv and add:
begin
remote = Hauppauge_350
prog = mythtv
button = Videos
config = Ctrl+p
repeat = 0
delay = 0
end
begin
remote = Hauppauge_350
prog = mythtv
button = Guide
config = Ctrl+g
repeat = 0
delay = 0
end
begin
remote = Hauppauge_350
prog = mythtv
button = Go
config = Ctrl+m
repeat = 0
delay = 0
end
begin
# add delete button to the remote
remote = Hauppauge_350
prog = mythtv
button = red
config = d
repeat = 0
delay = 0
end
# add two buttons to solve the "Allow Channel Jumping in Guide" bug in 0.22
# key 1 and 7 don't go one day back/forward so we use two extra buttons for that
begin
remote = Hauppauge_350
prog = mythtv
button = yellow
config = Home
repeat = 0
delay = 0
end
begin
remote = Hauppauge_350
prog = mythtv
button = blue
config = End
repeat = 0
delay = 0
end
# add button to get the menu back in the Watch Recording page that displays several options
# Before 0.22 you would get this menu by hitting the right key on a recording.
begin
remote = Hauppauge_350
prog = mythtv
button = Prev.Ch
config = I
repeat = 0
delay = 0
end
hdmi sound
To get sound over HDMI I've installed pulseaudio:
apt-get install pulseaudio pavucontrol
Start pavucontrol en select the desired output on the config page. (Digital Stereo (HDMI) output + Analog Stereo Input)
TODO: I want both analog out (to receiver) *and* hdmi out (to TV)
Configure mythtv (to use Pulseaudio) Setup->Audio.
Sound over HDMI and Analog
First, users need to understand the system's audio layout. This is accomplished using aplay which is part of the alsa-utils package.
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
The key to a configuration like this is to understand that whatever is selected in pavucontrol under Configuration>Internal AUdio is the default device. Load pavucontrol>Configuration and select Digital Stereo (HDMI 2) + Analog stereo input.
Add the following to /etc/pulse/default.pa to setup the analog as a secondary source:
### Load analog device
load-module module-alsa-sink device=hw:0,0
load-module module-combine-sink sink_name=combined
set-default-sink combined
Restart PulseAudio, run pavucontrol and select the "Output Devices" tab. You can now show the virtual Output devices.
Now start a program that will use pulseaudio such as mplayer, vlc, mpd, etc. and switch to the "Playback" tab. A pulldown should be available for the running program to select one of the three sources.
Make sure to set Alsa:pulse in the mythtv setup (setup->audio: "Audio output device"=ALSA:pulse)
Until this point this used to be enough, but now this didn't work so I had to pass an extra option to the kernel:
Edit /etc/default/grub and add the i915.disable_power_well=0 option.
GRUB_CMDLINE_LINUX_DEFAULT="i915.disable_power_well=0 root=LABEL=MythTVBoot"
recreate grub.conf by update-grub and restart your system.
somethings audio stops working and Pavucontrol switches back to default on the Configuration page.
Not loading the module-suspend-on-idle seems to fix this:
edit /etc/pulse/default.pa
comment the line:
#load-module module-suspend-on-idle
Installing Philips OVU412000 USB IR receiver
No special tweaks neede. Just plug it in, reboot and you're done.
Frontend settings
In the MythtvFrontend:
setup->video>playback->next:
on playback exit: save position and exit
setup->video->Program Guide
1/1 Guide starts at channel: 6
disable jobs
setup->video->general->next->next
disable commercial detection
disable metadata lookup
Default always record some extra time
s etup->video->general
start recording -120sec
end recording +600secd
MythWeb
After the default installation MythWeb had some errors. For example hen I selected the program list it gave a fatal error. The solution was found
here.
A solution to the SQL Fatal Error mentioned above is a tweak to the
/etc/mysql/conf.d/mythtv.cnf file. Add
"sql_mode=NO_ENGINE_SUBSTITUTION" (without the quotation marks) to the
end of the /etc/mysql/conf.d/mythtv.cnf file. I believe the error was
caused by an incompatibility between mysql 5.7 and databases from older
versions of mysql.
There may be other and better solutions (I imagine the problem will be fixed by the devs), but this one works for now.
Backup mysql database
/etc/cron.d/mysqlbackup
#
# backup mysql database
#
# m = minute (0-59)
# h = hour (0-23)
# dom = day of the month (1-31)
# mon = month (1-12)
# dow = day of the week (0-7)
#
# m h dom mon dow user command
15 3 * * * root /usr/local/bin/mysqlbackup
create directory to hold backups
#mkdir /data/mysqlbackup
/usr/local/bin/mysqlbackup
#!/bin/sh
mysqldump -u root -pmythtv --databases mysql mythconverg > /data/mysqlbackup/mythtv`date +%u`.sql
(this will create 7 backup files 1=Monday, 2=Tuesday.... and overwrite the files every week to save space)
#chmod 755 /usr/local/bin/mysqlbackup
Optimize database
To regularly optimize the database create a scipt /usr/local/bin/optimize_mythdb.sh
#!/bin/sh
OPT_MYTHDB='/usr/share/doc/mythtv-backend/contrib/maintenance/optimize_mythdb.pl'
LOG='/var/log/mythtv/optimize_mythdb.log'
echo "Started ${OPT_MYTHDB} on `date`" >> ${LOG}
${OPT_MYTHDB} >> ${LOG}
echo "Finished ${OPT_MYTHDB} on `date`" >> ${LOG}
and a cron job: etc/cron.d/optimize_mythdb
#
# m = minute (0-59)
# h = hour (0-23)
# dom = day of the month (1-31)
# mon = month (1-12)
# dow = day of the week (0-7)
#
# m h dom mon dow user command
0 3 * * 1 root /usr/local/bin/optimize_mythdb.sh > /dev/null 2>&1
Full backup
Boot from USB rescue disk (e.g. Ubuntu live)
# sudo su - (become root)
# mkdir /data (create mount point)
# mount /dev/sda1 /data (mount MythTV data disk on /data, this is where we will store the backup of the boot disk sdb1)
# mkdir /data/mythtvbackup
# dd if=/dev/sdb of=/data/mythtvbackup/yyyymmddMythtv16_04MBR.dd bs=512 count=1 (backup master boot record of mythtv disk)
# dd if=/dev/sdb1 of=/data/mythtvbackup/yyyymmddMythtv16_04Root.dd status=progress (backup root file system of mythtv disk)
The dd backups can be a good backup if your disk crashes. If you just need one file, you can also make a file backup
# mkdir /mythtvroot (create mount point)
# mount /dev/sdb1 /mythtvroot
# mkdir /mythtvroot/FilesAndFolders
# tar cf - . | (cd /data/mythtvbackup/FilesAndFolders && tar xBf -)
HDMI CEC Pulse Eight
TODO
Open Problems
I'm very happy with my current setup, although I have one problem to fix:
On one if the 3 tuners cards I have enabled the "Use DVB card for active EIT scan.
This will every so often lock
the card out from recording, so I can only record from 4 channels. Reboot seems to solve the issue temporary.