Merge branch 'bionic' of https://github.com/yavdr/yavdr-ansible into bionic
This commit is contained in:
commit
dab64fe2e3
154
Manual.org
154
Manual.org
@ -141,16 +141,19 @@ We use a callback to generate tags for all roles autmatically:
|
|||||||
|
|
||||||
** Install script for local usage
|
** Install script for local usage
|
||||||
#+BEGIN_SRC shell :tangle install-yavdr.sh :shebang "#!/bin/bash"
|
#+BEGIN_SRC shell :tangle install-yavdr.sh :shebang "#!/bin/bash"
|
||||||
|
set -e
|
||||||
if (( $EUID != 0 )); then
|
if (( $EUID != 0 )); then
|
||||||
echo "This script must be run using sudo -H or as root"
|
echo "This script must be run using sudo -H or as root"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
apt-get -y install software-properties-common
|
|
||||||
# update packages
|
# update packages
|
||||||
apt-get update
|
apt update
|
||||||
|
apt -y install software-properties-common
|
||||||
|
add-apt-repository -y ppa:ansible/ansible-2.6
|
||||||
|
|
||||||
# install required packages
|
# install required packages
|
||||||
apt-get -y install --no-install-recommends ansible
|
apt-get -y install --no-install-recommends ansible python-jmespath
|
||||||
|
|
||||||
# TODO: run ansible on local host
|
# TODO: run ansible on local host
|
||||||
ansible-playbook yavdr07.yml -b -i 'localhost_inventory' --connection=local --tags="all" --extra-vars "first_run=True"
|
ansible-playbook yavdr07.yml -b -i 'localhost_inventory' --connection=local --tags="all" --extra-vars "first_run=True"
|
||||||
@ -171,9 +174,9 @@ The ~yavdr07.yml~ playbook sets up a fully-featured yaVDR installation:
|
|||||||
- collect-facts # query system facts
|
- collect-facts # query system facts
|
||||||
- autoinstall-ubuntu-drivers # use ubuntu-drivers to install proprietary dirvers
|
- autoinstall-ubuntu-drivers # use ubuntu-drivers to install proprietary dirvers
|
||||||
# (e.g. nvidia, virtualbox)
|
# (e.g. nvidia, virtualbox)
|
||||||
- autoinstall-virtualbox-guest
|
|
||||||
# - nvidia-experimental # install very recent nvidia dirver from ppa:graphics-drivers/ppa
|
# - nvidia-experimental # install very recent nvidia dirver from ppa:graphics-drivers/ppa
|
||||||
- vdr # install vdr and related packages
|
- vdr # install vdr and related packages
|
||||||
|
- autoinstall-virtualbox-guest
|
||||||
- yavdr-network # enable network client capabilities
|
- yavdr-network # enable network client capabilities
|
||||||
- samba-install # install samba server
|
- samba-install # install samba server
|
||||||
- samba-config # configure samba server
|
- samba-config # configure samba server
|
||||||
@ -185,13 +188,14 @@ The ~yavdr07.yml~ playbook sets up a fully-featured yaVDR installation:
|
|||||||
- autoinstall-satip # install vdr-plugin-satip if a Sat>IP server has been found
|
- autoinstall-satip # install vdr-plugin-satip if a Sat>IP server has been found
|
||||||
- autoinstall-targavfd # install vdr-plugin-targavfd if display is connected
|
- autoinstall-targavfd # install vdr-plugin-targavfd if display is connected
|
||||||
- autoinstall-imonlcd # install vdr-plugin-imonlcd if a matchind display is connected
|
- autoinstall-imonlcd # install vdr-plugin-imonlcd if a matchind display is connected
|
||||||
- autoinstall-pvr350 # install vdr-plugin-pgvr350 if a matching card is detected
|
- autoinstall-pvr350 # install vdr-plugin-pvr350 if a matching card is detected
|
||||||
- autoinstall-hauppauge-pvr # install vdr-plugin-pvrinput if a matching card is found
|
- autoinstall-hauppauge-pvr # install vdr-plugin-pvrinput if a matching card is found
|
||||||
- autoinstall-dvbsddevice # install vdr-plugin-dvbsddevice if a matching card is detected
|
- autoinstall-dvbsddevice # install vdr-plugin-dvbsddevice if a matching card is detected
|
||||||
- autoinstall-hardware-irmp # install yavdr-hardware-irmp if a matching usb device is detected
|
- autoinstall-hardware-irmp # install yavdr-hardware-irmp if a matching usb device is detected
|
||||||
- autoinstall-atric-usb # preconfigure lircd for Atric IR-WakeupUSB receiver
|
- autoinstall-atric-usb # preconfigure lircd for Atric IR-WakeupUSB receiver
|
||||||
- autoinstall-yausbir # preconfigure lircd for yaUsbIR receiver
|
- autoinstall-yausbir # preconfigure lircd for yaUsbIR receiver
|
||||||
- autoinstall-dvbsky-firmware # download an install required firmware files for dvbsky cards
|
- autoinstall-dvbsky-firmware # download and install required firmware files for dvbsky cards
|
||||||
|
- autoinstall-firmware # download and install firmware files for dvb devices
|
||||||
- kodi
|
- kodi
|
||||||
- dvd # set up packages and a udev rule to allow kodi and other players
|
- dvd # set up packages and a udev rule to allow kodi and other players
|
||||||
# to play and eject optical media
|
# to play and eject optical media
|
||||||
@ -220,7 +224,12 @@ For a headless server installation ~yavdr07-headless.yml~ is a good choice
|
|||||||
- samba-config
|
- samba-config
|
||||||
- nfs-server
|
- nfs-server
|
||||||
- grub-config
|
- grub-config
|
||||||
- autoinstall-satip
|
- autoinstall-satip # install vdr-plugin-satip if a Sat>IP server has been found
|
||||||
|
- autoinstall-pvr350 # install vdr-plugin-pvr350 if a matching card is detected
|
||||||
|
- autoinstall-hauppauge-pvr # install vdr-plugin-pvrinput if a matching card is found
|
||||||
|
- autoinstall-dvbsddevice # install vdr-plugin-dvbsddevice if a matching card is detected
|
||||||
|
- autoinstall-dvbsky-firmware # download and install required firmware files for dvbsky cards
|
||||||
|
- autoinstall-firmware # download and install firmware files for dvb devices
|
||||||
- wakeup
|
- wakeup
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
@ -461,22 +470,10 @@ yavdr-common executes the following tasks:
|
|||||||
#+END_SRC
|
#+END_SRC
|
||||||
***** Use bash instead of dash
|
***** Use bash instead of dash
|
||||||
#+BEGIN_SRC yaml :tangle roles/yavdr-common/tasks/configure_system.yml :mkdirp yes
|
#+BEGIN_SRC yaml :tangle roles/yavdr-common/tasks/configure_system.yml :mkdirp yes
|
||||||
- name: apt | ensure debconf and debconf-utils are installed
|
- name: use bash instead of dash
|
||||||
apt:
|
shell: |
|
||||||
name: "{{ packages }}"
|
echo "set dash/sh false" | debconf-communicate
|
||||||
vars:
|
dpkg-reconfigure -f noninteractive dash
|
||||||
packages:
|
|
||||||
- debconf
|
|
||||||
- debconf-utils
|
|
||||||
|
|
||||||
- name: use bash instead of dash by default
|
|
||||||
debconf:
|
|
||||||
name: dash
|
|
||||||
question: dash/sh
|
|
||||||
value: 'false'
|
|
||||||
vtype: select
|
|
||||||
notify: ['Reconfigure unattended upgrades with dpkg']
|
|
||||||
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
***** create user vdr
|
***** create user vdr
|
||||||
@ -627,6 +624,15 @@ first_run: False
|
|||||||
- amd_detected
|
- amd_detected
|
||||||
- virtualbox_detected
|
- virtualbox_detected
|
||||||
|
|
||||||
|
- name: get detailed PCI device information
|
||||||
|
pci_facts:
|
||||||
|
tags:
|
||||||
|
- always
|
||||||
|
|
||||||
|
- debug:
|
||||||
|
var: pci_devices
|
||||||
|
verbosity: 1
|
||||||
|
|
||||||
- name: known vdr output plugins
|
- name: known vdr output plugins
|
||||||
set_fact:
|
set_fact:
|
||||||
vdr_output_plugins:
|
vdr_output_plugins:
|
||||||
@ -4659,7 +4665,7 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04
|
|||||||
- vdrctl enable xineliboutput
|
- vdrctl enable xineliboutput
|
||||||
ignore_errors: yes
|
ignore_errors: yes
|
||||||
when:
|
when:
|
||||||
- ansible_virtualization_type == "virtualbox"
|
- ansible_virtualization_type == "virtualbox" or ansible_virtualization_type == "VMware"
|
||||||
- ansible_virtualization_role == "guest"
|
- ansible_virtualization_role == "guest"
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
** autoinstall-atric-usb
|
** autoinstall-atric-usb
|
||||||
@ -4897,19 +4903,35 @@ dependencies:
|
|||||||
|
|
||||||
# This role provides easyily downloadable firmware files
|
# This role provides easyily downloadable firmware files
|
||||||
|
|
||||||
- name: Firmware for Hauppauge WinTV HD Solo/Duo, PCTV 292e
|
- name: Firmware dvb-demod-si2168-b40-01.fw for Hauppauge WinTV HD Solo/Duo, PCTV 292e
|
||||||
get_url:
|
get_url:
|
||||||
url: https://github.com/OpenELEC/dvb-firmware/raw/master/firmware/dvb-demod-si2168-b40-01.fw
|
url: https://github.com/OpenELEC/dvb-firmware/raw/master/firmware/dvb-demod-si2168-b40-01.fw
|
||||||
checksum: sha256:8507536630d75a316d0719d6b95c04b90c36baa5b457ad457c9bacadafcef134
|
checksum: sha256:8507536630d75a316d0719d6b95c04b90c36baa5b457ad457c9bacadafcef134
|
||||||
dest: /lib/firmware/dvb-demod-si2168-b40-01.fw
|
dest: /lib/firmware/dvb-demod-si2168-b40-01.fw
|
||||||
when: '"2040:0264" in usb or "2013:025f" in usb'
|
when: '"2040:0264" in usb or "2013:025f" in usb'
|
||||||
|
|
||||||
- name: Firmware for Hauppauge WinTV-HVR-930C
|
- name: Firmware dvb-fe-xc5000-1.6.114.fw for Hauppauge WinTV-HVR-930C
|
||||||
get_url:
|
get_url:
|
||||||
url: https://github.com/OpenELEC/dvb-firmware/raw/master/firmware/dvb-fe-xc5000-1.6.114.fw
|
url: https://github.com/OpenELEC/dvb-firmware/raw/master/firmware/dvb-fe-xc5000-1.6.114.fw
|
||||||
checksum: sha256:7104bda8df301fe1bd4c09de1708aeb6d0d8e1f9d55505449fecfad82639235f
|
checksum: sha256:7104bda8df301fe1bd4c09de1708aeb6d0d8e1f9d55505449fecfad82639235f
|
||||||
dest: /lib/firmware/dvb-fe-xc5000-1.6.114.fw
|
dest: /lib/firmware/dvb-fe-xc5000-1.6.114.fw
|
||||||
when: '"2040:1605" in usb'
|
when: '"2040:1605" in usb'
|
||||||
|
|
||||||
|
- name: Firmware ngenge_18.fw for ngene cards
|
||||||
|
get_url:
|
||||||
|
url: http://l4m-daten.de/downloads/firmware/dvb-s2/linux/all/ngene_18.fw
|
||||||
|
checksum: sha256:213d98ec2cd575eba15d82ee79fed7098e670de43792f8aa773a95cfb7c32060
|
||||||
|
dest: /lib/firmware/ngene_18.fw
|
||||||
|
when: '"ngene" in modules'
|
||||||
|
notify: reboot required
|
||||||
|
|
||||||
|
- name: Firmware drxk_a3.mc for drxk
|
||||||
|
get_url:
|
||||||
|
url: https://github.com/OpenELEC/dvb-firmware/raw/master/firmware/drxk_a3.mc
|
||||||
|
checksum: sha256:f8956ad6f92a4ce90a6ab94ed23e2f9a27e9317e936fd3e0119778dd28e7e294
|
||||||
|
dest: /lib/firmware/drxk_a3.mc
|
||||||
|
when: '"ngene" in modules or "drxk" in modules'
|
||||||
|
notify: reboot required
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
** autoinstall-dvbsky-firmware
|
** autoinstall-dvbsky-firmware
|
||||||
*** dependencies
|
*** dependencies
|
||||||
@ -5517,7 +5539,7 @@ fi
|
|||||||
* Modules
|
* Modules
|
||||||
This section contains custom modules for the yaVDR Playbooks. They are used to collect facts about the system and configure applications and daemons.
|
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
|
** hardware_facts.py
|
||||||
#+BEGIN_SRC python :tangle library/hardware_facts.py :shebang #!/usr/bin/env/python
|
#+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.
|
# This Module collects the vendor- and device ids for USB- and PCI(e)-devices and currently loaded kernel modules.
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
---
|
---
|
||||||
@ -5690,6 +5712,78 @@ def main():
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
** pci_facts.py
|
||||||
|
#+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.
|
||||||
|
DOCUMENTATION = '''
|
||||||
|
---
|
||||||
|
module: pci_facts
|
||||||
|
short_description: parses lspci output for detailed (sub) devices data
|
||||||
|
description:
|
||||||
|
- This module parses the output of lspci for detailed information about available (sub) devices.
|
||||||
|
- returns a list with a dict for each device
|
||||||
|
|
||||||
|
notes:
|
||||||
|
- requires lspci (package pciutils)
|
||||||
|
|
||||||
|
'''
|
||||||
|
|
||||||
|
EXAMPLES = '''
|
||||||
|
- name: get detailled pci device infos
|
||||||
|
pci_facts:
|
||||||
|
|
||||||
|
- debug:
|
||||||
|
var: pci_devices
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import shlex
|
||||||
|
import subprocess
|
||||||
|
from collections import namedtuple
|
||||||
|
|
||||||
|
from ansible.module_utils.basic import *
|
||||||
|
|
||||||
|
def convert2hex(arg):
|
||||||
|
arg = arg.strip('"')
|
||||||
|
if arg:
|
||||||
|
return int(arg, 16)
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
def parse_lspci_data():
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument('-r', '--revision', help='revision', type=convert2hex)
|
||||||
|
parser.add_argument('-p', '--progif', help='proginf', type=convert2hex)
|
||||||
|
parser.add_argument('slot')
|
||||||
|
parser.add_argument('device_class', type=convert2hex)
|
||||||
|
parser.add_argument('vendor_id', type=convert2hex)
|
||||||
|
parser.add_argument('device_id', type=convert2hex)
|
||||||
|
parser.add_argument('sub_vendor_id', type=convert2hex)
|
||||||
|
parser.add_argument('sub_device_id', type=convert2hex)
|
||||||
|
parser.add_argument('other', nargs='*', default=[])
|
||||||
|
|
||||||
|
devices = []
|
||||||
|
for line in subprocess.check_output(['lspci', '-nm'], universal_newlines=True).splitlines():
|
||||||
|
args = parser.parse_args(args=shlex.split(line))
|
||||||
|
devices.append(vars(args))
|
||||||
|
return devices
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
arg_specs = {}
|
||||||
|
module = AnsibleModule(argument_spec=arg_specs, supports_check_mode=True,)
|
||||||
|
try:
|
||||||
|
pci_devices = parse_lspci_data()
|
||||||
|
except:
|
||||||
|
module.fail_json(msg="Something fatal happened")
|
||||||
|
data = {'pci_devices': pci_devices}
|
||||||
|
module.exit_json(changed=False, ansible_facts=data, msg=data)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
#+END_SRC
|
||||||
** satip_facts.py
|
** satip_facts.py
|
||||||
#+BEGIN_SRC python :tangle library/satip_facts.py :shebang #!/usr/bin/env python2
|
#+BEGIN_SRC python :tangle library/satip_facts.py :shebang #!/usr/bin/env python2
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
@ -6034,6 +6128,7 @@ def collect_nvidia_data():
|
|||||||
|
|
||||||
|
|
||||||
def output_data(data, write_edids=True):
|
def output_data(data, write_edids=True):
|
||||||
|
result = {}
|
||||||
if data:
|
if data:
|
||||||
modes = []
|
modes = []
|
||||||
for _, screen_data in data.items():
|
for _, screen_data in data.items():
|
||||||
@ -6045,7 +6140,6 @@ def output_data(data, write_edids=True):
|
|||||||
for refreshrate in refreshrates:
|
for refreshrate in refreshrates:
|
||||||
modes.append(Mode(connector, resolution, refreshrate))
|
modes.append(Mode(connector, resolution, refreshrate))
|
||||||
if modes:
|
if modes:
|
||||||
result = {}
|
|
||||||
try:
|
try:
|
||||||
gpu_name, bus_id = collect_nvidia_data()
|
gpu_name, bus_id = collect_nvidia_data()
|
||||||
except ValueError:
|
except ValueError:
|
||||||
@ -6171,4 +6265,8 @@ if __name__ == '__main__':
|
|||||||
name: x@vt7.service
|
name: x@vt7.service
|
||||||
state: stopped
|
state: stopped
|
||||||
register: x_stop
|
register: x_stop
|
||||||
|
|
||||||
|
- name: reboot required
|
||||||
|
debug:
|
||||||
|
msg: PLEASE REBOOT YOUR SYSTEM.
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
@ -77,3 +77,7 @@
|
|||||||
name: x@vt7.service
|
name: x@vt7.service
|
||||||
state: stopped
|
state: stopped
|
||||||
register: x_stop
|
register: x_stop
|
||||||
|
|
||||||
|
- name: reboot required
|
||||||
|
debug:
|
||||||
|
msg: PLEASE REBOOT YOUR SYSTEM.
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
if (( $EUID != 0 )); then
|
if (( $EUID != 0 )); then
|
||||||
echo "This script must be run using sudo -H or as root"
|
echo "This script must be run using sudo -H or as root"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
apt-get -y install software-properties-common
|
|
||||||
# update packages
|
# update packages
|
||||||
apt-get update
|
apt update
|
||||||
|
apt -y install software-properties-common
|
||||||
|
add-apt-repository -y ppa:ansible/ansible-2.6
|
||||||
|
|
||||||
# install required packages
|
# install required packages
|
||||||
apt-get -y install --no-install-recommends ansible
|
apt-get -y install --no-install-recommends ansible python-jmespath
|
||||||
|
|
||||||
# TODO: run ansible on local host
|
# TODO: run ansible on local host
|
||||||
ansible-playbook yavdr07.yml -b -i 'localhost_inventory' --connection=local --tags="all" --extra-vars "first_run=True"
|
ansible-playbook yavdr07.yml -b -i 'localhost_inventory' --connection=local --tags="all" --extra-vars "first_run=True"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env/python
|
#!/usr/bin/env python
|
||||||
# This Module collects the vendor- and device ids for USB- and PCI(e)-devices and currently loaded kernel modules.
|
# This Module collects the vendor- and device ids for USB- and PCI(e)-devices and currently loaded kernel modules.
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
---
|
---
|
||||||
|
69
library/pci_facts.py
Executable file
69
library/pci_facts.py
Executable file
@ -0,0 +1,69 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# This module parses the output of lspci for detailed information about available (sub) devices.
|
||||||
|
DOCUMENTATION = '''
|
||||||
|
---
|
||||||
|
module: pci_facts
|
||||||
|
short_description: parses lspci output for detailed (sub) devices data
|
||||||
|
description:
|
||||||
|
- This module parses the output of lspci for detailed information about available (sub) devices.
|
||||||
|
- returns a list with a dict for each device
|
||||||
|
|
||||||
|
notes:
|
||||||
|
- requires lspci (package pciutils)
|
||||||
|
|
||||||
|
'''
|
||||||
|
|
||||||
|
EXAMPLES = '''
|
||||||
|
- name: get detailled pci device infos
|
||||||
|
pci_facts:
|
||||||
|
|
||||||
|
- debug:
|
||||||
|
var: pci_devices
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import shlex
|
||||||
|
import subprocess
|
||||||
|
from collections import namedtuple
|
||||||
|
|
||||||
|
from ansible.module_utils.basic import *
|
||||||
|
|
||||||
|
def convert2hex(arg):
|
||||||
|
arg = arg.strip('"')
|
||||||
|
if arg:
|
||||||
|
return int(arg, 16)
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
def parse_lspci_data():
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument('-r', '--revision', help='revision', type=convert2hex)
|
||||||
|
parser.add_argument('-p', '--progif', help='proginf', type=convert2hex)
|
||||||
|
parser.add_argument('slot')
|
||||||
|
parser.add_argument('device_class', type=convert2hex)
|
||||||
|
parser.add_argument('vendor_id', type=convert2hex)
|
||||||
|
parser.add_argument('device_id', type=convert2hex)
|
||||||
|
parser.add_argument('sub_vendor_id', type=convert2hex)
|
||||||
|
parser.add_argument('sub_device_id', type=convert2hex)
|
||||||
|
parser.add_argument('other', nargs='*', default=[])
|
||||||
|
|
||||||
|
devices = []
|
||||||
|
for line in subprocess.check_output(['lspci', '-nm'], universal_newlines=True).splitlines():
|
||||||
|
args = parser.parse_args(args=shlex.split(line))
|
||||||
|
devices.append(vars(args))
|
||||||
|
return devices
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
arg_specs = {}
|
||||||
|
module = AnsibleModule(argument_spec=arg_specs, supports_check_mode=True,)
|
||||||
|
try:
|
||||||
|
pci_devices = parse_lspci_data()
|
||||||
|
except:
|
||||||
|
module.fail_json(msg="Something fatal happened")
|
||||||
|
data = {'pci_devices': pci_devices}
|
||||||
|
module.exit_json(changed=False, ansible_facts=data, msg=data)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
@ -219,6 +219,7 @@ def collect_nvidia_data():
|
|||||||
|
|
||||||
|
|
||||||
def output_data(data, write_edids=True):
|
def output_data(data, write_edids=True):
|
||||||
|
result = {}
|
||||||
if data:
|
if data:
|
||||||
modes = []
|
modes = []
|
||||||
for _, screen_data in data.items():
|
for _, screen_data in data.items():
|
||||||
@ -230,7 +231,6 @@ def output_data(data, write_edids=True):
|
|||||||
for refreshrate in refreshrates:
|
for refreshrate in refreshrates:
|
||||||
modes.append(Mode(connector, resolution, refreshrate))
|
modes.append(Mode(connector, resolution, refreshrate))
|
||||||
if modes:
|
if modes:
|
||||||
result = {}
|
|
||||||
try:
|
try:
|
||||||
gpu_name, bus_id = collect_nvidia_data()
|
gpu_name, bus_id = collect_nvidia_data()
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
@ -2,16 +2,32 @@
|
|||||||
|
|
||||||
# This role provides easyily downloadable firmware files
|
# This role provides easyily downloadable firmware files
|
||||||
|
|
||||||
- name: Firmware for Hauppauge WinTV HD Solo/Duo, PCTV 292e
|
- name: Firmware dvb-demod-si2168-b40-01.fw for Hauppauge WinTV HD Solo/Duo, PCTV 292e
|
||||||
get_url:
|
get_url:
|
||||||
url: https://github.com/OpenELEC/dvb-firmware/raw/master/firmware/dvb-demod-si2168-b40-01.fw
|
url: https://github.com/OpenELEC/dvb-firmware/raw/master/firmware/dvb-demod-si2168-b40-01.fw
|
||||||
checksum: sha256:8507536630d75a316d0719d6b95c04b90c36baa5b457ad457c9bacadafcef134
|
checksum: sha256:8507536630d75a316d0719d6b95c04b90c36baa5b457ad457c9bacadafcef134
|
||||||
dest: /lib/firmware/dvb-demod-si2168-b40-01.fw
|
dest: /lib/firmware/dvb-demod-si2168-b40-01.fw
|
||||||
when: '"2040:0264" in usb or "2013:025f" in usb'
|
when: '"2040:0264" in usb or "2013:025f" in usb'
|
||||||
|
|
||||||
- name: Firmware for Hauppauge WinTV-HVR-930C
|
- name: Firmware dvb-fe-xc5000-1.6.114.fw for Hauppauge WinTV-HVR-930C
|
||||||
get_url:
|
get_url:
|
||||||
url: https://github.com/OpenELEC/dvb-firmware/raw/master/firmware/dvb-fe-xc5000-1.6.114.fw
|
url: https://github.com/OpenELEC/dvb-firmware/raw/master/firmware/dvb-fe-xc5000-1.6.114.fw
|
||||||
checksum: sha256:7104bda8df301fe1bd4c09de1708aeb6d0d8e1f9d55505449fecfad82639235f
|
checksum: sha256:7104bda8df301fe1bd4c09de1708aeb6d0d8e1f9d55505449fecfad82639235f
|
||||||
dest: /lib/firmware/dvb-fe-xc5000-1.6.114.fw
|
dest: /lib/firmware/dvb-fe-xc5000-1.6.114.fw
|
||||||
when: '"2040:1605" in usb'
|
when: '"2040:1605" in usb'
|
||||||
|
|
||||||
|
- name: Firmware ngenge_18.fw for ngene cards
|
||||||
|
get_url:
|
||||||
|
url: http://l4m-daten.de/downloads/firmware/dvb-s2/linux/all/ngene_18.fw
|
||||||
|
checksum: sha256:213d98ec2cd575eba15d82ee79fed7098e670de43792f8aa773a95cfb7c32060
|
||||||
|
dest: /lib/firmware/ngene_18.fw
|
||||||
|
when: '"ngene" in modules'
|
||||||
|
notify: reboot required
|
||||||
|
|
||||||
|
- name: Firmware drxk_a3.mc for drxk
|
||||||
|
get_url:
|
||||||
|
url: https://github.com/OpenELEC/dvb-firmware/raw/master/firmware/drxk_a3.mc
|
||||||
|
checksum: sha256:f8956ad6f92a4ce90a6ab94ed23e2f9a27e9317e936fd3e0119778dd28e7e294
|
||||||
|
dest: /lib/firmware/drxk_a3.mc
|
||||||
|
when: '"ngene" in modules or "drxk" in modules'
|
||||||
|
notify: reboot required
|
||||||
|
@ -36,5 +36,5 @@
|
|||||||
- vdrctl enable xineliboutput
|
- vdrctl enable xineliboutput
|
||||||
ignore_errors: yes
|
ignore_errors: yes
|
||||||
when:
|
when:
|
||||||
- ansible_virtualization_type == "virtualbox"
|
- ansible_virtualization_type == "virtualbox" or ansible_virtualization_type == "VMware"
|
||||||
- ansible_virtualization_role == "guest"
|
- ansible_virtualization_role == "guest"
|
||||||
|
@ -22,6 +22,15 @@
|
|||||||
- amd_detected
|
- amd_detected
|
||||||
- virtualbox_detected
|
- virtualbox_detected
|
||||||
|
|
||||||
|
- name: get detailed PCI device information
|
||||||
|
pci_facts:
|
||||||
|
tags:
|
||||||
|
- always
|
||||||
|
|
||||||
|
- debug:
|
||||||
|
var: pci_devices
|
||||||
|
verbosity: 1
|
||||||
|
|
||||||
- name: known vdr output plugins
|
- name: known vdr output plugins
|
||||||
set_fact:
|
set_fact:
|
||||||
vdr_output_plugins:
|
vdr_output_plugins:
|
||||||
|
@ -29,3 +29,4 @@
|
|||||||
shell: sed 's/--lock-media //' /lib/udev/rules.d/60-cdrom_id.rules > /etc/udev/rules.d/60-cdrom_id.rules
|
shell: sed 's/--lock-media //' /lib/udev/rules.d/60-cdrom_id.rules > /etc/udev/rules.d/60-cdrom_id.rules
|
||||||
args:
|
args:
|
||||||
creates: /etc/udev/rules.d/60-cdrom_id.rules
|
creates: /etc/udev/rules.d/60-cdrom_id.rules
|
||||||
|
warn: false
|
||||||
|
@ -8,4 +8,18 @@
|
|||||||
with_items:
|
with_items:
|
||||||
- kodi
|
- kodi
|
||||||
- kodi-pvr-vdr-vnsi
|
- kodi-pvr-vdr-vnsi
|
||||||
- kodi-eventclients-kodi-send # for ubuntu packages, team-xbmc uses "kodi-eventclients-xbmc-send for some reason
|
|
||||||
|
- name: apt | install kodi-send (team-xbmc PPA)
|
||||||
|
apt:
|
||||||
|
name: "kodi-eventclients-xbmc-send" # team-xbmc uses "kodi-eventclients-xbmc-send for some reason
|
||||||
|
state: present
|
||||||
|
install_recommends: no
|
||||||
|
register: team_xbmc_ppa
|
||||||
|
ignore_errors: True
|
||||||
|
|
||||||
|
- name: apt | install kodi-send (Ubuntu package)
|
||||||
|
apt:
|
||||||
|
name: "kodi-eventclients-kodi-send" # fallback to ubuntu package
|
||||||
|
state: present
|
||||||
|
install_recommends: no
|
||||||
|
when: team_xbmc_ppa.failed
|
||||||
|
@ -8,5 +8,5 @@ ExecStartPre=-/usr/bin/set-kodi-display
|
|||||||
ExecStart=/usr/bin/kodi -l /run/lirc/lircd
|
ExecStart=/usr/bin/kodi -l /run/lirc/lircd
|
||||||
ExecStop=/bin/bash -c "/usr/bin/kodi-send --action=QUIT; while ps -p $MAINPID -o comm=; do sleep .25; done"
|
ExecStop=/bin/bash -c "/usr/bin/kodi-send --action=QUIT; while ps -p $MAINPID -o comm=; do sleep .25; done"
|
||||||
TimeoutStopSec=10
|
TimeoutStopSec=10
|
||||||
SuccessExitStatus=0 127
|
SuccessExitStatus=0 127 SIGKILL
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
|
@ -1,18 +1,7 @@
|
|||||||
- name: apt | ensure debconf and debconf-utils are installed
|
- name: use bash instead of dash
|
||||||
apt:
|
shell: |
|
||||||
name: "{{ packages }}"
|
echo "set dash/sh false" | debconf-communicate
|
||||||
vars:
|
dpkg-reconfigure -f noninteractive dash
|
||||||
packages:
|
|
||||||
- debconf
|
|
||||||
- debconf-utils
|
|
||||||
|
|
||||||
- name: use bash instead of dash by default
|
|
||||||
debconf:
|
|
||||||
name: dash
|
|
||||||
question: dash/sh
|
|
||||||
value: 'false'
|
|
||||||
vtype: select
|
|
||||||
notify: ['Reconfigure unattended upgrades with dpkg']
|
|
||||||
- name: create vdr group
|
- name: create vdr group
|
||||||
group:
|
group:
|
||||||
gid: '{{ vdr.gid }}'
|
gid: '{{ vdr.gid }}'
|
||||||
|
@ -14,7 +14,12 @@
|
|||||||
- samba-config
|
- samba-config
|
||||||
- nfs-server
|
- nfs-server
|
||||||
- grub-config
|
- grub-config
|
||||||
- autoinstall-satip
|
- autoinstall-satip # install vdr-plugin-satip if a Sat>IP server has been found
|
||||||
|
- autoinstall-pvr350 # install vdr-plugin-pvr350 if a matching card is detected
|
||||||
|
- autoinstall-hauppauge-pvr # install vdr-plugin-pvrinput if a matching card is found
|
||||||
|
- autoinstall-dvbsddevice # install vdr-plugin-dvbsddevice if a matching card is detected
|
||||||
|
- autoinstall-dvbsky-firmware # download and install required firmware files for dvbsky cards
|
||||||
|
- autoinstall-firmware # download and install firmware files for dvb devices
|
||||||
- wakeup
|
- wakeup
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
@ -10,9 +10,9 @@
|
|||||||
- collect-facts # query system facts
|
- collect-facts # query system facts
|
||||||
- autoinstall-ubuntu-drivers # use ubuntu-drivers to install proprietary dirvers
|
- autoinstall-ubuntu-drivers # use ubuntu-drivers to install proprietary dirvers
|
||||||
# (e.g. nvidia, virtualbox)
|
# (e.g. nvidia, virtualbox)
|
||||||
- autoinstall-virtualbox-guest
|
|
||||||
# - nvidia-experimental # install very recent nvidia dirver from ppa:graphics-drivers/ppa
|
# - nvidia-experimental # install very recent nvidia dirver from ppa:graphics-drivers/ppa
|
||||||
- vdr # install vdr and related packages
|
- vdr # install vdr and related packages
|
||||||
|
- autoinstall-virtualbox-guest
|
||||||
- yavdr-network # enable network client capabilities
|
- yavdr-network # enable network client capabilities
|
||||||
- samba-install # install samba server
|
- samba-install # install samba server
|
||||||
- samba-config # configure samba server
|
- samba-config # configure samba server
|
||||||
@ -24,13 +24,14 @@
|
|||||||
- autoinstall-satip # install vdr-plugin-satip if a Sat>IP server has been found
|
- autoinstall-satip # install vdr-plugin-satip if a Sat>IP server has been found
|
||||||
- autoinstall-targavfd # install vdr-plugin-targavfd if display is connected
|
- autoinstall-targavfd # install vdr-plugin-targavfd if display is connected
|
||||||
- autoinstall-imonlcd # install vdr-plugin-imonlcd if a matchind display is connected
|
- autoinstall-imonlcd # install vdr-plugin-imonlcd if a matchind display is connected
|
||||||
- autoinstall-pvr350 # install vdr-plugin-pgvr350 if a matching card is detected
|
- autoinstall-pvr350 # install vdr-plugin-pvr350 if a matching card is detected
|
||||||
- autoinstall-hauppauge-pvr # install vdr-plugin-pvrinput if a matching card is found
|
- autoinstall-hauppauge-pvr # install vdr-plugin-pvrinput if a matching card is found
|
||||||
- autoinstall-dvbsddevice # install vdr-plugin-dvbsddevice if a matching card is detected
|
- autoinstall-dvbsddevice # install vdr-plugin-dvbsddevice if a matching card is detected
|
||||||
- autoinstall-hardware-irmp # install yavdr-hardware-irmp if a matching usb device is detected
|
- autoinstall-hardware-irmp # install yavdr-hardware-irmp if a matching usb device is detected
|
||||||
- autoinstall-atric-usb # preconfigure lircd for Atric IR-WakeupUSB receiver
|
- autoinstall-atric-usb # preconfigure lircd for Atric IR-WakeupUSB receiver
|
||||||
- autoinstall-yausbir # preconfigure lircd for yaUsbIR receiver
|
- autoinstall-yausbir # preconfigure lircd for yaUsbIR receiver
|
||||||
- autoinstall-dvbsky-firmware # download an install required firmware files for dvbsky cards
|
- autoinstall-dvbsky-firmware # download and install required firmware files for dvbsky cards
|
||||||
|
- autoinstall-firmware # download and install firmware files for dvb devices
|
||||||
- kodi
|
- kodi
|
||||||
- dvd # set up packages and a udev rule to allow kodi and other players
|
- dvd # set up packages and a udev rule to allow kodi and other players
|
||||||
# to play and eject optical media
|
# to play and eject optical media
|
||||||
|
Loading…
Reference in New Issue
Block a user