1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in

ArchVDR Main Wiki

This is only a draft structure and some initial toughs

  • Basic installation tips
    • Automount smb shares
    • Configure your remote ( half done )
  • VDR specific installation tips
    • vdr-scripts
      • Change your wlan device
  • How to contribute PKGBUILD's

Basic Setup For Archlinux

First of all you should already know how to install Linux distribution. Here we will not cover distribution installation, but few tips and trick will follow. In time of writing this Wiki page latest archlinux installation iso is: archlinux-2012.07.15-netinstall-dual.iso from Download and use Installation Guide on archlinux Wiki pake: [ https://wiki.archlinux.org/index.php/Installation_Guide Installation_Guide ]. As archlinux is rolling release updating it, will always give you latest version no need to reinstall it with new installer or something. You should select mirror near you as archlinux.org is limited in downloading speed.

It is highly recommended creating one partition for system and one for the recordings. And mount it to /var/lib/video.00.

Here is one example fstab entry :

/dev/sda3 /var/lib/video.00          ext3    defaults,user        0       2

After you installed core system and you got login prompt, its good to install ssh for remote access to vdrbox and doing everything we wrote here using ssh protocol.

pacman -Sy openssh

We should edit the configuration file, we are just going to use Protocol 2, change LoginGraceTime? 2m.

nano /etc/ssh/sshd_config

And

nano /etc/ssh/ssh_config

We need to allow local pc to be able to login to vdrbox by editing /etc/hosts.allow by adding this to that file

# let everyone connect to you
sshd: ALL

Also check if /etc/hosts.deny have this line, if not then add it.

ALL: ALL

Now we are also going to start sshd daemon, and also to add sshd to rc.conf file to start on boot.

rc.d start sshd
nano /etc/rc.conf
DAEMONS=(... ... sshd ... ...)

Check if remote connection is working by typing this on your remote pc, or your main pc:

ssh -l <username> <vdrboxip>

Its good to synchronize the local package database with the remote repositories with doing:

pacman -Sy

Its time to install base-developments tool with doing:

pacman -S base-devel

And hit enter for this question: Enter a selection (default=all): Which will download and install : m4; autoconf; automake; bison; fakeroot; flex; mpfr; libmpc; isl; cloog; ppl; gcc; libtool; make; patch; pkg-config

After we install base-devel its time to start preparing for VDR. As we here are using DVB-S2 cards which are budget cards, some extra HW is needed to get HDTV contents working as it should. Nvidia recent publish their VDPAU (Video Decode and Presentation API for Unix) more here VDPAU which make everything easier.

Kernel

We are going to use official archlinux kernel which in time of this wiki changes is 3.4.*-ARCH and most DVB and DVB-S2 cards are working out of box, if you need to compile custom kernel go to https://wiki.archlinux.org/index.php/Kernel_Compilation .

We will use a normal user for compiling stuff, to add one , in our example it will be archvdr (change that name to whatever you like):

# useradd -m -g users -G audio,lp,optical,storage,video,wheel,games,power,scanner -s /bin/bash archvdr

Which will add that user to groups appended with -G . Now we need to set a password for that user:

passwd archvdr

We need to install a sudo in order to be able to install packages as user.

pacman -S sudo

Add archvdr user to sudoer list:

EDITOR=nano visudo

And under the root line the vdr user line: # User privilege specification root ALL=(ALL) ALL This:

archvdr   ALL=(ALL) ALL

Now you should log in with that new user and we will continue with installation:

Lirc

LIRC stands for "Linux Infrared Remote Control", a program to use infrared devices (like your remote control from your TV) with linux.

Install lirc

sudo pacman -S lirc lirc-utils

The lirc packages provides kernel correct kernel module.

X10 based
For X10 based we need to use lirc_atiusb, and therefor we need to blacklist the wrong one which is used from lirc ati_remote

sudo nano /etc/modprobe.d/modprobe.conf

To blacklist:

blacklist ati_remote

Info: You need to unload the wrong kernel module manually if you attached the receiver before blacklisting the module

While still in editing /etc/rc.conf we will add the daemon to the daemons array to start it at boot:

DAEMONS="(... lircd)"

Now all we need is correct lircd.conf for our X10, as i have the same writen here USB_X10i will use his lircd.conf, simple copy the first lircd.conf source from over there, thanks to the autor of that configuration file. Then we need to create a file in /etc/conf.d/ named whatever you like, as we are going to add it to lircd configuration file.

nano /etc/conf.d/lircd_X10.conf

Paste the code from above page and save to that file. Now we need to add it to lircd configuration file:

nano /etc/conf.d/lircd.conf

It shoud be something like this:

LIRC_DEVICE="/dev/lirc0"
LIRC_DRIVER=""
LIRC_EXTRAOPTS=""
LIRC_CONFIGFILE="/etc/conf.d/lircd_X10.conf"

Start lirc with sudo rc.d start lircd and type irw at command line and pressing some button on your remote you should get this respons:

[crow@vdrbox ~]$ irw
00000014e20d0000 00 1 Medion_X10
00000014e20d0000 01 1 Medion_X10
000000140b360000 00 ren Medion_X10
000000140b360000 01 ren Medion_X10
00000014ed180000 00 snapshot Medion_X10
00000014ed180000 01 snapshot Medion_X10

Which mean its all ok and our remote is working as it should.

lirc_serial based
After we did install of lirc and lirc-utils, we need to take shure that we have serial port and to see its port, we will do it with "dmesg |grep ttyS" output should be something like:

$ dmesg |grep ttyS
[    0.850104] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    1.083927] 00:01: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

With this we see that our port is on first port ttyS0. Now we just need to load kernel driver lirc_serial, with doing "sudo modprobe lirc_serial" if you dont see any error then you are fine, but if you see somethinge like this then fix it with command belove.

sudo modprobe lirc_serial
FATAL: Error inserting lirc_serial (/lib/modules/2.6.39-ARCH/kernel/drivers/staging/lirc/lirc_serial.ko.gz): Device or resource busy

Which mean that something is already using our serial port and that we need to release it doing:

sudo pacman -S setserial
sudo setserial /dev/ttyS0 uart none
sudo modprobe lirc_serial

The output in "dmesg" should be something like this:

[ 3966.333491] lirc_serial: module is from the staging directory, the quality is unknown, you have been warned.
[ 3967.229641] lirc_serial: auto-detected active low receiver
[ 3967.229850] lirc_serial lirc_serial.0: lirc_dev: driver lirc_serial registered at minor = 0

Which mean that everything is fine and we can continue and automate the proces we did above. And doing that will be done using costum config file for lirc.

sudo nano /etc/modprobe.d/lirc_custum.conf

Put these command belove inside it:

alias char-major-61 lirc_serial
options lirc_serial irq=4 io=0x3f8
install lirc_serial /usr/bin/setserial /dev/ttyS0 uart none; /sbin/modprobe --ignore-install lirc_serial

After saving file we should check lircd.conf if it have right setup: sudo nano /etc/conf.d/lircd.conf

LIRC_DEVICE="/dev/lirc0"
LIRC_DRIVER=""
LIRC_EXTRAOPTS=""
LIRC_CONFIGFILE="/etc/conf.d/lircd_xbox360.conf"

We also need to add lirc_serial to /etc/rc.conf file so that driver get loaded on boot, in /etc/rc.conf add lirc_serial in MODULES=() :

MODULES=(lirc_serial)

Put lircd_xbox360.conf or the config file for your remote and put it in /etc/conf.d/ , just remmember to change its file name path if different in lircd.conf. After starting lircd and executing irw you should get output like:

$ sudo rc.d start lircd
$ irw
000000037ff00bfe 00 1 Harmony_XBOX_360
000000037ff00bfe 01 1 Harmony_XBOX_360
000000037ff00bfd 00 2 Harmony_XBOX_360
000000037ff00bfd 01 2 Harmony_XBOX_360
000000037ff00bfc 00 3 Harmony_XBOX_360
000000037ff00bfc 01 3 Harmony_XBOX_360

We also need to add lircd daemon to /etc/rc.conf like writen above in "X10 based" section, reboot your machine and after long just write irw if you see output it mean your lirc is configured and we are ready for next steps.

Next we start with building xorg and alsa.

Xorg ; alsa and nvidia drivers

sudo pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils
# pacman -S xorg-server xorg-xinit xorg-server-utils

Advanced Linux Sound Architecture (ALSA)

sudo pacman -S alsa-lib alsa-utils

Now our sound device should already be supported by kernel, check dmesg and look for something like this:

[    5.970059] hda_codec: ALC662 rev1: BIOS auto-probing.

As we wanna use HDMI and send all audio via HDMI out, we need to un-mute hdmi/iec958/spdif as these are disable bye default. Also we can check if our sound device is listed (hdmi/iec958/spdif) with 'aplay -l'.

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 0: ALC662 rev1 Analog [ALC662 rev1 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 1: ALC662 rev1 Digital [ALC662 rev1 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

If this is found use alsamixer to unmute SPDIF outputs

alsamixer

Using the arrow keys, move over to the 'iec958/hdmi/spdif' device and un-mute it by hitting the 'm' key. Hit "esc" to exit and save the settings.

And check if you are getting sound over HDMI with:

speaker-test -c 2 -D hw:0,1
!!! NOTE: the hw:0,1 would be optical or digital SPDIF (in my case) and hw:0,3 would be HDMI output over Nvidia codec!!!!
!!! NOTE: In oder to get audio over HDMI over Nvidia codec, you will need X running!!!!

Now store alsamixer settings

sudo alsactl -f /var/lib/alsa/asound.state store

Edit /etc/rc.conf and add alsa to the daemons array:

DAEMONS="(... alsa)"

Intel VAAPI
Info: Video_Acceleration_API Info: vaapi Archlinux wiki: Archlinux_Intel

X.org Intel i810/i830/i915/945G/G965+ video drivers

sudo pacman -S xf86-video-intel

Video Acceleration (VA) API for Linux

cd ~/archvdr/trunk/archvdr/libva-staging-git/
sudo pacman -S git
sudo pacman -S mesa
sudo makepkg --asroot -s
sudo pacman -U libva-staging-git*-*.pkg.tar.xz

VA-API implementation for Intel G45 chipsets and Intel HD Graphics for Intel Core processor family.

cd ~/archvdr/trunk/archvdr/vaapi-staging-intel-driver/
sudo makepkg --asroot -s
sudo pacman -U vaapi-staging-intel-driver*-*.pkg.tar.xz

Now that Intel stuff are installed we are ready for VDR stuff.

NVIDIA
As we use our kernel we need to compile nvidia for our kernel to.

nvidia and nvidia-utils binary blob

sudo pacman -S nvidia nvidia-utils

When asked to remove libgl do it.

We need add nvidia to modules() line in /etc/rc.conf:

sudo nano /etc/rc.conf
MODULES=(lirc_serial nvidia)

Reboot to unload/load correct modules and after that we are ready to create xorg.conf

Now we need to create xorg.conf file for our X11, and as we dont have GUI we need to disable composite which is causing problems if no GUI is installed.

sudo nvidia-xconfig --no-composite

Now when nvidia stuff is installed we are ready for VDR stuff.

Basic VDR Instructions

Its time to build some packages, and we are starting with DVB-S2 driver, ttf-symbols and the start-stop-daemon a VDR dependency's:
Keep in mind that on 32 bit machines the packages have a little bit different name s/x86_64/i686/g ;)

To get archvdr PKGBUILDs do in your home directory:

sudo pacman -S subversion
svn co https://archvdr.svn.sourceforge.net/svnroot/archvdr archvdr

s2-liplianin-hg

cd ~/archvdr/trunk/archvdr/s2-liplianin-hg
sudo pacman -S mercurial
sudo makepkg --asroot -s
sudo pacman -f -U s2-liplianin-hg-*-*.pkg.tar.xz
!!! After every Archlinux kernel update you must reinstall s2-liplianin-hg!!!!

ttf-vdrsymbols

cd ~/archvdr/trunk/archvdr/ttf-vdrsymbols/
sudo makepkg --asroot -s
sudo pacman -U ttf-vdrsymbols-*-*.pkg.tar.xz

start-stop-daemon

sudo pacman -S start-stop-daemon

VDR

cd ~/archvdr/trunk/archvdr/vdr-1.7.29/
sudo makepkg --asroot -s
sudo pacman -U vdr-1.7.*-*.pkg.tar.xz

VDR installation is also adding user and grup vdr, but we need to add it manual to sudors list:

sudo EDITOR=nano visudo

And under the root line the vdr user line: # User privilege specification root ALL=(ALL) ALL This:

vdr    ALL=(root) NOPASSWD: ALL

This should be enough for VDR. Lets do some vdr-plugins and system packages needed for VDR. I think the packages name are self explaining and it isn't need to explain more. vdr-acpiwakeup

cd ~/archvdr/trunk/archvdr/vdr-addon-acpiwakeup/
sudo makepkg --asroot -s
sudo pacman -U vdr-addon-acpiwakeup-*-*.pkg.tar.xz

xine-lib

cd ~/archvdr/trunk/archvdr/xine-lib-1.2/
sudo makepkg --asroot -s
sudo pacman -U xine-lib-1.2-*-*.pkg.tar.xz

xine config using Nvidia vdpau
Edit the config with 'sudo /var/lib/vdr/.xine/config' (if file dont exist, it would be created), and edit (or copy/paste) the file to match these settings. Sound would be outputed using HDMI, in all other case change to own value, to get list of alias use 'aplay -L'.

!!!NOTE: On xine-lib-1.2 installation sometimes will this config file be overwrite, so make sure you have back and if you get any audio/video problem, first check if everthing is ok with xine config file.!!!
$ grep "^[^#]" /var/lib/vdr/.xine/config
.version:2
gui.deinterlace_by_default:1
gui.osd_enabled:0
gui.dropped_frames_warning:0
audio.driver:alsa
audio.device.alsa_default_device:plug:hdmi
audio.device.alsa_front_device:plug:hdmi
audio.device.alsa_mixer_name:Master
audio.device.alsa_mmap_enable:1
audio.device.alsa_passthrough_device:plug:hdmi
audio.device.alsa_surround40_device:plug:hdmi
audio.device.alsa_surround51_device:plug:hdmi
audio.device.alsa_surround41_device:plug:hdmi
audio.output.speaker_arrangement:Pass Through
video.driver:vdpau
video.output.vdpau_enable_inverse_telecine:0
video.output.vdpau_hd_deinterlace_method:bob
video.output.vdpau_sd_deinterlace_method:bob
video.output.vdpau_deinterlace_method:bob
video.output.vdpau_display_queue_length:4
video.output.vdpau_sd_only_properties:noise+sharpness
video.processing.ffmpeg_choose_speed_over_accuracy:1
video.processing.ffmpeg_pp_quality:0
video.processing.ffmpeg_thread_count:2
engine.buffers.audio_num_buffers:275
engine.buffers.video_num_buffers:1800
engine.buffers.video_num_frames:22
engine.performance.memcpy_method:sse

xine-ui

cd ~/archvdr/trunk/archvdr/xine-ui-hg/
sudo makepkg --asroot -s
sudo pacman -U xine-ui-hg-*-*.pkg.tar.xz

vdr-xineliboutput
Edit /etc/fstab and add this entry for xineliboutput:

tmpfs /var/lib/vdr/plugins/xineliboutput/fifo tmpfs defaults,uid=vdr,size=4M 0 0
cd ~/archvdr/trunk/archvdr/libbluray/
sudo makepkg --asroot -s
sudo pacman -U libbluray-*-*.pkg.tar.xz
cd ~/archvdr/trunk/archvdr/vdr-plugin-xineliboutput-git/
sudo makepkg --asroot -s
sudo pacman -U vdr-plugin-xineliboutput-*-*.pkg.tar.xz

xine-vdr
Edit /etc/fstab and add this entry for xineliboutput:

sudo nano /etc/fstab
tmpfs /var/lib/vdr/plugins/xine-fifo tmpfs size=4M 0 0
cd ~/archvdr/trunk/archvdr/vdr-plugin-xine/
sudo makepkg --asroot -s
sudo pacman -U vdr-plugin-xine-*-*.pkg.tar.xz

NOTE: Xine config file is located and named as: /var/lib/vdr/.xine/config

start vdr

sudo rc.d start vdr

Prepare the graphical VDR client

We assume that you have a working xorg.conf and your X Server starts up.

Install vdr-scripts

We need vdr-plugin-signal as vdr-scripts depends on it

cd ~/archvdr/trunk/archvdr/vdr-plugin-signal/
sudo makepkg --asroot -s
sudo pacman -U vdr-plugin-signal-*-*.pkg.tar.xz

vdr-scripts

cd ~/archvdr/trunk/archvdr/vdr-scripts/
sudo makepkg --asroot -s
sudo pacman -U vdr-scripts-*-*.pkg.tar.xz

The Package vdr-scripts contains scripts for maintaining your VDR. It also includes some scipts to start and stop the graphical VDR client.

In /etc/default/vdrfrontend you can choose which client is used.

  • FRONTEND=xinexv : xine plugin is used with video driver xv
  • FRONTEND=xinevdpau : xine plugin is used with video driver vdpau
  • FRONTEND=sxfexv: xineliboutput plugin is used with video driver xv
  • FRONTEND=sxfevdpau : xineliboutput plugin is used with video driver vdpau

If you wish to start another client or enhance the commandline with your parameters take a look in /var/lib/vdr/vdr-client.

For nvidia vdpau with vdr-plugin-xine use:

sudo nano /etc/default/vdrfrontend
#And edit the line to match:
FRONTEND=xinevdpau

When you are done with configuration you can fire up the client sudo rc.d start vdrclient

In combination with the plugin vdr-plugin-menuorg you can use vdr-scipts to restart the wlan or make a backup of your VDR installation.

Tip : Double your main boot entry in grub .conf and add nox to the kernel parameters. This let you boot without the vdr client. This is helpfull if you need a shell.

skins

cd ~/archvdr/trunk/archvdr/vdr-plugin-text2skin-git
sudo makepkg --asroot -s
sudo pacman -U vdr-plugin-text2skin-git-*-*.pkg.tar.xz
cd ~/archvdr/trunk/archvdr/vdr-text2skin-skins/
sudo makepkg --asroot -s
sudo pacman -Ufd vdr-text2skin-skins-*-*.pkg.tar.xz

Then edit /var/lib/vdr/setup.conf and add to OSDSkin one of the skins name, for example:

OSDSkin = PearlHD
OSDTheme = Blue

Finish

If evrything works as expected you can automaticaly start vdr und the graphical client.
Edit /etc/rc.conf and add the add the daemons to the daemons array to start it at boot :

DAEMONS="(... @dbus lircd @sshd @alsa @at vdr-addon-acpiwakeup vdr-pre @vdr @vdrclient ...)"

Backup

When you are done with this basic steps you should make a backup of your VDR ;).
The easy way is to use vdr-scripts and vdr-plugin-menuorg.
You should see ED's Commands on the main menu. Navigate to it and choose Backup in the next menu.
You see an OSD message that backup ist starting or done. ( Tip use vdr-plugin-mlist to read missed messages. )
When the backup is finished you find the backup in /backup/.
Warning: The backup script will clear your system logs in /var/log/. If you need informations from the logs copy them away.

VDPAU Tips

On AMD machines it is important that you set the minimum CPU frequency to 1.8GHz the get a good VDPAU experience.
This limitation comes from the included memory controller in the CPU.

Install cpufrequtils :

sudo pacman -S cpufrequtils

add it to the daemons array in /etc/rc.conf :

DAEMONS="(... cpufrequtils)"

Edit /etc/conf.d/cpufreq and make sure you set min_freq="1.8GHz" like in the example :

#configuration for cpufreq control

# valid governors:
#  ondemand, performance, powersave,
#  conservative, userspace
governor="ondemand"

# valid suffixes: Hz, kHz (default), MHz, GHz, THz
min_freq="1.8GHz"
max_freq="2.5GHz"

XBMC-PVR

First we need a VDR plugin to be able to serv to XBMC.

cd ~/archvdr/trunk/archvdr/vdr-plugin-xvdr/
sudo makepkg --asroot -s
sudo pacman -U vdr-plugin-xvdr-*-*.pkg.tar.xz
cd ~/archvdr/trunk/archvdr/libbluray/
sudo makepkg --asroot -s
sudo pacman -U libbluray-*-*.pkg.tar.xz
cd ~/archvdr/trunk/archvdr/libnfs/
sudo makepkg --asroot -s
sudo pacman -U libnfs-*-*.pkg.tar.xz
cd ~/archvdr/trunk/archvdr/xbmc-pvr-git/
sudo makepkg --asroot -s
sudo pacman -U xbmc-pvr-git-*-*.pkg.tar.xz

Then we need to enable TV inside System> TV> Enable checkbox, then in System> Add-ons> Installed Add-ons> PVR clients select and VDR VNSI Client Enable. When we enable it it will start to load Channel list. Go back to main screen and select Live TV to enjoy in LIVE TV on XBMC-PVR-testing branch.

How to be the perfect couch potato

This point is verry individual.

  • You need chips, poppcorn, beer, coke or whatelse you like.
  • Keep in mind to much drinks takes you too often to the toilet.
  • Keep your remotes where you can reach them without moving.
  • Take a comfortable position which you can hold for hours.

Happy Couch Penguin