Archiv der Kategorie: Computer

MythTV on Ubuntu 16.04 with Digital Devices CineCT V6

I was looking forward to the next LTS release of Ubuntu to upgrade my machine. I was forced to run 15.04 because the last LTS did not support my new Haswell based hardware. In the meantime MythTV was upgrade to version 0.28 offering a few new neat features.

Two issues kept me from upgrading my aging installation: It had a few broken parts here and there and I had a new 256GB SSD waiting to be used. The former issues were such that I figured it would be harder and more time consuming trying to fix everything after the upgrade instead of just going with clean install.

Download the Ubuntu ISO from a mirror near you and put it on a USB drive or a DVD. Boot from the thumb drive and kick off the installation. I opted to format my SSD with btrfs. The possibilities to create snapshots seemed interesting, especially for future tinkering and upgrades. So far I have no experience whatsoever with btrfs.

After the finished clean install there’s the first few packages that need to be installed:

sudo apt-get install aptitude
sudo aptitude install mercurial git libproc-processtable-perl ncurses-dev linux-source libcupsimage2-dev

Digital Devices Cine CT V6 DVB-C Tuner Card

The 15.04 approach using media_build_experimental caused a few issues. I found this excellent write-up by Daniel Scheller on github explaining how to compile the required ddbridge module without directly touching the Ubuntu kernel.

# mkdir -p /usr/src/dvbdev && cd /usr/src/dvbdev
# git clone git://linuxtv.org/media_build.git
# git clone https://github.com/herrnst/dddvb-linux-kernel.git

# cd dddvb-linux-kernel # git checkout mediatree/master-ddbridge

Move to the media_build directory and prepare the linux-media tarball:

 # cd ../media_build/linux/
 # make tar DIR=../../dddvb-linux-kernel
   <long list of files scrolls through>
 # make untar
 # cd ..

# make stagingconfig

# make -j9

# make install

 

after installation you can load the ddbridge module with

modprobe ddbridge

 

Setting up EPG

aptitude install xmltv

MythTV installation

sudo add-apt-repository ppa:mythbuntu/0.28
sudo apt-get update
sudo aptitude install mythtv

The UPC Cablecom channels that are freely available in my region can be found here.

Cleanup

With everything else working it’s time for some cleanup:

aptitude purge yelp eog rhythmbox empathy-common evolution-data-server-common evolution thunderbird unity-webapps-common libreoffice* unity-lens-video unity-lens-photos unity-lens-music 
apt-get autoclean
apt-get autoremove

Mythbuntu 14.04.1 on Haswell Machine

Installing Mythbuntu 14.04.1 on my new Haswell i7 / Intel DH87RL box proved impossible due to an annoying audio bug that prevented audio out over HDMI. For this reason I eventually opted to use Ubuntu 14.10 instead of Mythbuntu. Read the installation notes here.

This guide is by no means complete!

For the sake of completness here are my notes for Mythbuntu 14.04.1 with the things that worked.

Individual Installation Steps:

Digital Devices Cine CT V6 DVB-C Card

sudo add-apt-repository ppa:yavdr/main
sudo aptitude install dddvb-dkms

Running MythTV dual headed

As before I run MythTV on my TV set in the living room and have a monitor connected in the Office. Mythfrontend should automatically launch on the TV screen. The monitor is used to display the Linux Desktop.

The Nvidia control panel of the proprietary driver made this very easy. I was in for some fiddling with the Intel graphics. It turns out that this was much easier than I thought. On a

sudo xrandr --output HDMI1 --auto --output HDMI3 --auto --right-of HDMI1

Where HDMI1 is the DVI connector on the DH87RL board and HDMI3 is the HDMI port. HDMI2 would be the display port connector.
This solution is only temporary and lost on relaunch of X. To make it permanent the configuration needs to be written to Xorg.conf. I did not complete the installation to this point as an audio bug prevented me from using Mythbuntu.

Video acceleration VAAPI

Either go the route of installing the standard drivers:

sudo aptitude install libva1 i965-va-driver libva-intel-vaapi-driver vainfo

See here for more info: http://www.mythtv.org/wiki/VAAPI#Configure_MythTV_for_VAAPI

Or Use the

Intel Graphics Installer

The Intel Graphics Installer will keep your system up to date with the latest drivers.

https://01.org/linuxgraphics/downloads

Run the following to install:

sudo aptitude install libc6 libglib2.0-0 libgtk-3-0 libpackagekit-glib2-16 libpolkit-gobject-1-0 libsoup-gnome2.4-1 libsoup2.4-1 ttf-ancient-fonts aptdaemon libproxy1-plugin-webkit

wget --no-check-certificate https://download.01.org/gfx/RPM-GPG-KEY-ilg -O - |  sudo apt-key add -
wget --no-check-certificate https://download.01.org/gfx/RPM-GPG-KEY-ilg-2 -O - | sudo apt-key add -

sudo dpkg -I /home/tv/Downloads/intel-linux-graphics-installer_1.0.7-0intel1_amd64.deb
 The following NEW packages will be installed:
 gir1.2-packagekitglib-1.0{a} libpackagekit-glib2-16 libproxy1-plugin-webkit python3-aptdaemon.pkcompat{a} 
 ttf-ancient-fonts

Running the installer installed the following:

Added:
build-essential:amd64 (11.6ubuntu6)
debhelper:all (9.20131227ubuntu1)
dh-apparmor:all (2.8.95~2430-0ubuntu5.1)
dpkg-dev:all (1.17.5ubuntu5.3)
g++-4.8:amd64 (4.8.2-19ubuntu1)
g++:amd64 (4:4.8.2-1ubuntu6)
i915-3.16-3.13-dkms:all (1)
intel-gpu-tools:amd64 (1.8-1)
libalgorithm-diff-perl:all (1.19.02-3)
libalgorithm-diff-xs-perl:amd64 (0.04-2build4)
libalgorithm-merge-perl:all (0.08-2)
libgles1-mesa:amd64 (10.3.0-0ubuntu2intel1)
libgles2-mesa:amd64 (10.3.0-0ubuntu2intel1)
libllvm3.5:amd64 (1:3.5~svn201651-1ubuntu1)
libmail-sendmail-perl:all (0.79.16-1)
libosmesa6:amd64 (10.3.0-0ubuntu2intel1)
libstdc++-4.8-dev:amd64 (4.8.2-19ubuntu1)
libsys-hostname-long-perl:all (1.4-3)
libva-egl1:amd64 (1.4.0-0intel1)
libva-tpi1:amd64 (1.4.0-0intel1)
po-debconf:all (1.0.16+nmu2ubuntu1)
va-driver-all:amd64 (1.4.0-0intel1)
vdpau-va-driver:amd64 (0.7.3-2ubuntu1.2)

Upgraded:
i965-va-driver:amd64 (from 1.3.0-1ubuntu1 to 1.4.0-0intel1)
libegl1-mesa-drivers:amd64 (from 10.1.3-0ubuntu0.2 to 10.3.0-0ubuntu2intel1)
libegl1-mesa:amd64 (from 10.1.3-0ubuntu0.2 to 10.3.0-0ubuntu2intel1)
libgbm1:amd64 (from 10.1.3-0ubuntu0.2 to 10.3.0-0ubuntu2intel1)
libgl1-mesa-dri:amd64 (from 10.1.3-0ubuntu0.2 to 10.3.0-0ubuntu2intel1)
libgl1-mesa-glx:amd64 (from 10.1.3-0ubuntu0.2 to 10.3.0-0ubuntu2intel1)
libglapi-mesa:amd64 (from 10.1.3-0ubuntu0.2 to 10.3.0-0ubuntu2intel1)
libopenvg1-mesa:amd64 (from 10.1.3-0ubuntu0.2 to 10.3.0-0ubuntu2intel1)
libva-drm1:amd64 (from 1.3.0-2 to 1.4.0-0intel1)
libva-glx1:amd64 (from 1.3.0-2 to 1.4.0-0intel1)
libva-wayland1:amd64 (from 1.3.0-2 to 1.4.0-0intel1)
libva-x11-1:amd64 (from 1.3.0-2 to 1.4.0-0intel1)
libva1:amd64 (from 1.3.0-2 to 1.4.0-0intel1)
libwayland-egl1-mesa:amd64 (from 10.1.3-0ubuntu0.2 to 10.3.0-0ubuntu2intel1)
libxatracker2:amd64 (from 10.1.3-0ubuntu0.2 to 10.3.0-0ubuntu2intel1)
vainfo:amd64 (from 1.3.0-2 to 1.4.0-0intel1)
xserver-xorg-video-intel:amd64 (from 2:2.99.910-0ubuntu1.3 to 2:2.99.911-0intel1)

Downgraded:
libdrm-intel1:amd64 (from 2.4.56-1~ubuntu1 to 2.4.56-1)
libdrm-nouveau2:amd64 (from 2.4.56-1~ubuntu1 to 2.4.56-1)
libdrm-radeon1:amd64 (from 2.4.56-1~ubuntu1 to 2.4.56-1)
libdrm2:amd64 (from 2.4.56-1~ubuntu1 to 2.4.56-1)

Audio

I only get very jaggy audio out over the hdmi connection to my TV. I’ll have to check whether this is due to the cable, TV or the output itself. Interestingly the audio works fine on the displayport out connected to the monitor.

To easily select audio devices and output formats use the pulse audio volume control.

sudo aptitude install pavucontrol

List all audio devices with

aplay -L

Test audio with the following

cat /dev/urandom | aplay

cat /dev/urandom | aplay -D hw:0,3 ## Where 0,3 is your hardware's coordinates

There may be a possibility to upgrade the sound stack:

https://help.ubuntu.com/community/SoundTroubleshootingProcedure

https://wiki.ubuntu.com/Audio/UpgradingAlsa/DKMS

Unfortunately I found out that Mythbuntu 14.04.1 is plagued by an annoying bug that prevents audio over HDMI. The are reports that upgrading the sound subsystem solves this issue but I decided not doing this and using Ubuntu 14.10 instead.

Installation Notes for MythTV on Ubuntu 14.10

Mythbuntu on Ubuntu 14.10

Audio out over HDMI is broken with the Intel DH87RL mainboard and Ubuntu Linux 14.04.1. While it all looked all right the speakers gave a mere tenth of a second sound with a several second pause in between. It all seemed to be a driver issue related to the Intel hardware as several posts on the Intel forums suggested.

So I finally opted to give the newer regular Ubuntu 14.10 a shot and audio was working right away. But the vanilla Ubuntu was missing a key component: MythTV and all that makes Mythbuntu great in my eyes.

Installation

UEFI vs. BIOS

The new system is a modern UEFI based board. These boards also support legacy BIOS style bootup process.

The trouble comes when the CD boots in UEFI mode and installs a BIOS version of the OS. The system may fail to boot in that case.

I am currently still trying to figure out what works reliably. Read the UEFI article here.

In my case I ended up turning of UEFI support in the BIOS an installing in legacy mode. This was the only way that worked reliably.

Install Ubuntu

Do a base install of Ubuntu 14.10 Desktop 64bit.

Removing Ubuntu Desktop Crap

There are quite a few things that are completely useless on the new machine that can be removed. In my case that was the following.

sudo aptitude remove unity-lens-video unity-lens-photos unity-lens-music

If you don’t see any sideeffects you can always also run the purge option to remove all files related.

Remove LibreOffice

sudo apt-get remove --purge libreoffice*
sudo apt-get clean
sudo apt-get autoremove

Network setup

To get a static IP address run the network manager and create a new connection instead of simply adapting the existing DHCP. It seems that changing the existing connection to static does not work.

Neither does editing the usual files in /etc/network/interfaces and /etc/resolv.conf by hand as these are ignored by the network manager. Using these files would require the removal of the network manager. I decided against removing it as this has been reported to cause more issues.

Some routers allow to have DHCP provide a specific address to a give MAC. Mine does not, otherwise this would have been a nice option.

Install mythbuntu

aptitude install mythbuntu-control-centre xmltv

This will setup the control center and all related software, i.e. MythTV, XMLTV etc. Basically turning your Ubuntu into what I liked so much about Mythbuntu.

Install drivers for Digital Devices Cine CT V6 DVB-C Card

Migrating MythTV to a new host

If you set up a new machine and would like to move your mythtv installation to the new host these are the steps required:

Make sure the old host is at the most current version of mythtv. ideally the same as the new host.

Shutdown mythbackend on all machines.

Backup mythconverg MySQL db on both machines just to be on the safe side. If everything goes smooth you’ll only need the dump of the old machine.

/usr/share/mythtv/mythconverg_backup.pl

Copy the backup to the new host and restore the dump

/usr/share/mythtv/mythconverg_restore.pl --drop_database --create_database --directory /home/tv/Desktop --filename Desktop/mythconverg-1317-20150111134903.sql.gz

If the new machine has a different hostname change that

/usr/share/mythtv/mythconverg_restore.pl --change_hostname --old_hostname="oldhostname" --new_hostname="newhostname"

Now is the time to run mythtv-setup and change the IP to the IP of the new host. Also run mythbuntu-control-centre to customize your MythTV installation and add lirc support and required plugins.

Check these two posts outlining in more detail how to migrate all:

http://www.mythtv.org/wiki/Backend_migration#Building_a_new_backend_to_replace_an_existing_machine

http://www.mythtv.org/wiki/Database_Backup_and_Restore#Change_the_hostname_of_a_MythTV_frontend_or_backend

Running MythTV dual headed

As before I run MythTV on my TV set in the living room and have a monitor connected in the Office. Mythfrontend should automatically launch on the TV screen. The monitor is used to display the Linux Desktop.

The Nvidia control panel of the proprietary driver made this very easy. Luckily on Ubuntu 14.10 it is a simple click in the display settings panel.

  • Turn on both monitors
  • Do not mirror
  • Launcher only on primary monitor
  • mythfrontend -> /setup/appearance/ display on display 1

So the graphics stack is all good out of the box.

Video acceleration VAAPI

Works out of the box. You only need to set this in the mythtv frontend.

See here for more info: http://www.mythtv.org/wiki/VAAPI#Configure_MythTV_for_VAAPI

Audio

The reason to use Ubuntu 14.10 was out of the box HDMI audio. Nothing required here besides hooking up the TV and setting sound in the sound settings panel.

Adjust sound in the frontend to use software so the sound volume control works in myth.

Power Management

After all parts and devices work as intended use the powertop utility to check possible power management optimizations. See here.

sudo aptitude install powertop

Use the tab key to navigate.

power mgmt on sata

Postfix

Install Postfix MTA as described.

LM-sensors

Install lm-sensors. You can answer all questions with default. At the end have the necessary modules added automatically to /etc/modules

sudo aptitude install lm-sensors
sensors-detect
sudo service module-init-tools restart

Currently sensors-detect will only find the thermal sensors of the CPU. An update to the sensors-detect script has already been written but also needs a new driver to access the respective chip. So for the time being, lm-sensors offers only limited information.

webmin

sudo add-apt-repository "deb http://download.webmin.com/download/repository sarge contrib"
wget -q http://www.webmin.com/jcameron-key.asc -O- | sudo apt-key add -
sudo aptitude update && sudo aptitude install webmin

VNC

To run the VNC server issue

x11vnc -rfbauth /home/tv/.vnc/passwd -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg -x

I’ll have to check why it is not started at bootup.

http://ubuntuforums.org/showthread.php?t=2090922&highlight=session.sh

What to do.

https://debianhelp.wordpress.com/2013/11/27/to-do-list-after-installing-ubuntu-14-04-trusty-tahr-os/

Settings on the Desktop

sudo aptitude install compizconfig-settings-manager unity-tweak-tool

Add a nice system load indicator

sudo aptitude install indicator-multiload
sudo aptitude install grsync

Set MySQL root password

Optical Drive

I had /dev/dvd missing so had to change a frontend setting.

Frontend > setup > Media settings > Videos settings > Player settings > DVD Drive
Had to change it from /dev/dvd to /dev/sr0.

Haswell MythTV Server for 2015

After several years of running my MSI Speedster based MythTV box I decided it was time for an upgrade. Not because the machine failed to handle its duties but because I was simply in the mood of building something new. I have to be clear that from a performance perspective, the Core2Duo Merom chip in the old machine was still fast enough for running MythTV. With the addition of VDPAU video decoding on a dedicated Nvidia card processor usage stayed low even during HD playback.

What has changed in the meantime

Intel’s integrated graphics solution (in my case the HD4600) has greatly improved since the days of the i945 chipset present on the old board. The latter was basically unusable for anything but the most basic of tasks. No dual head, no HDMI sound, no video acceleration. All of the above have been addressed making a dedicated card unnecessary. Not only will this save power but also lower cooling requirements.

Thanks to VAAPI Intel chips can now also do video decoding of the most popular formats in hardware. Haswell can currently do the following:

  • MPEG2 decode
  • MPEG2 encode
  • H.264/AVC decode
  • VC-1 decode
  • H.264/AVC encode
  • JPEG/MJPEG
  • Video Post Processing

Power usage is now down from 78 watts at idle to a mere 25 watts. This should save me about 60 bucks in power bills a year. Not exactly enough to justify the investment but a nice side effect.

Hardware Changes

Processor

From a sheer power perspective a cheapish i3 would certainly be sufficient. But I wanted to have extra horsepower for the future, possibly also running VMware ESXi and so I went with a Haswell 4770S. 4 Cores, Hyperthreading, a low TDP of 65W and a full feature set for virtualization to IGP. When idling the modern processors use no more power than their lower spec cousins.

Mainboard

C’t magazine published an article about a low power (10W) Haswell build. This was inspiration for me and so I also chose to use the Intel DG87RL board even though intel decided to move out of the mainboard business. Aside from using little power, the mainboard also offers all the features I was hoping for:

DVI, Displayport and HDMI outputs, USB3 and a mSata slot and no legacy interfaces.

Intel DH87RL Motherboard

RAM

I chose a single 8GB Kingston Value DDR3 stick.

SSD

Samsung EVO 840 mSATA SSD

Samsung EVO 840 mSATA SSD

Given the Mainboard already contains a mSATA slot I bought a Samsung EVO 840 120GB disk.

Power Supply

My current Corsair PSU still works but does not run with a Haswell build for it does not support the Haswell C7 sleep states. Corsair described the problem like this:

According to Intel’s presentation at IDF, the new Haswell processors enter a sleep state called C7 that can drop processor power usage as low as 0.05A. Even if the sleeping CPU is the only load on the +12V rail, most power supplies can handle a load this low. The potential problem comes up when there is still a substantial load on the power supply’s non-primary rails (the +3.3V and +5V). If the load on these non-primary rails are above a certain threshold (which varies by PSU), the +12V can go out of spec (voltages greater than +12.6V). If the +12V is out of spec when the motherboard comes out of the sleep state, the PSU’s protection may prevent the PSU from running and will cause the power supply to „latch off“. This will require the user to cycle the power on their power supply using the power switch on the back of the unit.

This forced me to also get a new PSU. Maybe a good idea as the Corsair now has quite a few hours on its clock. I opted for a Seasonic Platinum P460. The P400 would have been the better option but was out of stock. I comes with a fully modular cable harness. The only problem I have is a clearly audible hiss from the PSU. It is a fully passive unit relying on convection and airflow within the case to stay cool. Because my Antec P180 (or the newer P183 variant) use a separate chamber for disks and PSU that is set apart from the rest of the case I need to include a fan in this chamber. in the past the PSU fan of the Corsair PSU was responsible for the airflow across the disks and PSU. With the new passively cooled Seasonic P460 I have a need for a case fan in the bottom.

Case Fans

I chose the Noctua Nf-s12a Uln, a 120mm low noise fan that comes already equipped with anti vibration pads and runs between 600 ad 800 rpm.

Software Installation Notes

Read here all my notes

Postfix Logo

Postfix with SASL Authentication

To be able to have your server send logs, notifications etc. to a real email address, chances are email will not be accepted from your local host as most DSL and cable lines have dynamic IP addresses. So you will have to relay via your ISPs mailserver, most likely using SASL authentication.

Install postfix MTA

sudo aptitude install postfix

Configure as smarthost and enter the fqd of your ISP’s SMTP server.

sudo nano /etc/postfix/sasl_passwd

This file must contain thelogin credentials for the SMTP host. Normally the email account credentials.

smtp.isp.com username:password
sudo chown root:root /etc/postfix/sasl_passwd && sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap hash:/etc/postfix/sasl_passwd

To map local users to a real email address we use a mapping table.

sudo nano /etc/postfix/sender_canonical

In this file specify all mappings in the form of

username username@my.domain.name

Create the db file by running

sudo postmap hash:/etc/postfix/sender_canonical

I also had to add the following two parameters in main.cf

inet_protocols = ipv4
append_dot_mydomain = yes

The complete postfix config file will look something like this:

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.

myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)

biff = no

# appending .domain is the MUA's job.

append_dot_mydomain = yes

# Uncomment the next line to generate "delayed mail" warnings

#delay_warning_time = 4h

readme_directory = no

# TLS parameters

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

smtpd_use_tls=yes

smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for

# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination

myhostname = my.domain.name

mydomain = domain.name

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

sender_canonical_maps = hash:/etc/postfix/sender_canonical

mydestination = my.domain.name, my, localhost.localdomain, localhost

relayhost = smtp.isp.com

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

mailbox_size_limit = 0

recipient_delimiter = +

inet_interfaces = all

#if ipv6 is not configured
inet_protocols = ipv4

# SASL SUPPORT FOR SERVERS

#

# The following options set parameters needed by Postfix to enable

# Cyrus-SASL support for authentication of mail servers.

#

smtp_sasl_auth_enable = yes

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

smtp_sasl_security_options = noanonymous

Edit /etc/aliases to map mail users to real email

sudo nano /etc/aliases

As such:

# See man 5 aliases for format
postmaster:    root
www-data: root
root: realuser@example.com

Finally run

sudo newaliases

After all changes are made to the postfix config file run

sudo postfix reload

In order to be able to send email install the mailutils package

sudo aptitude install mailutils

You should now have a running mailsystem to send email to outside addresses.

Reference