diff --git a/Manual.html b/Manual.html index 1f4c685..8e12813 100644 --- a/Manual.html +++ b/Manual.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- +A User wants to install yaVDR without customization and relies on full automation. @@ -490,22 +491,22 @@ Several roles are used to tie everything together:
One of the major problems we faced with customized Ubuntu ISO files as installation media for prior yaVDR versions has been the limited hardware support and the time consuming process to create and update them. An interesting alternative to this approach is to enable the user to choose the installation medium himself so point releases, kernel versions and additional drivers can be chosen deliberately. After the basic setup is complete (and a working internet connection is available), a fully customizable install script completes the yaVDR installation.
This is an experimental feature which allows to set up a yaVDR installation based on a normal Ubuntu Server 16.04.x installation using Ansible. @@ -527,22 +528,22 @@ sudo ./install-yavdr.sh
if (( $EUID != 0 )); then - echo "This script must be run using sudo or as root" + echo "This script must be run using sudo -H or as root" exit fi apt-get -y install software-properties-common # Add repository for ansible -add-apt-repository -y ppa:ansible/ansible +add-apt-repository -y ppa:yavdr/experimental-main # update packages apt-get update # install required packages -apt-get -y install ansible +apt-get -y install --no-install-recommends ansible # TODO: run ansible on local host ansible-playbook yavdr07.yml -b -i 'localhost_inventory' --connection=local --tags=install @@ -551,12 +552,12 @@ ansible-playbook yavdr07.yml -b -i 'localhost_inventory
The yavdr07.yml
playbook sets up a fully-featured yaVDR installation:
@@ -574,6 +575,7 @@ The yavdr07.yml
playbook sets up a fully-featured yaVDR installatio
- collect-facts # query system facts
- autoinstall-ubuntu-drivers # use ubuntu-drivers to install proprietary dirvers
# (e.g. nvidia, virtualbox)
+ - autoinstall-virtualbox-guest
# - nvidia-387 # install very recent nvidia-387 from ppa:graphics-drivers/ppa
- vdr # install vdr and related packages
- yavdr-network # enable network client capabilities
@@ -596,8 +598,6 @@ The yavdr07.yml
playbook sets up a fully-featured yaVDR installatio
# to play and eject optical media
- wakeup # set up wakeup methods for rtc etc.
- grub-config # configure grub
- tags:
- - always
handlers:
- import_tasks: handlers/main.yml
@@ -605,8 +605,8 @@ The yavdr07.yml
playbook sets up a fully-featured yaVDR installatio
For a headless server installation yavdr07-headless.yml
is a good choice
@@ -639,8 +639,8 @@ For a headless server installation yavdr07-headless.yml
is a good c
This playbook can either be used to run the installation on the localhost or any other PC in the network that can be accessed via ssh. Simply add the host names or IP addresses to the hosts file in the respective section: @@ -654,12 +654,12 @@ This playbook can either be used to run the installation on the localhost or any
---
@@ -671,25 +671,24 @@ This playbook can either be used to run the installation on the localhost or any
branch: unstable +branch: experimental ppa_owner: 'ppa:yavdr' # add the following PPAs repositories: - - '{{ ppa_owner }}/main' - - '{{ ppa_owner }}/unstable-main' + - '{{ ppa_owner }}/{{branch}}-main' - '{{ ppa_owner }}/{{branch}}-vdr' - - '{{ ppa_owner }}/{{branch}}-yavdr' - - '{{ ppa_owner }}/{{branch}}-kodi' + #- '{{ ppa_owner }}/{{branch}}-yavdr' + #- '{{ ppa_owner }}/{{branch}}-kodi'
# properties of the user vdr and vdr-related options @@ -716,14 +715,14 @@ This playbook can either be used to run the installation on the localhost or any
# dictionary of directories for (shared) files. Automatically exported via NFS and Samba if those roles are enabled media_dirs: audio: /srv/audio - video: /srv/audio + video: /srv/video pictures: /srv/picture files: /srv/files backups: /srv/backups @@ -732,8 +731,8 @@ This playbook can either be used to run the installation on the localhost or any
nfs:
@@ -742,8 +741,8 @@ This playbook can either be used to run the installation on the localhost or any
samba:
@@ -753,8 +752,8 @@ This playbook can either be used to run the installation on the localhost or any
# additional packages you want to install @@ -765,12 +764,13 @@ This playbook can either be used to run the installation on the localhost or any - tree - vim - w-scan + - plymouth-theme-yavdr-logo
frontend: vdr @@ -779,26 +779,26 @@ This playbook can either be used to run the installation on the localhost or any wakeup_method: acpiwakeup grub: timeout: 0 - boot_options: quiet nosplash + boot_options: quiet splash
---
@@ -818,19 +818,19 @@ This playbook can either be used to run the installation on the localhost or any
install nvidia-387 from ppa:graphics-drivers/ppa
---
@@ -856,15 +856,15 @@ install nvidia-387 from ppa:graphics-drivers/ppa
This role is used to set up a basic yaVDR installation. It creates the directories, installs the vdr and other useful packages.
This section is for reference only, please use the files in global_vars
for customizations.
@@ -877,7 +877,7 @@ This section is for reference only, please use the files in global_vars
Automatically installed drivers can be very useful, but if you know you need a certain driver, you can simply set it’s value to true. If you don’t want a driver to be installed, set it’s value to false. @@ -907,7 +907,7 @@ Automatically installed drivers can be very useful, but if you know you need a c
Add additional packages you would like to have on your installation to this list @@ -921,7 +921,7 @@ Add additional packages you would like to have on your installation to this list
This section allows you to set the recording directory, the user and group that runs the vdr and it’s home directory. @@ -954,15 +954,15 @@ This section allows you to set the recording directory, the user and group that
yavdr-common executes the following tasks:
- name: add PPAs
@@ -1013,7 +1013,7 @@ This task prevents apt to automatically install all recommended dependencies for
- name: use bash instead of dash
@@ -1025,9 +1025,11 @@ This task prevents apt to automatically install all recommended dependencies for
- name: disable release-upgrade notifications lineinfile: @@ -1036,11 +1038,19 @@ This task prevents apt to automatically install all recommended dependencies for state: present regexp: '^(Prompt=).*$' line: '\1never' + ignore_errors: yes + with_first_found: + - files: + - /etc/update-manager/release-upgrades + skip: true +
- name: apt | install basic packages
@@ -1072,7 +1082,7 @@ This task prevents apt to automatically install all recommended dependencies for
- name: apt | install extra packages
@@ -1086,13 +1096,13 @@ This task prevents apt to automatically install all recommended dependencies for
{{ ansible_managed_file | comment('c') }} @@ -1104,16 +1114,16 @@ APT::Install-Suggests "0";
- name: get information about usb and pci hardware and loaded kernel modules @@ -1123,7 +1133,7 @@ APT::Install-Suggests "0"; modules: True gpus: True acpi_power_modes: True - + - debug: var: '{{ item }}' verbosity: 1 @@ -1133,6 +1143,10 @@ APT::Install-Suggests "0"; - gpus - modules - acpi_power_modes + - nvidia_detected + - intel_detected + - amd_detected + - virtualbox_detected
--- @@ -1168,7 +1182,7 @@ APT::Install-Suggests "0";
- name: add svdrp and svdrp-disc to /etc/services @@ -1183,7 +1197,7 @@ APT::Install-Suggests "0";
- name: create vdr recdir @@ -1198,11 +1212,10 @@ APT::Install-Suggests "0"; blockinfile: dest: /etc/vdr/conf.d/04-vdr-hide-first-recordinglevel.conf create: true + state: "{{ 'present' if vdr.hide_first_recording_level else 'absent' }}" block: | [vdr] --hide-first-recording-level - when: - vdr.hide_first_recording_level - name: create local dir in recdir file: @@ -1219,7 +1232,7 @@ APT::Install-Suggests "0";
The additional plugins to install can be set in the variable {{vdr_plugins}}
in the group variables
@@ -1237,7 +1250,7 @@ The additional plugins to install can be set in the variable {{vdr_plugins
- name: ensure vdr is stopped
@@ -1270,15 +1283,15 @@ The additional plugins to install can be set in the variable {{vdr_plugins
LIRC.Up KEY_UP @@ -1413,7 +1426,7 @@ XKeySym.Next XF86AudioNext
# Remote control key macros for VDR @@ -1439,12 +1452,12 @@ User0 @osdteletext
install_avahi: true @@ -1452,14 +1465,14 @@ User0 @osdteletext
--- # this playbook sets up network services for a yaVDR installation -- name: apt |install packages for network services +- name: apt | install packages for network services apt: name: '{{ item }}' state: present @@ -1523,15 +1536,15 @@ User0 @osdteletext
---
@@ -1560,12 +1573,12 @@ User0 @osdteletext
/srv *(rw,fsid=0,sync,no_subtree_check,all_squash,anongid={{ vdr.gid }},anonuid={{ vdr.uid }})
@@ -1576,7 +1589,7 @@ User0 @osdteletext
<?xml version="1.0" standalone='no'?> @@ -1597,15 +1610,15 @@ User0 @osdteletext
--- @@ -1644,6 +1657,12 @@ User0 @osdteletext dest: /etc/vdr/conf.d/03-vdr-lirc.conf notify: ['Restart VDR'] +- name: expand template for /etc/rc_maps.cfg + template: + src: templates/rc_maps.cfg.j2 + dest: /etc/rc_maps.cfg + notify: ['Trigger Udev'] + # TODO: upload lircd2uinput package to PPA #- name: install lircd2uinput # tag: install @@ -1656,9 +1675,13 @@ User0 @osdteletext
{% if frontend != 'kodi' %} [vdr] @@ -1667,23 +1690,214 @@ User0 @osdteletext
# +# Keymaps table +# +# This table creates an association between a keycode file and a kernel +# driver. It can be used to automatically override a keycode definition. +# +# Although not yet tested, it is mented to be added at udev. +# +# To use, you just need to run: +# ./ir-keytable -a +# +# Or, if the remote is not the first device: +# ./ir-keytable -a -s rc1 # for RC at rc1 +# + +# Format: +# driver - name of the driver provided via uevent - use * for any driver +# table - RC keymap table, provided via uevent - use * for any table +# file - file name. If directory is not specified, it will default to +# /etc/rc_keymaps. +# For example: +# driver table file +# cx8800 * ./keycodes/rc5_hauppauge_new +# * rc-avermedia-m135a-rm-jx ./keycodes/kworld_315u +# saa7134 rc-avermedia-m135a-rm-jx ./keycodes/keycodes/nec_terratec_cinergy_xs +# em28xx * ./keycodes/kworld_315u +# * * ./keycodes/rc5_hauppauge_new + +# Table to automatically load the rc maps for the bundled IR's provided with the +# devices supported by the linux kernel + +#driver table file +* rc-adstech-dvb-t-pci adstech_dvb_t_pci +* rc-alink-dtu-m alink_dtu_m +* rc-anysee anysee +* rc-apac-viewcomp apac_viewcomp +* rc-asus-pc39 asus_pc39 +* rc-asus-ps3-100 asus_ps3_100 +* rc-ati-tv-wonder-hd-600 ati_tv_wonder_hd_600 +* rc-ati-x10 ati_x10 +* rc-avermedia-a16d avermedia_a16d +* rc-avermedia-cardbus avermedia_cardbus +* rc-avermedia-dvbt avermedia_dvbt +* rc-avermedia-m135a avermedia_m135a +* rc-avermedia-m733a-rm-k6 avermedia_m733a_rm_k6 +* rc-avermedia-rm-ks avermedia_rm_ks +* rc-avermedia avermedia +* rc-avertv-303 avertv_303 +* rc-azurewave-ad-tu700 azurewave_ad_tu700 +* rc-behold-columbus behold_columbus +* rc-behold behold +* rc-budget-ci-old budget_ci_old +* rc-cec cec +* rc-cinergy-1400 cinergy_1400 +* rc-cinergy cinergy +* rc-delock-61959 delock_61959 +* rc-dib0700-nec dib0700_nec +* rc-dib0700-rc5 dib0700_rc5 +* rc-digitalnow-tinytwin digitalnow_tinytwin +* rc-digittrade digittrade +* rc-dm1105-nec dm1105_nec +* rc-dntv-live-dvb-t dntv_live_dvb_t +* rc-dntv-live-dvbt-pro dntv_live_dvbt_pro +* rc-dtt200u dtt200u +* rc-dvbsky dvbsky +* rc-em-terratec em_terratec +* rc-encore-enltv-fm53 encore_enltv_fm53 +* rc-encore-enltv encore_enltv +* rc-encore-enltv2 encore_enltv2 +* rc-evga-indtube evga_indtube +* rc-eztv eztv +* rc-flydvb flydvb +* rc-flyvideo flyvideo +* rc-fusionhdtv-mce fusionhdtv_mce +* rc-gadmei-rm008z gadmei_rm008z +* rc-genius-tvgo-a11mce genius_tvgo_a11mce +* rc-gotview7135 gotview7135 +* rc-hauppauge hauppauge +#* rc-imon-mce imon_mce +#* rc-imon-pad imon_pad +* rc-iodata-bctv7e iodata_bctv7e +* rc-it913x-v1 it913x_v1 +* rc-it913x-v2 it913x_v2 +* rc-kaiomy kaiomy +* rc-kworld-315u kworld_315u +* rc-kworld-pc150u kworld_pc150u +* rc-kworld-plus-tv-analog kworld_plus_tv_analog +* rc-leadtek-y04g0051 leadtek_y04g0051 +* rc-lme2510 lme2510 +* rc-manli manli +* rc-medion-x10-digitainer medion_x10_digitainer +* rc-medion-x10-or2x medion_x10_or2x +* rc-medion-x10 medion_x10 +* rc-msi-digivox-ii msi_digivox_ii +* rc-msi-digivox-iii msi_digivox_iii +* rc-msi-tvanywhere-plus msi_tvanywhere_plus +* rc-msi-tvanywhere msi_tvanywhere +* rc-nebula nebula +* rc-nec-terratec-cinergy-xs nec_terratec_cinergy_xs +* rc-norwood norwood +* rc-npgtech npgtech +* rc-pctv-sedna pctv_sedna +* rc-pinnacle-color pinnacle_color +* rc-pinnacle-grey pinnacle_grey +* rc-pinnacle-pctv-hd pinnacle_pctv_hd +* rc-pixelview-002t pixelview_002t +* rc-pixelview-mk12 pixelview_mk12 +* rc-pixelview-new pixelview_new +* rc-pixelview pixelview +* rc-powercolor-real-angel powercolor_real_angel +* rc-proteus-2309 proteus_2309 +* rc-purpletv purpletv +* rc-pv951 pv951 +* rc-real-audio-220-32-keys real_audio_220_32_keys +* rc-reddo reddo +* rc-snapstream-firefly snapstream_firefly +* rc-streamzap streamzap +* rc-su3000 su3000 +* rc-tbs-nec tbs_nec +* rc-technisat-ts35 technisat_ts35 +* rc-technisat-usb2 technisat_usb2 +* rc-terratec-cinergy-c-pci terratec_cinergy_c_pci +* rc-terratec-cinergy-s2-hd terratec_cinergy_s2_hd +* rc-terratec-cinergy-xs terratec_cinergy_xs +* rc-terratec-slim-2 terratec_slim_2 +* rc-terratec-slim terratec_slim +* rc-tevii-nec tevii_nec +* rc-tivo tivo +* rc-total-media-in-hand-02 total_media_in_hand_02 +* rc-total-media-in-hand total_media_in_hand +* rc-trekstor trekstor +* rc-tt-1500 tt_1500 +* rc-twinhan-dtv-cab-ci twinhan_dtv_cab_ci +* rc-twinhan1027 twinhan_vp1027_dvbs +* rc-videomate-k100 videomate_k100 +* rc-videomate-s350 videomate_s350 +* rc-videomate-tv-pvr videomate_tv_pvr +* rc-winfast-usbii-deluxe winfast_usbii_deluxe +* rc-winfast winfast +# * * a800 # found in a800.c +# * * af9005 # found in af9005-remote.c +# * * cinergyt2 # found in cinergyT2-core.c +# * * dvico_mce # found in cxusb.c +# * * dvico_portable # found in cxusb.c +# * * d680_dmb # found in cxusb.c +# * * dibusb # found in dibusb-common.c +# * * digitv # found in digitv.c +# * * megasky # found in m920x.c +# * * tvwalkerir-kbd-i2c rc-hauppauge /lib/udev/rc_keymaps/rc-hauppaugetwin # found in m920x.c +# * * pinnacle310e # found in m920x.c +# * * haupp # found in nova-t-usb2.c +# * * opera1 # found in opera1.c +# * * vp702x # found in vp702x.c +# * * vp7045 # found in vp7045.c + +# Hauppauge PVR 350 +ir-kbd-i2c rc-hauppauge /lib/udev/rc_keymaps/rc-hauppauge + +# imon-pad +imon rc-imon-pad /lib/udev/rc_keymaps/rc-imon-pad +imon rc-imon-mce /lib/udev/rc_keymaps/rc-imon-mce + +# TT-1500/1501 +* rc-tt-1500 /lib/udev/rc_keymaps/rc-tt-1500 +budget_ci rc-tt-1500 /lib/udev/rc_keymaps/rc-tt-1501 + +# rc-rc6-mce +* rc-rc6-mce /lib/udev/rc_keymaps/rc-rc6-mce +# CIR +ite-cir rc-rc6-mce /lib/udev/rc_keymaps/rc-rc6-mce +nuvoton-cir rc-rc6-mce /lib/udev/rc_keymaps/rc-rc6-mce + +# mceusb +mceusb rc-rc6-mce /lib/udev/rc_keymaps/HOPLOrc6 + +# Skystarhd2 +mantis_core * /lib/udev/rc_keymaps/skystarhd2 + +# Medion X10 +ati_remote rc-medion-x10 /lib/udev/rc_keymaps/rc-medion-x10 +ati_remote rc-medion-x10-or2x /lib/udev/rc_keymaps/rc-medion-x10-or2x +ati_remote rc-medion-x10-digitainer /lib/udev/rc_keymaps/rc-medion-x10-digitainer +
--- -- name: apt | install pulseaudio and pavucontrol +- name: apt | install pulseaudio, pavucontrol and vdr-plugin-pulsecontrol apt: name: '{{ item }}' state: present @@ -1691,6 +1905,7 @@ User0 @osdteletext with_items: - pulseaudio - pavucontrol + - vdr-plugin-pulsecontrol - name: create /etc/asound.conf with pulseaudio as default device template: @@ -1700,8 +1915,8 @@ User0 @osdteletext
# Use PulseAudio by default @@ -1723,12 +1938,12 @@ User0 @osdteletext
The X-Server is started by using the two systemd units xlogin@.service
and x@.service
provided by the package xlogin. The former is enabled (and started) for the vdr user - which results (using the default settings for the user vdr with the uid 666) in the activation of xlogin@vdr.service
when reaching the graphical.target.
@@ -1736,6 +1951,7 @@ The X-Server is started by using the two systemd units xlogin@.service
x@vt7.service
is started automatically as a dependency of xlogin@vdr.service
and starts the X-server. xlogin@vdr.service
also starts a systemd user session using user@666.service
.
+In order to use the keyboard layout configured during installation for the X-Server the script write-x11-keyboard-config
reads the keyboard configuration from /etc/default/keyboard
when starting x@.service
and writes the file /etc/X11/xorg.conf.d/00-keyboard.conf
(because systemd for Ubuntu (and Debian) has been patched not to create /etc/X11/xorg.conf.d/00-keyboard.conf
according to the localectl
settings).
@@ -1756,12 +1972,16 @@ In order to achive a clean shutdown of the session, x@t7.service
is
---
# file: roles/yavdr-xorg/tasks/main.yml
@@ -1770,7 +1990,10 @@ In order to achive a clean shutdown of the session, x@t7.service
is
- import_tasks: desktop-session.yml tags=install,update
--- # file: roles/yavdr-xorg/tasks/setup-xorg.yml @@ -1782,28 +2005,34 @@ In order to achive a clean shutdown of the session,x@t7.service
is - "/etc/systemd/system/x@.service.d/" - "/etc/systemd/system/vdr.service.d/" - "/etc/systemd/system/user@{{ vdr.uid }}.service.d/" + - "/etc/X11/xorg.conf.d/" -- name: systemd-drop-in: add dependency to X-server for vdr.service +- name: systemd-drop-in | add dependency to X-server for vdr.service template: src: templates/vdr-xorg.conf dest: /etc/systemd/system/vdr.service.d/vdr-xorg.conf -- name: systemd-drop-in: start x@.service before xlogin@.service +- name: systemd-drop-in | start x@.service before xlogin@.service template: src: templates/x@service.d/xlogin.conf.j2 dest: /etc/systemd/system/x@.service.d/xlogin.conf -- name: systemd-drop-in: load environment file for vdr.service +- name: systemd-drop-in | load environment file for vdr.service template: src: templates/systemd/vdr-environ.j2 dest: /etc/systemd/system/vdr.service.d/load-environ.conf -- name: systemd-drop-in: user@{{ vdr.uid }}.service depends on x@vt7.service +- name: systemd-drop-in | start vdr.service after network-online.target + template: + src: templates/systemd/network-online.j2 + dest: /etc/systemd/system/vdr.service.d/network-online.conf + +- name: systemd-drop-in | user@{{ vdr.uid }}.service depends on x@vt7.service template: src: templates/user@666.service.d/x-dependency.conf.j2 dest: '/etc/systemd/system/user@{{ vdr.uid }}.service.d/x-dependency.conf' -- name: vdr-config: start softhddevice detached and set audio to pulseaudio +- name: vdr-config | start softhddevice detached and set audio to pulseaudio lineinfile: path: /etc/vdr/conf.avail/softhddevice.conf line: '{{ item }}' @@ -1835,8 +2064,26 @@ In order to achive a clean shutdown of the session,x@t7.service
is - read-edid - tmux - vdr-plugin-desktop + - vdr-plugin-osd2web + - feh #- yavdr-xorg +- name: download yavdr logo + block: + - file: + dest: '/usr/share/yavdr/images' + state: directory + + - get_url: + url: 'https://github.com/yavdr/yavdr-base/raw/master/images/yavdr_logo.png' + dest: '/usr/share/yavdr/images/yavdr_logo.png' + +- name: command | write keyboard configuration to /etc/X11/xorg.conf.d/00-keyboard.conf + command: write-x11-keyboard-config + creates: /etc/X11/xorg.conf.d/00-keyboard.conf + # NOTE: write-x11-keyboard-config is in the xlogin package + # Ubuntu's systemd is patched, so it does not create the file automatically + - name: apt | install desktop programs apt: name: '{{ item }}' @@ -1847,7 +2094,10 @@ In order to achive a clean shutdown of the session,x@t7.service
is - kiosk-browser
--- # file: roles/yavdr-xorg/tasks/detect-xorg.yml @@ -1881,7 +2131,7 @@ In order to achive a clean shutdown of the session,x@t7.service
is - name: "wait a little bit before starting x-verbose@vt7.service (needed?)" wait_for: - timeout: 3 + timeout: 10 - name: "start x-verbose@.service" systemd: @@ -1922,16 +2172,20 @@ In order to achive a clean shutdown of the session,x@t7.service
is - name: nvidia related config block: - - name: create xorg.conf (for nvidia driver) + - name: create xorg.conf (for nvidia driver) template: src: templates/xorg.conf.j2 dest: /etc/X11/xorg.conf backup: yes when: - - 'if {% gpus | selectattr("VendorName", "nvidia") | list %}' + - nvidia_detected +
--- # file: roles/yavdr-xorg/tasks/desktop-session.yml @@ -1956,6 +2210,14 @@ In order to achive a clean shutdown of the session,x@t7.service
is owner: '{{ vdr.user }}' group: '{{ vdr.group }}' +- name: "expand template for vdr's .Xresources" + template: + src: 'templates/.Xresources.j2' + dest: '{{ vdr.home }}/.Xresources' + mode: 0644 + owner: '{{ vdr.user }}' + group: '{{ vdr.group }}' + - name: expand template for openbox autostart template: src: 'templates/openbox/autostart.j2' @@ -2014,6 +2276,15 @@ In order to achive a clean shutdown of the session,x@t7.service
is src: templates/systemd/user/osd2web.service.j2 dest: '{{ vdr.home }}/.config/systemd/user/osd2web.service' +- name: create irexec configuration for the session + block: + - template: + src: templates/systemd/user/irexec.service.j2 + dest: '{{ vdr.home }}/.config/systemd/user/irexec.service' + - template: + src: templates/.lircrc.j2 + dest: '{{ vdr.home }}/.lircrc' + - name: link /usr/bin/start-desktop to /var/lib/vdr/plugins/desktop/starter file: src: /usr/bin/start-desktop @@ -2029,15 +2300,17 @@ In order to achive a clean shutdown of the session,x@t7.service
is
# file: roles/yavdr-xorg/templates/systemd/system/x-verbose@.service.j2
@@ -2053,7 +2326,7 @@ In order to achive a clean shutdown of the session, x@t7.service
is
[Unit]
@@ -2074,7 +2347,7 @@ In order to achive a clean shutdown of the session, x@t7.service
is
# file: roles/yavdr-xorg/templates/vdr-xorg.conf
@@ -2087,7 +2360,7 @@ In order to achive a clean shutdown of the session, x@t7.service
is
#!/bin/bash
@@ -2097,7 +2370,7 @@ In order to achive a clean shutdown of the session, x@t7.service
is
Section "Device"
@@ -2422,9 +2695,32 @@ EndSection
xterm*background: Black +xterm*foreground: grey +XTerm*locale: true +XTerm*metaSendsEscape: true +XTerm*eightBitInput: false +XTerm*backarrowKey: false +XTerm*ttyModes: erase ^? +Xterm*saveLines: 4096 +XTerm.vt100.metaSendsEscape: true +XTerm.vt100.geometry: 80x32 +XTerm.vt100.renderFont: true +xterm*faceName: xft:DejaVu Sans Mono +xterm*faceSize: 14 +xterm*renderFont: true +XTerm.vt100.faceName: xft:DejaVu Sans Mono:size=12:antialias=false +XTerm.vt100.font: 7x13 ++
[Service] @@ -2432,11 +2728,17 @@ EndSection EnvironmentFile=-/var/lib/vdr/.session-env
[Unit] +After=network-online.target ++
[Unit] @@ -2450,7 +2752,7 @@ EndSection
[Unit]
@@ -2466,7 +2768,7 @@ EndSection
[Unit] @@ -2480,6 +2782,7 @@ EndSection PassEnvironment=XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS EnvironmentFile=%h/.second_display ExecStart=/usr/bin/openbox --config-file %h/.config/openbox/rc.xml +ExecStartPost=/bin/bash %h/.fehbg [Install] WantedBy=yavdr-desktop.target @@ -2487,7 +2790,7 @@ EndSection
[Unit] @@ -2499,7 +2802,7 @@ EndSection [Service] EnvironmentFile=%h/.second_display PassEnvironment=XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS -ExecStart=/usr/bin/on_vdr -o -c 'kiosk-browser "http://localhost:4444/skins/horchiTft/index.html?theme=blue&onlyView=1"' +ExecStart=/usr/bin/on_vdr -o -c 'kiosk-browser "http://localhost:4444/skins/horchiTft/index.html?theme=bluecd&onlyView=1"' KillSignal=SIGINT [Install] @@ -2508,7 +2811,7 @@ EndSection
[Unit]
@@ -2527,7 +2830,7 @@ EndSection
[Unit]
@@ -2546,20 +2849,53 @@ EndSection
-
+irexec.service starts irexec for the user session +
+[Unit] +Description=LIRC command handler + +[Service] +Type=simple +ExecStart=/usr/bin/irexec %h/.lircrc + +[Install] +WantedBy=yavdr-desktop.target ++
+~/.lircrc contains the irexec configuration +
+begin + prog = irexec + button = KEY_HOME + config = frontend-dbus-send switchbetween kodi vdr +end ++
# forward environment variables to an environment file and the systemd user session env | grep "DISPLAY\|DBUS_SESSION_BUS_ADDRESS\|XDG_RUNTIME_DIR" > ~/.session-env systemctl --user import-environment DISPLAY XAUTHORITY XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS +feh --bg-center "/usr/share/yavdr/images/yavdr_logo.png" + enabled_services=( "tmux.service" "detect-second-display.service" "openbox-second.service" "osd2web.service" "yavdr-frontend.service" "pulseaudio.socket" - "pulseaudio.service" "wm-exit.service") + "pulseaudio.service" "wm-exit.service" "irexec.service") disabled_services=() # enable configured services for the user session @@ -2582,8 +2918,8 @@ systemctl --user isolate yavdr-desktop.target
<?xml version="1.0" encoding="UTF-8"?> <openbox_config xmlns="http://openbox.org/3.4/rc" xmlns:xi="http://www.w3.org/2001/XInclude"> @@ -3412,12 +3748,12 @@ systemctl --user isolate yavdr-desktop.target
---
@@ -3439,12 +3775,12 @@ systemctl --user isolate yavdr-desktop.target
---
@@ -3469,14 +3805,14 @@ systemctl --user isolate yavdr-desktop.target
{{ ansible_managed_file | comment }} @@ -3562,7 +3898,7 @@ systemctl --user isolate yavdr-desktop.target
{% for name, path in media_dirs.iteritems() %} @@ -3584,7 +3920,7 @@ systemctl --user isolate yavdr-desktop.target
include = /etc/samba/smb.conf.custom @@ -3597,15 +3933,15 @@ systemctl --user isolate yavdr-desktop.target
It would be nice to be able to detect if it is suitable to install those drivers:
Vendor-IDs: @@ -3616,14 +3952,14 @@ Vendor-IDs:
from http://www.vdr-portal.de/board18-vdr-hardware/board102-dvb-karten/120817-treiber-der-cine-ctv6-ddbridge-ci-in-den-kernel-integrieren/
@@ -3632,47 +3968,80 @@ from
-
The tool ubuntu-drivers is used to install the matching driver version for nvidia graphics cards, virtualbox guest additions and Intel and AMD microcode updates.
+This role installs the guest additions for virtualbox guests on Ubuntu 16.04
+
If a Sat>IP Server responds to a discovery request, the package vdr-plugin-satip is installed.
Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware sollte in yavdr-firmware stecken
This systemd unit for the user session starts (and stops) kodi.
Those configuration files provide a preconfiguration for kodi which overrides the system wide configuration
This file maps the keys defined in Lircmap.xml to actions within kodi.
This section contains custom modules for the yaVDR Playbooks. They are used to collect facts about the system and configure applications and daemons.
7.14 autoinstall-ubuntu-drivers
+7.14 autoinstall-ubuntu-drivers
7.14.1 tasks
+7.14.1 tasks
---
# file roles/autoinstall-ubuntu-drivers/tasks/main.yml
-- name: apt | install ubuntu-drivers-common
- apt:
- name: ubuntu-drivers-common
- state: present
-- name: ensure /etc/yavdr exists
- file:
- path: /etc/yavdr
- state: directory
- mode: 0755
+- name: autoinstall ubuntu-drivers-common
+ block:
+ - name: apt | install ubuntu-drivers-common
+ apt:
+ name: ubuntu-drivers-common
+ state: present
-- name: let ubuntu-drivers automatically install additional drivers
- command: ubuntu-drivers --package-list /etc/yavdr/autoinstalled autoinstall
+ - name: use ubuntu-drivers to install additional drivers automatically
+ command: ubuntu-drivers --package-list /etc/yavdr/autoinstalled autoinstall
+ when: (ansible_virtualization_type != "virtualbox" and ansible_virtualization_role != "guest") or
+ ansible_distribution_version != "16.04"
+ # ubuntu-drivers-common tries to autoinstall
+ # conflicting packages for virtualbox in Ubuntu 16.04 :(
7.15 autoinstall-satip
+7.15 autoinstall-virtualbox-guest
---
+# file roles/autoinstall-virtualbox-guest/tasks/main.yml
+
+- name: install virtualbox guest additions
+ block:
+ - name: install packages
+ apt:
+ state: present
+ name: '{{ item }}'
+ with_items:
+ - virtualbox-guest-dkms
+ - virtualbox-guest-x11
+ - dkms
+
+ # TODO: set xineliboutput as frontend
+ when:
+ - ansible_virtualization_type == "virtualbox"
+ - ansible_virtualization_role == "guest"
+ - ansible_distribution == "Ubuntu"
+ - ansible_distribution_version == "16.04"
+
+7.16 autoinstall-satip
+7.15.1 tasks
-7.16.1 tasks
+---
# file roles/autoinstall-satip/tasks/main.yml
@@ -3696,13 +4065,13 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
7.16 autoinstall-targavfd
-7.17 autoinstall-targavfd
+7.16.1 tasks
-7.17.1 tasks
+---
# file roles/autoinstall-targavfd/tasks/main.yml
@@ -3717,13 +4086,13 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
7.17 autoinstall-imonlcd
-7.18 autoinstall-imonlcd
+7.17.1 tasks
-7.18.1 tasks
+---
# file roles/autoinstall-imonlcd/tasks/main.yml
@@ -3738,13 +4107,13 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
7.18 autoinstall-libcecdaemon
-7.19 autoinstall-libcecdaemon
+7.18.1 tasks
-7.19.1 tasks
+---
# file roles/autoinstall-libcec-daemon/tasks/main.yml
@@ -3759,13 +4128,13 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
7.19 autoinstall-pvr350
-7.20 autoinstall-pvr350
+7.19.1 tasks
-7.20.1 tasks
+---
# file roles/autoinstall-pvr350/tasks/main.yml
@@ -3780,9 +4149,9 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
7.20 autoinstall-hauppauge-pvr
-7.21 autoinstall-hauppauge-pvr
+---
# file roles/autoinstall-hauppauge-pvr/tasks/main.yml
@@ -3796,13 +4165,13 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
7.21 autoinstall-dvbsky-firmware
-7.22 autoinstall-dvbsky-firmware
+7.21.1 defaults
-7.22.1 defaults
+---
# file roles/autoinstall-dvbsky-firmware
@@ -3811,21 +4180,20 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
7.21.2 tasks
-7.22.2 tasks
+---
# file roles/autoinstall-dvbsky-firmware/tasks/main.yml
- name: determine needed firmware files by device ids
block:
- - name: add firmware for DVBSky S952 V3 to variable dvbsky_firmware_files if a card has been detected
+ - name: add firmware files for DVBSky if a card has been detected
set_fact:
- dvbsky_firmware_files: "{{dvbsky_firmware_files}} + ['dvb-demod-m88rs6000.fw']"
+ dvbsky_firmware_files: ['dvb-demod-m88ds3103.fw', 'dvb-demod-m88rs6000.fw', 'dvb-tuner-si2158-a20-01.fw', 'dvb-demod-si2168-a20-01.fw', 'dvb-demod-si2168-a30-01.fw', 'dvb-demod-si2168-b40-01.fw', 'dvb-fe-ds300x.fw', 'dvb-fe-ds3103.fw', 'dvb-fe-rs6000.fw']
when:
- '"1ade:3038" in pci'
- - ansible_distribution_version >= '15.04' #driver only included since Kernel 3.19
when:
- not dvbsky_firmware_files
@@ -3863,16 +4231,16 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
7.22 TODO autoinstall-dvbhddevice
-7.23 TODO autoinstall-dvbhddevice
+7.22.1 tasks
-7.23.1 tasks
+---
# file roles/autoinstall-dvbhddevice/tasks/main.yml
@@ -3888,17 +4256,19 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
7.23 autoinstall-dvbsddevice
-7.24 autoinstall-dvbsddevice
+7.23.1 tasks
-7.24.1 tasks
+---
# file roles/autoinstall-dvbsddevice/tasks/main.yml
+# TODO: install firmware
+
- name: apt | install vdr-plugin-dvbsddevice if module is loaded
apt:
name: vdr-plugin-dvbsddevice
@@ -3909,13 +4279,13 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
7.24 autoinstall-hardware-irmp
-7.25 autoinstall-hardware-irmp
+7.24.1 tasks
-7.25.1 tasks
+
7.25 kodi
-7.26 kodi
+7.25.1 tasks
-7.26.1 tasks
+
-
+
-
-
+- import_tasks: install-kodi.yml tags=install,update,kodi:install
- import_tasks: configure-kodi.yml tags=install,update,kodi:configure
@@ -3955,8 +4325,8 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
-
+---
@@ -3968,13 +4338,13 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
with_items:
- kodi
- kodi-pvr-vdr-vnsi
- - kodi-eventclients-xbmc-send
+ - kodi-eventclients-kodi-send # for ubuntu packages, team-xbmc uses "kodi-eventclients-xbmc-send for some reason
-
+- name: create kodi.service for the user session
template:
@@ -4022,13 +4392,13 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
7.25.2 templates
-7.26.2 templates
+
-
-
+7.25.3 files
-7.26.3 files
+
-
-
-
+
-
-
+<!-- This file contains the mapping of keys (gamepad, remote, and keyboard) to actions within XBMC -->
<!-- The <global> section is a fall through - they will only be used if the button is not -->
@@ -4688,17 +5058,17 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
7.26 dvd
-7.27 dvd
+7.26.1 tasks
-7.27.1 tasks
+
-
-
+---
# file: roles/dvd/tasks/main.yml
@@ -4738,9 +5108,9 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
7.27 template-test
-7.28 template-test
+---
@@ -4980,13 +5350,13 @@ EndSection
7.28 wakeup
-7.29 wakeup
+7.28.1 defaults
-7.29.1 defaults
+---
# file roles/wakeup/defaults/main.yml
@@ -4995,9 +5365,9 @@ EndSection
7.28.2 tasks
-7.29.2 tasks
+---
# file roles/wakeup/tasks/main.yml
@@ -5017,9 +5387,9 @@ EndSection
7.28.3 templates
-7.29.3 templates
+{{ ansible_managed_file | comment }}
@@ -5044,13 +5414,13 @@ ACPI_START_AHEAD=5
7.29 grub-config
-7.30 grub-config
+7.29.1 default variables
-7.30.1 default variables
+system:
shutdown: poweroff
@@ -5061,9 +5431,9 @@ ACPI_START_AHEAD=5
7.29.2 tasks
-7.30.2 tasks
+---
@@ -5087,9 +5457,9 @@ ACPI_START_AHEAD=5
7.29.3 templates
-7.30.3 templates
+#!/bin/sh
exec tail -n +3 $0
@@ -5111,9 +5481,9 @@ menuentry "PowerOff" {
7.29.4 handlers
-7.30.4 handlers
+---
@@ -5130,15 +5500,15 @@ menuentry "PowerOff" {
8 Modules
+8 Modules
8.1 hardware_facts.py
+8.1 hardware_facts.py
# This Module collects the vendor- and device ids for USB- and PCI(e)-devices and currently loaded kernel modules.
@@ -5276,6 +5646,10 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c
pci_devices = []
modules = []
gpus = []
+ nvidia_detected = False
+ intel_detected = False
+ amd_detected = False
+ virtualbox_detected = False
acpi_power_modes = []
if collect_usb:
@@ -5290,12 +5664,18 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c
if collect_gpus:
gpus = format_gpu_device_list(get_pci_devices())
+ nvidia_detected = any((True for gpu in gpus if gpu['VendorName'] == 'nvidia'))
+ intel_detected = any((True for gpu in gpus if gpu['VendorName'] == 'intel'))
+ amd_detected = any((True for gpu in gpus if gpu['VendorName'] == 'amd'))
+ virtualbox_detected = any((True for gpu in gpus if gpu['VendorName'] == 'virtualbox'))
if collect_acpi_power_modes:
acpi_power_modes = list_acpi_power_modes()
data = {'usb': usb_devices, 'pci': pci_devices, 'modules': modules, 'gpus': gpus,
- 'acpi_power_modes': acpi_power_modes}
+ 'acpi_power_modes': acpi_power_modes, 'nvidia_detected': nvidia_detected,
+ 'intel_detected': intel_detected, 'amd_detected': amd_detected,
+ 'virtualbox_detected': virtualbox_detected}
module.exit_json(changed=False, ansible_facts=data, msg=data)
@@ -5305,8 +5685,8 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c
8.2 satip_facts.py
+8.2 satip_facts.py
DOCUMENTATION = '''
@@ -5430,8 +5810,8 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c
8.3 xrandr_facts.py
+8.3 xrandr_facts.py
[ ]
support multiple screens (-d :0.0 .. :0.n)9 Handlers
+9 Handlers
- name: Reconfigure unattended upgrades with dpkg
@@ -5776,7 +6159,7 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c