diff --git a/Manual.html b/Manual.html index 15a1432..2db6a4f 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,262 +240,262 @@ 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. @@ -528,22 +528,24 @@ 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 by 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. @@ -578,8 +580,8 @@ We use a callback to generate tags for all roles autmatically:

-
-

3.1 Install script for local usage

+
+

3.1 Install script for local usage

set -e
@@ -603,12 +605,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: @@ -660,8 +662,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 @@ -699,8 +701,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: @@ -714,12 +716,12 @@ This playbook can either be used to run the installation on the localhost or any

-
-

6 Group Variables

+
+

6 Group Variables

-
-

6.1 PPAs

+
+

6.1 PPAs

---
@@ -737,8 +739,8 @@ This playbook can either be used to run the installation on the localhost or any
 
-
-

6.2 VDR user, directories, special configuration and plugins

+
+

6.2 VDR user, directories, special configuration and plugins

# properties of the user vdr and vdr-related options
@@ -764,8 +766,8 @@ This playbook can either be used to run the installation on the localhost or any
 
-
-

6.3 Media directories

+
+

6.3 Media directories

# dictionary of directories for (shared) files. Automatically exported via NFS and Samba if those roles are enabled
@@ -780,8 +782,8 @@ This playbook can either be used to run the installation on the localhost or any
 
-
-

6.4 NFS

+
+

6.4 NFS

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

6.5 Samba

+
+

6.5 Samba

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

6.6 Additional packages

+
+

6.6 Additional packages

# additional packages you want to install
@@ -818,8 +820,8 @@ This playbook can either be used to run the installation on the localhost or any
 
-
-

6.7 System pre-configuration

+
+

6.7 System pre-configuration

frontend: vdr
@@ -834,20 +836,20 @@ This playbook can either be used to run the installation on the localhost or any
 
-
-

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
    ---
    @@ -868,19 +870,19 @@ This playbook can either be used to run the installation on the localhost or any
     
    -
    -

    7.2 nvidia experimental drivers

    +
    +

    7.2 nvidia experimental drivers

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

    -
    -

    7.2.1 tasks

    +
    +

    7.2.1 tasks

      -
    1. main.yml
      +
    2. main.yml
      ---
      @@ -910,15 +912,15 @@ install nvidia-396 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. @@ -931,7 +933,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. @@ -948,7 +950,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. @@ -961,7 +963,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 @@ -975,7 +977,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. @@ -1008,15 +1010,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
      ---
      @@ -1033,7 +1035,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: @@ -1050,7 +1052,7 @@ This task prevents apt to automatically install all recommended dependencies for

    -
  • Set up package repositories
    +
  • Set up package repositories
    - name: add PPAs
    @@ -1070,7 +1072,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
    @@ -1082,10 +1084,15 @@ 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
      +
    2. SOMEDAY move from lineinfile to template
      - name: disable release-upgrade notifications
      @@ -1107,7 +1114,7 @@ This task prevents apt to automatically install all recommended dependencies for
       
  • -
  • Install essential packages
    +
  • Install essential packages
    - name: apt | install basic packages
    @@ -1139,7 +1146,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
    @@ -1153,14 +1160,20 @@ This task prevents apt to automatically install all recommended dependencies for
     
  • -
  • create directories
  • -
  • create sudoers drop-in for vdr
  • +
  • create directories
    +
    +
    +
  • +
  • create sudoers drop-in for vdr
    +
    +
    +
  • -
    -

    7.3.3 templates

    +
    +

    7.3.3 templates

    {{ ansible_managed | comment('c') }}
    @@ -1171,7 +1184,7 @@ APT::Install-Suggests "0";
     
      -
    1. yavdr sudoers drop-in
      +
    2. yavdr sudoers drop-in

      Allow the vdr user to restart vdr.service and reboot the system @@ -1186,12 +1199,12 @@ Allow the vdr user to restart vdr.service and reboot the system

    -
    -

    7.4 collect facts about the system with custom modules

    +
    +

    7.4 collect facts about the system with custom modules

    -
    -

    7.4.1 variables

    +
    +

    7.4.1 variables

    first_run: False
    @@ -1199,12 +1212,12 @@ Allow the vdr user to restart vdr.service and reboot the system
     
    -
    -

    7.4.2 tasks

    +
    +

    7.4.2 tasks

      -
    1. main.yml
      +
    2. main.yml
      - name: get information about usb and pci hardware and loaded kernel modules
      @@ -1253,16 +1266,16 @@ Allow the vdr user to restart vdr.service and reboot the system
       
    -
    -

    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
      ---
      @@ -1281,7 +1294,7 @@ Allow the vdr user to restart vdr.service and reboot the system
       
    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
      @@ -1296,7 +1309,7 @@ Allow the vdr user to restart vdr.service and reboot the system
       
    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
      @@ -1331,7 +1344,7 @@ Allow the vdr user to restart vdr.service and reboot the system
       
    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 @@ -1349,7 +1362,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
    @@ -1380,7 +1393,7 @@ The additional plugins to install can be set in the variable {{vdr_plugins
     
  • -
  • start vdr after network-online.target
    +
  • start vdr after network-online.target
    - name: create directory for vdr.service systemd drop-in files
    @@ -1401,8 +1414,8 @@ The additional plugins to install can be set in the variable {{vdr_plugins
     
     
    -
    -

    7.5.2 templates

    +
    +

    7.5.2 templates

    Start after network-online.target @@ -1414,12 +1427,12 @@ Start after network-online.target

    -
    -

    7.5.3 files

    +
    +

    7.5.3 files

      -
    1. remote.conf
      +
    2. remote.conf
      LIRC.Up KEY_UP
      @@ -1554,7 +1567,7 @@ XKeySym.Next       XF86AudioNext
       
    3. -
    4. keymacros.conf
      +
    5. keymacros.conf
      # Remote control key macros for VDR
      @@ -1580,12 +1593,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
    @@ -1593,8 +1606,8 @@ User0     @osdteletext
     
    -
    -

    7.6.2 tasks

    +
    +

    7.6.2 tasks

    ---
    @@ -1664,15 +1677,17 @@ 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

    ---
    @@ -1701,12 +1716,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 }})
      @@ -1717,7 +1732,7 @@ User0     @osdteletext
       
    3. -
    4. avahi services
      +
    5. avahi services
      <?xml version="1.0" standalone='no'?>
      @@ -1739,12 +1754,12 @@ User0     @osdteletext
       
      -
      -

      7.8 STARTED yavdr-remote

      +
      +

      7.8 STARTED yavdr-remote

      -
      -

      7.8.1 default variables

      +
      +

      7.8.1 default variables

      lircd0_socket: /var/run/lirc/lircd0
      @@ -1752,8 +1767,8 @@ User0     @osdteletext
       
      -
      -

      7.8.2 tasks

      +
      +

      7.8.2 tasks

      ---
      @@ -1826,12 +1841,12 @@ User0     @osdteletext
       
      -
      -

      7.8.3 templates

      +
      +

      7.8.3 templates

        -
      1. Systemd Drop-in to start vdr with lirc support
        +
      2. Systemd Drop-in to start vdr with lirc support
        {% if frontend != 'kodi' %}
        @@ -1842,7 +1857,7 @@ User0     @osdteletext
         
      3. -
      4. Systemd Drop-in to start lircd2uinput with lircd
        +
      5. Systemd Drop-in to start lircd2uinput with lircd
        [Service]
        @@ -1852,7 +1867,7 @@ User0     @osdteletext
         
      6. -
      7. create /etc/rc_maps.cfg
        +
      8. create /etc/rc_maps.cfg
        {{ ansible_managed | comment }}
        @@ -2044,17 +2059,19 @@ ati_remote    rc-medion-x10-digitainer   /lib/udev/rc_keymaps/rc-medion-x10-digi
         
      -
      -

      7.8.4 files

      +
      +

      7.8.4 files

      +
      +
      -
      -

      7.9 pulseaudio

      +
      +

      7.9 pulseaudio

      -
      -

      7.9.1 tasks

      +
      +

      7.9.1 tasks

      ---
      @@ -2077,8 +2094,8 @@ ati_remote    rc-medion-x10-digitainer   /lib/udev/rc_keymaps/rc-medion-x10-digi
       
      -
      -

      7.9.2 templates

      +
      +

      7.9.2 templates

      # Use PulseAudio by default
      @@ -2101,12 +2118,12 @@ ati_remote    rc-medion-x10-digitainer   /lib/udev/rc_keymaps/rc-medion-x10-digi
       
      -
      -

      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. To simplify starting and stopping the X-server and the desktop session a yavdr-xorg.service is provided by the package yavdr-xorg, which depends on the two units mentioned before. @@ -2135,8 +2152,8 @@ In order to achive a clean shutdown of the session, x@t7.service is

      -
      -

      7.10.2 default variables

      +
      +

      7.10.2 default variables

      first_run: False
      @@ -2159,12 +2176,12 @@ In order to achive a clean shutdown of the session, x@t7.service is
       
      -
      -

      7.10.3 tasks

      +
      +

      7.10.3 tasks

        -
      1. main.yml
        +
      2. main.yml
        ---
        @@ -2177,7 +2194,7 @@ In order to achive a clean shutdown of the session, x@t7.service is
         
      3. -
      4. setup-xorg.yml
        +
      5. setup-xorg.yml
        ---
        @@ -2298,7 +2315,7 @@ In order to achive a clean shutdown of the session, x@t7.service is
         
      6. -
      7. detect-xorg.yml
        +
      8. detect-xorg.yml
        ---
        @@ -2458,7 +2475,7 @@ In order to achive a clean shutdown of the session, x@t7.service is
         
      9. -
      10. intel.yml
        +
      11. intel.yml

        KMS drivers (like for intel (i915) and amd (radeon)) require additional configuration beneath a customized xorg.conf - for a „static“ output configuration (which works if the TV or AV receiver is not turned on) we need to force loading the display(s) EDID early during the boot process. @@ -2505,12 +2522,12 @@ Please note that rescanning the connected displays works only after removing the

      -
      -

      7.10.4 templates

      +
      +

      7.10.4 templates

        -
      1. grub
        +
      2. grub
        {% set output_flag = 'D' if ("HDMI" in xorg.primary.connector or "DVI" in xorg.primary.connector or "DP" in xorg.primary.connector) else 'e' %} 
        @@ -2520,9 +2537,11 @@ Please note that rescanning the connected displays works only after removing the
         
      3. -
      4. xorg
        +
      5. xorg
        +
        +
          -
        1. x-verbose@.service
          +
        2. x-verbose@.service
          # file: roles/yavdr-xorg/templates/systemd/system/x-verbose@.service.j2
          @@ -2538,7 +2557,7 @@ Please note that rescanning the connected displays works only after removing the
           
        3. -
        4. Drop-in snippet for x@.service
          +
        5. Drop-in snippet for x@.service
          [Unit]
          @@ -2564,7 +2583,7 @@ Please note that rescanning the connected displays works only after removing the
           
        6. -
        7. Drop-in snippet for vdr.service
          +
        8. Drop-in snippet for vdr.service
          {{ ansible_managed | comment }}
          @@ -2576,7 +2595,7 @@ Please note that rescanning the connected displays works only after removing the
           
        9. -
        10. xorg.conf snippets
          +
        11. xorg.conf snippets
          {{ ansible_managed | comment }}
          @@ -2590,7 +2609,7 @@ EndSection
           
        12. -
        13. xorg.conf
          +
        14. xorg.conf
          Section "Device"
          @@ -2916,7 +2935,7 @@ EndSection
           
      6. -
      7. vdr
        +
      8. vdr

        Set environment variables for system locale and user session on startup @@ -2932,12 +2951,12 @@ Set environment variables for system locale and user session on startup

      -
      -

      7.10.5 files

      +
      +

      7.10.5 files

        -
      1. initramfs EDID hook
        +
      2. initramfs EDID hook
        #!/bin/bash
        @@ -2963,16 +2982,16 @@ manual_add_modules i915 radeon
         
        -
        -

        7.11 yavdr-desktop

        +
        +

        7.11 yavdr-desktop

        -
        -

        7.11.1 Tasks

        +
        +

        7.11.1 Tasks

          -
        1. main.yml
          +
        2. main.yml
          ---
          @@ -3121,14 +3140,16 @@ manual_add_modules i915 radeon
           
        -
        -

        7.11.2 Templates

        +
        +

        7.11.2 Templates

          -
        1. xorg configuration
          +
        2. xorg configuration
          +
          +
            -
          1. .Xresources
            +
          2. .Xresources
            xterm*background: Black
            @@ -3151,7 +3172,7 @@ XTerm.vt100.font: 7x13
             
          3. -
          4. .xinitrc
            +
          5. .xinitrc
            #!/bin/bash
            @@ -3163,9 +3184,11 @@ XTerm.vt100.font: 7x13
             
        3. -
        4. openbox
          +
        5. openbox
          +
          +
            -
          1. autostart
            +
          2. autostart
            # forward environment variables to an environment file and the systemd user session
            @@ -3201,7 +3224,7 @@ systemctl --user isolate yavdr-desktop.target
             
          3. -
          4. rc.xml
            +
          5. rc.xml
            <?xml version="1.0" encoding="UTF-8"?>
            @@ -4021,7 +4044,7 @@ systemctl --user isolate yavdr-desktop.target
             
          6. -
          7. rc2.xml
            +
          8. rc2.xml
            <?xml version="1.0" encoding="UTF-8"?>
            @@ -4844,9 +4867,11 @@ systemctl --user isolate yavdr-desktop.target
             
        6. -
        7. Systemd User Session
          +
        8. Systemd User Session
          +
          +
            -
          1. yavdr-desktop.target
            +
          2. yavdr-desktop.target
            [Unit]
            @@ -4859,7 +4884,7 @@ systemctl --user isolate yavdr-desktop.target
             
          3. -
          4. detect-second-display
            +
          5. detect-second-display
            [Unit]
            @@ -4875,7 +4900,7 @@ systemctl --user isolate yavdr-desktop.target
             
          6. -
          7. openbox-second.service
            +
          8. openbox-second.service
            [Unit]
            @@ -4897,7 +4922,7 @@ systemctl --user isolate yavdr-desktop.target
             
          9. -
          10. osd2web.service
            +
          11. osd2web.service
            [Unit]
            @@ -4920,7 +4945,7 @@ systemctl --user isolate yavdr-desktop.target
             
          12. -
          13. tmux.service
            +
          14. tmux.service
            [Unit]
            @@ -4939,7 +4964,7 @@ systemctl --user isolate yavdr-desktop.target
             
          15. -
          16. wm-exit.service
            +
          17. wm-exit.service
            [Unit]
            @@ -4958,7 +4983,7 @@ systemctl --user isolate yavdr-desktop.target
             
        9. -
        10. irexec
          +
        11. irexec

          irexec.service starts irexec for the user session @@ -4992,12 +5017,12 @@ end

        -
        -

        7.12 samba-install

        +
        +

        7.12 samba-install

        -
        -

        7.12.1 tasks

        +
        +

        7.12.1 tasks

        ---
        @@ -5019,12 +5044,12 @@ end
         
        -
        -

        7.13 samba-config

        +
        +

        7.13 samba-config

        -
        -

        7.13.1 tasks

        +
        +

        7.13.1 tasks

        ---
        @@ -5049,14 +5074,16 @@ end
         
        -
        -

        7.13.2 templates

        +
        +

        7.13.2 templates

          -
        1. smb.conf
          +
        2. smb.conf
          +
          +
            -
          1. global settings
            +
          2. global settings
            {{ ansible_managed | comment }}
            @@ -5142,7 +5169,7 @@ end
             
          3. -
          4. media directories
            +
          5. media directories
            {% for name, path in media_dirs.iteritems() %}
            @@ -5164,7 +5191,7 @@ end
             
          6. -
          7. include custom samba exports
            +
          8. include custom samba exports
            include = /etc/samba/smb.conf.custom
            @@ -5177,15 +5204,15 @@ end
             
        -
        -

        7.14 STARTED autoinstall-drivers

        +
        +

        7.14 STARTED autoinstall-drivers

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

        -
        -

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

        +
        +

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

        Vendor-IDs: @@ -5196,7 +5223,7 @@ Vendor-IDs:

          -
        1. planned packages
          +
        2. planned packages
          • yavdr-hardware-sundtek
          • @@ -5207,8 +5234,8 @@ Vendor-IDs:
        -
        -

        7.14.2 TODO drivers for TT S2-6400 FF

        +
        +

        7.14.2 TODO drivers for TT S2-6400 FF

        https://github.com/s-moch/linux-saa716x - kann man den relevanten Teil als dkms-Paket bauen? @@ -5216,15 +5243,15 @@ Vendor-IDs:

        -
        -

        7.15 autoinstall-ubuntu-drivers

        +
        +

        7.15 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.15.1 tasks

        +
        +

        7.15.1 tasks

        ---
        @@ -5247,8 +5274,8 @@ The tool ubuntu-drivers is used to install the matching driver version for nvidi
         
        -
        -

        7.16 autoinstall-virtualbox-guest

        +
        +

        7.16 autoinstall-virtualbox-guest

        This role installs the guest additions for virtualbox guests on Ubuntu 16.04 @@ -5299,12 +5326,12 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04

        -
        -

        7.17 autoinstall-atric-usb

        +
        +

        7.17 autoinstall-atric-usb

        -
        -

        7.17.1 dependencies

        +
        +

        7.17.1 dependencies

        ---
        @@ -5316,8 +5343,8 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04
         
        -
        -

        7.17.2 tasks

        +
        +

        7.17.2 tasks

        ---
        @@ -5359,8 +5386,8 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04
         
        -
        -

        7.17.3 templates

        +
        +

        7.17.3 templates

        {{ ansible_managed | comment }}
        @@ -5389,12 +5416,12 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04
         
        -
        -

        7.18 autoinstall-yausbir

        +
        +

        7.18 autoinstall-yausbir

        -
        -

        7.18.1 dependencies

        +
        +

        7.18.1 dependencies

        ---
        @@ -5405,8 +5432,8 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04
         
        -
        -

        7.18.2 tasks

        +
        +

        7.18.2 tasks

        ---
        @@ -5448,8 +5475,8 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04
         
        -
        -

        7.18.3 templates

        +
        +

        7.18.3 templates

        {{ ansible_managed | comment }}
        @@ -5477,15 +5504,15 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04
         
        -
        -

        7.19 autoinstall-satip

        +
        +

        7.19 autoinstall-satip

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

        -
        -

        7.19.1 tasks

        +
        +

        7.19.1 tasks

        ---
        @@ -5510,12 +5537,12 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
         
        -
        -

        7.20 autoinstall-targavfd

        +
        +

        7.20 autoinstall-targavfd

        -
        -

        7.20.1 tasks

        +
        +

        7.20.1 tasks

        ---
        @@ -5531,12 +5558,12 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
         
        -
        -

        7.21 autoinstall-imonlcd

        +
        +

        7.21 autoinstall-imonlcd

        -
        -

        7.21.1 tasks

        +
        +

        7.21.1 tasks

        ---
        @@ -5552,12 +5579,12 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
         
        -
        -

        7.22 autoinstall-libcecdaemon

        +
        +

        7.22 autoinstall-libcecdaemon

        -
        -

        7.22.1 tasks

        +
        +

        7.22.1 tasks

        ---
        @@ -5573,12 +5600,12 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
         
        -
        -

        7.23 autoinstall-pvr350

        +
        +

        7.23 autoinstall-pvr350

        -
        -

        7.23.1 tasks

        +
        +

        7.23.1 tasks

        ---
        @@ -5594,8 +5621,8 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
         
        -
        -

        7.24 autoinstall-hauppauge-pvr

        +
        +

        7.24 autoinstall-hauppauge-pvr

        ---
        @@ -5610,12 +5637,12 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
         
        -
        -

        7.25 autoinstall-firmware

        +
        +

        7.25 autoinstall-firmware

        -
        -

        7.25.1 dependencies

        +
        +

        7.25.1 dependencies

        ---
        @@ -5626,8 +5653,8 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
         
        -
        -

        7.25.2 tasks

        +
        +

        7.25.2 tasks

        ---
        @@ -5668,12 +5695,12 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
         
        -
        -

        7.26 autoinstall-dvbsky-firmware

        +
        +

        7.26 autoinstall-dvbsky-firmware

        -
        -

        7.26.1 dependencies

        +
        +

        7.26.1 dependencies

        ---
        @@ -5684,8 +5711,8 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
         
        -
        -

        7.26.2 defaults

        +
        +

        7.26.2 defaults

        ---
        @@ -5695,8 +5722,8 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
         
        -
        -

        7.26.3 tasks

        +
        +

        7.26.3 tasks

        ---
        @@ -5746,15 +5773,15 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
         
        -
        -

        7.27 TODO autoinstall-dvbhddevice

        +
        +

        7.27 TODO autoinstall-dvbhddevice

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

        -
        -

        7.27.1 dependencies

        +
        +

        7.27.1 dependencies

        ---
        @@ -5765,8 +5792,8 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
         
        -
        -

        7.27.2 tasks

        +
        +

        7.27.2 tasks

        ---
        @@ -5783,12 +5810,12 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
         
        -
        -

        7.28 autoinstall-dvbsddevice

        +
        +

        7.28 autoinstall-dvbsddevice

        -
        -

        7.28.1 dependencies

        +
        +

        7.28.1 dependencies

        ---
        @@ -5799,8 +5826,8 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
         
        -
        -

        7.28.2 tasks

        +
        +

        7.28.2 tasks

        ---
        @@ -5818,12 +5845,12 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
         
        -
        -

        7.29 autoinstall-hardware-irmp

        +
        +

        7.29 autoinstall-hardware-irmp

        -
        -

        7.29.1 dependencies

        +
        +

        7.29.1 dependencies

        ---
        @@ -5834,8 +5861,8 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
         
        -
        -

        7.29.2 tasks

        +
        +

        7.29.2 tasks

        ---
        @@ -5851,19 +5878,21 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
         
        -
        -

        7.30 kodi

        +
        +

        7.30 kodi

        -
        -

        7.30.1 tasks

        +
        +

        7.30.1 tasks

          -
        1. Install KODI
          +
        2. Install KODI
          +
          +
            -
          • main.yml
            -
            +
          • main.yml
            +
            - import_tasks: install-kodi.yml tags=install,update,kodi:install
             - import_tasks: configure-kodi.yml tags=install,update,kodi:configure
            @@ -5871,7 +5900,7 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
             
          • -
          • install-kodi.yml
            +
          • install-kodi.yml
            ---
            @@ -5903,7 +5932,7 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
             
          • -
          • configure-kodi.yml
            +
          • configure-kodi.yml
            - name: create kodi.service for the user session
            @@ -5952,12 +5981,12 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
             
        -
        -

        7.30.2 templates

        +
        +

        7.30.2 templates

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

          This systemd unit for the user session starts (and stops) kodi. @@ -5982,15 +6011,15 @@ This systemd unit for the user session starts (and stops) kodi.

        -
        -

        7.30.3 files

        +
        +

        7.30.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. @@ -6061,14 +6090,14 @@ This file allows to map keys sent by remotes via eventlircd (which uses the name

      3. -
      4. keymaps
        +
      5. keymaps

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

          -
        1. remote.xml
          +
        2. remote.xml
          <?xml version="1.0" encoding="UTF-8"?>
          @@ -6620,17 +6649,17 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
           
      -
      -

      7.31 dvd

      +
      +

      7.31 dvd

      -
      -

      7.31.1 tasks

      +
      +

      7.31.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
        @@ -6671,15 +6700,17 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
         
      -
      -

      7.32 install-sundtek

      +
      +

      7.32 install-sundtek

      -
      -

      7.32.1 variables

      +
      +

      7.32.1 variables

      +
      -
      -

      7.32.2 tasks

      +
      +
      +

      7.32.2 tasks

      ---
      @@ -6728,9 +6759,13 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
       
      -
      -

      7.32.3 templates

      +
      +

      7.32.3 templates

      +
      +
        +
      1. /etc/sundtek.conf
        +
        # ----- GLOBAL SECTION -----
         #Set loglevel for logging to /var/log/mediasrv.log
        @@ -6742,7 +6777,7 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
         #pluginpath=/path/to/drivers            #set path to drivers
         #dvb_api_version=x.y                    #default API version will be parsed from
                                                 #/usr/include/linux/dvb/version.h, if no such file is
        -                                        #available the latest internally supported API version will be 
        +                                        #available the latest internally supported API ::version will be 
                                                 #used (which will be quite new)
         #audio_skip_bytes=N                     #when changing analogTV channels, 
                                                 #skip N bytes to suppress audio noise
        @@ -6833,10 +6868,12 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
         
        +
      2. +
      -
      -

      7.33 template-test

      +
      +

      7.33 template-test

      ---
      @@ -7077,12 +7114,12 @@ EndSection
       
      -
      -

      7.34 wakeup

      +
      +

      7.34 wakeup

      -
      -

      7.34.1 defaults

      +
      +

      7.34.1 defaults

      ---
      @@ -7092,8 +7129,8 @@ EndSection
       
      -
      -

      7.34.2 tasks

      +
      +

      7.34.2 tasks

      ---
      @@ -7114,8 +7151,8 @@ EndSection
       
      -
      -

      7.34.3 templates

      +
      +

      7.34.3 templates

      {{ ansible_managed | comment }}
      @@ -7141,12 +7178,12 @@ ACPI_START_AHEAD=5
       
      -
      -

      7.35 grub-config

      +
      +

      7.35 grub-config

      -
      -

      7.35.1 default variables

      +
      +

      7.35.1 default variables

      system:
      @@ -7158,8 +7195,8 @@ ACPI_START_AHEAD=5
       
      -
      -

      7.35.2 tasks

      +
      +

      7.35.2 tasks

      ---
      @@ -7184,8 +7221,8 @@ ACPI_START_AHEAD=5
       
      -
      -

      7.35.3 templates

      +
      +

      7.35.3 templates

      #!/bin/sh
      @@ -7208,8 +7245,8 @@ menuentry "PowerOff" 
      -

      7.35.4 handlers

      +
      +

      7.35.4 handlers

      ---
      @@ -7232,15 +7269,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.
      @@ -7418,8 +7455,8 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c
       
      -
      -

      8.2 pci_facts.py

      +
      +

      8.2 pci_facts.py

      @@ -7495,8 +7532,8 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c
       
      -
      -

      8.3 satip_facts.py

      +
      +

      8.3 satip_facts.py

      DOCUMENTATION = '''
      @@ -7620,8 +7657,8 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c
       
      -
      -

      8.4 xrandr_facts.py

      +
      +

      8.4 xrandr_facts.py

      • [ ] support multiple screens (-d :0.0 .. :0.n)
      • @@ -7908,8 +7945,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
      @@ -8002,7 +8039,7 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c
       

      Autor: Alexander Grothe <seahawk1986@gmx.de>

      -

      Created: 2018-09-05 Mi 12:23

      +

      Created: 2018-09-20 Do 09:00

      Validate

      diff --git a/Manual.org b/Manual.org index d3d46d3..80efa19 100644 --- a/Manual.org +++ b/Manual.org @@ -1,5 +1,8 @@ # -*- mode: org; -*- * Settings for Export :noexport: +:PROPERTIES: +:ID: bf0e4a53-06be-4c8c-aa60-be8cb48d790f +:END: :DOCUMENT_OPTIONS: #+HTML_HEAD: #+HTML_HEAD: @@ -35,7 +38,13 @@ :END: * User Stories +:PROPERTIES: +:ID: b698d444-465b-4c57-855a-2abac22c5b7d +:END: ** yavdr-full +:PROPERTIES: +:ID: 944c65e5-87d9-4db1-aa0b-dbaae3ba8f13 +:END: A User wants to install yaVDR without customization and relies on full automation. After installing a supported Ubuntu Server version and (if needed) setting up the network connection, the install script is downloaded and started. @@ -57,20 +66,39 @@ Several roles are used to tie everything together: - grub-config :: update grub configuration based on executed roles *** Using vdr, pulseaudio and xorg together +:PROPERTIES: +:ID: a107fd52-172c-4018-8374-8f2ce299f842 +:END: * Notes :noexport: :PROPERTIES: :noexport: nil +:ID: 3e321e69-f1c1-4ec3-8f53-1cf714ea1af5 :END: ** TODO [#A] optimize and document data structure for xorg parsing script +:PROPERTIES: +:ID: 5aceca9d-016f-45eb-a4bf-7d79dea9c48d +:END: ** TODO [#A] xorg.conf templates for intel, nvidia, noveau and radeon drivers +:PROPERTIES: +:ID: ca82eb6b-e491-4c61-b65f-a394b6b654de +:END: *** STARTED BusID für (nvidia) Grafikkarten aus lspci auslesen +:PROPERTIES: +:ID: e664458a-ad80-4b29-a794-bd433f8d2a22 +:END: Format: "%d:%d:%d" (lspci liefert es als "%04x:%02x:%02x.%x", domain, bus, device, function) - Wie mit mehreren GPUs umgehen? Priorität bzw. Reihenfolge? - Was ist mit NVidia Optimus/Bumblebee (AFAIK keine VDPAU-Funktionalität)? - Wie BusID der xrandr-Ausgabe zuordnen? *** NVIDIA-Documentation about the BusID: +:PROPERTIES: +:ID: 4341f6bd-fdec-4dad-8d3b-83b95c20189d +:END: **** What is the format of a PCI Bus ID? +:PROPERTIES: +:ID: 54bf4fd1-3bd2-4752-a0ae-22e90c477235 +:END: Different tools have different formats for the PCI Bus ID of a PCI device. The X server's "BusID" X configuration file option interprets the BusID string in the format "bus@domain:device:function" (the "@domain" portion is only needed if the PCI domain is non-zero), in decimal. More specifically, @@ -83,6 +111,9 @@ The lspci(8) utility, in contrast, reports the PCI BusID of a PCI device in the "%04x:%02x:%02x.%x", domain, bus, device, function in printf(3) syntax. The "Bus Location" reported in the /proc/driver/nvidia/gpus/0..N/information files matches the lspci format. **** Parsen der /proc/driver/nvidia/gpus/*/information Dateien +:PROPERTIES: +:ID: 9e10199a-5b92-4272-b82d-66a11820a03c +:END: #+BEGIN_SRC python # read the BusID for nvidia cards and the model name # from the /proc/driver/nvidia/gpus/*/information file(s) @@ -114,15 +145,27 @@ if __name__ == '__main__': print(BusIDs) #+END_SRC ** TODO [#B] plan for customization of xorg settings by the user +:PROPERTIES: +:ID: 1b0281a3-1bc7-4b57-936b-f2a13d8723d3 +:END: either directly or using a configuration wizard or a web frontend ** SOMEDAY [#C] select best frontend based on GPU +:PROPERTIES: +:ID: 324e03d0-7fe8-4382-be44-7372e14d0b82 +:END: - intel :: softhddevice-vpp - amd :: softhddevice-vpp - nvidia :: softhddevice-openglosd (if no HEVC channels are needed) * Introduction +:PROPERTIES: +:ID: 7156cbd8-2071-4e6c-9636-4b84e54cf7be +:END: 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 by 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. * Installing and configuring yaVDR with Ansible +:PROPERTIES: +:ID: a22ce6b4-b251-4293-aa85-78d6dfd6669a +:END: This is an experimental feature which allows to set up a yaVDR installation based on a normal Ubuntu Server 16.04.x installation using [[http://ansible.com][Ansible]]. This Manual is written in org-mode for Emacs and can rewrite the complete ansible configuration if you call ~org-babel-tangle~ from within emacs. @@ -140,6 +183,9 @@ We use a callback to generate tags for all roles autmatically: #+INCLUDE: "ansible.cfg" src conf ** Install script for local usage +:PROPERTIES: +:ID: c41eda06-8a67-478e-ae66-cc11f764f279 +:END: #+BEGIN_SRC shell :tangle install-yavdr.sh :shebang "#!/bin/bash" set -e if (( $EUID != 0 )); then @@ -159,7 +205,13 @@ apt-get -y install --no-install-recommends ansible python-jmespath ansible-playbook yavdr07.yml -b -i 'localhost_inventory' --connection=local --tags="all" --extra-vars "first_run=True" #+END_SRC * Playbooks +:PROPERTIES: +:ID: 4fa1a3d2-e504-4764-b587-ae9fd0bc7789 +:END: ** yavdr07.yml +:PROPERTIES: +:ID: 2070ae90-9db7-4e82-bd1a-7320d396bfaf +:END: The ~yavdr07.yml~ playbook sets up a fully-featured yaVDR installation: #+BEGIN_SRC yaml :tangle yavdr07.yml :mkdirp yes :padline no --- @@ -206,6 +258,9 @@ The ~yavdr07.yml~ playbook sets up a fully-featured yaVDR installation: - import_tasks: handlers/main.yml #+END_SRC ** yavdr07-headless.yml +:PROPERTIES: +:ID: c13a8871-5fe1-48cd-ae63-93a3641f93c1 +:END: For a headless server installation ~yavdr07-headless.yml~ is a good choice #+BEGIN_SRC yaml :tangle yavdr07-headless.yml :mkdirp yes :padline no --- @@ -237,6 +292,9 @@ For a headless server installation ~yavdr07-headless.yml~ is a good choice - import_tasks: handlers/main.yml #+END_SRC * Hosts +:PROPERTIES: +:ID: 552370c6-7ee3-4fa4-9244-957dce8abb8e +:END: 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: #+BEGIN_SRC conf :tangle localhost_inventory :mkdirp yes :padline no @@ -245,7 +303,13 @@ localhost connection=local #+END_SRC * Group Variables +:PROPERTIES: +:ID: 4cdb74a4-5ad2-47f4-b0ed-bd65fc8fc65f +:END: ** PPAs +:PROPERTIES: +:ID: dbae36e3-610a-4abc-aa76-5a6fc75edb9b +:END: #+BEGIN_SRC yaml :tangle group_vars/all :mkdirp yes --- # file: group_vars/all @@ -260,6 +324,9 @@ repositories: #- '{{ ppa_owner }}/{{branch}}-kodi' #+END_SRC ** VDR user, directories, special configuration and plugins +:PROPERTIES: +:ID: 6b9a4009-32f6-431f-8c5f-1f0199755dde +:END: #+BEGIN_SRC yaml :tangle group_vars/all :mkdirp yes # properties of the user vdr and vdr-related options # NOTE: user name, uid and confdir must match the values set by the vdr package @@ -282,6 +349,9 @@ vdr_plugins: - vdr-plugin-softhddevice-vpp #+END_SRC ** Media directories +:PROPERTIES: +:ID: eb002b3a-d1c9-4d57-9913-97ab2a85e568 +:END: #+BEGIN_SRC yaml :tangle group_vars/all :mkdirp yes # dictionary of directories for (shared) files. Automatically exported via NFS and Samba if those roles are enabled media_dirs: @@ -293,17 +363,26 @@ media_dirs: recordings: '{{ vdr.recdir }}' #+END_SRC ** NFS +:PROPERTIES: +:ID: 3a5a4687-36a1-496f-929b-7455917abcf4 +:END: #+BEGIN_SRC yaml :tangle group_vars/all :mkdirp yes nfs: insecure: false # set to true for OS X clients or if you plan to use libnfs as unprivileged user (e.g. KODI) #+END_SRC ** Samba +:PROPERTIES: +:ID: a796849f-6bde-41db-b92b-57e328697480 +:END: #+BEGIN_SRC yaml :tangle group_vars/all :mkdirp yes samba: workgroup: YAVDR windows_compatible: '{{ vdr.safe_dirnames }}' # set to true to disable unix extensions, enable follow symlinks and wide links #+END_SRC ** Additional packages +:PROPERTIES: +:ID: 68883dc3-9bab-42d3-a7eb-0d4cbd747711 +:END: #+BEGIN_SRC yaml :tangle group_vars/all :mkdirp yes # additional packages you want to install extra_packages: @@ -316,6 +395,9 @@ extra_packages: - plymouth-theme-yavdr-logo #+END_SRC ** System pre-configuration +:PROPERTIES: +:ID: 4fd6c8f3-e7bc-4dbc-ad12-5faadb74516a +:END: #+BEGIN_SRC yaml :tangle group_vars/all :mkdirp yes frontend: vdr #system: @@ -326,9 +408,21 @@ grub: boot_options: quiet splash #+END_SRC * Roles +:PROPERTIES: +:ID: 50ac2e79-c494-4a32-8632-313d49bdb2b7 +:END: ** install-dependencies +:PROPERTIES: +:ID: 5b6afb72-fabe-4cfc-b61e-ed40bd05396a +:END: *** tasks +:PROPERTIES: +:ID: 928993cf-fa67-4eae-8bb3-1d09bbceb704 +:END: **** main.yml +:PROPERTIES: +:ID: 9d20ce2f-a503-4f50-8fe2-97517da6557f +:END: #+BEGIN_SRC yaml :tangle roles/install-packages/tasks/main.yml :mkdirp yes :padline no --- @@ -343,9 +437,18 @@ grub: #+END_SRC ** nvidia experimental drivers +:PROPERTIES: +:ID: 32fdd667-36a0-4dc8-a94f-cbb2bf24ef75 +:END: install nvidia-396 from ppa:graphics-drivers/ppa *** tasks +:PROPERTIES: +:ID: efc51a02-dbf3-4421-a1a8-fd0b5dab1a5c +:END: **** main.yml +:PROPERTIES: +:ID: 27504b06-bf0f-4b0a-8756-8d6d1cc23abf +:END: #+BEGIN_SRC yaml :tangle roles/nvidia-experimental/tasks/main.yml :mkdirp yes :padline no --- @@ -369,8 +472,14 @@ install nvidia-396 from ppa:graphics-drivers/ppa - packages #+END_SRC ** yavdr-common +:PROPERTIES: +:ID: 83814b17-9170-4b92-8b3b-4ee87f9eee26 +:END: This role is used to set up a basic yaVDR installation. It creates the directories, installs the vdr and other useful packages. *** default variables +:PROPERTIES: +:ID: 61465f32-6b30-43a0-804a-032256acbb18 +:END: This section is for reference only, please use the files in ~global_vars~ for customizations. #+BEGIN_SRC yaml :tangle roles/yavdr-common/defaults/main.yml :mkdirp yes :padline no --- @@ -378,6 +487,9 @@ This section is for reference only, please use the files in ~global_vars~ for cu #+END_SRC **** Repositories +:PROPERTIES: +:ID: c78ea666-ecff-4360-89e7-543df5e980a9 +:END: 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. #+BEGIN_SRC yaml :tangle roles/yavdr-common/defaults/main.yml :mkdirp yes :padline yes branch: unstable @@ -389,6 +501,9 @@ repositories: - 'ppa:yavdr/{{branch}}-yavdr' #+END_SRC **** Drivers +:PROPERTIES: +:ID: 0ec042d9-e535-42f2-8996-4322e12ba171 +:END: 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*. #+BEGIN_SRC yaml :tangle roles/yavdr-common/defaults/main.yml :mkdirp yes :padline yes drivers: @@ -396,6 +511,9 @@ drivers: ddvb-dkms: auto #+END_SRC **** Additional Packages +:PROPERTIES: +:ID: 01776db6-487d-4926-9032-bf2c802cf537 +:END: Add additional packages you would like to have on your installation to this list #+BEGIN_SRC yaml :tangle roles/yavdr-common/defaults/main.yml :mkdirp yes :padline yes extra_packages: @@ -404,6 +522,9 @@ extra_packages: - w-scan #+END_SRC **** VDR +:PROPERTIES: +:ID: 865faeec-1c2b-43ca-9a72-99aa59a78a74 +:END: This section allows you to set the recording directory, the user and group that runs the vdr and it's home directory. - user :: the vdr user name - group :: the main group for the user vdr @@ -427,8 +548,14 @@ vdr: override_vdr_charset: false #+END_SRC *** tasks +:PROPERTIES: +:ID: 64dc0a0b-48b4-48f7-b92f-0c52db61e0c0 +:END: yavdr-common executes the following tasks: **** main.yml +:PROPERTIES: +:ID: 91c2ffd5-6dc9-4cbc-b50a-525bf0e79a34 +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-common/tasks/main.yml :mkdirp yes :padline no --- # file: roles/yavdr-common/tasks/main.yml @@ -442,6 +569,9 @@ yavdr-common executes the following tasks: tags: [install] #+END_SRC ***** Disable default installation of recommended packages +:PROPERTIES: +:ID: 9ffe98b0-452a-463b-a29e-507cb519533e +:END: This task prevents apt to automatically install all recommended dependencies for packages: #+BEGIN_SRC yaml :tangle roles/yavdr-common/tasks/configure_apt.yml :mkdirp yes :padline no --- @@ -453,6 +583,9 @@ yavdr-common executes the following tasks: #+END_SRC ***** Set up package repositories +:PROPERTIES: +:ID: 9e37b558-6748-4b07-aefc-5528bfa337ab +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-common/tasks/configure_apt.yml :mkdirp yes - name: add PPAs apt_repository: @@ -469,6 +602,9 @@ yavdr-common executes the following tasks: update_cache: yes #+END_SRC ***** Use bash instead of dash +:PROPERTIES: +:ID: 2a09027d-cb5a-4957-98ed-6140d495b048 +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-common/tasks/configure_system.yml :mkdirp yes - name: use bash instead of dash shell: | @@ -477,6 +613,9 @@ yavdr-common executes the following tasks: #+END_SRC ***** create user vdr +:PROPERTIES: +:ID: c3a9bb0e-51e1-472a-b1c9-14215a7a3e5c +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-common/tasks/configure_system.yml :exports none :mkdirp yes - name: create vdr group group: @@ -496,7 +635,13 @@ yavdr-common executes the following tasks: #+END_SRC ***** Disable release-upgrade notifications +:PROPERTIES: +:ID: e4269c24-0273-4221-b6ca-a429cd2cf4f1 +:END: ****** SOMEDAY move from lineinfile to template +:PROPERTIES: +:ID: 43ed1009-31df-4eae-81b2-133261f7e6b4 +:END: :LOGBOOK: - State "SOMEDAY" from "TODO" [2017-11-22 Mi 10:59] :END: @@ -516,6 +661,9 @@ yavdr-common executes the following tasks: #+END_SRC ***** Install essential packages +:PROPERTIES: +:ID: aa6d9c2d-f052-4ca2-a55e-b31fe04b11e1 +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-common/tasks/configure_system.yml :mkdirp yes - name: apt | install basic packages apt: @@ -544,6 +692,9 @@ yavdr-common executes the following tasks: #+END_SRC ***** Install additional packages (user defined) +:PROPERTIES: +:ID: 8b0832b1-0d61-4329-942d-b3bb3e6ada0a +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-common/tasks/configure_system.yml - name: apt | install extra packages apt: @@ -554,6 +705,9 @@ yavdr-common executes the following tasks: '{{ extra_packages }}' #+END_SRC ***** create directories +:PROPERTIES: +:ID: 0b1784e5-6573-4377-903d-6501604eedf8 +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-common/tasks/create_directories.yml :exports none :mkdirp yes - name: ensure /etc/yavdr exists file: @@ -571,6 +725,9 @@ yavdr-common executes the following tasks: with_dict: '{{ media_dirs }}' #+END_SRC ***** create sudoers drop-in for vdr +:PROPERTIES: +:ID: ccb5824a-4436-4956-a02c-9538256129cf +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-common/tasks/create_sudoers.yml :exports none :mkdirp yes - name: create /etc/sudoers.d/yavdr from template template: @@ -580,6 +737,9 @@ yavdr-common executes the following tasks: validate: visudo -cf %s #+END_SRC *** templates +:PROPERTIES: +:ID: 48c1e3f9-5edf-409a-b826-629eac9ee4b4 +:END: #+BEGIN_SRC c :tangle roles/yavdr-common/templates/90-norecommends.j2 :mkdirp yes :padline no {{ ansible_managed | comment('c') }} // Recommends are as of now still abused in many packages @@ -587,18 +747,33 @@ APT::Install-Recommends "0"; APT::Install-Suggests "0"; #+END_SRC **** yavdr sudoers drop-in +:PROPERTIES: +:ID: 8667f68e-9805-4f13-a0cc-28f3393d2687 +:END: Allow the vdr user to restart ~vdr.service~ and reboot the system #+BEGIN_SRC shell :tangle roles/yavdr-common/templates/yavdr.sudoers.j2 :mkdirp yes :padline no {{ vdr.user }} ALL=NOPASSWD: /bin/systemctl --no-block restart vdr.service {{ vdr.user }} ALL=NOPASSWD: /bin/systemctl --no-block reboot #+END_SRC ** collect facts about the system with custom modules +:PROPERTIES: +:ID: 6fb47bef-2511-4d82-b5ef-5cdfac62087f +:END: *** variables +:PROPERTIES: +:ID: 348d726a-1030-4fa9-b791-ced571a71d36 +:END: #+BEGIN_SRC yaml :tangle roles/collect-facts/defaults/main.yml :mkdirp yes first_run: False #+END_SRC *** tasks +:PROPERTIES: +:ID: 0ca02941-519a-4ea0-8097-c93c5249980e +:END: ***** main.yml +:PROPERTIES: +:ID: 7cbaa7cc-ce6e-4713-85ed-dd083bbb3895 +:END: #+BEGIN_SRC yaml :tangle roles/collect-facts/tasks/main.yml :mkdirp yes - name: get information about usb and pci hardware and loaded kernel modules hardware_facts: @@ -641,8 +816,17 @@ first_run: False - xine #+END_SRC ** vdr +:PROPERTIES: +:ID: 75c016f6-a5e1-4c27-af0a-6cdcfe3db877 +:END: *** tasks +:PROPERTIES: +:ID: b7a3bd2d-fa19-4c79-809c-acc8c92f2a43 +:END: **** install the basic vdr packages +:PROPERTIES: +:ID: 0531de50-21f9-41ea-a0b1-9e808e6d0e9f +:END: #+BEGIN_SRC yaml :tangle roles/vdr/tasks/main.yml :mkdirp yes :padline no --- # file: roles/vdr/tasks/main.yml @@ -658,6 +842,9 @@ first_run: False - vdr-plugin-dbus2vdr #+END_SRC **** Add svdrp/svdrp-disc to /etc/services +:PROPERTIES: +:ID: e44d3ba8-886a-4d97-a9dc-f141ecba2ccd +:END: #+BEGIN_SRC yaml :tangle roles/vdr/tasks/main.yml :mkdirp yes - name: add svdrp and svdrp-disc to /etc/services lineinfile: @@ -669,6 +856,9 @@ first_run: False - "svdrp-disc 6419/udp" #+END_SRC **** Set up the recording directory for the vdr user +:PROPERTIES: +:ID: 7dd1b799-0a41-444f-834d-a368a5bc38f8 +:END: #+BEGIN_SRC yaml :tangle roles/vdr/tasks/main.yml :mkdirp yes - name: create vdr recdir file: @@ -700,6 +890,9 @@ first_run: False # TODO: set recdir, user etc. in /etc/vdr/conf.d/ #+END_SRC **** Install additional vdr plugins +:PROPERTIES: +:ID: 9d44b9ce-308b-4388-bc55-a93bbded261f +:END: The additional plugins to install can be set in the variable ~{{vdr_plugins}}~ in the group variables #+BEGIN_SRC yaml :tangle roles/vdr/tasks/main.yml :mkdirp yes - name: apt | install additional vdr plugins @@ -712,6 +905,9 @@ The additional plugins to install can be set in the variable ~{{vdr_plugins}}~ i notify: [ 'Restart VDR' ] #+END_SRC **** copy vdr configuration files (if they don't exist yet) +:PROPERTIES: +:ID: d89c1baa-2aff-495f-b74b-64431d9fa4ba +:END: #+BEGIN_SRC yaml :tangle roles/vdr/tasks/main.yml :mkdirp yes - name: ensure vdr is stopped systemd: @@ -739,6 +935,9 @@ The additional plugins to install can be set in the variable ~{{vdr_plugins}}~ i #+END_SRC **** start vdr after network-online.target +:PROPERTIES: +:ID: e435efbc-0690-40cc-bf55-5516b23f4ccf +:END: #+BEGIN_SRC yaml :tangle roles/vdr/tasks/main.yml :mkdirp yes - name: create directory for vdr.service systemd drop-in files file: @@ -754,13 +953,22 @@ The additional plugins to install can be set in the variable ~{{vdr_plugins}}~ i #+END_SRC *** templates +:PROPERTIES: +:ID: 0c5c2e3b-57af-46a9-b69e-3499e25fce59 +:END: Start after network-online.target #+BEGIN_SRC conf :tangle roles/vdr/templates/systemd/network-online.j2 :mkdirp yes [Unit] After=network-online.target #+END_SRC *** files +:PROPERTIES: +:ID: a784d230-8455-4414-a01c-fbc4acea82bc +:END: **** remote.conf +:PROPERTIES: +:ID: f0242473-e2e9-4c77-8f31-12ae39c5d1a9 +:END: #+BEGIN_SRC conf :tangle roles/vdr/files/remote.conf :mkdirp yes :padline no LIRC.Up KEY_UP LIRC.Down KEY_DOWN @@ -892,6 +1100,9 @@ XKeySym.Prev XF86AudioPrev XKeySym.Next XF86AudioNext #+END_SRC **** keymacros.conf +:PROPERTIES: +:ID: 376f7ba3-d58e-4a5f-a811-d6f82d070587 +:END: #+BEGIN_SRC conf :tangle roles/vdr/files/keymacros.conf :padline no # Remote control key macros for VDR # @@ -911,11 +1122,20 @@ User0 @osdteletext #+END_SRC ** STARTED yavdr-network +:PROPERTIES: +:ID: 5cae8669-27f7-4fd5-844c-8b16daa4daf4 +:END: *** default variables +:PROPERTIES: +:ID: e1c8c821-b1eb-4ee3-91fc-ff67286bc0ac +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-network/main.yml :mkdirp yes :padline no install_avahi: true #+END_SRC *** tasks +:PROPERTIES: +:ID: 5a724dd4-6f39-4a42-a7d9-f2a69c3cfca1 +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-network/tasks/main.yml :mkdirp yes :padline no --- # this playbook sets up network services for a yaVDR installation @@ -981,8 +1201,17 @@ install_avahi: true #+END_SRC ** nfs-server +:PROPERTIES: +:ID: dc47cc3a-6f18-4c8f-8d07-845f18015ee7 +:END: *** TODO avahi-services für NFS beim Stoppen des nfs-kernel-servers depublizieren, beim Start wieder announcen +:PROPERTIES: +:ID: 3b548bca-9c10-41f8-bd0f-71fb4b8d76dc +:END: *** tasks +:PROPERTIES: +:ID: c64ee510-ab40-4f99-9429-d8cdbc96268b +:END: #+BEGIN_SRC yaml :tangle roles/nfs-server/tasks/main.yml :mkdirp yes :padline no --- @@ -1008,7 +1237,13 @@ install_avahi: true with_dict: '{{ media_dirs }}' #+END_SRC *** templates +:PROPERTIES: +:ID: 824677ea-d908-49ea-90c3-26d0173df138 +:END: **** /etc/exports +:PROPERTIES: +:ID: bd679410-847e-45cf-817c-7977436e1826 +:END: #+BEGIN_SRC conf :tangle roles/nfs-server/templates/nfs-exports.j2 :mkdirp yes :padline no /srv *(rw,fsid=0,sync,no_subtree_check,all_squash,anongid={{ vdr.gid }},anonuid={{ vdr.uid }}) {% for name, path in media_dirs.iteritems() %} @@ -1016,6 +1251,9 @@ install_avahi: true {% endfor %} #+END_SRC **** avahi services +:PROPERTIES: +:ID: 6fc68020-23c2-4682-945a-396598c5b8e6 +:END: #+BEGIN_SRC xml :tangle roles/nfs-server/templates/avahi/service.j2 :mkdirp yes :padline no @@ -1031,11 +1269,20 @@ install_avahi: true #+END_SRC ** STARTED yavdr-remote +:PROPERTIES: +:ID: b36bb1c3-31df-4516-98a8-3887dfa911ec +:END: *** default variables +:PROPERTIES: +:ID: 1a04ff42-42b5-4ab2-9edd-0d0bfaa1c8bb +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-remote/defaults/main.yml :mkdirp yes :padline no lircd0_socket: /var/run/lirc/lircd0 #+END_SRC *** tasks +:PROPERTIES: +:ID: 37697c78-5ad9-4557-b42a-adc344b419fa +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-remote/tasks/main.yml :mkdirp yes :padline no --- # This role is used to set up the yaVDR remote control configuration. @@ -1105,7 +1352,13 @@ lircd0_socket: /var/run/lirc/lircd0 - config #+END_SRC *** templates +:PROPERTIES: +:ID: 63c9e331-4c32-4fca-9138-b8515071e996 +:END: **** Systemd Drop-in to start vdr with lirc support +:PROPERTIES: +:ID: fbd69a95-17a2-4e25-a04c-a5ddb89dbe08 +:END: #+BEGIN_SRC conf :tangle roles/yavdr-remote/templates/03-vdr-lirc.conf.j2 :mkdirp yes :padline no {% if frontend != 'kodi' %} [vdr] @@ -1113,12 +1366,18 @@ lircd0_socket: /var/run/lirc/lircd0 {% endif %} #+END_SRC **** Systemd Drop-in to start lircd2uinput with lircd +:PROPERTIES: +:ID: 513cef8c-ad4f-458b-84be-e16cdb55132c +:END: #+BEGIN_SRC conf :tangle roles/yavdr-remote/templates/lircd.service.d/lircd2uinput.conf.j2 :mkdirp yes :padline no [Service] ExecStartPost=/usr/bin/lircd2uinput-add /var/run/lirc/lircd0 ExecStopPost=/usr/bin/lircd2uinput-remove /var/run/lirc/lircd0 #+END_SRC **** create /etc/rc_maps.cfg +:PROPERTIES: +:ID: ce211e33-f7ed-445b-a730-b063b8974c52 +:END: #+BEGIN_SRC conf :tangle roles/yavdr-remote/templates/rc_maps.cfg.j2 :mkdirp yes :padline no {{ ansible_managed | comment }} # @@ -1305,9 +1564,18 @@ 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 #+END_SRC *** files +:PROPERTIES: +:ID: bc431f9c-7497-4731-9112-d4a8366695e1 +:END: ** pulseaudio +:PROPERTIES: +:ID: af6190ba-085f-44f4-96ad-31e33d318ce7 +:END: *** tasks +:PROPERTIES: +:ID: 39d79be1-828b-4add-8d2a-3107c12ee57e +:END: #+BEGIN_SRC yaml :tangle roles/pulseaudio/tasks/main.yml :mkdirp yes :padline no --- @@ -1327,6 +1595,9 @@ ati_remote rc-medion-x10-digitainer /lib/udev/rc_keymaps/rc-medion-x10-digi dest: /etc/asound.conf #+END_SRC *** templates +:PROPERTIES: +:ID: 18320c8b-9382-4622-9ace-c922141a4f7b +:END: #+BEGIN_SRC conf :tangle roles/pulseaudio/templates/alsa/asound.conf.j2 :mkdirp yes :padline no # Use PulseAudio by default pcm.!default { @@ -1345,7 +1616,13 @@ ctl.!default { #+END_SRC ** yavdr-xorg +:PROPERTIES: +:ID: 6cccb613-6b37-4775-a53f-4c15992c6552 +:END: *** About the GUI session +:PROPERTIES: +:ID: 3f614f9c-c24b-4450-82ff-5c3fe103e695 +:END: 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. To simplify starting and stopping the X-server and the desktop session a ~yavdr-xorg.service~ is provided by the package ~yavdr-xorg~, which depends on the two units mentioned before. ~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~. @@ -1362,6 +1639,9 @@ The autostart script then enables all services to be pulled in by yavdr-desktop. In order to achive a clean shutdown of the session, ~x@t7.service~ is set as a dependency of the systemd unit instance ~user@666.service~ and all processes within the session must be shutdown properly when stopping ~xlogin@vdr.service~. If systemd units are used within the user session, they must stop their process(es) successfully (you should set them up to accept expected exit codes appropriately). The window manager /openbox/ is started using the =~/.xinitrc= and stopped using the systemd unit ~exit-wm.service~ (which runs on stopping the jobs pulled in by the ~default.target~ of the session). *** TODO automatic X-server configuration :noexport: +:PROPERTIES: +:ID: 8d3876e1-2cbb-4f82-9e8d-fe66dae2e1b2 +:END: - [X] detect connected display - [X] read EDID from displays create a xorg.conf for @@ -1371,6 +1651,9 @@ create a xorg.conf for - [ ] allow overscan compensation in xorg.conf or via xrandr on startup **** HOLD Nvidia-GPUs:read EDID: +:PROPERTIES: +:ID: a25ee66a-e37c-497e-ae0e-99d579785e6b +:END: #+BEGIN_SRC shell $ nvidia-xconfig --extract-edids-from-file=/var/log/Xorg.0.log --extract-edids-output-file=/tmp/edid.bin.0 @@ -1444,6 +1727,9 @@ EndSection #+END_SRC **** DONE Start X-server with debug-output :noexport: +:PROPERTIES: +:ID: 92c5d2d8-6297-4991-94e7-9d9a018351cb +:END: #+BEGIN_SRC conf # /etc/systemd/system/x-debug@.service [Unit] @@ -1483,7 +1769,13 @@ EndSection #+END_SRC **** DONE python-script for parsing xrandr --verbose output +:PROPERTIES: +:ID: 47bf38ed-69ef-48fc-80d6-3c73c5e97a50 +:END: ***** Example output +:PROPERTIES: +:ID: d1837356-d6fe-4216-bde5-3202bf375a50 +:END: # ION-330-I #+BEGIN_SRC shell :tangle library/xrandr_output.1 $ xrandr --verbose @@ -1740,6 +2032,9 @@ HDMI-0 connected 1280x1024+0+0 (0x1c9) normal (normal left inverted right x axis #+END_SRC ***** parse hex-strings +:PROPERTIES: +:ID: 96a9168e-9acb-4c9b-bd12-df5f24a619e4 +:END: #+BEGIN_SRC python >>> import binascii >>> s = "deadbeef" @@ -1747,6 +2042,9 @@ HDMI-0 connected 1280x1024+0+0 (0x1c9) normal (normal left inverted right x axis b'\xde\xad\xbe\xef' #+END_SRC *** default variables +:PROPERTIES: +:ID: c03c69a3-2576-4d14-a6bd-1b45e545676c +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-xorg/defaults/main.yml :mkdirp yes :padline no first_run: False preferred_outputs: @@ -1766,7 +2064,13 @@ preferred_refreshrates: - 60 #+END_SRC *** tasks +:PROPERTIES: +:ID: 610376b7-9bd2-40ea-9672-1e097d6d72fa +:END: **** main.yml +:PROPERTIES: +:ID: cc8a3d2d-4676-45fa-a416-762c5c52cb4a +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-xorg/tasks/main.yml :mkdirp yes :padline no --- # file: roles/yavdr-xorg/tasks/main.yml @@ -1776,6 +2080,9 @@ preferred_refreshrates: tags: [xorg.detect,install] #+END_SRC **** setup-xorg.yml +:PROPERTIES: +:ID: 4719a732-4972-471d-b9d3-57e42ac15fdc +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-xorg/tasks/setup-xorg.yml :mkdirp yes :padline no --- # file: roles/yavdr-xorg/tasks/setup-xorg.yml @@ -1893,6 +2200,9 @@ preferred_refreshrates: - kiosk-browser #+END_SRC **** detect-xorg.yml +:PROPERTIES: +:ID: 7fb28921-58b1-4c7d-867e-4ea301fd4c33 +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-xorg/tasks/detect-xorg.yml :mkdirp yes :padline no --- # file: roles/yavdr-xorg/tasks/detect-xorg.yml @@ -2049,6 +2359,9 @@ preferred_refreshrates: #+END_SRC **** intel.yml +:PROPERTIES: +:ID: 0b27229f-3cb1-4b30-bd91-b173c40e7d0c +:END: KMS drivers (like for intel (i915) and amd (radeon)) require additional configuration beneath a customized ~xorg.conf~ - for a "static" output configuration (which works if the TV or AV receiver is not turned on) we need to force loading the display(s) EDID early during the boot process. This task therefore performs the following actions after the xrandr detection has been executed: @@ -2082,14 +2395,26 @@ template: #+END_SRC *** templates +:PROPERTIES: +:ID: 9fe4445a-f8f7-42d4-81ba-f697260e2844 +:END: **** grub +:PROPERTIES: +:ID: eb4e27ae-937f-4893-91c2-cf3d731536db +:END: #+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/grub.d/intel.j2 :mkdirp yes :padline no {% set output_flag = 'D' if ("HDMI" in xorg.primary.connector or "DVI" in xorg.primary.connector or "DP" in xorg.primary.connector) else 'e' %} GRUB_CMDLINE_LINUX+=" video={{ xorg.primary.drm_connector }}:{{ xorg.primary.mode|replace('_', '@') }}{{ output_flag }} drm.edid_firmware={{ xorg.primary.drm_connector }}:edid/edid.bin" # TODO: configure additional monitors (second monitor on, all others off) #+END_SRC **** xorg +:PROPERTIES: +:ID: fc981225-073c-42d0-a23a-f0d770883ee4 +:END: ***** x-verbose@.service +:PROPERTIES: +:ID: 76b4fe80-7c7f-45b0-b691-4a0f127ca159 +:END: #+BEGIN_SRC conf :tangle "roles/yavdr-xorg/templates/systemd/system/x-verbose@.service.j2" :padline no # file: roles/yavdr-xorg/templates/systemd/system/x-verbose@.service.j2 [Unit] @@ -2102,6 +2427,9 @@ Type=forking ExecStart=/usr/bin/x-daemon -logverbose 6 -noreset %I -config /etc/X11/xorg-verbose.conf #+END_SRC ***** Drop-in snippet for x@.service +:PROPERTIES: +:ID: 4373becf-733f-4c0d-a830-17af99395eb6 +:END: #+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/x@service.d/plymouth.conf.j2 :mkdirp yes :padline no [Unit] After=plymouth.service @@ -2122,6 +2450,9 @@ KillMode=mixed #+END_SRC ***** Drop-in snippet for vdr.service +:PROPERTIES: +:ID: 44d62722-3e6b-4180-9e38-8936b4470112 +:END: #+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/vdr-xorg.conf :mkdirp yes :padline no {{ ansible_managed | comment }} [Unit] @@ -2130,6 +2461,9 @@ Wants=x@vt7.service #BindsTo=x@vt7.service #+END_SRC ***** xorg.conf snippets +:PROPERTIES: +:ID: 6da4a70b-96c0-4635-9b82-c89fc45a39c5 +:END: #+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/xorg-ignore-eventlircd.conf.j2 {{ ansible_managed | comment }} @@ -2140,6 +2474,9 @@ Section "InputClass" EndSection #+END_SRC ***** xorg.conf +:PROPERTIES: +:ID: d7064700-5a05-478a-a20d-10a5fe472661 +:END: #+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/xorg-verbose.conf.j2 Section "Device" Identifier "nvidia" @@ -2458,6 +2795,9 @@ EndSection {% endif %} #+END_SRC **** vdr +:PROPERTIES: +:ID: 748ef799-1673-4028-b52e-234328dc793b +:END: Set environment variables for system locale and user session on startup #+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/systemd/vdr-environ.j2 [Service] @@ -2466,7 +2806,13 @@ Environment=XDG_RUNTIME_DIR=/run/user/{{ vdr.uid }}/ EnvironmentFile=-/var/lib/vdr/.session-env #+END_SRC *** files +:PROPERTIES: +:ID: 13aff96c-0647-4a0e-8ab2-02a83c44f2ae +:END: **** initramfs EDID hook +:PROPERTIES: +:ID: 41434b9a-1580-4214-ba40-0e11e00ca82a +:END: #+BEGIN_SRC shell :tangle roles/yavdr-xorg/files/cp-edid-data.sh #!/bin/bash # Created by yavdr-ansible. @@ -2486,8 +2832,17 @@ exit 0 #+END_SRC ** yavdr-desktop +:PROPERTIES: +:ID: 8cb30c4c-39df-4d93-8ae1-652cf4c5b027 +:END: *** Tasks +:PROPERTIES: +:ID: aeb5167d-d3cb-4a0a-9851-9899b5239547 +:END: **** main.yml +:PROPERTIES: +:ID: ff552cae-e390-49e0-80cf-399896839688 +:END: #+BEGIN_SRC yaml :tangle roles/yavdr-desktop/tasks/main.yml :mkdirp yes :padline no --- # file: roles/yavdr-desktop/tasks/main.yml @@ -2631,8 +2986,17 @@ exit 0 state: started #+END_SRC *** Templates +:PROPERTIES: +:ID: 0bbfaf8b-c242-4f0a-9ea0-ea4bfbb438ca +:END: **** xorg configuration +:PROPERTIES: +:ID: 074c7a42-44a9-4456-843e-f58e66f3b5fc +:END: ***** .Xresources +:PROPERTIES: +:ID: ca7cce7d-bb28-4063-acd4-7831ea74eb10 +:END: #+BEGIN_SRC shell :tangle roles/yavdr-desktop/templates/.Xresources.j2 :mkdirp yes :padline no xterm*background: Black @@ -2653,13 +3017,22 @@ XTerm.vt100.faceName: xft:DejaVu Sans Mono:size=12:antialias=false XTerm.vt100.font: 7x13 #+END_SRC ***** .xinitrc +:PROPERTIES: +:ID: 22f69dea-f6f6-407e-b9d5-7edc38f88093 +:END: #+BEGIN_SRC shell :tangle roles/yavdr-desktop/templates/.xinitrc.j2 :mkdirp yes :padline no #!/bin/bash {{ ansible_managed | comment }} exec openbox-session #+END_SRC **** openbox +:PROPERTIES: +:ID: caaba2f6-165c-4bce-b897-fd68992e51c1 +:END: ***** autostart +:PROPERTIES: +:ID: 54bb62c1-99dd-42ea-b49f-269a9f8d4a68 +:END: #+BEGIN_SRC shell :tangle roles/yavdr-desktop/templates/openbox/autostart.j2 :mkdirp yes :shebang #!/bin/bash # forward environment variables to an environment file and the systemd user session env | grep "DISPLAY\|DBUS_SESSION_BUS_ADDRESS\|XDG_RUNTIME_DIR" > ~/.session-env @@ -2692,6 +3065,9 @@ fi systemctl --user isolate yavdr-desktop.target #+END_SRC ***** rc.xml +:PROPERTIES: +:ID: 8228f9e3-e6c6-4ecd-9157-f22533dba6d8 +:END: #+BEGIN_SRC xml :tangle roles/yavdr-desktop/templates/openbox/rc.xml.j2 :mkdirp yes :padline no @@ -3508,6 +3884,9 @@ systemctl --user isolate yavdr-desktop.target #+END_SRC ***** rc2.xml +:PROPERTIES: +:ID: 64b5a3ba-0f2d-4f92-93d0-4c4fc312ed5d +:END: #+BEGIN_SRC xml :tangle roles/yavdr-desktop/templates/openbox/rc2.xml.j2 :mkdirp yes :padline no @@ -4325,7 +4704,13 @@ systemctl --user isolate yavdr-desktop.target #+END_SRC **** Systemd User Session +:PROPERTIES: +:ID: 71f6c6b1-567d-4337-af6f-873777351f30 +:END: ***** yavdr-desktop.target +:PROPERTIES: +:ID: 250ebcbf-647c-4d11-a310-60f9c50cb79f +:END: #+BEGIN_SRC shell :tangle roles/yavdr-desktop/templates/systemd/user/yavdr-desktop.target.j2 :mkdirp yes :padline no [Unit] Description=yaVDR Desktop @@ -4335,6 +4720,9 @@ Wants=dbus.service pulseaudio.service AllowIsolate=yes #+END_SRC ***** detect-second-display +:PROPERTIES: +:ID: e46166b1-0550-41c6-a7ec-d7a2622f87db +:END: #+BEGIN_SRC conf :tangle roles/yavdr-desktop/templates/systemd/user/detect-second-display.service.j2 :mkdirp yes :padline no [Unit] Description=Detect second DISPLAY using xrandr @@ -4347,6 +4735,9 @@ ExecStart=/bin/bash -c 'export DISPLAY=$DISPLAY.1; xrandr -q | grep "connected" WantedBy=yavdr-desktop.target #+END_SRC ***** openbox-second.service +:PROPERTIES: +:ID: 4473c272-7b60-4159-b2a9-8198cff98770 +:END: #+BEGIN_SRC conf :tangle roles/yavdr-desktop/templates/systemd/user/openbox-second.service.j2 :mkdirp yes :padline no [Unit] Description=Start openbox on the second DISPLAY if it exists @@ -4365,6 +4756,9 @@ ExecStartPost=/bin/bash %h/.fehbg WantedBy=yavdr-desktop.target #+END_SRC ***** osd2web.service +:PROPERTIES: +:ID: 85647bf2-f42b-4621-9e61-a0e07b7a24e9 +:END: #+BEGIN_SRC conf :tangle roles/yavdr-desktop/templates/systemd/user/osd2web.service.j2 :mkdirp yes :padline no [Unit] Description=Start a kiosk browser on the second DISPLAY if it exists @@ -4384,6 +4778,9 @@ KillSignal=SIGINT WantedBy=yavdr-desktop.target #+END_SRC ***** tmux.service +:PROPERTIES: +:ID: 89ca260c-48b5-4b27-b43b-02f7b02be80c +:END: #+BEGIN_SRC conf :tangle roles/yavdr-desktop/templates/systemd/user/tmux.service.j2 :mkdirp yes :padline no [Unit] Description=Start tmux in detached session @@ -4399,6 +4796,9 @@ Restart=always WantedBy=default.target #+END_SRC ***** wm-exit.service +:PROPERTIES: +:ID: cec42c29-2b61-4b7a-8a94-f734b01519b1 +:END: #+BEGIN_SRC conf :tangle roles/yavdr-desktop/templates/systemd/user/wm-exit.service.j2 :mkdirp yes :padline no [Unit] Description=exit window manager gracefully @@ -4412,6 +4812,9 @@ RemainAfterExit=True WantedBy=default.target #+END_SRC **** irexec +:PROPERTIES: +:ID: ea17fdbd-334b-4b78-817f-52fed11be2f1 +:END: irexec.service starts irexec for the user session #+BEGIN_SRC shell :tangle roles/yavdr-desktop/templates/systemd/user/irexec.service.j2 :mkdirp yes :padline no [Unit] @@ -4434,7 +4837,13 @@ end #+END_SRC ** samba-install +:PROPERTIES: +:ID: b51f567b-30cd-4cdf-8541-c07d9e423398 +:END: *** tasks +:PROPERTIES: +:ID: ac75cc29-c841-42d7-b7c7-b4a9fd38f19e +:END: #+BEGIN_SRC yaml :tangle roles/samba-install/tasks/main.yml :mkdirp yes :padline no --- # file: roles/samba-install/tasks/main.yml @@ -4452,7 +4861,13 @@ end #+END_SRC ** samba-config +:PROPERTIES: +:ID: a5db25c9-5dd6-4432-9d9b-d81945c67711 +:END: *** tasks +:PROPERTIES: +:ID: c8f2d766-6c69-49e5-b14a-2f9d4dc25b63 +:END: #+BEGIN_SRC yaml :tangle roles/samba-config/tasks/main.yml :mkdirp yes :padline no --- # file: roles/samba-config/tasks/main.yml @@ -4474,8 +4889,17 @@ end notify: [ 'Restart Samba' ] #+END_SRC *** templates +:PROPERTIES: +:ID: 334714ba-dd03-4e85-a1d8-c2e8707a3fa1 +:END: **** smb.conf +:PROPERTIES: +:ID: 9bb9f2b8-f364-4cf1-b7ab-1b3ae0f3ff32 +:END: ***** global settings +:PROPERTIES: +:ID: 48d03a2e-c6d6-4f60-b34b-604088352c24 +:END: #+BEGIN_SRC yaml :tangle roles/samba-config/templates/smb.conf.j2 :mkdirp yes :padline no {{ ansible_managed | comment }} @@ -4558,6 +4982,9 @@ end {% endif %} #+END_SRC ***** media directories +:PROPERTIES: +:ID: 19a7e6f8-5795-45ff-983e-9da37e7dce26 +:END: #+BEGIN_SRC yaml :tangle roles/samba-config/templates/smb.conf.j2 :mkdirp yes {% for name, path in media_dirs.iteritems() %} [{{ name }}] @@ -4576,24 +5003,45 @@ end {% endfor %} #+END_SRC ***** include custom samba exports +:PROPERTIES: +:ID: 65e56ad5-118f-491b-8e58-8e2c5f90b6a2 +:END: #+BEGIN_SRC yaml :tangle roles/samba-config/templates/smb.conf.j2 :mkdirp yes include = /etc/samba/smb.conf.custom #+END_SRC ** STARTED autoinstall-drivers +:PROPERTIES: +:ID: 2802c8ea-614e-4b9b-8c3e-cd7efc0f4f0e +:END: It would be nice to be able to detect if it is suitable to install those drivers: *** TODO sundtek for Sundtek devices (local or network connection) +:PROPERTIES: +:ID: 8b66ce8d-0095-4fbd-8868-8bc5c43d19fc +:END: Vendor-IDs: - eb1a:5[1b2] (alte Generation) - 2659:* (neuere Sticks) **** planned packages +:PROPERTIES: +:ID: f5970635-da3e-4929-a17c-3226b69497c5 +:END: - yavdr-hardware-sundtek - python3-sundtek - yavdr-backend-sundtek *** TODO drivers for TT S2-6400 FF +:PROPERTIES: +:ID: 257ce3b7-ecfc-4e13-b394-f3b0707be30a +:END: https://github.com/s-moch/linux-saa716x - kann man den relevanten Teil als dkms-Paket bauen? ** autoinstall-ubuntu-drivers +:PROPERTIES: +:ID: a9c88346-c91c-4d02-8dac-19148795d4df +:END: 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. *** tasks +:PROPERTIES: +:ID: bfe4d498-7d66-4e5f-85b1-d60e29cf309a +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-ubuntu-drivers/tasks/main.yml :padline no --- # file roles/autoinstall-ubuntu-drivers/tasks/main.yml @@ -4612,6 +5060,9 @@ The tool ubuntu-drivers is used to install the matching driver version for nvidi # conflicting packages for virtualbox in Ubuntu 16.04 and 18.04 :( #+END_SRC ** autoinstall-virtualbox-guest +:PROPERTIES: +:ID: f03f3758-9188-4e98-a26a-bbddf14d8194 +:END: This role installs the guest additions for virtualbox guests on Ubuntu 16.04 #+BEGIN_SRC yaml :tangle roles/autoinstall-virtualbox-guest/tasks/main.yml :padline no @@ -4657,7 +5108,13 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04 - ansible_virtualization_role == "guest" #+END_SRC ** autoinstall-atric-usb +:PROPERTIES: +:ID: 441a8ccf-4865-4999-8aa9-ec42925316c0 +:END: *** dependencies +:PROPERTIES: +:ID: bd31f64a-a1d7-4f3e-81a8-f7bd3091a400 +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-atric-usb/meta/main.yml :padline no --- dependencies: @@ -4666,6 +5123,9 @@ dependencies: #+END_SRC *** tasks +:PROPERTIES: +:ID: 90c74869-6107-4fcc-b407-73311d0ed052 +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-atric-usb/tasks/main.yml :padline no --- # file roles/autoinstall-atric-usb/tasks/main.yml @@ -4704,6 +5164,9 @@ dependencies: when: '"04d8:f844" in usb' #+END_SRC *** templates +:PROPERTIES: +:ID: 8aa2416a-1e9e-447a-9a46-0c51f420362d +:END: #+BEGIN_SRC conf :tangle roles/autoinstall-atric-usb/templates/lirc_options.conf.j2 :padline no {{ ansible_managed | comment }} @@ -4728,7 +5191,13 @@ uinput = False nodaemon = False #+END_SRC ** autoinstall-yausbir +:PROPERTIES: +:ID: 40f32214-150d-4d42-8020-6ff4b7014ec8 +:END: *** dependencies +:PROPERTIES: +:ID: 82eda971-87c9-4f37-a97b-b935a29abbe4 +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-yausbir/meta/main.yml :padline no --- dependencies: @@ -4736,6 +5205,9 @@ dependencies: #+END_SRC *** tasks +:PROPERTIES: +:ID: f67c193a-1ebc-4bf9-8de3-7dd623efab83 +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-yausbir/tasks/main.yml :padline no --- # file roles/autoinstall-atric-usb/tasks/main.yml @@ -4774,6 +5246,9 @@ dependencies: when: '"10c4:876c" in usb' #+END_SRC *** templates +:PROPERTIES: +:ID: 81390e92-fff1-477a-b73c-457c0871b006 +:END: #+BEGIN_SRC conf :tangle roles/autoinstall-yausbir/templates/lirc_options.conf.j2 :padline no {{ ansible_managed | comment }} @@ -4797,8 +5272,14 @@ uinput = False nodaemon = False #+END_SRC ** autoinstall-satip +:PROPERTIES: +:ID: feb9bdba-779b-4da9-bfb0-cf54965098ff +:END: If a Sat>IP Server responds to a discovery request, the package vdr-plugin-satip is installed. *** tasks +:PROPERTIES: +:ID: 90b74afd-7633-42d3-9681-8c0c17371985 +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-satip/tasks/main.yml :padline no --- # file roles/autoinstall-satip/tasks/main.yml @@ -4819,7 +5300,13 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-satip #+END_SRC ** autoinstall-targavfd +:PROPERTIES: +:ID: 0902fe6d-ed20-49cb-b88b-04a427ee6d71 +:END: *** tasks +:PROPERTIES: +:ID: 1d70ce53-7f40-4ca4-8ac0-ed37417fd720 +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-targavfd/tasks/main.yml :padline no --- # file roles/autoinstall-targavfd/tasks/main.yml @@ -4831,7 +5318,13 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-satip notify: [ 'Restart VDR' ] #+END_SRC ** autoinstall-imonlcd +:PROPERTIES: +:ID: 53d26502-d69e-49e0-99b9-e21527c5577d +:END: *** tasks +:PROPERTIES: +:ID: 3d06c913-1130-44cd-b1d3-30ece9135bca +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-imonlcd/tasks/main.yml :padline no --- # file roles/autoinstall-imonlcd/tasks/main.yml @@ -4843,7 +5336,13 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-satip notify: [ 'Restart VDR' ] #+END_SRC ** autoinstall-libcecdaemon +:PROPERTIES: +:ID: 21e9641d-17e9-4aaf-aa03-fa593a3864d9 +:END: *** tasks +:PROPERTIES: +:ID: 1edae36a-21b0-4398-9cbf-7a3fee8494b4 +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-libcecdaemon/tasks/main.yml :padline no --- # file roles/autoinstall-libcec-daemon/tasks/main.yml @@ -4855,7 +5354,13 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-satip - "2548:1002" in usb #+END_SRC ** autoinstall-pvr350 +:PROPERTIES: +:ID: 25622792-622f-4fc1-a2df-e6c6865c5101 +:END: *** tasks +:PROPERTIES: +:ID: 241b4d77-9255-43a7-b816-1fcdf7a3ca77 +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-pvr350/tasks/main.yml :padline no --- # file roles/autoinstall-pvr350/tasks/main.yml @@ -4867,6 +5372,9 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-satip notify: [ 'Restart VDR' ] #+END_SRC ** autoinstall-hauppauge-pvr +:PROPERTIES: +:ID: 4d67e53f-f6ef-4db6-a090-27771b0a2c9e +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-hauppauge-pvr/tasks/main.yml :padline no --- # file roles/autoinstall-hauppauge-pvr/tasks/main.yml @@ -4878,7 +5386,13 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-satip notify: [ 'Restart VDR' ] #+END_SRC ** autoinstall-firmware +:PROPERTIES: +:ID: 9f0831c2-e713-40b4-af41-04f042067a94 +:END: *** dependencies +:PROPERTIES: +:ID: 46b8fcd9-bff1-454a-a80b-fcf11fdcaf79 +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-firmware/meta/main.yml :padline no --- dependencies: @@ -4886,6 +5400,9 @@ dependencies: #+END_SRC *** tasks +:PROPERTIES: +:ID: c617b63f-52f6-4650-a6d0-7a56a9494cc8 +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-firmware/tasks/main.yml :padline no --- @@ -4922,7 +5439,13 @@ dependencies: notify: reboot required #+END_SRC ** autoinstall-dvbsky-firmware +:PROPERTIES: +:ID: a50b25e3-46e8-4dea-b247-e1a68237d662 +:END: *** dependencies +:PROPERTIES: +:ID: 584a050c-d2b6-4443-a645-cf6505835555 +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-dvbsky-firmware/meta/main.yml :padline no --- dependencies: @@ -4930,12 +5453,24 @@ dependencies: #+END_SRC *** defaults +:PROPERTIES: +:ID: d738074e-9794-49c4-b6ba-e290e1869a02 +:END: #+INCLUDE: "roles/autoinstall-dvbsky-firmware/defaults/main.yml" src yaml *** tasks +:PROPERTIES: +:ID: a40e0ad7-8338-4988-85c2-8fe9eca258e5 +:END: #+INCLUDE: "roles/autoinstall-dvbsky-firmware/tasks/main.yml" src yaml ** TODO autoinstall-dvbhddevice +:PROPERTIES: +:ID: fbce5f86-5946-4f3e-aa9c-86fb0828c0d7 +:END: Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware sollte in yavdr-firmware stecken *** dependencies +:PROPERTIES: +:ID: efd41dfd-bec6-46bc-b19f-2fcb6d626c82 +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-dvbhddevice/meta/main.yml :padline no --- dependencies: @@ -4943,6 +5478,9 @@ dependencies: #+END_SRC *** tasks +:PROPERTIES: +:ID: f2e18070-8108-4ae0-bfaa-90e30171852e +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-dvbhddevice/tasks/main.yml :padline no --- # file roles/autoinstall-dvbhddevice/tasks/main.yml @@ -4955,7 +5493,13 @@ dependencies: #+END_SRC ** autoinstall-dvbsddevice +:PROPERTIES: +:ID: fb56a0eb-8586-4e05-8f0d-1154d73f7380 +:END: *** dependencies +:PROPERTIES: +:ID: 95ebb7f8-d195-4dfc-a8af-3acc2b447906 +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-dvbsddevice/meta/main.yml :padline no --- dependencies: @@ -4963,6 +5507,9 @@ dependencies: #+END_SRC *** tasks +:PROPERTIES: +:ID: dbc2734a-f591-4c1a-9870-b1e091f39498 +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-dvbsddevice/tasks/main.yml :padline no --- # file roles/autoinstall-dvbsddevice/tasks/main.yml @@ -4976,7 +5523,13 @@ dependencies: notify: [ 'Restart VDR' ] #+END_SRC ** autoinstall-hardware-irmp +:PROPERTIES: +:ID: 2115f9dc-5bc9-4d97-b568-d9c8c855b86e +:END: *** dependencies +:PROPERTIES: +:ID: e8f14ffb-012f-4e4a-b57c-7b99d49c43c4 +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-hardware-irmp/meta/main.yml :padline no --- dependencies: @@ -4984,6 +5537,9 @@ dependencies: #+END_SRC *** tasks +:PROPERTIES: +:ID: d9dbbd24-a324-4200-8d8e-a2d395921702 +:END: #+BEGIN_SRC yaml :tangle roles/autoinstall-hardware-irmp/tasks/main.yml :padline no --- # file roles/autoinstall-hardware-irmp/tasks/main.yml @@ -4995,41 +5551,91 @@ dependencies: when: '"1209:4444" in usb or "16c0:27d9" in usb' #+END_SRC ** kodi +:PROPERTIES: +:ID: a0f42636-e0ec-4904-a6f9-48f714a2052b +:END: *** tasks +:PROPERTIES: +:ID: 2c9ac888-09d3-4ab7-bba0-565f10d8277b +:END: **** Install KODI +:PROPERTIES: +:ID: 01b0cb56-1733-41c0-90c5-ccae23abc530 +:END: ***** main.yml :PROPERTIES: :UNNUMBERED: t +:ID: 1ff3267c-0036-471d-9f79-d1edda353789 :END: #+INCLUDE: "roles/kodi/tasks/main.yml" src yaml ***** install-kodi.yml +:PROPERTIES: +:ID: 52ac7380-3ea8-4eaf-a4b6-7921d1277621 +:END: #+INCLUDE: "roles/kodi/tasks/install-kodi.yml" src yaml ***** configure-kodi.yml +:PROPERTIES: +:ID: 7ba78b23-6aa6-4d6c-a58a-ed5a8d9c5e62 +:END: #+INCLUDE: "roles/kodi/tasks/configure-kodi.yml" src yaml *** templates +:PROPERTIES: +:ID: 14d5d302-7dc3-4603-95ff-9d09bd147d18 +:END: **** kodi.service +:PROPERTIES: +:ID: 32046abe-8b1c-4858-ba01-79fa5bc0581f +:END: This systemd unit for the user session starts (and stops) kodi. #+INCLUDE: "roles/kodi/templates/kodi.service.j2" src conf *** files +:PROPERTIES: +:ID: 58c5c693-bd24-420a-bfed-79771e8e0d47 +:END: Those configuration files provide a preconfiguration for kodi which overrides the system wide configuration **** Lircmap.xml +:PROPERTIES: +:ID: 0696708c-2d66-41bb-9564-51692b9d343e +:END: This file allows to map keys sent by remotes via eventlircd (which uses the name ~devinput~) to kodi key names. #+INCLUDE: "roles/kodi/files/userdata/Lircmap.xml" src nxml **** keymaps +:PROPERTIES: +:ID: 1033979f-55e7-44da-82ff-a307a3415572 +:END: This file maps the keys defined in Lircmap.xml to actions within kodi. ***** remote.xml +:PROPERTIES: +:ID: cffe42cf-9e03-4f7a-85f5-874a2badae80 +:END: #+INCLUDE: "roles/kodi/files/userdata/keymaps/remote.xml" src xml ** dvd +:PROPERTIES: +:ID: 07af4201-bbf4-4c69-8ffa-7a7493e5f75d +:END: *** tasks +:PROPERTIES: +:ID: 75a94df1-f19f-40d2-bca0-2fa3a0c6e8dc +:END: **** install libdvd-pkg, allow programs to eject optical media :PROPERTIES: :UNNUMBERED: t +:ID: 7e7f26cf-073d-4d1c-8f6e-cc69de259aaf :END: #+INCLUDE: "roles/dvd/tasks/main.yml" src yaml ** install-sundtek +:PROPERTIES: +:ID: de68c6d2-92c7-47c2-9d28-bfa6be00ec3e +:END: *** variables +:PROPERTIES: +:ID: bab04ad5-86b1-4953-a87e-bb6bfa9e5d0c +:END: *** tasks +:PROPERTIES: +:ID: f06b2ce3-e6c0-41d7-809a-12d869525a11 +:END: #+BEGIN_SRC yaml :tangle roles/install-sundtek/tasks/main.yml :padline no --- # file roles/install-sundtek/tasks/main.yml @@ -5075,7 +5681,13 @@ This file maps the keys defined in Lircmap.xml to actions within kodi. daemon-reload: yes #+END_SRC *** templates +:PROPERTIES: +:ID: 30011bae-7869-4928-b8ea-b66034badf9e +:END: **** /etc/sundtek.conf +:PROPERTIES: +:ID: 73609a51-8209-47c2-82a0-48838f47b884 +:END: #+BEGIN_SRC conf # ----- GLOBAL SECTION ----- #Set loglevel for logging to /var/log/mediasrv.log @@ -5179,6 +5791,7 @@ disable_analogtv=1 #disable initialization ** template-test :PROPERTIES: :EXPORT: nil +:ID: d2bd49d0-734d-48ea-aa85-1885a6176cd3 :END: #+BEGIN_SRC yaml :tangle roles/template-test/tasks/main.yml :padline no --- @@ -5415,13 +6028,22 @@ system: - "1280x720_60" #+END_SRC ** wakeup +:PROPERTIES: +:ID: 7c91863a-167a-47da-bfdb-c93f3846aee6 +:END: *** defaults +:PROPERTIES: +:ID: 0cfc6c58-fbcd-47c9-ad44-7b6484e054a8 +:END: #+BEGIN_SRC yaml :tangle roles/wakeup/defaults/main.yml :padline no --- # file roles/wakeup/defaults/main.yml wakeup_method: "acpiwakeup" #+END_SRC *** tasks +:PROPERTIES: +:ID: 213938be-87c0-46b2-bbea-081d49d0758c +:END: #+BEGIN_SRC yaml :tangle roles/wakeup/tasks/main.yml :padline no --- # file roles/wakeup/tasks/main.yml @@ -5439,6 +6061,9 @@ wakeup_method: "acpiwakeup" #+END_SRC *** templates +:PROPERTIES: +:ID: 1ef541bf-540c-468c-a236-9599f44f8cef +:END: #+BEGIN_SRC jinja2 :tangle roles/wakeup/templates/vdr-addon-acpiwakeup.conf.j2 :padline no {{ ansible_managed | comment }} @@ -5460,7 +6085,13 @@ ACPI_START_AHEAD=5 #+END_SRC ** grub-config +:PROPERTIES: +:ID: 20b99618-5cda-4bd2-94d8-ff401e3cdaa3 +:END: *** default variables +:PROPERTIES: +:ID: c1046581-bb7d-438d-8074-8ed243c7ffe9 +:END: #+BEGIN_SRC yaml :tangle roles/grub-config/defaults/main.yml :mkdirp yes :padline no system: shutdown: poweroff @@ -5469,6 +6100,9 @@ grub: boot_options: quiet nosplash #+END_SRC *** tasks +:PROPERTIES: +:ID: a846c074-3267-4c42-a573-f5f435364929 +:END: #+BEGIN_SRC yaml :tangle roles/grub-config/tasks/main.yml :mkdirp yes :padline no --- @@ -5490,6 +6124,9 @@ grub: notify: [ 'Update GRUB' ] #+END_SRC *** templates +:PROPERTIES: +:ID: b6b30fe9-27b4-4713-8a0d-56d4ef1919d4 +:END: #+BEGIN_SRC shell :tangle roles/grub-config/templates/50_custom.j2 :mkdirp yes :padline no #!/bin/sh exec tail -n +3 $0 @@ -5509,6 +6146,9 @@ else fi #+END_SRC *** handlers +:PROPERTIES: +:ID: 3ca84eb3-cc43-4353-a6b3-3acda9d221fc +:END: #+BEGIN_SRC yaml :tangle roles/grub-config/handlers/main.yml :mkdirp yes :padline no --- @@ -5526,8 +6166,14 @@ fi # https://github.com/yavdr/yavdr-utils/blob/master/events/actions/update-grub #+END_SRC * Modules +:PROPERTIES: +:ID: 4d68c2cf-dfcb-4f42-820c-1f305afa17a7 +:END: This section contains custom modules for the yaVDR Playbooks. They are used to collect facts about the system and configure applications and daemons. ** hardware_facts.py +:PROPERTIES: +:ID: e6ed071a-b2eb-4280-a78e-8986b3bf5c4a +:END: #+BEGIN_SRC python :tangle library/hardware_facts.py :shebang "#!/usr/bin/env python" # This Module collects the vendor- and device ids for USB- and PCI(e)-devices and currently loaded kernel modules. DOCUMENTATION = ''' @@ -5702,6 +6348,9 @@ if __name__ == '__main__': main() #+END_SRC ** pci_facts.py +:PROPERTIES: +:ID: b878d43c-8111-4db0-9ce9-d495040fb564 +:END: #+BEGIN_SRC python :tangle library/pci_facts.py :shebang "#!/usr/bin/env python" # This module parses the output of lspci for detailed information about available (sub) devices. @@ -5774,6 +6423,9 @@ if __name__ == '__main__': main() #+END_SRC ** satip_facts.py +:PROPERTIES: +:ID: 2dbd3ae5-4352-4fd7-9b91-337816559331 +:END: #+BEGIN_SRC python :tangle library/satip_facts.py :shebang #!/usr/bin/env python2 DOCUMENTATION = ''' --- @@ -5894,6 +6546,9 @@ if __name__ == '__main__': main() #+END_SRC ** xrandr_facts.py +:PROPERTIES: +:ID: fde80701-9abf-46ee-aa4c-d349a3a41463 +:END: - [ ] support multiple screens (-d :0.0 .. :0.n) #+BEGIN_SRC python :tangle library/xrandr_facts.py :shebang #!/usr/bin/env python2 @@ -6174,6 +6829,9 @@ if __name__ == '__main__': output_data(xorg_data, module.params['write_edids']) #+END_SRC * Handlers +:PROPERTIES: +:ID: e90af299-d84f-4924-803f-5644509c0a2f +:END: #+BEGIN_SRC yaml :tangle handlers/main.yml :mkdirp yes - name: Reconfigure unattended upgrades with dpkg command: '/usr/sbin/dpkg-reconfigure --frontend noninteractive unattended-upgrades'