====== 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: : <command> # <title> is the menu text shown on the OSD and <command> is the command to # be executed. Everything that <command> 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</code> ===== 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 <code>User0 @osdteletext</code> * **Einstellungen im OSD** aufrufen <code>USER1 Menu 9 2</code> * **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 <code>begin prog = irexec button = KEY_TV config = frontend-dbus-send switchbetween kodi vdr end</code> ===== 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. <code bash>sudo ln -s /usr/lib/vdr/plugins/skindesigner/scripts/temperatures.default /usr/lib/vdr/plugins/skindesigner/scripts/temperatures</code> ===== 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. <code bash>svdrpsend HITK menu svdrpsend HITK 7 svdrpsend HITK right svdrpsend HITK ok svdrpsend HITK right svdrpsend HITK ok</code> oder auch <code bash>svdrpsend HITK menu svdrpsend HITK 7 svdrpsend HITK right svdrpsend HITK ok svdrpsend HITK ok svdrpsend HITK ok</code>