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"> - + Ansible Playbooks for yaVDR 0.7 @@ -240,224 +240,225 @@ for the JavaScript code in this tag.

Inhaltsverzeichnis

-
-

1 User Stories

+
+

1 User Stories

-
-

1.1 yavdr-full

+
+

1.1 yavdr-full

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:

-
-

1.1.1 Using vdr, pulseaudio and xorg together

+
+

1.1.1 Using vdr, pulseaudio and xorg together

-
-

2 Introduction

+
+

2 Introduction

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.

-
-

3 Installing and configuring yaVDR with Ansible

+
+

3 Installing and configuring yaVDR with Ansible

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

-
-

3.1 Install script for local usage

+
+

3.1 Install script for local usage

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
 
-
-

4 Playbooks

+
+

4 Playbooks

-
-

4.1 yavdr07.yml

+
+

4.1 yavdr07.yml

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

-
-

4.2 yavdr07-headless.yml

+
+

4.2 yavdr07-headless.yml

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

-
-

5 Hosts

+
+

5 Hosts

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

-
-

6 Group Variables

+
+

6 Group Variables

-
-

6.1 default text for templates used by ansible

+
+

6.1 default text for templates used by ansible

---
@@ -671,25 +671,24 @@ This playbook can either be used to run the installation on the localhost or any
 
-
-

6.2 PPAs

+
+

6.2 PPAs

-
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'
 
-
-

6.3 VDR user, directories, special configuration and plugins

+
+

6.3 VDR user, directories, special configuration and plugins

# 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
 
-
-

6.4 Media directories

+
+

6.4 Media directories

# 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
 
-
-

6.5 NFS

+
+

6.5 NFS

nfs:
@@ -742,8 +741,8 @@ This playbook can either be used to run the installation on the localhost or any
 
-
-

6.6 Samba

+
+

6.6 Samba

samba:
@@ -753,8 +752,8 @@ This playbook can either be used to run the installation on the localhost or any
 
-
-

6.7 Additional packages

+
+

6.7 Additional packages

# 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
 
-
-

6.8 System pre-configuration

+
+

6.8 System pre-configuration

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
 
-
-

7 Roles

+
+

7 Roles

-
-

7.1 install-dependencies

+
+

7.1 install-dependencies

-
-

7.1.1 tasks

+
+

7.1.1 tasks

    -
  1. main.yml
    +
  2. main.yml
    ---
    @@ -818,19 +818,19 @@ This playbook can either be used to run the installation on the localhost or any
     
    -
    -

    7.2 nvidia-387 drivers

    +
    +

    7.2 nvidia-387 drivers

    install nvidia-387 from ppa:graphics-drivers/ppa

    -
    -

    7.2.1 tasks

    +
    +

    7.2.1 tasks

      -
    1. main.yml
      +
    2. main.yml
      ---
      @@ -856,15 +856,15 @@ install nvidia-387 from ppa:graphics-drivers/ppa
       
    -
    -

    7.3 yavdr-common

    +
    +

    7.3 yavdr-common

    This role is used to set up a basic yaVDR installation. It creates the directories, installs the vdr and other useful packages.

    -
    -

    7.3.1 default variables

    +
    +

    7.3.1 default variables

    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

      -
    1. Repositories
      +
    2. Repositories

      You can set a list of package repositories which provide the necessary packages. Feel free to use own PPAs if you need special customization to the VDR and it’s plugins. @@ -894,7 +894,7 @@ You can set a list of package repositories which provide the necessary packages.

  3. -
  4. Drivers
    +
  5. Drivers

    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

-
  • Additional Packages
    +
  • Additional Packages

    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

  • -
  • VDR
    +
  • VDR

    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

  • -
    -

    7.3.2 tasks

    +
    +

    7.3.2 tasks

    yavdr-common executes the following tasks:

      -
    1. main.yml
      +
    2. main.yml
      ---
      @@ -978,7 +978,7 @@ yavdr-common executes the following tasks:
       
        -
      1. Disable default installation of recommended packages
        +
      2. Disable default installation of recommended packages

        This task prevents apt to automatically install all recommended dependencies for packages: @@ -995,7 +995,7 @@ This task prevents apt to automatically install all recommended dependencies for

    -
  • Set up package repositories
    +
  • Set up package repositories
    - name: add PPAs
    @@ -1013,7 +1013,7 @@ This task prevents apt to automatically install all recommended dependencies for
     
  • -
  • Use bash instead of dash
    +
  • Use bash instead of dash
    - name: use bash instead of dash
    @@ -1025,9 +1025,11 @@ This task prevents apt to automatically install all recommended dependencies for
     
  • -
  • create user vdr
  • -
  • Disable release-upgrade notifications
    -
    +
  • create user vdr
  • +
  • Disable release-upgrade notifications
    +
      +
    1. SOMEDAY move from lineinfile to template
      +
      - 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
      +
       
    2. -
    3. Install essential packages
      +
    +
  • +
  • Install essential packages
    - name: apt | install basic packages
    @@ -1072,7 +1082,7 @@ This task prevents apt to automatically install all recommended dependencies for
     
  • -
  • Install additional packages (user defined)
    +
  • Install additional packages (user defined)
    - name: apt | install extra packages
    @@ -1086,13 +1096,13 @@ This task prevents apt to automatically install all recommended dependencies for
     
  • -
  • create media directories
  • +
  • create directories
  • -
    -

    7.3.3 templates

    +
    +

    7.3.3 templates

    {{ ansible_managed_file | comment('c') }}
    @@ -1104,16 +1114,16 @@ APT::Install-Suggests "0";
     
    -
    -

    7.4 collect facts about the system with custom modules

    +
    +

    7.4 collect facts about the system with custom modules

    -
    -

    7.4.1 tasks

    +
    +

    7.4.1 tasks

      -
    1. main.yml
      +
    2. main.yml
      - 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
       
      @@ -1140,16 +1154,16 @@ APT::Install-Suggests "0";
    -
    -

    7.5 vdr

    +
    +

    7.5 vdr

    -
    -

    7.5.1 tasks

    +
    +

    7.5.1 tasks

      -
    1. install the basic vdr packages
      +
    2. install the basic vdr packages
      ---
      @@ -1168,7 +1182,7 @@ APT::Install-Suggests "0";
       
    3. -
    4. Add svdrp/svdrp-disc to /etc/services
      +
    5. Add svdrp/svdrp-disc to /etc/services
      - name: add svdrp and svdrp-disc to /etc/services
      @@ -1183,7 +1197,7 @@ APT::Install-Suggests "0";
       
    6. -
    7. Set up the recording directory for the vdr user
      +
    8. Set up the recording directory for the vdr user
      - 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";
       
    9. -
    10. Install additional vdr plugins
      +
    11. Install additional vdr plugins

      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

    -
  • copy vdr configuration files (if they don’t exist yet)
    +
  • copy vdr configuration files (if they don’t exist yet)
    - name: ensure vdr is stopped
    @@ -1270,15 +1283,15 @@ The additional plugins to install can be set in the variable {{vdr_plugins
     
     
    -
    -

    7.5.2 templates

    +
    +

    7.5.2 templates

    -
    -

    7.5.3 files

    +
    +

    7.5.3 files

      -
    1. remote.conf
      +
    2. remote.conf
      LIRC.Up KEY_UP
      @@ -1413,7 +1426,7 @@ XKeySym.Next       XF86AudioNext
       
    3. -
    4. keymacros.conf
      +
    5. keymacros.conf
      # Remote control key macros for VDR
      @@ -1439,12 +1452,12 @@ User0     @osdteletext
       
    -
    -

    7.6 STARTED yavdr-network

    +
    +

    7.6 STARTED yavdr-network

    -
    -

    7.6.1 default variables

    +
    +

    7.6.1 default variables

    install_avahi: true
    @@ -1452,14 +1465,14 @@ User0     @osdteletext
     
    -
    -

    7.6.2 tasks

    +
    +

    7.6.2 tasks

    ---
     # 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
     
    -
    -

    7.7 nfs-server

    +
    +

    7.7 nfs-server

    -
    -

    7.7.1 TODO avahi-services für NFS beim Stoppen des nfs-kernel-servers depublizieren, beim Start wieder announcen

    +
    +

    7.7.1 TODO avahi-services für NFS beim Stoppen des nfs-kernel-servers depublizieren, beim Start wieder announcen

    -
    -

    7.7.2 tasks

    +
    +

    7.7.2 tasks

    ---
    @@ -1560,12 +1573,12 @@ User0     @osdteletext
     
    -
    -

    7.7.3 templates

    +
    +

    7.7.3 templates

      -
    1. /etc/exports
      +
    2. /etc/exports
      /srv *(rw,fsid=0,sync,no_subtree_check,all_squash,anongid={{ vdr.gid }},anonuid={{ vdr.uid }})
      @@ -1576,7 +1589,7 @@ User0     @osdteletext
       
    3. -
    4. avahi services
      +
    5. avahi services
      <?xml version="1.0" standalone='no'?>
      @@ -1597,15 +1610,15 @@ User0     @osdteletext
       
    -
    -

    7.8 STARTED yavdr-remote

    +
    +

    7.8 STARTED yavdr-remote

    -
    -

    7.8.1 default variables

    +
    +

    7.8.1 default variables

    -
    -

    7.8.2 tasks

    +
    +

    7.8.2 tasks

    ---
    @@ -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
     
    -
    -

    7.8.3 templates

    +
    +

    7.8.3 templates

    +
    +
      +
    1. Systemd Drop-in to start vdr with lirc support
      +
      {% if frontend != 'kodi' %}
       [vdr]
      @@ -1667,23 +1690,214 @@ User0     @osdteletext
       
      +
    2. +
    3. create /etc/rc_maps.cfg
      +
      +
      +
      #
      +# 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
      +
      -
      -

      7.8.4 files

      +
      +
    4. +
    +
    +
    +

    7.8.4 files

    -
    -

    7.9 pulseaudio

    +
    +

    7.9 pulseaudio

    -
    -

    7.9.1 tasks

    +
    +

    7.9.1 tasks

    ---
     
    -- 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
     
    -
    -

    7.9.2 templates

    +
    +

    7.9.2 templates

    # Use PulseAudio by default
    @@ -1723,12 +1938,12 @@ User0     @osdteletext
     
    -
    -

    7.10 yavdr-xorg

    +
    +

    7.10 yavdr-xorg

    -
    -

    7.10.1 About the GUI session

    +
    +

    7.10.1 About the GUI session

    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

    -
    -

    7.10.2 default variables

    +
    +

    7.10.2 default variables

    -
    -

    7.10.3 tasks

    +
    +

    7.10.3 tasks

    +
    +
      +
    1. main.yml
      +
      ---
       # 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
       
      - +
      +
    2. +
    3. setup-xorg.yml
      +
      ---
       # 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
       
      - +
      +
    4. +
    5. detect-xorg.yml
      +
      ---
       # 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
      +
       
      - +
      +
    6. +
    7. desktop-session.yml
      +
      ---
       # 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
       
      +
    8. +
    -
    -

    7.10.4 templates

    +
    +

    7.10.4 templates

      -
    1. xorg
      +
    2. xorg
        -
      1. x-verbose@.service
        +
      2. x-verbose@.service
        # 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
         
      3. -
      4. Drop-in snippet for x@.service
        +
      5. Drop-in snippet for x@.service
        [Unit]
        @@ -2074,7 +2347,7 @@ In order to achive a clean shutdown of the session, x@t7.service is
         
      6. -
      7. Drop-in snippet for vdr.service
        +
      8. Drop-in snippet for vdr.service
        # 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
         
      9. -
      10. .xinitrc
        +
      11. .xinitrc
        #!/bin/bash
        @@ -2097,7 +2370,7 @@ In order to achive a clean shutdown of the session, x@t7.service is
         
      12. -
      13. xorg.conf
        +
      14. xorg.conf
        Section "Device"
        @@ -2422,9 +2695,32 @@ EndSection
         
      15. +
      16. .Xresources
        +
        +
        +
        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
        +
        +
        +
        +
    3. -
    4. vdr
      +
    5. vdr
      [Service]
      @@ -2432,11 +2728,17 @@ EndSection
       EnvironmentFile=-/var/lib/vdr/.session-env
       
      + +
      +
      [Unit]
      +After=network-online.target
      +
      +
    6. -
    7. Systemd User Session
      +
    8. Systemd User Session
        -
      1. yavdr-desktop.target
        +
      2. yavdr-desktop.target
        [Unit]
        @@ -2450,7 +2752,7 @@ EndSection
         
      3. -
      4. detect-second-display
        +
      5. detect-second-display
        [Unit]
        @@ -2466,7 +2768,7 @@ EndSection
         
      6. -
      7. openbox-second.service
        +
      8. openbox-second.service
        [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
         
      9. -
      10. osd2web.service
        +
      11. osd2web.service
        [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
         
      12. -
      13. tmux.service
        +
      14. tmux.service
        [Unit]
        @@ -2527,7 +2830,7 @@ EndSection
         
      15. -
      16. wm-exit.service
        +
      17. wm-exit.service
        [Unit]
        @@ -2546,20 +2849,53 @@ EndSection
         
    9. -
    10. openbox
      + +
    11. irexec
      +
      +

      +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
      +
      +
      +
      +
    12. +
    13. openbox
        -
      1. autostart
        -
        +
      2. autostart
        +
        # 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
         
      3. -
      4. rc.xml
        -
        +
      5. rc.xml
        +
        <?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
         
        -
        -

        7.11 samba-install

        +
        +

        7.11 samba-install

        -
        -

        7.11.1 tasks

        +
        +

        7.11.1 tasks

        ---
        @@ -3439,12 +3775,12 @@ systemctl --user isolate yavdr-desktop.target
         
        -
        -

        7.12 samba-config

        +
        +

        7.12 samba-config

        -
        -

        7.12.1 tasks

        +
        +

        7.12.1 tasks

        ---
        @@ -3469,14 +3805,14 @@ systemctl --user isolate yavdr-desktop.target
         
        -
        -

        7.12.2 templates

        +
        +

        7.12.2 templates

          -
        1. smb.conf
          +
        2. smb.conf
            -
          1. global settings
            +
          2. global settings
            {{ ansible_managed_file | comment }}
            @@ -3562,7 +3898,7 @@ systemctl --user isolate yavdr-desktop.target
             
          3. -
          4. media directories
            +
          5. media directories
            {% for name, path in media_dirs.iteritems() %}
            @@ -3584,7 +3920,7 @@ systemctl --user isolate yavdr-desktop.target
             
          6. -
          7. include custom samba exports
            +
          8. include custom samba exports
            include = /etc/samba/smb.conf.custom
            @@ -3597,15 +3933,15 @@ systemctl --user isolate yavdr-desktop.target
             
        -
        -

        7.13 STARTED autoinstall-drivers

        +
        +

        7.13 STARTED autoinstall-drivers

        It would be nice to be able to detect if it is suitable to install those drivers:

        -
        -

        7.13.1 TODO sundtek for Sundtek devices (local or network connection)

        +
        +

        7.13.1 TODO sundtek for Sundtek devices (local or network connection)

        Vendor-IDs: @@ -3616,14 +3952,14 @@ Vendor-IDs:

        -
        -

        7.13.2 TODO dddvb-dkms if only newer DD cards are detected

        +
        +

        7.13.2 TODO dddvb-dkms if only newer DD cards are detected

        -
        -

        7.13.3 TODO media-build-experimental (up to kernel 4.8) for „old“ cards like TT S2-6400 FF

        +
        +

        7.13.3 TODO media-build-experimental (up to kernel 4.8) for „old“ cards like TT S2-6400 FF

        -
        -

        7.13.4 TODO newly merged DD drivers

        +
        +

        7.13.4 TODO newly merged DD drivers

        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 -

        7.14 autoinstall-ubuntu-drivers

        +
        +

        7.14 autoinstall-ubuntu-drivers

        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.

        -
        -

        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

        +This role installs the guest additions for virtualbox guests on Ubuntu 16.04 +

        + +
        +
        ---
        +# 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

        +
        +

        If a Sat>IP Server responds to a discovery request, the package vdr-plugin-satip is installed.

        -
        -

        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

        +

        Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware sollte in yavdr-firmware stecken

        -
        -

        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

        +
        ---
         # file roles/autoinstall-hardware-irmp/tasks/main.yml
        @@ -3930,24 +4300,24 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
         
          -
        1. TODO add other device ids if necessary
        2. +
        3. TODO add other device ids if necessary
        -
        -

        7.25 kodi

        -
        +
        +

        7.26 kodi

        +
        -
        -

        7.25.1 tasks

        -
        +
        +

        7.26.1 tasks

        +
          -
        1. Install KODI
          +
        2. Install KODI
        -
        -

        7.25.2 templates

        -
        +
        +

        7.26.2 templates

        +
          -
        1. kodi.service
          -
          +
        2. kodi.service
          +

          This systemd unit for the user session starts (and stops) kodi.

          @@ -4052,16 +4422,16 @@ This systemd unit for the user session starts (and stops) kodi.
        -
        -

        7.25.3 files

        -
        +
        +

        7.26.3 files

        +

        Those configuration files provide a preconfiguration for kodi which overrides the system wide configuration

          -
        1. Lircmap.xml
          -
          +
        2. Lircmap.xml
          +

          This file allows to map keys sent by remotes via eventlircd (which uses the name devinput) to kodi key names.

          @@ -4130,15 +4500,15 @@ This file allows to map keys sent by remotes via eventlircd (which uses the name
      6. -
      7. keymaps
        -
        +
      8. keymaps
        +

        This file maps the keys defined in Lircmap.xml to actions within kodi.

          -
        1. remote.xml
          -
          +
        2. remote.xml
          +
          <!-- 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

    +
      -
    • install libdvd-pkg, allow programs to eject optical media
      -
      +
    • install libdvd-pkg, allow programs to eject optical media
      +
      ---
       # 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

    This section contains custom modules for the yaVDR Playbooks. They are used to collect facts about the system and configure applications and daemons.

    -
    -

    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)
    • @@ -5462,9 +5842,9 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c default: ":0" description: - the DISPLAY variable to use when calling xrandr - preferred_outpus: + preferred_outputs: required: False - default: ["HDMI", "DP", "DVI", "VGA", "TV": 0] + default: ["HDMI", "DP", "DVI", "VGA", "TV"] description: - ranking of the preferred display connectors preferred_refreshrates: @@ -5636,6 +6016,9 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c universal_newlines=True) except subprocess.CalledProcessError: pass + except OSError: + # nvidia-smi is not installed + pass else: for row in csv.DictReader(data.splitlines(), delimiter=',', skipinitialspace=True): name = row['name'] @@ -5710,8 +6093,8 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c
    -
    -

    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
     

    Autor: Alexander Grothe <seahawk1986@gmx.de>

    -

    Created: 2017-11-21 Di 11:18

    +

    Created: 2017-12-26 Di 12:57

    Validate

    diff --git a/Manual.org b/Manual.org index 0656d8e..1e24809 100644 --- a/Manual.org +++ b/Manual.org @@ -305,6 +305,7 @@ extra_packages: - tree - vim - w-scan + - plymouth-theme-yavdr-logo #+END_SRC ** System pre-configuration #+BEGIN_SRC yaml :tangle group_vars/all :mkdirp yes @@ -314,7 +315,7 @@ frontend: vdr wakeup_method: acpiwakeup grub: timeout: 0 - boot_options: quiet nosplash + boot_options: quiet splash #+END_SRC * Roles ** install-dependencies diff --git a/group_vars/all b/group_vars/all index 3b26ff7..8084ab0 100644 --- a/group_vars/all +++ b/group_vars/all @@ -51,10 +51,11 @@ extra_packages: - tree - vim - w-scan + - plymouth-theme-yavdr-logo frontend: vdr #system: # shutdown: poweroff wakeup_method: acpiwakeup grub: timeout: 0 - boot_options: quiet nosplash + boot_options: quiet splash