====== Ansible Installation ======
Quelle: {{https://www.yavdr.org/documentation/0.7/yaVDR07_documentation.html}}
Ab YaVDR Version 0.7 wird Ansible als Installationsplattform verwendet.
Man benötigt einfach ein aktuelle Ubuntu Server (Mai 2022 Ubuntu Server 20.04 LTS) Installation und die Ansible-Scripte erledigen den Rest.
===== Betriebssystem =====
Eine Ubuntu Server Installation installieren und aktualisieren.
**Partitionen**
* Root: ''/'' mind. 8GB -> besser 30-50GB
* Swap: wird nicht zwingend benötigt, wenn der Suspend-Mode zum Ausschalten verwendet wird, dann mind. so groß wählen wie der Arbeitsspeicher ist
* Aufnahmen: ''/srv'' der Rest der Festplatte oder eine eigene dafür verwenden
**Betriebssystem aktualisieren**
sudo apt update
sudo apt full-upgrade
sudo apt autoremove --purge
**Grafikkartentreiber installieren**
Bei NVIDIA schauen welcher Treiber aktuell ist [[https://www.nvidia.com/Download/Find.aspx]]
sudo apt-get --no-install-recommends install nvidia-headless- nvidia-settings
sudo reboot
===== Ansible =====
Die Ansible Scripte installiert man mit u. a. Befehlen.
Einfach per SSH als Benutzer (welcher bei der Installation gewählt wurde) anmelden und folgendes ausführen:
sudo apt install git
git clone https://github.com/yavdr/yavdr-ansible
cd yavdr-ansible
Dateien anpassen ''yavdr07.yml'' und ''yavdr07-headless.yml'' (Fernbedienung, epgd,...), ''group_vars/all'' (default Variablen: ppa, Sprache/Zeitzone), ''host_vars/localhost'' (übersteuert group_vars/all).
* ''yavdr07.yml'' # - autoinstall-atric-usb
- serial-ir
- epgd
* ''yavdr07-headless.yml'' nichts zum Ändern, außer wenn es ein Headless VDR sein soll
* ''host_vars/localhost'' mkdir host_vars
cp group_vars/all host_vars/localhost
mount /dev/ /mnt
vi host_vars/localhost
# eigene channels.conf nach /var/lib/vdr/channels.conf kopieren
vdr_channels_conf: /mnt/backup/varlibvdr/channels.conf
vdr_plugins:
- vdr-plugin-devstatus
- vdr-plugin-markad-ng
- vdr-plugin-graphlcd
- vdr-plugin-epgsearch
- vdr-plugin-filebrowser
- vdr-plugin-lcdproc
- vdr-plugin-osdteletext
- vdr-plugin-skindesigner
- vdr-plugin-tvguideng
- vdr-plugin-vdrmanager
- vdr-plugin-burn
vdr_output_plugin: vdr-plugin-softhddevice
ODER MIT CUVID UNTERSTÜTZUNG FÜR HARDWARE-DECODING -> 4K UHD
vdr_output_plugin: vdr-plugin-softhddevice-cuvid
vdr_allowed_hosts:
-
vdr_svdrphosts:
-
vnsiserver_allowed_hosts:
-
streamdev_server_allowed_hosts:
-
extra_packages:
- htop
- lnav
channellogo_languages:
- de
serial_ir_device: ttyS0
Nun den yaVDR installieren sudo -H ./install-yavdr.sh
Nach einem Neustart des VDRs sollte der VDR installiert sein.
Wenn sich eine gültige ''channels.conf'' in ''/var/lib/vdr'' befindet funktioniert auch der VDR und das OSD.
===== Fernbedienung =====
==== rc-core Empfänger (serial_ir) ====
Das Lernern der Keycodes einer Fernbedienung geht wie folgt.
Um zu prüfen ob eine Fernbedienung läuft, stopt man ''eventlirc'' und testet mit ''ir-keytable''.
sudo systemctl stop eventlircd.socket eventlircd.service
sudo ir-keytable -p all -t
Unter Umständen kann man ''eventlirc'' auch temporär abschalten, so dass es auch nach einem Reboot nicht automatisch gestartet wird.
sudo systemctl mask|unmask eventlircd.service eventlircd.socket
=== Migration einer lircd.conf ===
Hat man eine alte ''lircd.conf'', kann diese mit dem Script [[https://wiki.stizi.de/vdr:system:yavdr:lircd2toml.py|lircd2toml.py]] in eine TOML Datei gewandelt werden.
./lircd2toml.py lircd.conf
Die Ausgabe fügt man in seine eigene Keymap-Datei (z.B. ''/etc/rc_keymaps/myremote.toml'') ein.
**ACHTUNG**: Es kann hierbei sein, dass das [[https://www.yavdr.org/documentation/0.7/yaVDR07_documentation.html#yavdr-namespace|Schema]] für Tastencodes nicht passt. Dann funktionieren u. U. einige Tasten nicht in Verbindung mit dem VDR oder Kodi.
Diese neue Keymap fügt man noch in die Konfiguraton von eventlirc ein.
vi /etc/rc_maps.cfg
Hier sucht man nach der Zeile mit seinem Device (z.B. ''serial_ir'') und passt diese wie folgt an.
serial_ir rc-rc6-mce /etc/rc_keymaps/myremote.toml
Nun setzt man ''ir-keytable'' zurück und fügt die neue Kaymap hinzu.
sudo ir-keytable -c
sudo ir-keytable -a /etc/rc_maps.cfg
=== Neue Keymap erstellen ===
Möchte man eine neue eigene Keymap für die Fernbedienung erstellen, kann man ''ir-keytable'' nutzen um die entsprechenden IR-Codes für eine Keymap auszulesen.
In einem Terminal öffnet man sich die eigene ".toml" Datei um diese zu editieren und in einem anderen Terminal verwendet man ''ir-keytable -t'' um die IR-Codes auszulesen.
Eine ".toml" Datei sieht wie folgt aus.
[[protocols]]
name = ""
protocol = ""
[protocols.scancodes]
= "KEY_MUTE"
0x07 = "KEY_MEDIA"
Man kann auch das Script [[https://wiki.stizi.de/vdr:system:yavdr:learn-rc-core.py|learn-rc-core.py]] verwenden um automatisch eine neue ".toml" Datei zu erstellen.
==== Atric WakeupUSB ====
Hier muss in der ''yavdr07.yml'' die Zeile mit ''autoinstall-atric-usb'' einkommentiert und die Zeile mit ''serial-ir'' auskommentiert werden.
Ansible installiert die Treiber und konfiguriert ''lircd''.
Danach dekativiert man ''ir-keytable'' in dem man die ''/etc/rc_maps.cfg'' leert.
Jetzt nur noch eine geeignete ''lircd.conf'' unter ''etc/lirc/lircd.conf.d/lircd.conf'' anlegen und rebooten.
Wenn die Tastennamen in der eigenen ''lircd.conf'' mit denen der ''/etc/vdr/remote.conf'' passen, sollte der VDR normal per Fernbedienung bedient werden.
Mit dem Tool ''irw'' kann man sich die gedrückten Tasten, auf der Konsole, ausgeben lassen.
===== eigene Commands =====
Eigene Kommandos editiert man in der ''/etc/vdr/command-hooks/commands.custom.conf''.
Hier eine Beispiel Konfiguration:
#
# This is an example file for defining external commands, that will be
# accessible via VDR's OSD menu.
# The commands will be executed under the same user id that vdr is running
# with, so take care if your are running vdr as root!
#
# The format of a command entry is: :
# is the menu text shown on the OSD and is the command to
# be executed. Everything that writes to stdout will be displayed
# on the OSD, e.g.:
#
# Open fortune cookie: /usr/games/fortune
#
# If you uncomment the line above and restart vdr, you will have a new
# command menu entry, called "Open fortune cookie", that will show you a
# random epigram. ( you may need an "apt-get install fortune" first! )
#
# You can divide your commands into submenus, e.g.:
#
# Fortune Cookies {
# Long Dictum : /usr/games/fortune -l
# Short Apothegms : /usr/games/fortune -s
# Special Topics {
# Literature : /usr/games/fortune literature
# Riddles : /usr/games/fortune riddles
# }
# }
#
# Again, just uncomment the above lines and restart vdr to see for your self,
# how this looks like on the OSD.
#
Google Chrome: /usr/bin/frontend-dbus-send start_desktop google-chrome
Gnome-Terminal: /usr/bin/run-desktop-file /usr/share/applications/org.gnome.Terminal.desktop
PIP off: /usr/bin/svdrpsend HITK User8
X restart: sudo pkill X
openbox restart: sudo initctl restart openbox
#NAS Videos einhängen: sudo /sbin/mount.smbfs //nas.as.home/video /srv/vdr/video.00/0NAS-Video/ -o user=as.home/adi,password=creeko,forceuid=1000,forcegid=2000,uid=1000,gid=2000
NAS Videos einhängen: sudo /sbin/mount.nfs nas.as.home:/video /srv/vdr/video/0NAS-Video
NAS videos aushängen: sudo umount /srv/vdr/video/0NAS-Video
Speicherplatz anzeigen: df -hT --total -t ext3 -t ext4 -t vfat -t ntfs -t btrfs
===== Keymacros =====
Keymacros werden in der Datei ''/etc/vdr/keymacros.conf'' konfiguriert.
Dort können eigene Tasten der Fernbedienung für den Aufruf eines Plugins (@PLUGINNAME) oder für eine Kombination von ein oder mehreren Tasten konfiguriert werden.
Die benutzerdefinierten Tasten selbst sind z.B. ''USER0-9'', welche in der Datei ''/etc/vdr/remote.conf'' konfiguriert werden müssen.
Ein Nachteil kann sein, dass sich die Menü-Reihenfolge ändern kann, wenn man z.B. Plugins installiert die dann im Menü angezeigt werden.
Hier muss man dann sein Keymacro anpassen.
* **Teletext** aufrufen User0 @osdteletext
* **Einstellungen im OSD** aufrufen USER1 Menu 9 2
* **Kodi** aufrufen \\ Hier kann man anders vorgehen und sich die Datei ''/var/lib/vdr/.lircrc'' zu Nutze machen, indem man dort direkt einen Befehl auf eine Taste setzt begin
prog = irexec
button = KEY_TV
config = frontend-dbus-send switchbetween kodi vdr
end
===== Skindesigner OSDs =====
Mit dem Skindesigner Plugin lassen sich unterschiedlich OSDs darstellen, wie z.B. das OSD "metrixHD".
**Wetter**
Damit das Wetter im OSD angezeigt wird, muss das Plugin ''vdr-plugin-weatherforecast'' installiert werden.
In den Einstellungen kann man dann seinen Wohnort anpassen.
**Sensoren**
Die Temperaturen der CPU und der Grafikkarte können ebenfalls dargestellt werden, dazu installiert man das Packet "lm-sensors" und prüft mit dem Befehl ''sensors'' ob die Ausgabe etwas ausgibt.
Damit die Werte im OSD angezeigt werden, verlinkt man noch das Script, welches die Werte ausliest.
sudo ln -s /usr/lib/vdr/plugins/skindesigner/scripts/temperatures.default /usr/lib/vdr/plugins/skindesigner/scripts/temperatures
===== Troubleshooting =====
Wenn der VDR nichts auf dem Bildschirm ausgibt, kann die Auflösung verstellt sein.
Dazu öffnet man das xTerminal und führt ''sudo nvidia-settings'' aus um die Einstellungen zu kontrollieren und in die Xorg-Konfiguraton zu schreiben.
xTerm öffnet man auf der grafischen Oberfläche wo sonst der VDR läuft.
Da der VDR ja nichts ausgibt, kann man per ssh folgende Befehle ausführen um xTerm zu öffnen.
svdrpsend HITK menu
svdrpsend HITK 7
svdrpsend HITK right
svdrpsend HITK ok
svdrpsend HITK right
svdrpsend HITK ok
oder auch
svdrpsend HITK menu
svdrpsend HITK 7
svdrpsend HITK right
svdrpsend HITK ok
svdrpsend HITK ok
svdrpsend HITK ok