Compare commits
75 Commits
master
...
xorg-detec
Author | SHA1 | Date | |
---|---|---|---|
|
fbb6003cf9 | ||
|
c36056561f | ||
|
af3ef457b6 | ||
|
98729f7cbd | ||
|
ffc4707fdc | ||
|
886fff4f09 | ||
|
c6207490b8 | ||
|
3006830cc1 | ||
|
9f42da23f6 | ||
|
4b8ff236b5 | ||
|
2e8bd59576 | ||
|
ec0234f938 | ||
|
d09df785b6 | ||
|
1d108dc61f | ||
|
d8c3b9c5bd | ||
|
ce941ce722 | ||
|
2c08b97090 | ||
|
4c96c0a128 | ||
|
13209045b8 | ||
|
27278862a5 | ||
|
88254f8e79 | ||
|
41e44b67a4 | ||
|
467c960bf3 | ||
|
6468b5d432 | ||
|
7476635066 | ||
|
34a0a0e36c | ||
|
b9c56955b4 | ||
|
4682af7c3a | ||
|
14d05a742b | ||
|
c54313c6e7 | ||
|
f42fc8f144 | ||
|
02a1d94108 | ||
|
9440928891 | ||
|
1689195d42 | ||
|
8d201c2e62 | ||
|
98674ffc4f | ||
|
2f02f49aa1 | ||
|
07b9f18659 | ||
|
fb4483c01f | ||
|
4f95b57a9d | ||
|
4b9332b277 | ||
|
1befca797e | ||
|
fd1d7744fb | ||
|
784ea1d0b2 | ||
|
3aadc14dbb | ||
|
ea39de7a21 | ||
|
4c4705e49f | ||
|
87969286f2 | ||
|
a84b9b1742 | ||
|
bde3106c47 | ||
|
0c1f52d986 | ||
|
04662f2b83 | ||
|
4cf30fabd0 | ||
|
3051e04c53 | ||
|
767807e3e4 | ||
|
89963fa35b | ||
|
b9e4f1bc33 | ||
|
7726ce1399 | ||
|
345e373a52 | ||
|
63bc6828aa | ||
|
5d6ffd6f4c | ||
|
dd0cd703fe | ||
|
4097b01602 | ||
|
b1532f7a7a | ||
|
f94dd32250 | ||
|
7b685ebe98 | ||
|
1405c73c87 | ||
|
59685f9a99 | ||
|
dabc057ed7 | ||
|
036fd26287 | ||
|
2b749ba457 | ||
|
a7bc7a4386 | ||
|
3708289de7 | ||
|
048ae4e5d4 | ||
|
295a99c622 |
1607
Manual.html
1607
Manual.html
File diff suppressed because it is too large
Load Diff
577
Manual.org
577
Manual.org
@@ -135,23 +135,26 @@ cd yavdr-ansible
|
||||
sudo ./install-yavdr.sh
|
||||
#+END_SRC
|
||||
|
||||
We use a callback to generate tags for all roles autmatically:
|
||||
#+INCLUDE: "ansible.cfg" src conf
|
||||
|
||||
** Install script for local usage
|
||||
#+BEGIN_SRC shell :tangle install-yavdr.sh :shebang "#!/bin/bash"
|
||||
if (( $EUID != 0 )); then
|
||||
echo "This script must be run using sudo or as root"
|
||||
echo "This script must be run using sudo -H or as root"
|
||||
exit
|
||||
fi
|
||||
|
||||
apt-get -y install software-properties-common
|
||||
# Add repository for ansible
|
||||
add-apt-repository -y ppa:ansible/ansible
|
||||
add-apt-repository -y ppa:yavdr/experimental-main
|
||||
# update packages
|
||||
apt-get update
|
||||
# install required packages
|
||||
apt-get -y install --no-install-recommends ansible
|
||||
|
||||
# TODO: run ansible on local host
|
||||
ansible-playbook yavdr07.yml -b -i 'localhost_inventory' --connection=local --tags=install
|
||||
ansible-playbook yavdr07.yml -b -i 'localhost_inventory' --connection=local --tags="all"
|
||||
#+END_SRC
|
||||
* Playbooks
|
||||
** yavdr07.yml
|
||||
@@ -186,14 +189,13 @@ The ~yavdr07.yml~ playbook sets up a fully-featured yaVDR installation:
|
||||
- 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-hardware-irmp # install yavdr-hardware-irmp if a matching usb device is detected
|
||||
- autoinstall-atric-usb # preconfigure lircd for Atric IR-WakeupUSB receiver
|
||||
- autoinstall-dvbsky-firmware # download an install required firmware files for dvbsky cards
|
||||
- kodi
|
||||
- dvd # set up packages and a udev rule to allow kodi and other players
|
||||
# to play and eject optical media
|
||||
- wakeup # set up wakeup methods for rtc etc.
|
||||
- grub-config # configure grub
|
||||
tags:
|
||||
- always
|
||||
|
||||
handlers:
|
||||
- import_tasks: handlers/main.yml
|
||||
@@ -239,19 +241,18 @@ localhost connection=local
|
||||
# file: group_vars/all
|
||||
|
||||
# this is the standard text to put in templates
|
||||
ansible_managed_file: "*** YAVDR: ANSIBLE MANAGED FILE ***"
|
||||
ansible_managed_file: "*** YAVDR: ANSIBLE MANAGED FILE ***\norigin: {file}"
|
||||
#+END_SRC
|
||||
** PPAs
|
||||
#+BEGIN_SRC yaml :tangle group_vars/all :mkdirp yes
|
||||
branch: unstable
|
||||
branch: experimental
|
||||
ppa_owner: 'ppa:yavdr'
|
||||
# add the following PPAs
|
||||
repositories:
|
||||
- '{{ ppa_owner }}/main'
|
||||
- '{{ ppa_owner }}/unstable-main'
|
||||
- '{{ ppa_owner }}/{{branch}}-main'
|
||||
- '{{ ppa_owner }}/{{branch}}-vdr'
|
||||
- '{{ ppa_owner }}/{{branch}}-yavdr'
|
||||
- '{{ ppa_owner }}/{{branch}}-kodi'
|
||||
#- '{{ ppa_owner }}/{{branch}}-yavdr'
|
||||
#- '{{ ppa_owner }}/{{branch}}-kodi'
|
||||
#+END_SRC
|
||||
** VDR user, directories, special configuration and plugins
|
||||
#+BEGIN_SRC yaml :tangle group_vars/all :mkdirp yes
|
||||
@@ -274,14 +275,13 @@ vdr_plugins:
|
||||
- vdr-plugin-markad
|
||||
- vdr-plugin-restfulapi
|
||||
- vdr-plugin-softhddevice-vpp
|
||||
|
||||
#+END_SRC
|
||||
** Media directories
|
||||
#+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:
|
||||
audio: /srv/audio
|
||||
video: /srv/audio
|
||||
video: /srv/video
|
||||
pictures: /srv/picture
|
||||
files: /srv/files
|
||||
backups: /srv/backups
|
||||
@@ -308,6 +308,7 @@ extra_packages:
|
||||
- tree
|
||||
- vim
|
||||
- w-scan
|
||||
- plymouth-theme-yavdr-logo
|
||||
#+END_SRC
|
||||
** System pre-configuration
|
||||
#+BEGIN_SRC yaml :tangle group_vars/all :mkdirp yes
|
||||
@@ -317,7 +318,7 @@ frontend: vdr
|
||||
wakeup_method: acpiwakeup
|
||||
grub:
|
||||
timeout: 0
|
||||
boot_options: quiet nosplash
|
||||
boot_options: quiet splash
|
||||
#+END_SRC
|
||||
* Roles
|
||||
** install-dependencies
|
||||
@@ -347,6 +348,8 @@ install nvidia-387 from ppa:graphics-drivers/ppa
|
||||
repo: 'ppa:graphics-drivers/ppa'
|
||||
state: present
|
||||
update_cache: yes
|
||||
tags:
|
||||
- ppa
|
||||
|
||||
- name: install nvidia-387 and other required packages
|
||||
apt:
|
||||
@@ -356,6 +359,8 @@ install nvidia-387 from ppa:graphics-drivers/ppa
|
||||
with_items:
|
||||
- nvidia-387
|
||||
- nvidia-settings
|
||||
tags:
|
||||
- packages
|
||||
#+END_SRC
|
||||
** yavdr-common
|
||||
This role is used to set up a basic yaVDR installation. It creates the directories, installs the vdr and other useful packages.
|
||||
@@ -448,6 +453,8 @@ yavdr-common executes the following tasks:
|
||||
state: present
|
||||
update_cache: yes
|
||||
with_items: '{{ repositories }}'
|
||||
tags:
|
||||
- ppa
|
||||
|
||||
- name: run apt-get dist-upgrade
|
||||
apt:
|
||||
@@ -574,6 +581,8 @@ APT::Install-Suggests "0";
|
||||
modules: True
|
||||
gpus: True
|
||||
acpi_power_modes: True
|
||||
tags:
|
||||
- always
|
||||
|
||||
- debug:
|
||||
var: '{{ item }}'
|
||||
@@ -588,6 +597,13 @@ APT::Install-Suggests "0";
|
||||
- intel_detected
|
||||
- amd_detected
|
||||
- virtualbox_detected
|
||||
|
||||
- name: known vdr output plugins
|
||||
set_fact:
|
||||
vdr_output_plugins:
|
||||
- softhddevice
|
||||
- xineliboutput
|
||||
- xine
|
||||
#+END_SRC
|
||||
** vdr
|
||||
*** tasks
|
||||
@@ -631,11 +647,10 @@ APT::Install-Suggests "0";
|
||||
blockinfile:
|
||||
dest: /etc/vdr/conf.d/04-vdr-hide-first-recordinglevel.conf
|
||||
create: true
|
||||
state: "{{ 'present' if vdr.hide_first_recording_level else 'absent' }}"
|
||||
block: |
|
||||
[vdr]
|
||||
--hide-first-recording-level
|
||||
when:
|
||||
vdr.hide_first_recording_level
|
||||
|
||||
- name: create local dir in recdir
|
||||
file:
|
||||
@@ -850,7 +865,7 @@ install_avahi: true
|
||||
---
|
||||
# this playbook sets up network services for a yaVDR installation
|
||||
|
||||
- name: apt |install packages for network services
|
||||
- name: apt | install packages for network services
|
||||
apt:
|
||||
name: '{{ item }}'
|
||||
state: present
|
||||
@@ -961,25 +976,38 @@ install_avahi: true
|
||||
#+END_SRC
|
||||
** STARTED yavdr-remote
|
||||
*** default variables
|
||||
#+BEGIN_SRC yaml :tangle roles/yavdr-remote/defaults/main.yml :mkdirp yes :padline no
|
||||
lircd0_socket: /var/run/lirc/lircd0
|
||||
#+END_SRC
|
||||
*** tasks
|
||||
#+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.
|
||||
|
||||
- name: apt | install yavdr-remote
|
||||
- name: apt | install packages for remote support
|
||||
apt:
|
||||
name: yavdr-remote
|
||||
name: '{{ item }}'
|
||||
state: present
|
||||
with_items:
|
||||
- yavdr-remote
|
||||
- lirc
|
||||
- eventlircd
|
||||
- lircd2uinput
|
||||
tags:
|
||||
- packages
|
||||
|
||||
- name: apt | install eventlircd
|
||||
apt:
|
||||
name: eventlircd
|
||||
state: present
|
||||
|
||||
- name: apt | install lirc
|
||||
apt:
|
||||
name: lirc
|
||||
state: present
|
||||
- name: add systemd drop-in for lircd to use lircd2uinput
|
||||
block:
|
||||
- name: create directory /etc/systemd/system/lircd.service.d/
|
||||
file:
|
||||
path: /etc/systemd/system/lircd.service.d/
|
||||
state: directory
|
||||
- name: expand template for /etc/systemd/system/lircd.service.d/lircd2uinput.conf
|
||||
template:
|
||||
src: templates/lircd.service.d/lircd2uinput.conf.j2
|
||||
dest: /etc/systemd/system/lircd.service.d/lircd2uinput.conf
|
||||
tags:
|
||||
- config
|
||||
|
||||
- name: stop, mask and disable lircd.socket, lircd.service and lircd-uinput.service # (the default lirc configuration conflicts with eventlircd)
|
||||
systemd:
|
||||
@@ -992,29 +1020,224 @@ install_avahi: true
|
||||
- lircd.socket
|
||||
- lircd-uinput.service
|
||||
ignore_errors: yes
|
||||
tags:
|
||||
- systemd
|
||||
|
||||
- name: configure vdr to read from a lircd-compatible socket
|
||||
template:
|
||||
src: templates/03-vdr-lirc.conf.j2
|
||||
dest: /etc/vdr/conf.d/03-vdr-lirc.conf
|
||||
notify: ['Restart VDR']
|
||||
tags:
|
||||
- config
|
||||
|
||||
# TODO: upload lircd2uinput package to PPA
|
||||
#- name: install lircd2uinput
|
||||
# tag: install
|
||||
# apt:
|
||||
# name: lircd2uinput
|
||||
# state: present
|
||||
# when:
|
||||
# install_eventlircd is defined and install_eventlircd
|
||||
- name: expand template for /etc/rc_maps.cfg
|
||||
template:
|
||||
src: templates/rc_maps.cfg.j2
|
||||
dest: /etc/rc_maps.cfg
|
||||
notify: ['Trigger Udev']
|
||||
tags:
|
||||
- config
|
||||
#+END_SRC
|
||||
*** templates
|
||||
**** Systemd Drop-in to start vdr with lirc support
|
||||
#+BEGIN_SRC conf :tangle roles/yavdr-remote/templates/03-vdr-lirc.conf.j2 :mkdirp yes :padline no
|
||||
{% if frontend != 'kodi' %}
|
||||
[vdr]
|
||||
--lirc=/var/run/lirc/lircd
|
||||
{% endif %}
|
||||
#+END_SRC
|
||||
**** Systemd Drop-in to start lircd2uinput with lircd
|
||||
#+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
|
||||
#+BEGIN_SRC conf :tangle roles/yavdr-remote/templates/rc_maps.cfg.j2 :mkdirp yes :padline no
|
||||
#
|
||||
# Keymaps table
|
||||
#
|
||||
# This table creates an association between a keycode file and a kernel
|
||||
# driver. It can be used to automatically override a keycode definition.
|
||||
#
|
||||
# Although not yet tested, it is mented to be added at udev.
|
||||
#
|
||||
# To use, you just need to run:
|
||||
# ./ir-keytable -a
|
||||
#
|
||||
# Or, if the remote is not the first device:
|
||||
# ./ir-keytable -a -s rc1 # for RC at rc1
|
||||
#
|
||||
|
||||
# Format:
|
||||
# driver - name of the driver provided via uevent - use * for any driver
|
||||
# table - RC keymap table, provided via uevent - use * for any table
|
||||
# file - file name. If directory is not specified, it will default to
|
||||
# /etc/rc_keymaps.
|
||||
# For example:
|
||||
# driver table file
|
||||
# cx8800 * ./keycodes/rc5_hauppauge_new
|
||||
# * rc-avermedia-m135a-rm-jx ./keycodes/kworld_315u
|
||||
# saa7134 rc-avermedia-m135a-rm-jx ./keycodes/keycodes/nec_terratec_cinergy_xs
|
||||
# em28xx * ./keycodes/kworld_315u
|
||||
# * * ./keycodes/rc5_hauppauge_new
|
||||
|
||||
# Table to automatically load the rc maps for the bundled IR's provided with the
|
||||
# devices supported by the linux kernel
|
||||
|
||||
#driver table file
|
||||
,* rc-adstech-dvb-t-pci adstech_dvb_t_pci
|
||||
,* rc-alink-dtu-m alink_dtu_m
|
||||
,* rc-anysee anysee
|
||||
,* rc-apac-viewcomp apac_viewcomp
|
||||
,* rc-asus-pc39 asus_pc39
|
||||
,* rc-asus-ps3-100 asus_ps3_100
|
||||
,* rc-ati-tv-wonder-hd-600 ati_tv_wonder_hd_600
|
||||
,* rc-ati-x10 ati_x10
|
||||
,* rc-avermedia-a16d avermedia_a16d
|
||||
,* rc-avermedia-cardbus avermedia_cardbus
|
||||
,* rc-avermedia-dvbt avermedia_dvbt
|
||||
,* rc-avermedia-m135a avermedia_m135a
|
||||
,* rc-avermedia-m733a-rm-k6 avermedia_m733a_rm_k6
|
||||
,* rc-avermedia-rm-ks avermedia_rm_ks
|
||||
,* rc-avermedia avermedia
|
||||
,* rc-avertv-303 avertv_303
|
||||
,* rc-azurewave-ad-tu700 azurewave_ad_tu700
|
||||
,* rc-behold-columbus behold_columbus
|
||||
,* rc-behold behold
|
||||
,* rc-budget-ci-old budget_ci_old
|
||||
,* rc-cec cec
|
||||
,* rc-cinergy-1400 cinergy_1400
|
||||
,* rc-cinergy cinergy
|
||||
,* rc-delock-61959 delock_61959
|
||||
,* rc-dib0700-nec dib0700_nec
|
||||
,* rc-dib0700-rc5 dib0700_rc5
|
||||
,* rc-digitalnow-tinytwin digitalnow_tinytwin
|
||||
,* rc-digittrade digittrade
|
||||
,* rc-dm1105-nec dm1105_nec
|
||||
,* rc-dntv-live-dvb-t dntv_live_dvb_t
|
||||
,* rc-dntv-live-dvbt-pro dntv_live_dvbt_pro
|
||||
,* rc-dtt200u dtt200u
|
||||
,* rc-dvbsky dvbsky
|
||||
,* rc-em-terratec em_terratec
|
||||
,* rc-encore-enltv-fm53 encore_enltv_fm53
|
||||
,* rc-encore-enltv encore_enltv
|
||||
,* rc-encore-enltv2 encore_enltv2
|
||||
,* rc-evga-indtube evga_indtube
|
||||
,* rc-eztv eztv
|
||||
,* rc-flydvb flydvb
|
||||
,* rc-flyvideo flyvideo
|
||||
,* rc-fusionhdtv-mce fusionhdtv_mce
|
||||
,* rc-gadmei-rm008z gadmei_rm008z
|
||||
,* rc-genius-tvgo-a11mce genius_tvgo_a11mce
|
||||
,* rc-gotview7135 gotview7135
|
||||
,* rc-hauppauge hauppauge
|
||||
#* rc-imon-mce imon_mce
|
||||
#* rc-imon-pad imon_pad
|
||||
,* rc-iodata-bctv7e iodata_bctv7e
|
||||
,* rc-it913x-v1 it913x_v1
|
||||
,* rc-it913x-v2 it913x_v2
|
||||
,* rc-kaiomy kaiomy
|
||||
,* rc-kworld-315u kworld_315u
|
||||
,* rc-kworld-pc150u kworld_pc150u
|
||||
,* rc-kworld-plus-tv-analog kworld_plus_tv_analog
|
||||
,* rc-leadtek-y04g0051 leadtek_y04g0051
|
||||
,* rc-lme2510 lme2510
|
||||
,* rc-manli manli
|
||||
,* rc-medion-x10-digitainer medion_x10_digitainer
|
||||
,* rc-medion-x10-or2x medion_x10_or2x
|
||||
,* rc-medion-x10 medion_x10
|
||||
,* rc-msi-digivox-ii msi_digivox_ii
|
||||
,* rc-msi-digivox-iii msi_digivox_iii
|
||||
,* rc-msi-tvanywhere-plus msi_tvanywhere_plus
|
||||
,* rc-msi-tvanywhere msi_tvanywhere
|
||||
,* rc-nebula nebula
|
||||
,* rc-nec-terratec-cinergy-xs nec_terratec_cinergy_xs
|
||||
,* rc-norwood norwood
|
||||
,* rc-npgtech npgtech
|
||||
,* rc-pctv-sedna pctv_sedna
|
||||
,* rc-pinnacle-color pinnacle_color
|
||||
,* rc-pinnacle-grey pinnacle_grey
|
||||
,* rc-pinnacle-pctv-hd pinnacle_pctv_hd
|
||||
,* rc-pixelview-002t pixelview_002t
|
||||
,* rc-pixelview-mk12 pixelview_mk12
|
||||
,* rc-pixelview-new pixelview_new
|
||||
,* rc-pixelview pixelview
|
||||
,* rc-powercolor-real-angel powercolor_real_angel
|
||||
,* rc-proteus-2309 proteus_2309
|
||||
,* rc-purpletv purpletv
|
||||
,* rc-pv951 pv951
|
||||
,* rc-real-audio-220-32-keys real_audio_220_32_keys
|
||||
,* rc-reddo reddo
|
||||
,* rc-snapstream-firefly snapstream_firefly
|
||||
,* rc-streamzap streamzap
|
||||
,* rc-su3000 su3000
|
||||
,* rc-tbs-nec tbs_nec
|
||||
,* rc-technisat-ts35 technisat_ts35
|
||||
,* rc-technisat-usb2 technisat_usb2
|
||||
,* rc-terratec-cinergy-c-pci terratec_cinergy_c_pci
|
||||
,* rc-terratec-cinergy-s2-hd terratec_cinergy_s2_hd
|
||||
,* rc-terratec-cinergy-xs terratec_cinergy_xs
|
||||
,* rc-terratec-slim-2 terratec_slim_2
|
||||
,* rc-terratec-slim terratec_slim
|
||||
,* rc-tevii-nec tevii_nec
|
||||
,* rc-tivo tivo
|
||||
,* rc-total-media-in-hand-02 total_media_in_hand_02
|
||||
,* rc-total-media-in-hand total_media_in_hand
|
||||
,* rc-trekstor trekstor
|
||||
,* rc-tt-1500 tt_1500
|
||||
,* rc-twinhan-dtv-cab-ci twinhan_dtv_cab_ci
|
||||
,* rc-twinhan1027 twinhan_vp1027_dvbs
|
||||
,* rc-videomate-k100 videomate_k100
|
||||
,* rc-videomate-s350 videomate_s350
|
||||
,* rc-videomate-tv-pvr videomate_tv_pvr
|
||||
,* rc-winfast-usbii-deluxe winfast_usbii_deluxe
|
||||
,* rc-winfast winfast
|
||||
# * * a800 # found in a800.c
|
||||
# * * af9005 # found in af9005-remote.c
|
||||
# * * cinergyt2 # found in cinergyT2-core.c
|
||||
# * * dvico_mce # found in cxusb.c
|
||||
# * * dvico_portable # found in cxusb.c
|
||||
# * * d680_dmb # found in cxusb.c
|
||||
# * * dibusb # found in dibusb-common.c
|
||||
# * * digitv # found in digitv.c
|
||||
# * * megasky # found in m920x.c
|
||||
# * * tvwalkerir-kbd-i2c rc-hauppauge /lib/udev/rc_keymaps/rc-hauppaugetwin # found in m920x.c
|
||||
# * * pinnacle310e # found in m920x.c
|
||||
# * * haupp # found in nova-t-usb2.c
|
||||
# * * opera1 # found in opera1.c
|
||||
# * * vp702x # found in vp702x.c
|
||||
# * * vp7045 # found in vp7045.c
|
||||
|
||||
# Hauppauge PVR 350
|
||||
ir-kbd-i2c rc-hauppauge /lib/udev/rc_keymaps/rc-hauppauge
|
||||
|
||||
# imon-pad
|
||||
imon rc-imon-pad /lib/udev/rc_keymaps/rc-imon-pad
|
||||
imon rc-imon-mce /lib/udev/rc_keymaps/rc-imon-mce
|
||||
|
||||
# TT-1500/1501
|
||||
,* rc-tt-1500 /lib/udev/rc_keymaps/rc-tt-1500
|
||||
budget_ci rc-tt-1500 /lib/udev/rc_keymaps/rc-tt-1501
|
||||
|
||||
# rc-rc6-mce
|
||||
,* rc-rc6-mce /lib/udev/rc_keymaps/rc-rc6-mce
|
||||
# CIR
|
||||
ite-cir rc-rc6-mce /lib/udev/rc_keymaps/rc-rc6-mce
|
||||
nuvoton-cir rc-rc6-mce /lib/udev/rc_keymaps/rc-rc6-mce
|
||||
|
||||
# mceusb
|
||||
mceusb rc-rc6-mce /lib/udev/rc_keymaps/HOPLOrc6
|
||||
|
||||
# Skystarhd2
|
||||
mantis_core * /lib/udev/rc_keymaps/skystarhd2
|
||||
|
||||
# Medion X10
|
||||
ati_remote rc-medion-x10 /lib/udev/rc_keymaps/rc-medion-x10
|
||||
ati_remote rc-medion-x10-or2x /lib/udev/rc_keymaps/rc-medion-x10-or2x
|
||||
ati_remote rc-medion-x10-digitainer /lib/udev/rc_keymaps/rc-medion-x10-digitainer
|
||||
#+END_SRC
|
||||
*** files
|
||||
|
||||
** pulseaudio
|
||||
@@ -1022,7 +1245,7 @@ install_avahi: true
|
||||
#+BEGIN_SRC yaml :tangle roles/pulseaudio/tasks/main.yml :mkdirp yes :padline no
|
||||
---
|
||||
|
||||
- name: apt | install pulseaudio and pavucontrol
|
||||
- name: apt | install pulseaudio, pavucontrol and vdr-plugin-pulsecontrol
|
||||
apt:
|
||||
name: '{{ item }}'
|
||||
state: present
|
||||
@@ -1030,6 +1253,7 @@ install_avahi: true
|
||||
with_items:
|
||||
- pulseaudio
|
||||
- pavucontrol
|
||||
- vdr-plugin-pulsecontrol
|
||||
|
||||
- name: create /etc/asound.conf with pulseaudio as default device
|
||||
template:
|
||||
@@ -1058,6 +1282,7 @@ ctl.!default {
|
||||
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.
|
||||
|
||||
~x@vt7.service~ is started automatically as a dependency of ~xlogin@vdr.service~ and starts the X-server. ~xlogin@vdr.service~ also starts a systemd user session using ~user@666.service~.
|
||||
In order to use the keyboard layout configured during installation for the X-Server the script ~write-x11-keyboard-config~ reads the keyboard configuration from ~/etc/default/keyboard~ when starting ~x@.service~ and writes the file ~/etc/X11/xorg.conf.d/00-keyboard.conf~ (because systemd for Ubuntu (and Debian) has been patched not to create ~/etc/X11/xorg.conf.d/00-keyboard.conf~ according to the ~localectl~ settings).
|
||||
|
||||
To prevent stopping the X-server when vdr is running, additional dependencies are set up - see the drop-in rules created in ~/etc/systemd/system/vdr.service.d/~.
|
||||
|
||||
@@ -1456,14 +1681,18 @@ b'\xde\xad\xbe\xef'
|
||||
*** default variables
|
||||
*** tasks
|
||||
|
||||
**** main.yml
|
||||
#+BEGIN_SRC yaml :tangle roles/yavdr-xorg/tasks/main.yml :mkdirp yes :padline no
|
||||
---
|
||||
# file: roles/yavdr-xorg/tasks/main.yml
|
||||
- import_tasks: setup-xorg.yml tags=install,update
|
||||
- import_tasks: detect-xorg.yml tags=xorg:detect,install
|
||||
- import_tasks: desktop-session.yml tags=install,update
|
||||
- import_tasks: setup-xorg.yml
|
||||
tags: [install,update]
|
||||
- import_tasks: detect-xorg.yml
|
||||
tags: [xorg.detect,install]
|
||||
- import_tasks: desktop-session.yml
|
||||
tags: [install,update]
|
||||
#+END_SRC
|
||||
|
||||
**** setup-xorg.yml
|
||||
#+BEGIN_SRC yaml :tangle roles/yavdr-xorg/tasks/setup-xorg.yml :mkdirp yes :padline no
|
||||
---
|
||||
# file: roles/yavdr-xorg/tasks/setup-xorg.yml
|
||||
@@ -1475,6 +1704,7 @@ b'\xde\xad\xbe\xef'
|
||||
- "/etc/systemd/system/x@.service.d/"
|
||||
- "/etc/systemd/system/vdr.service.d/"
|
||||
- "/etc/systemd/system/user@{{ vdr.uid }}.service.d/"
|
||||
- "/etc/X11/xorg.conf.d/"
|
||||
|
||||
- name: systemd-drop-in | add dependency to X-server for vdr.service
|
||||
template:
|
||||
@@ -1491,6 +1721,11 @@ b'\xde\xad\xbe\xef'
|
||||
src: templates/systemd/vdr-environ.j2
|
||||
dest: /etc/systemd/system/vdr.service.d/load-environ.conf
|
||||
|
||||
- name: systemd-drop-in | start vdr.service after network-online.target
|
||||
template:
|
||||
src: templates/systemd/network-online.j2
|
||||
dest: /etc/systemd/system/vdr.service.d/network-online.conf
|
||||
|
||||
- name: systemd-drop-in | user@{{ vdr.uid }}.service depends on x@vt7.service
|
||||
template:
|
||||
src: templates/user@666.service.d/x-dependency.conf.j2
|
||||
@@ -1528,8 +1763,26 @@ b'\xde\xad\xbe\xef'
|
||||
- read-edid
|
||||
- tmux
|
||||
- vdr-plugin-desktop
|
||||
- vdr-plugin-osd2web
|
||||
- feh
|
||||
#- yavdr-xorg
|
||||
|
||||
- name: download yavdr logo
|
||||
block:
|
||||
- file:
|
||||
dest: '/usr/share/yavdr/images'
|
||||
state: directory
|
||||
|
||||
- get_url:
|
||||
url: 'https://github.com/yavdr/yavdr-base/raw/master/images/yavdr_logo.png'
|
||||
dest: '/usr/share/yavdr/images/yavdr_logo.png'
|
||||
|
||||
- name: command | write keyboard configuration to /etc/X11/xorg.conf.d/00-keyboard.conf
|
||||
command: write-x11-keyboard-config
|
||||
creates: /etc/X11/xorg.conf.d/00-keyboard.conf
|
||||
# NOTE: write-x11-keyboard-config is in the xlogin package
|
||||
# Ubuntu's systemd is patched, so it does not create the file automatically
|
||||
|
||||
- name: apt | install desktop programs
|
||||
apt:
|
||||
name: '{{ item }}'
|
||||
@@ -1539,7 +1792,7 @@ b'\xde\xad\xbe\xef'
|
||||
- firefox
|
||||
- kiosk-browser
|
||||
#+END_SRC
|
||||
|
||||
**** detect-xorg.yml
|
||||
#+BEGIN_SRC yaml :tangle roles/yavdr-xorg/tasks/detect-xorg.yml :mkdirp yes :padline no
|
||||
---
|
||||
# file: roles/yavdr-xorg/tasks/detect-xorg.yml
|
||||
@@ -1571,7 +1824,40 @@ b'\xde\xad\xbe\xef'
|
||||
name: x@vt7.service
|
||||
state: stopped
|
||||
|
||||
- name: "wait a little bit before starting x-verbose@vt7.service (needed?)"
|
||||
- name: Workaround for wrong connector names on first run
|
||||
block:
|
||||
- name: "wait a little bit before starting x-verbose@vt7.service (needed?)"
|
||||
wait_for:
|
||||
timeout: 10
|
||||
|
||||
- name: "start x-verbose@.service"
|
||||
systemd:
|
||||
name: "x-verbose@vt7.service"
|
||||
state: started
|
||||
enabled: false
|
||||
masked: false
|
||||
daemon_reload: true
|
||||
|
||||
- name: "wait a little bit, so X has some time to start up (needed?)"
|
||||
wait_for:
|
||||
timeout: 3
|
||||
|
||||
- name: "stop x-verbose@vt7.service"
|
||||
systemd:
|
||||
name: "x-verbose@vt7.service"
|
||||
state: stopped
|
||||
enabled: false
|
||||
masked: true
|
||||
tags: first_run
|
||||
|
||||
- name: "wait a little bit, so X has some time to shut down (needed?)"
|
||||
wait_for:
|
||||
timeout: 3
|
||||
|
||||
- name: "trigger udevadm reload"
|
||||
command: 'udevadm trigger '
|
||||
|
||||
- name: "wait a little bit, so udev has some time to reapply rules (needed?)"
|
||||
wait_for:
|
||||
timeout: 3
|
||||
|
||||
@@ -1623,7 +1909,7 @@ b'\xde\xad\xbe\xef'
|
||||
- nvidia_detected
|
||||
|
||||
#+END_SRC
|
||||
|
||||
**** desktop-session.yml
|
||||
#+BEGIN_SRC yaml :tangle roles/yavdr-xorg/tasks/desktop-session.yml :mkdirp yes :padline no
|
||||
---
|
||||
# file: roles/yavdr-xorg/tasks/desktop-session.yml
|
||||
@@ -1648,6 +1934,14 @@ b'\xde\xad\xbe\xef'
|
||||
owner: '{{ vdr.user }}'
|
||||
group: '{{ vdr.group }}'
|
||||
|
||||
- name: "expand template for vdr's .Xresources"
|
||||
template:
|
||||
src: 'templates/.Xresources.j2'
|
||||
dest: '{{ vdr.home }}/.Xresources'
|
||||
mode: 0644
|
||||
owner: '{{ vdr.user }}'
|
||||
group: '{{ vdr.group }}'
|
||||
|
||||
- name: expand template for openbox autostart
|
||||
template:
|
||||
src: 'templates/openbox/autostart.j2'
|
||||
@@ -1706,6 +2000,15 @@ b'\xde\xad\xbe\xef'
|
||||
src: templates/systemd/user/osd2web.service.j2
|
||||
dest: '{{ vdr.home }}/.config/systemd/user/osd2web.service'
|
||||
|
||||
- name: create irexec configuration for the session
|
||||
block:
|
||||
- template:
|
||||
src: templates/systemd/user/irexec.service.j2
|
||||
dest: '{{ vdr.home }}/.config/systemd/user/irexec.service'
|
||||
- template:
|
||||
src: templates/.lircrc.j2
|
||||
dest: '{{ vdr.home }}/.lircrc'
|
||||
|
||||
- name: link /usr/bin/start-desktop to /var/lib/vdr/plugins/desktop/starter
|
||||
file:
|
||||
src: /usr/bin/start-desktop
|
||||
@@ -1751,8 +2054,7 @@ KillMode=mixed
|
||||
|
||||
***** Drop-in snippet for vdr.service
|
||||
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/vdr-xorg.conf :mkdirp yes :padline no
|
||||
# file: roles/yavdr-xorg/templates/vdr-xorg.conf
|
||||
# {{ ansible_managed_file }}
|
||||
{{ ansible_managed_file | comment }}
|
||||
[Unit]
|
||||
After=x@vt7.service
|
||||
Wants=x@vt7.service
|
||||
@@ -1761,7 +2063,7 @@ Wants=x@vt7.service
|
||||
***** .xinitrc
|
||||
#+BEGIN_SRC shell :tangle roles/yavdr-xorg/templates/.xinitrc.j2 :mkdirp yes :padline no
|
||||
#!/bin/bash
|
||||
# {{ ansible_managed_file }}
|
||||
{{ ansible_managed_file | comment }}
|
||||
exec openbox-session
|
||||
#+END_SRC
|
||||
***** xorg.conf
|
||||
@@ -1838,7 +2140,9 @@ Section "Screen"
|
||||
Option "ConnectedMonitor" "{{ xorg.primary.connector }}{% if xorg.secondary is defined %}, {{ xorg.secondary.connector }}{% endif %}"
|
||||
Option "UseDisplayDevice" "{{ xorg.primary.connector }}"
|
||||
Option "CustomEDID" "{{ xorg.primary.connector }}:/etc/X11/edid.{{ xorg.primary.connector }}.bin"
|
||||
Option "metamodes" "{{ xorg.primary.connector }}: {{ xorg.primary.mode }} +0+0"
|
||||
Option "metamodes" "{{ xorg.primary.connector }}: {{ xorg.primary.mode }} +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
|
||||
Option "AllowIndirectGLXProtocol" "off"
|
||||
Option "TripleBuffer" "on"
|
||||
Option "SLI" "Off"
|
||||
Option "MultiGPU" "Off"
|
||||
Option "BaseMosaic" "off"
|
||||
@@ -1877,7 +2181,9 @@ Section "Screen"
|
||||
Option "ConnectedMonitor" "{{ xorg.secondary.connector }}"
|
||||
Option "UseDisplayDevice" "{{ xorg.secondary.connector }}"
|
||||
Option "CustomEDID" "{{ xorg.secondary.connector }}:/etc/X11/edid.{{ xorg.secondary.connector }}.bin"
|
||||
Option "metamodes" "{{ xorg.secondary.connector }}: {{ xorg.secondary.mode }} +0+0"
|
||||
Option "metamodes" "{{ xorg.secondary.connector }}: {{ xorg.secondary.mode }} +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
|
||||
Option "AllowIndirectGLXProtocol" "off"
|
||||
Option "TripleBuffer" "on"
|
||||
Option "SLI" "Off"
|
||||
Option "MultiGPU" "Off"
|
||||
Option "BaseMosaic" "off"
|
||||
@@ -2083,12 +2389,37 @@ Section "Screen"
|
||||
EndSection
|
||||
{% endif %}
|
||||
#+END_SRC
|
||||
***** .Xresources
|
||||
|
||||
#+BEGIN_SRC shell :tangle roles/yavdr-xorg/templates/.Xresources.j2 :mkdirp yes :padline no
|
||||
xterm*background: Black
|
||||
xterm*foreground: grey
|
||||
XTerm*locale: true
|
||||
XTerm*metaSendsEscape: true
|
||||
XTerm*eightBitInput: false
|
||||
XTerm*backarrowKey: false
|
||||
XTerm*ttyModes: erase ^?
|
||||
Xterm*saveLines: 4096
|
||||
XTerm.vt100.metaSendsEscape: true
|
||||
XTerm.vt100.geometry: 80x32
|
||||
XTerm.vt100.renderFont: true
|
||||
xterm*faceName: xft:DejaVu Sans Mono
|
||||
xterm*faceSize: 14
|
||||
xterm*renderFont: true
|
||||
XTerm.vt100.faceName: xft:DejaVu Sans Mono:size=12:antialias=false
|
||||
XTerm.vt100.font: 7x13
|
||||
#+END_SRC
|
||||
**** vdr
|
||||
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/systemd/vdr-environ.j2
|
||||
[Service]
|
||||
Environment=XDG_RUNTIME_DIR=/run/user/{{ vdr.uid }}/
|
||||
EnvironmentFile=-/var/lib/vdr/.session-env
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/systemd/network-online.j2
|
||||
[Unit]
|
||||
After=network-online.target
|
||||
#+END_SRC
|
||||
**** Systemd User Session
|
||||
***** yavdr-desktop.target
|
||||
#+BEGIN_SRC shell :tangle roles/yavdr-xorg/templates/systemd/user/yavdr-desktop.target.j2 :mkdirp yes :padline no
|
||||
@@ -2125,6 +2456,7 @@ ConditionFileNotEmpty=%h/.second_display
|
||||
PassEnvironment=XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS
|
||||
EnvironmentFile=%h/.second_display
|
||||
ExecStart=/usr/bin/openbox --config-file %h/.config/openbox/rc.xml
|
||||
ExecStartPost=/bin/bash %h/.fehbg
|
||||
|
||||
[Install]
|
||||
WantedBy=yavdr-desktop.target
|
||||
@@ -2140,7 +2472,7 @@ ConditionFileNotEmpty=%h/.second_display
|
||||
[Service]
|
||||
EnvironmentFile=%h/.second_display
|
||||
PassEnvironment=XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS
|
||||
ExecStart=/usr/bin/on_vdr -o -c 'kiosk-browser "http://localhost:4444/skins/horchiTft/index.html?theme=blue&onlyView=1"'
|
||||
ExecStart=/usr/bin/on_vdr -o -c 'kiosk-browser "http://localhost:4444/skins/horchiTft/index.html?theme=bluecd&onlyView=1"'
|
||||
KillSignal=SIGINT
|
||||
|
||||
[Install]
|
||||
@@ -2174,6 +2506,28 @@ RemainAfterExit=True
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
#+END_SRC
|
||||
|
||||
**** irexec
|
||||
irexec.service starts irexec for the user session
|
||||
#+BEGIN_SRC shell :tangle roles/yavdr-xorg/templates/systemd/user/irexec.service.j2 :mkdirp yes :padline no
|
||||
[Unit]
|
||||
Description=LIRC command handler
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/irexec %h/.lircrc
|
||||
|
||||
[Install]
|
||||
WantedBy=yavdr-desktop.target
|
||||
#+END_SRC
|
||||
~/.lircrc contains the irexec configuration
|
||||
#+BEGIN_SRC shell :tangle roles/yavdr-xorg/templates/.lircrc.j2 :mkdirp yes :padline no
|
||||
begin
|
||||
prog = irexec
|
||||
button = KEY_HOME
|
||||
config = frontend-dbus-send switchbetween kodi vdr
|
||||
end
|
||||
#+END_SRC
|
||||
**** openbox
|
||||
***** autostart
|
||||
#+BEGIN_SRC shell :tangle roles/yavdr-xorg/templates/openbox/autostart.j2 :mkdirp yes :shebang #!/bin/bash
|
||||
@@ -2181,11 +2535,13 @@ WantedBy=default.target
|
||||
env | grep "DISPLAY\|DBUS_SESSION_BUS_ADDRESS\|XDG_RUNTIME_DIR" > ~/.session-env
|
||||
systemctl --user import-environment DISPLAY XAUTHORITY XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS
|
||||
|
||||
feh --bg-center "/usr/share/yavdr/images/yavdr_logo.png"
|
||||
|
||||
enabled_services=(
|
||||
"tmux.service" "detect-second-display.service"
|
||||
"openbox-second.service" "osd2web.service"
|
||||
"yavdr-frontend.service" "pulseaudio.socket"
|
||||
"pulseaudio.service" "wm-exit.service")
|
||||
"pulseaudio.service" "wm-exit.service" "irexec.service")
|
||||
disabled_services=()
|
||||
|
||||
# enable configured services for the user session
|
||||
@@ -2263,7 +2619,7 @@ systemctl --user isolate yavdr-desktop.target
|
||||
S: shade (roll up/down)
|
||||
D: omnipresent (on all desktops).
|
||||
-->
|
||||
<keepBorder>yes</keepBorder>
|
||||
<keepBorder>no</keepBorder>
|
||||
<animateIconify>yes</animateIconify>
|
||||
<font place="ActiveWindow">
|
||||
<name>sans</name>
|
||||
@@ -2530,22 +2886,6 @@ systemctl --user isolate yavdr-desktop.target
|
||||
<direction>down</direction>
|
||||
</action>
|
||||
</keybind>
|
||||
<!-- Keybindings for running applications -->
|
||||
<keybind key="W-e">
|
||||
<action name="Execute">
|
||||
<startupnotify>
|
||||
<enabled>true</enabled>
|
||||
<name>Konqueror</name>
|
||||
</startupnotify>
|
||||
<command>kfmclient openProfile filemanagement</command>
|
||||
</action>
|
||||
</keybind>
|
||||
<!-- Launch scrot when Print is pressed -->
|
||||
<keybind key="Print">
|
||||
<action name="Execute">
|
||||
<command>scrot</command>
|
||||
</action>
|
||||
</keybind>
|
||||
</keyboard>
|
||||
<mouse>
|
||||
<dragThreshold>1</dragThreshold>
|
||||
@@ -3005,21 +3345,27 @@ systemctl --user isolate yavdr-desktop.target
|
||||
<applications>
|
||||
<application title="softhddevice">
|
||||
<decor>no</decor>
|
||||
<maximized>true</maximized>
|
||||
<maximized>yes</maximized>
|
||||
<!--<skip_pager>yes</skip_pager>-->
|
||||
<skip_taskbar>no</skip_taskbar>
|
||||
</application>
|
||||
<application class="VDR">
|
||||
<decor>no</decor>
|
||||
<maximized>yes</maximized>
|
||||
<!--<skip_pager>yes</skip_pager>-->
|
||||
<skip_taskbar>no</skip_taskbar>
|
||||
</application>
|
||||
<application title="browser">
|
||||
<decor>no</decor>
|
||||
<maximized>true</maximized>
|
||||
<maximized>yes</maximized>
|
||||
<!--<skip_pager>yes</skip_pager>-->
|
||||
<skip_taskbar>yes</skip_taskbar>
|
||||
<skip_taskbar>no</skip_taskbar>
|
||||
</application>
|
||||
<application title="osd2Web">
|
||||
<decor>no</decor>
|
||||
<maximized>true</maximized>
|
||||
<maximized>yes</maximized>
|
||||
<!--<skip_pager>yes</skip_pager>-->
|
||||
<skip_taskbar>yes</skip_taskbar>
|
||||
<skip_taskbar>no</skip_taskbar>
|
||||
</application>
|
||||
</applications>
|
||||
</openbox_config>
|
||||
@@ -3199,12 +3545,10 @@ The tool ubuntu-drivers is used to install the matching driver version for nvidi
|
||||
|
||||
- name: use ubuntu-drivers to install additional drivers automatically
|
||||
command: ubuntu-drivers --package-list /etc/yavdr/autoinstalled autoinstall
|
||||
when:
|
||||
- ansible_virtualization_type != "virtualbox"
|
||||
- ansible_virtualization_role != "guest"
|
||||
- ansible_distribution == "Ubuntu"
|
||||
- ansible_distribution_version != "16.04" # ubuntu-drivers-common tries to autoinstall
|
||||
# conflicting packages for virtualbox :(
|
||||
when: (ansible_virtualization_type != "virtualbox" and ansible_virtualization_role != "guest") or
|
||||
ansible_distribution_version != "16.04"
|
||||
# ubuntu-drivers-common tries to autoinstall
|
||||
# conflicting packages for virtualbox in Ubuntu 16.04 :(
|
||||
#+END_SRC
|
||||
** autoinstall-virtualbox-guest
|
||||
This role installs the guest additions for virtualbox guests on Ubuntu 16.04
|
||||
@@ -3231,6 +3575,77 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04
|
||||
- ansible_distribution == "Ubuntu"
|
||||
- ansible_distribution_version == "16.04"
|
||||
#+END_SRC
|
||||
** autoinstall-atric-usb
|
||||
*** dependencies
|
||||
#+BEGIN_SRC yaml :tangle roles/autoinstall-atric-usb/meta/main.yml :padline no
|
||||
---
|
||||
dependencies:
|
||||
- { role: yavdr-remote }
|
||||
|
||||
#+END_SRC
|
||||
*** tasks
|
||||
#+BEGIN_SRC yaml :tangle roles/autoinstall-atric-usb/tasks/main.yml :padline no
|
||||
---
|
||||
# file roles/autoinstall-atric-usb/tasks/main.yml
|
||||
|
||||
- name: install and configure Atric IR-WakeupUSB
|
||||
block:
|
||||
- name: apt | install lirc-drv-irman
|
||||
apt:
|
||||
name: lirc-drv-irman
|
||||
state: present
|
||||
tags:
|
||||
- packages
|
||||
|
||||
- name: write lirc configuration
|
||||
template:
|
||||
src: templates/lirc_options.conf.j2
|
||||
dest: /etc/lirc/lirc_options.conf
|
||||
tags:
|
||||
- config
|
||||
- systemd
|
||||
|
||||
- name: enable lircd, eventlircd, lircd2uinput
|
||||
systemd:
|
||||
name: '{{ item }}'
|
||||
enabled: yes
|
||||
state: started
|
||||
masked: no
|
||||
daemon_reload: yes
|
||||
with_items:
|
||||
- eventlircd.socket
|
||||
- eventlircd.service
|
||||
- lircd2uinput.service
|
||||
- lircd.service
|
||||
tags:
|
||||
- systemd
|
||||
|
||||
when: '"04d8:f844" in usb'
|
||||
#+END_SRC
|
||||
*** templates
|
||||
#+BEGIN_SRC conf :tangle roles/autoinstall-atric-usb/templates/lirc_options.conf.j2 :padline no
|
||||
{{ ansible_managed_file | comment }}
|
||||
|
||||
[lircd]
|
||||
nodaemon = False
|
||||
driver = irman
|
||||
device = /dev/irman
|
||||
output = /var/run/lirc/lircd0
|
||||
pidfile = /var/run/lirc/lircd0.pid
|
||||
plugindir = /usr/lib/x86_64-linux-gnu/lirc/plugins
|
||||
permission = 666
|
||||
allow-simulate = No
|
||||
repeat-max = 600
|
||||
#loglevel = 6
|
||||
#release = true
|
||||
#release_suffix = _EVUP
|
||||
#logfile = ...
|
||||
#driver-options = ...
|
||||
|
||||
[lircmd]
|
||||
uinput = False
|
||||
nodaemon = False
|
||||
#+END_SRC
|
||||
** autoinstall-satip
|
||||
If a Sat>IP Server responds to a discovery request, the package vdr-plugin-satip is installed.
|
||||
*** tasks
|
||||
@@ -4060,9 +4475,9 @@ options:
|
||||
default: ":0"
|
||||
description:
|
||||
- the DISPLAY variable to use when calling xrandr
|
||||
preferred_outpus:
|
||||
preferred_outputs:
|
||||
required: False
|
||||
default: ["HDMI", "DP", "DVI", "VGA", "TV": 0]
|
||||
default: ["HDMI", "DP", "DVI", "VGA", "TV"]
|
||||
description:
|
||||
- ranking of the preferred display connectors
|
||||
preferred_refreshrates:
|
||||
|
@@ -3,10 +3,11 @@ ansible playbooks for yaVDR
|
||||
|
||||
## Usage:
|
||||
|
||||
On a Ubuntu Server 16.04.x Installation run the following commands:
|
||||
On a Ubuntu Server 18.04.x (or minimal) Installation run the following commands:
|
||||
```
|
||||
sudo apt-get install git
|
||||
git clone https://github.com/yavdr/yavdr-ansible
|
||||
cd yavdr-ansible
|
||||
git checkout bionic
|
||||
sudo ./install-yavdr.sh
|
||||
```
|
||||
|
3
ansible.cfg
Normal file
3
ansible.cfg
Normal file
@@ -0,0 +1,3 @@
|
||||
[defaults]
|
||||
callback_plugins = plugins/callbacks
|
||||
callback_whitelist = auto_tags
|
34
filter_plugins/translate_yavdr.py
Normal file
34
filter_plugins/translate_yavdr.py
Normal file
@@ -0,0 +1,34 @@
|
||||
# Copyright (c) 2017 Ansible Project
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
|
||||
|
||||
from __future__ import (absolute_import, division, print_function)
|
||||
__metaclass__ = type
|
||||
|
||||
|
||||
ANSIBLE_METADATA = {
|
||||
'metadata_version': '1.1',
|
||||
'status': ['preview'],
|
||||
'supported_by': 'yavdr'
|
||||
}
|
||||
|
||||
import gettext
|
||||
from ansible.errors import AnsibleFilterError
|
||||
from ansible.utils import helpers
|
||||
|
||||
|
||||
def translate_yavdr(text):
|
||||
gettext.textdomain('yavdr')
|
||||
try:
|
||||
return gettext.gettext(text)
|
||||
except:
|
||||
return text
|
||||
|
||||
# ---- Ansible filters ----
|
||||
class FilterModule(object):
|
||||
''' URI filter '''
|
||||
|
||||
def filters(self):
|
||||
return {
|
||||
'translate': translate_yavdr
|
||||
}
|
@@ -2,16 +2,15 @@
|
||||
# file: group_vars/all
|
||||
|
||||
# this is the standard text to put in templates
|
||||
ansible_managed_file: "*** YAVDR: ANSIBLE MANAGED FILE ***"
|
||||
branch: unstable
|
||||
ansible_managed_file: "*** YAVDR: ANSIBLE MANAGED FILE ***\norigin: {file}"
|
||||
branch: experimental
|
||||
ppa_owner: 'ppa:yavdr'
|
||||
# add the following PPAs
|
||||
repositories:
|
||||
- '{{ ppa_owner }}/main'
|
||||
- '{{ ppa_owner }}/unstable-main'
|
||||
- '{{ ppa_owner }}/{{branch}}-main'
|
||||
- '{{ ppa_owner }}/{{branch}}-vdr'
|
||||
- '{{ ppa_owner }}/{{branch}}-yavdr'
|
||||
- '{{ ppa_owner }}/{{branch}}-kodi'
|
||||
#- '{{ ppa_owner }}/{{branch}}-yavdr'
|
||||
#- '{{ ppa_owner }}/{{branch}}-kodi'
|
||||
# properties of the user vdr and vdr-related options
|
||||
vdr:
|
||||
user: vdr
|
||||
@@ -34,7 +33,7 @@ vdr_plugins:
|
||||
# dictionary of directories for (shared) files. Automatically exported via NFS and Samba if those roles are enabled
|
||||
media_dirs:
|
||||
audio: /srv/audio
|
||||
video: /srv/audio
|
||||
video: /srv/video
|
||||
pictures: /srv/picture
|
||||
files: /srv/files
|
||||
backups: /srv/backups
|
||||
@@ -52,10 +51,11 @@ extra_packages:
|
||||
- tree
|
||||
- vim
|
||||
- w-scan
|
||||
- plymouth-theme-yavdr-logo
|
||||
frontend: vdr
|
||||
#system:
|
||||
# shutdown: poweroff
|
||||
wakeup_method: acpiwakeup
|
||||
grub:
|
||||
timeout: 0
|
||||
boot_options: quiet nosplash
|
||||
boot_options: quiet splash
|
||||
|
@@ -1,16 +1,16 @@
|
||||
#!/bin/bash
|
||||
if (( $EUID != 0 )); then
|
||||
echo "This script must be run using sudo or as root"
|
||||
echo "This script must be run using sudo -H or as root"
|
||||
exit
|
||||
fi
|
||||
|
||||
apt-get -y install software-properties-common
|
||||
# Add repository for ansible
|
||||
add-apt-repository -y ppa:ansible/ansible
|
||||
add-apt-repository -y ppa:yavdr/experimental-main
|
||||
# update packages
|
||||
apt-get update
|
||||
# install required packages
|
||||
apt-get -y install --no-install-recommends ansible
|
||||
|
||||
# TODO: run ansible on local host
|
||||
ansible-playbook yavdr07.yml -b -i 'localhost_inventory' --connection=local --tags=install
|
||||
ansible-playbook yavdr07.yml -b -i 'localhost_inventory' --connection=local --tags="all"
|
||||
|
@@ -23,9 +23,9 @@ options:
|
||||
default: ":0"
|
||||
description:
|
||||
- the DISPLAY variable to use when calling xrandr
|
||||
preferred_outpus:
|
||||
preferred_outputs:
|
||||
required: False
|
||||
default: ["HDMI", "DP", "DVI", "VGA", "TV": 0]
|
||||
default: ["HDMI", "DP", "DVI", "VGA", "TV"]
|
||||
description:
|
||||
- ranking of the preferred display connectors
|
||||
preferred_refreshrates:
|
||||
|
48
plugins/callbacks/auto_tags.py
Normal file
48
plugins/callbacks/auto_tags.py
Normal file
@@ -0,0 +1,48 @@
|
||||
"""
|
||||
This module implements an Ansible plugin that is triggered at the start of a playbook.
|
||||
|
||||
The plugin dynamically generates a tag for each role. Each tag has the same name as its role.
|
||||
The advantage of this is that it saves you some boilerplate, because you don't have to wrap
|
||||
all tasks of a role in an additional block and assign a tag to that.
|
||||
Additionally, it works automatically when you add new roles to your playbook.
|
||||
|
||||
Usage is exactly the same as without this plugin:
|
||||
|
||||
ansible-playbook --tags=some_tag provision.yml
|
||||
|
||||
Here, the "some_tag" tag was generated dynamically (assuming there is a "some_tag" role).
|
||||
|
||||
Installation:
|
||||
1. Place this file in `plugins/callbacks/auto_tags.py` (relative to your playbook root)
|
||||
2. Add the following two lines to your `ansible.cfg` file:
|
||||
|
||||
callback_plugins = plugins/callbacks
|
||||
callback_whitelist = auto_tags
|
||||
"""
|
||||
from __future__ import print_function
|
||||
from ansible.plugins.callback import CallbackBase
|
||||
|
||||
|
||||
class CallbackModule(CallbackBase):
|
||||
"""
|
||||
Ansible supports several types of plugins. We are using the *callback* type here, since
|
||||
it seemed the best choice for our use case, because it allows you to hook into the start
|
||||
of a playbook.
|
||||
"""
|
||||
def v2_playbook_on_start(self, playbook):
|
||||
"""
|
||||
Dynamically add a tag of the same name to each role.
|
||||
Note: Plays, roles, task_blocks and tasks can have tags.
|
||||
"""
|
||||
plays = playbook.get_plays()
|
||||
|
||||
# Note: Although identical roles are shared between plays we cannot deduplicate them,
|
||||
# since Ansible treats them as different objects internally
|
||||
roles = [role for play in plays for role in play.get_roles()]
|
||||
|
||||
# Note: Tags for roles are set dynamically in `_load_role_data` instead of in __init__
|
||||
# I don't know why they do that.
|
||||
for role in roles:
|
||||
role_name = role._role_name
|
||||
if role_name not in role.tags:
|
||||
role.tags += [role_name]
|
3
roles/autoinstall-atric-usb/meta/main.yml
Normal file
3
roles/autoinstall-atric-usb/meta/main.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
dependencies:
|
||||
- { role: yavdr-remote }
|
36
roles/autoinstall-atric-usb/tasks/main.yml
Normal file
36
roles/autoinstall-atric-usb/tasks/main.yml
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
# file roles/autoinstall-atric-usb/tasks/main.yml
|
||||
|
||||
- name: install and configure Atric IR-WakeupUSB
|
||||
block:
|
||||
- name: apt | install lirc-drv-irman
|
||||
apt:
|
||||
name: lirc-drv-irman
|
||||
state: present
|
||||
tags:
|
||||
- packages
|
||||
|
||||
- name: write lirc configuration
|
||||
template:
|
||||
src: templates/lirc_options.conf.j2
|
||||
dest: /etc/lirc/lirc_options.conf
|
||||
tags:
|
||||
- config
|
||||
- systemd
|
||||
|
||||
- name: enable lircd, eventlircd, lircd2uinput
|
||||
systemd:
|
||||
name: '{{ item }}'
|
||||
enabled: yes
|
||||
state: started
|
||||
masked: no
|
||||
daemon_reload: yes
|
||||
with_items:
|
||||
- eventlircd.socket
|
||||
- eventlircd.service
|
||||
- lircd2uinput.service
|
||||
- lircd.service
|
||||
tags:
|
||||
- systemd
|
||||
|
||||
when: '"04d8:f844" in usb'
|
21
roles/autoinstall-atric-usb/templates/lirc_options.conf.j2
Normal file
21
roles/autoinstall-atric-usb/templates/lirc_options.conf.j2
Normal file
@@ -0,0 +1,21 @@
|
||||
{{ ansible_managed_file | comment }}
|
||||
|
||||
[lircd]
|
||||
nodaemon = False
|
||||
driver = irman
|
||||
device = /dev/irman
|
||||
output = /var/run/lirc/lircd0
|
||||
pidfile = /var/run/lirc/lircd0.pid
|
||||
plugindir = /usr/lib/x86_64-linux-gnu/lirc/plugins
|
||||
permission = 666
|
||||
allow-simulate = No
|
||||
repeat-max = 600
|
||||
#loglevel = 6
|
||||
#release = true
|
||||
#release_suffix = _EVUP
|
||||
#logfile = ...
|
||||
#driver-options = ...
|
||||
|
||||
[lircmd]
|
||||
uinput = False
|
||||
nodaemon = False
|
@@ -3,12 +3,11 @@
|
||||
|
||||
- name: determine needed firmware files by device ids
|
||||
block:
|
||||
- name: add firmware for DVBSky S952 V3 to variable dvbsky_firmware_files if a card has been detected
|
||||
- name: add firmware files for DVBSky if a card has been detected
|
||||
set_fact:
|
||||
dvbsky_firmware_files: "{{dvbsky_firmware_files}} + ['dvb-demod-m88rs6000.fw']"
|
||||
dvbsky_firmware_files: ['dvb-demod-m88ds3103.fw', 'dvb-demod-m88rs6000.fw', 'dvb-tuner-si2158-a20-01.fw', 'dvb-demod-si2168-a20-01.fw', 'dvb-demod-si2168-a30-01.fw', 'dvb-demod-si2168-b40-01.fw', 'dvb-fe-ds300x.fw', 'dvb-fe-ds3103.fw', 'dvb-fe-rs6000.fw']
|
||||
when:
|
||||
- '"1ade:3038" in pci'
|
||||
- ansible_distribution_version >= '15.04' #driver only included since Kernel 3.19
|
||||
when:
|
||||
- not dvbsky_firmware_files
|
||||
|
||||
|
@@ -10,9 +10,7 @@
|
||||
|
||||
- name: use ubuntu-drivers to install additional drivers automatically
|
||||
command: ubuntu-drivers --package-list /etc/yavdr/autoinstalled autoinstall
|
||||
when:
|
||||
- ansible_virtualization_type != "virtualbox"
|
||||
- ansible_virtualization_role != "guest"
|
||||
- ansible_distribution == "Ubuntu"
|
||||
- ansible_distribution_version != "16.04" # ubuntu-drivers-common tries to autoinstall
|
||||
# conflicting packages for virtualbox :(
|
||||
when: (ansible_virtualization_type != "virtualbox" and ansible_virtualization_role != "guest") or
|
||||
ansible_distribution_version != "16.04"
|
||||
# ubuntu-drivers-common tries to autoinstall
|
||||
# conflicting packages for virtualbox in Ubuntu 16.04 :(
|
||||
|
@@ -5,6 +5,8 @@
|
||||
modules: True
|
||||
gpus: True
|
||||
acpi_power_modes: True
|
||||
tags:
|
||||
- always
|
||||
|
||||
- debug:
|
||||
var: '{{ item }}'
|
||||
@@ -19,3 +21,10 @@
|
||||
- intel_detected
|
||||
- amd_detected
|
||||
- virtualbox_detected
|
||||
|
||||
- name: known vdr output plugins
|
||||
set_fact:
|
||||
vdr_output_plugins:
|
||||
- softhddevice
|
||||
- xineliboutput
|
||||
- xine
|
||||
|
@@ -8,4 +8,4 @@
|
||||
with_items:
|
||||
- kodi
|
||||
- kodi-pvr-vdr-vnsi
|
||||
- kodi-eventclients-xbmc-send
|
||||
- kodi-eventclients-kodi-send # for ubuntu packages, team-xbmc uses "kodi-eventclients-xbmc-send for some reason
|
||||
|
@@ -6,7 +6,7 @@ Type=simple
|
||||
PassEnvironment=DISPLAY XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS
|
||||
ExecStartPre=-/usr/bin/set-kodi-display
|
||||
ExecStart=/usr/bin/kodi -l /run/lirc/lircd
|
||||
ExecStop=/bin/bash -c "/usr/bin/kodi-send --action=QUIT; while /usr/bin/pgrep kodi; do sleep 1; done; sleep 1"
|
||||
ExecStop=/bin/bash -c "/usr/bin/kodi-send --action=QUIT; while ps -p $MAINPID -o comm=; do sleep .25; done"
|
||||
TimeoutStopSec=10
|
||||
SuccessExitStatus=0 127
|
||||
Restart=on-failure
|
||||
|
@@ -5,6 +5,8 @@
|
||||
repo: 'ppa:graphics-drivers/ppa'
|
||||
state: present
|
||||
update_cache: yes
|
||||
tags:
|
||||
- ppa
|
||||
|
||||
- name: install nvidia-387 and other required packages
|
||||
apt:
|
||||
@@ -14,3 +16,5 @@
|
||||
with_items:
|
||||
- nvidia-387
|
||||
- nvidia-settings
|
||||
tags:
|
||||
- packages
|
||||
|
@@ -1,6 +1,6 @@
|
||||
---
|
||||
|
||||
- name: apt | install pulseaudio and pavucontrol
|
||||
- name: apt | install pulseaudio, pavucontrol and vdr-plugin-pulsecontrol
|
||||
apt:
|
||||
name: '{{ item }}'
|
||||
state: present
|
||||
@@ -8,6 +8,7 @@
|
||||
with_items:
|
||||
- pulseaudio
|
||||
- pavucontrol
|
||||
- vdr-plugin-pulsecontrol
|
||||
|
||||
- name: create /etc/asound.conf with pulseaudio as default device
|
||||
template:
|
||||
|
@@ -30,11 +30,10 @@
|
||||
blockinfile:
|
||||
dest: /etc/vdr/conf.d/04-vdr-hide-first-recordinglevel.conf
|
||||
create: true
|
||||
state: "{{ 'present' if vdr.hide_first_recording_level else 'absent' }}"
|
||||
block: |
|
||||
[vdr]
|
||||
--hide-first-recording-level
|
||||
when:
|
||||
vdr.hide_first_recording_level
|
||||
|
||||
- name: create local dir in recdir
|
||||
file:
|
||||
|
@@ -10,6 +10,8 @@
|
||||
state: present
|
||||
update_cache: yes
|
||||
with_items: '{{ repositories }}'
|
||||
tags:
|
||||
- ppa
|
||||
|
||||
- name: run apt-get dist-upgrade
|
||||
apt:
|
||||
|
@@ -1,7 +1,7 @@
|
||||
---
|
||||
# this playbook sets up network services for a yaVDR installation
|
||||
|
||||
- name: apt |install packages for network services
|
||||
- name: apt | install packages for network services
|
||||
apt:
|
||||
name: '{{ item }}'
|
||||
state: present
|
||||
|
@@ -1,20 +1,30 @@
|
||||
---
|
||||
# This role is used to set up the yaVDR remote control configuration.
|
||||
|
||||
- name: apt | install yavdr-remote
|
||||
- name: apt | install packages for remote support
|
||||
apt:
|
||||
name: yavdr-remote
|
||||
name: '{{ item }}'
|
||||
state: present
|
||||
with_items:
|
||||
- yavdr-remote
|
||||
- lirc
|
||||
- eventlircd
|
||||
- lircd2uinput
|
||||
tags:
|
||||
- packages
|
||||
|
||||
- name: apt | install eventlircd
|
||||
apt:
|
||||
name: eventlircd
|
||||
state: present
|
||||
|
||||
- name: apt | install lirc
|
||||
apt:
|
||||
name: lirc
|
||||
state: present
|
||||
- name: add systemd drop-in for lircd to use lircd2uinput
|
||||
block:
|
||||
- name: create directory /etc/systemd/system/lircd.service.d/
|
||||
file:
|
||||
path: /etc/systemd/system/lircd.service.d/
|
||||
state: directory
|
||||
- name: expand template for /etc/systemd/system/lircd.service.d/lircd2uinput.conf
|
||||
template:
|
||||
src: templates/lircd.service.d/lircd2uinput.conf.j2
|
||||
dest: /etc/systemd/system/lircd.service.d/lircd2uinput.conf
|
||||
tags:
|
||||
- config
|
||||
|
||||
- name: stop, mask and disable lircd.socket, lircd.service and lircd-uinput.service # (the default lirc configuration conflicts with eventlircd)
|
||||
systemd:
|
||||
@@ -27,18 +37,21 @@
|
||||
- lircd.socket
|
||||
- lircd-uinput.service
|
||||
ignore_errors: yes
|
||||
tags:
|
||||
- systemd
|
||||
|
||||
- name: configure vdr to read from a lircd-compatible socket
|
||||
template:
|
||||
src: templates/03-vdr-lirc.conf.j2
|
||||
dest: /etc/vdr/conf.d/03-vdr-lirc.conf
|
||||
notify: ['Restart VDR']
|
||||
tags:
|
||||
- config
|
||||
|
||||
# TODO: upload lircd2uinput package to PPA
|
||||
#- name: install lircd2uinput
|
||||
# tag: install
|
||||
# apt:
|
||||
# name: lircd2uinput
|
||||
# state: present
|
||||
# when:
|
||||
# install_eventlircd is defined and install_eventlircd
|
||||
- name: expand template for /etc/rc_maps.cfg
|
||||
template:
|
||||
src: templates/rc_maps.cfg.j2
|
||||
dest: /etc/rc_maps.cfg
|
||||
notify: ['Trigger Udev']
|
||||
tags:
|
||||
- config
|
||||
|
@@ -0,0 +1,3 @@
|
||||
[Service]
|
||||
ExecStartPost=/usr/bin/lircd2uinput-add /var/run/lirc/lircd0
|
||||
ExecStopPost=/usr/bin/lircd2uinput-remove /var/run/lirc/lircd0
|
182
roles/yavdr-remote/templates/rc_maps.cfg.j2
Normal file
182
roles/yavdr-remote/templates/rc_maps.cfg.j2
Normal file
@@ -0,0 +1,182 @@
|
||||
#
|
||||
# Keymaps table
|
||||
#
|
||||
# This table creates an association between a keycode file and a kernel
|
||||
# driver. It can be used to automatically override a keycode definition.
|
||||
#
|
||||
# Although not yet tested, it is mented to be added at udev.
|
||||
#
|
||||
# To use, you just need to run:
|
||||
# ./ir-keytable -a
|
||||
#
|
||||
# Or, if the remote is not the first device:
|
||||
# ./ir-keytable -a -s rc1 # for RC at rc1
|
||||
#
|
||||
|
||||
# Format:
|
||||
# driver - name of the driver provided via uevent - use * for any driver
|
||||
# table - RC keymap table, provided via uevent - use * for any table
|
||||
# file - file name. If directory is not specified, it will default to
|
||||
# /etc/rc_keymaps.
|
||||
# For example:
|
||||
# driver table file
|
||||
# cx8800 * ./keycodes/rc5_hauppauge_new
|
||||
# * rc-avermedia-m135a-rm-jx ./keycodes/kworld_315u
|
||||
# saa7134 rc-avermedia-m135a-rm-jx ./keycodes/keycodes/nec_terratec_cinergy_xs
|
||||
# em28xx * ./keycodes/kworld_315u
|
||||
# * * ./keycodes/rc5_hauppauge_new
|
||||
|
||||
# Table to automatically load the rc maps for the bundled IR's provided with the
|
||||
# devices supported by the linux kernel
|
||||
|
||||
#driver table file
|
||||
* rc-adstech-dvb-t-pci adstech_dvb_t_pci
|
||||
* rc-alink-dtu-m alink_dtu_m
|
||||
* rc-anysee anysee
|
||||
* rc-apac-viewcomp apac_viewcomp
|
||||
* rc-asus-pc39 asus_pc39
|
||||
* rc-asus-ps3-100 asus_ps3_100
|
||||
* rc-ati-tv-wonder-hd-600 ati_tv_wonder_hd_600
|
||||
* rc-ati-x10 ati_x10
|
||||
* rc-avermedia-a16d avermedia_a16d
|
||||
* rc-avermedia-cardbus avermedia_cardbus
|
||||
* rc-avermedia-dvbt avermedia_dvbt
|
||||
* rc-avermedia-m135a avermedia_m135a
|
||||
* rc-avermedia-m733a-rm-k6 avermedia_m733a_rm_k6
|
||||
* rc-avermedia-rm-ks avermedia_rm_ks
|
||||
* rc-avermedia avermedia
|
||||
* rc-avertv-303 avertv_303
|
||||
* rc-azurewave-ad-tu700 azurewave_ad_tu700
|
||||
* rc-behold-columbus behold_columbus
|
||||
* rc-behold behold
|
||||
* rc-budget-ci-old budget_ci_old
|
||||
* rc-cec cec
|
||||
* rc-cinergy-1400 cinergy_1400
|
||||
* rc-cinergy cinergy
|
||||
* rc-delock-61959 delock_61959
|
||||
* rc-dib0700-nec dib0700_nec
|
||||
* rc-dib0700-rc5 dib0700_rc5
|
||||
* rc-digitalnow-tinytwin digitalnow_tinytwin
|
||||
* rc-digittrade digittrade
|
||||
* rc-dm1105-nec dm1105_nec
|
||||
* rc-dntv-live-dvb-t dntv_live_dvb_t
|
||||
* rc-dntv-live-dvbt-pro dntv_live_dvbt_pro
|
||||
* rc-dtt200u dtt200u
|
||||
* rc-dvbsky dvbsky
|
||||
* rc-em-terratec em_terratec
|
||||
* rc-encore-enltv-fm53 encore_enltv_fm53
|
||||
* rc-encore-enltv encore_enltv
|
||||
* rc-encore-enltv2 encore_enltv2
|
||||
* rc-evga-indtube evga_indtube
|
||||
* rc-eztv eztv
|
||||
* rc-flydvb flydvb
|
||||
* rc-flyvideo flyvideo
|
||||
* rc-fusionhdtv-mce fusionhdtv_mce
|
||||
* rc-gadmei-rm008z gadmei_rm008z
|
||||
* rc-genius-tvgo-a11mce genius_tvgo_a11mce
|
||||
* rc-gotview7135 gotview7135
|
||||
* rc-hauppauge hauppauge
|
||||
#* rc-imon-mce imon_mce
|
||||
#* rc-imon-pad imon_pad
|
||||
* rc-iodata-bctv7e iodata_bctv7e
|
||||
* rc-it913x-v1 it913x_v1
|
||||
* rc-it913x-v2 it913x_v2
|
||||
* rc-kaiomy kaiomy
|
||||
* rc-kworld-315u kworld_315u
|
||||
* rc-kworld-pc150u kworld_pc150u
|
||||
* rc-kworld-plus-tv-analog kworld_plus_tv_analog
|
||||
* rc-leadtek-y04g0051 leadtek_y04g0051
|
||||
* rc-lme2510 lme2510
|
||||
* rc-manli manli
|
||||
* rc-medion-x10-digitainer medion_x10_digitainer
|
||||
* rc-medion-x10-or2x medion_x10_or2x
|
||||
* rc-medion-x10 medion_x10
|
||||
* rc-msi-digivox-ii msi_digivox_ii
|
||||
* rc-msi-digivox-iii msi_digivox_iii
|
||||
* rc-msi-tvanywhere-plus msi_tvanywhere_plus
|
||||
* rc-msi-tvanywhere msi_tvanywhere
|
||||
* rc-nebula nebula
|
||||
* rc-nec-terratec-cinergy-xs nec_terratec_cinergy_xs
|
||||
* rc-norwood norwood
|
||||
* rc-npgtech npgtech
|
||||
* rc-pctv-sedna pctv_sedna
|
||||
* rc-pinnacle-color pinnacle_color
|
||||
* rc-pinnacle-grey pinnacle_grey
|
||||
* rc-pinnacle-pctv-hd pinnacle_pctv_hd
|
||||
* rc-pixelview-002t pixelview_002t
|
||||
* rc-pixelview-mk12 pixelview_mk12
|
||||
* rc-pixelview-new pixelview_new
|
||||
* rc-pixelview pixelview
|
||||
* rc-powercolor-real-angel powercolor_real_angel
|
||||
* rc-proteus-2309 proteus_2309
|
||||
* rc-purpletv purpletv
|
||||
* rc-pv951 pv951
|
||||
* rc-real-audio-220-32-keys real_audio_220_32_keys
|
||||
* rc-reddo reddo
|
||||
* rc-snapstream-firefly snapstream_firefly
|
||||
* rc-streamzap streamzap
|
||||
* rc-su3000 su3000
|
||||
* rc-tbs-nec tbs_nec
|
||||
* rc-technisat-ts35 technisat_ts35
|
||||
* rc-technisat-usb2 technisat_usb2
|
||||
* rc-terratec-cinergy-c-pci terratec_cinergy_c_pci
|
||||
* rc-terratec-cinergy-s2-hd terratec_cinergy_s2_hd
|
||||
* rc-terratec-cinergy-xs terratec_cinergy_xs
|
||||
* rc-terratec-slim-2 terratec_slim_2
|
||||
* rc-terratec-slim terratec_slim
|
||||
* rc-tevii-nec tevii_nec
|
||||
* rc-tivo tivo
|
||||
* rc-total-media-in-hand-02 total_media_in_hand_02
|
||||
* rc-total-media-in-hand total_media_in_hand
|
||||
* rc-trekstor trekstor
|
||||
* rc-tt-1500 tt_1500
|
||||
* rc-twinhan-dtv-cab-ci twinhan_dtv_cab_ci
|
||||
* rc-twinhan1027 twinhan_vp1027_dvbs
|
||||
* rc-videomate-k100 videomate_k100
|
||||
* rc-videomate-s350 videomate_s350
|
||||
* rc-videomate-tv-pvr videomate_tv_pvr
|
||||
* rc-winfast-usbii-deluxe winfast_usbii_deluxe
|
||||
* rc-winfast winfast
|
||||
# * * a800 # found in a800.c
|
||||
# * * af9005 # found in af9005-remote.c
|
||||
# * * cinergyt2 # found in cinergyT2-core.c
|
||||
# * * dvico_mce # found in cxusb.c
|
||||
# * * dvico_portable # found in cxusb.c
|
||||
# * * d680_dmb # found in cxusb.c
|
||||
# * * dibusb # found in dibusb-common.c
|
||||
# * * digitv # found in digitv.c
|
||||
# * * megasky # found in m920x.c
|
||||
# * * tvwalkerir-kbd-i2c rc-hauppauge /lib/udev/rc_keymaps/rc-hauppaugetwin # found in m920x.c
|
||||
# * * pinnacle310e # found in m920x.c
|
||||
# * * haupp # found in nova-t-usb2.c
|
||||
# * * opera1 # found in opera1.c
|
||||
# * * vp702x # found in vp702x.c
|
||||
# * * vp7045 # found in vp7045.c
|
||||
|
||||
# Hauppauge PVR 350
|
||||
ir-kbd-i2c rc-hauppauge /lib/udev/rc_keymaps/rc-hauppauge
|
||||
|
||||
# imon-pad
|
||||
imon rc-imon-pad /lib/udev/rc_keymaps/rc-imon-pad
|
||||
imon rc-imon-mce /lib/udev/rc_keymaps/rc-imon-mce
|
||||
|
||||
# TT-1500/1501
|
||||
* rc-tt-1500 /lib/udev/rc_keymaps/rc-tt-1500
|
||||
budget_ci rc-tt-1500 /lib/udev/rc_keymaps/rc-tt-1501
|
||||
|
||||
# rc-rc6-mce
|
||||
* rc-rc6-mce /lib/udev/rc_keymaps/rc-rc6-mce
|
||||
# CIR
|
||||
ite-cir rc-rc6-mce /lib/udev/rc_keymaps/rc-rc6-mce
|
||||
nuvoton-cir rc-rc6-mce /lib/udev/rc_keymaps/rc-rc6-mce
|
||||
|
||||
# mceusb
|
||||
mceusb rc-rc6-mce /lib/udev/rc_keymaps/HOPLOrc6
|
||||
|
||||
# Skystarhd2
|
||||
mantis_core * /lib/udev/rc_keymaps/skystarhd2
|
||||
|
||||
# Medion X10
|
||||
ati_remote rc-medion-x10 /lib/udev/rc_keymaps/rc-medion-x10
|
||||
ati_remote rc-medion-x10-or2x /lib/udev/rc_keymaps/rc-medion-x10-or2x
|
||||
ati_remote rc-medion-x10-digitainer /lib/udev/rc_keymaps/rc-medion-x10-digitainer
|
@@ -21,6 +21,14 @@
|
||||
owner: '{{ vdr.user }}'
|
||||
group: '{{ vdr.group }}'
|
||||
|
||||
- name: "expand template for vdr's .Xresources"
|
||||
template:
|
||||
src: 'templates/.Xresources.j2'
|
||||
dest: '{{ vdr.home }}/.Xresources'
|
||||
mode: 0644
|
||||
owner: '{{ vdr.user }}'
|
||||
group: '{{ vdr.group }}'
|
||||
|
||||
- name: expand template for openbox autostart
|
||||
template:
|
||||
src: 'templates/openbox/autostart.j2'
|
||||
@@ -79,6 +87,15 @@
|
||||
src: templates/systemd/user/osd2web.service.j2
|
||||
dest: '{{ vdr.home }}/.config/systemd/user/osd2web.service'
|
||||
|
||||
- name: create irexec configuration for the session
|
||||
block:
|
||||
- template:
|
||||
src: templates/systemd/user/irexec.service.j2
|
||||
dest: '{{ vdr.home }}/.config/systemd/user/irexec.service'
|
||||
- template:
|
||||
src: templates/.lircrc.j2
|
||||
dest: '{{ vdr.home }}/.lircrc'
|
||||
|
||||
- name: link /usr/bin/start-desktop to /var/lib/vdr/plugins/desktop/starter
|
||||
file:
|
||||
src: /usr/bin/start-desktop
|
||||
|
@@ -28,7 +28,40 @@
|
||||
name: x@vt7.service
|
||||
state: stopped
|
||||
|
||||
- name: "wait a little bit before starting x-verbose@vt7.service (needed?)"
|
||||
- name: Workaround for wrong connector names on first run
|
||||
block:
|
||||
- name: "wait a little bit before starting x-verbose@vt7.service (needed?)"
|
||||
wait_for:
|
||||
timeout: 10
|
||||
|
||||
- name: "start x-verbose@.service"
|
||||
systemd:
|
||||
name: "x-verbose@vt7.service"
|
||||
state: started
|
||||
enabled: false
|
||||
masked: false
|
||||
daemon_reload: true
|
||||
|
||||
- name: "wait a little bit, so X has some time to start up (needed?)"
|
||||
wait_for:
|
||||
timeout: 3
|
||||
|
||||
- name: "stop x-verbose@vt7.service"
|
||||
systemd:
|
||||
name: "x-verbose@vt7.service"
|
||||
state: stopped
|
||||
enabled: false
|
||||
masked: true
|
||||
tags: first_run
|
||||
|
||||
- name: "wait a little bit, so X has some time to shut down (needed?)"
|
||||
wait_for:
|
||||
timeout: 3
|
||||
|
||||
- name: "trigger udevadm reload"
|
||||
command: 'udevadm trigger '
|
||||
|
||||
- name: "wait a little bit, so udev has some time to reapply rules (needed?)"
|
||||
wait_for:
|
||||
timeout: 3
|
||||
|
||||
|
@@ -1,5 +1,8 @@
|
||||
---
|
||||
# file: roles/yavdr-xorg/tasks/main.yml
|
||||
- import_tasks: setup-xorg.yml tags=install,update
|
||||
- import_tasks: detect-xorg.yml tags=xorg:detect,install
|
||||
- import_tasks: desktop-session.yml tags=install,update
|
||||
- import_tasks: setup-xorg.yml
|
||||
tags: [install,update]
|
||||
- import_tasks: detect-xorg.yml
|
||||
tags: [xorg.detect,install]
|
||||
- import_tasks: desktop-session.yml
|
||||
tags: [install,update]
|
||||
|
@@ -8,6 +8,7 @@
|
||||
- "/etc/systemd/system/x@.service.d/"
|
||||
- "/etc/systemd/system/vdr.service.d/"
|
||||
- "/etc/systemd/system/user@{{ vdr.uid }}.service.d/"
|
||||
- "/etc/X11/xorg.conf.d/"
|
||||
|
||||
- name: systemd-drop-in | add dependency to X-server for vdr.service
|
||||
template:
|
||||
@@ -24,6 +25,11 @@
|
||||
src: templates/systemd/vdr-environ.j2
|
||||
dest: /etc/systemd/system/vdr.service.d/load-environ.conf
|
||||
|
||||
- name: systemd-drop-in | start vdr.service after network-online.target
|
||||
template:
|
||||
src: templates/systemd/network-online.j2
|
||||
dest: /etc/systemd/system/vdr.service.d/network-online.conf
|
||||
|
||||
- name: systemd-drop-in | user@{{ vdr.uid }}.service depends on x@vt7.service
|
||||
template:
|
||||
src: templates/user@666.service.d/x-dependency.conf.j2
|
||||
@@ -61,8 +67,26 @@
|
||||
- read-edid
|
||||
- tmux
|
||||
- vdr-plugin-desktop
|
||||
- vdr-plugin-osd2web
|
||||
- feh
|
||||
#- yavdr-xorg
|
||||
|
||||
- name: download yavdr logo
|
||||
block:
|
||||
- file:
|
||||
dest: '/usr/share/yavdr/images'
|
||||
state: directory
|
||||
|
||||
- get_url:
|
||||
url: 'https://github.com/yavdr/yavdr-base/raw/master/images/yavdr_logo.png'
|
||||
dest: '/usr/share/yavdr/images/yavdr_logo.png'
|
||||
|
||||
- name: command | write keyboard configuration to /etc/X11/xorg.conf.d/00-keyboard.conf
|
||||
command: write-x11-keyboard-config
|
||||
creates: /etc/X11/xorg.conf.d/00-keyboard.conf
|
||||
# NOTE: write-x11-keyboard-config is in the xlogin package
|
||||
# Ubuntu's systemd is patched, so it does not create the file automatically
|
||||
|
||||
- name: apt | install desktop programs
|
||||
apt:
|
||||
name: '{{ item }}'
|
||||
|
16
roles/yavdr-xorg/templates/.Xresources.j2
Normal file
16
roles/yavdr-xorg/templates/.Xresources.j2
Normal file
@@ -0,0 +1,16 @@
|
||||
xterm*background: Black
|
||||
xterm*foreground: grey
|
||||
XTerm*locale: true
|
||||
XTerm*metaSendsEscape: true
|
||||
XTerm*eightBitInput: false
|
||||
XTerm*backarrowKey: false
|
||||
XTerm*ttyModes: erase ^?
|
||||
Xterm*saveLines: 4096
|
||||
XTerm.vt100.metaSendsEscape: true
|
||||
XTerm.vt100.geometry: 80x32
|
||||
XTerm.vt100.renderFont: true
|
||||
xterm*faceName: xft:DejaVu Sans Mono
|
||||
xterm*faceSize: 14
|
||||
xterm*renderFont: true
|
||||
XTerm.vt100.faceName: xft:DejaVu Sans Mono:size=12:antialias=false
|
||||
XTerm.vt100.font: 7x13
|
5
roles/yavdr-xorg/templates/.lircrc.j2
Normal file
5
roles/yavdr-xorg/templates/.lircrc.j2
Normal file
@@ -0,0 +1,5 @@
|
||||
begin
|
||||
prog = irexec
|
||||
button = KEY_HOME
|
||||
config = frontend-dbus-send switchbetween kodi vdr
|
||||
end
|
@@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
# {{ ansible_managed_file }}
|
||||
{{ ansible_managed_file | comment }}
|
||||
exec openbox-session
|
||||
|
@@ -3,11 +3,13 @@
|
||||
env | grep "DISPLAY\|DBUS_SESSION_BUS_ADDRESS\|XDG_RUNTIME_DIR" > ~/.session-env
|
||||
systemctl --user import-environment DISPLAY XAUTHORITY XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS
|
||||
|
||||
feh --bg-center "/usr/share/yavdr/images/yavdr_logo.png"
|
||||
|
||||
enabled_services=(
|
||||
"tmux.service" "detect-second-display.service"
|
||||
"openbox-second.service" "osd2web.service"
|
||||
"yavdr-frontend.service" "pulseaudio.socket"
|
||||
"pulseaudio.service" "wm-exit.service")
|
||||
"pulseaudio.service" "wm-exit.service" "irexec.service")
|
||||
disabled_services=()
|
||||
|
||||
# enable configured services for the user session
|
||||
|
@@ -54,7 +54,7 @@
|
||||
S: shade (roll up/down)
|
||||
D: omnipresent (on all desktops).
|
||||
-->
|
||||
<keepBorder>yes</keepBorder>
|
||||
<keepBorder>no</keepBorder>
|
||||
<animateIconify>yes</animateIconify>
|
||||
<font place="ActiveWindow">
|
||||
<name>sans</name>
|
||||
@@ -321,22 +321,6 @@
|
||||
<direction>down</direction>
|
||||
</action>
|
||||
</keybind>
|
||||
<!-- Keybindings for running applications -->
|
||||
<keybind key="W-e">
|
||||
<action name="Execute">
|
||||
<startupnotify>
|
||||
<enabled>true</enabled>
|
||||
<name>Konqueror</name>
|
||||
</startupnotify>
|
||||
<command>kfmclient openProfile filemanagement</command>
|
||||
</action>
|
||||
</keybind>
|
||||
<!-- Launch scrot when Print is pressed -->
|
||||
<keybind key="Print">
|
||||
<action name="Execute">
|
||||
<command>scrot</command>
|
||||
</action>
|
||||
</keybind>
|
||||
</keyboard>
|
||||
<mouse>
|
||||
<dragThreshold>1</dragThreshold>
|
||||
@@ -796,21 +780,27 @@
|
||||
<applications>
|
||||
<application title="softhddevice">
|
||||
<decor>no</decor>
|
||||
<maximized>true</maximized>
|
||||
<maximized>yes</maximized>
|
||||
<!--<skip_pager>yes</skip_pager>-->
|
||||
<skip_taskbar>no</skip_taskbar>
|
||||
</application>
|
||||
<application class="VDR">
|
||||
<decor>no</decor>
|
||||
<maximized>yes</maximized>
|
||||
<!--<skip_pager>yes</skip_pager>-->
|
||||
<skip_taskbar>no</skip_taskbar>
|
||||
</application>
|
||||
<application title="browser">
|
||||
<decor>no</decor>
|
||||
<maximized>true</maximized>
|
||||
<maximized>yes</maximized>
|
||||
<!--<skip_pager>yes</skip_pager>-->
|
||||
<skip_taskbar>yes</skip_taskbar>
|
||||
<skip_taskbar>no</skip_taskbar>
|
||||
</application>
|
||||
<application title="osd2Web">
|
||||
<decor>no</decor>
|
||||
<maximized>true</maximized>
|
||||
<maximized>yes</maximized>
|
||||
<!--<skip_pager>yes</skip_pager>-->
|
||||
<skip_taskbar>yes</skip_taskbar>
|
||||
<skip_taskbar>no</skip_taskbar>
|
||||
</application>
|
||||
</applications>
|
||||
</openbox_config>
|
||||
|
2
roles/yavdr-xorg/templates/systemd/network-online.j2
Normal file
2
roles/yavdr-xorg/templates/systemd/network-online.j2
Normal file
@@ -0,0 +1,2 @@
|
||||
[Unit]
|
||||
After=network-online.target
|
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=LIRC command handler
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/irexec %h/.lircrc
|
||||
|
||||
[Install]
|
||||
WantedBy=yavdr-desktop.target
|
@@ -9,6 +9,7 @@ ConditionFileNotEmpty=%h/.second_display
|
||||
PassEnvironment=XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS
|
||||
EnvironmentFile=%h/.second_display
|
||||
ExecStart=/usr/bin/openbox --config-file %h/.config/openbox/rc.xml
|
||||
ExecStartPost=/bin/bash %h/.fehbg
|
||||
|
||||
[Install]
|
||||
WantedBy=yavdr-desktop.target
|
||||
|
@@ -7,7 +7,7 @@ ConditionFileNotEmpty=%h/.second_display
|
||||
[Service]
|
||||
EnvironmentFile=%h/.second_display
|
||||
PassEnvironment=XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS
|
||||
ExecStart=/usr/bin/on_vdr -o -c 'kiosk-browser "http://localhost:4444/skins/horchiTft/index.html?theme=blue&onlyView=1"'
|
||||
ExecStart=/usr/bin/on_vdr -o -c 'kiosk-browser "http://localhost:4444/skins/horchiTft/index.html?theme=bluecd&onlyView=1"'
|
||||
KillSignal=SIGINT
|
||||
|
||||
[Install]
|
||||
|
@@ -1,5 +1,4 @@
|
||||
# file: roles/yavdr-xorg/templates/vdr-xorg.conf
|
||||
# {{ ansible_managed_file }}
|
||||
{{ ansible_managed_file | comment }}
|
||||
[Unit]
|
||||
After=x@vt7.service
|
||||
Wants=x@vt7.service
|
||||
|
@@ -48,7 +48,9 @@ Section "Screen"
|
||||
Option "ConnectedMonitor" "{{ xorg.primary.connector }}{% if xorg.secondary is defined %}, {{ xorg.secondary.connector }}{% endif %}"
|
||||
Option "UseDisplayDevice" "{{ xorg.primary.connector }}"
|
||||
Option "CustomEDID" "{{ xorg.primary.connector }}:/etc/X11/edid.{{ xorg.primary.connector }}.bin"
|
||||
Option "metamodes" "{{ xorg.primary.connector }}: {{ xorg.primary.mode }} +0+0"
|
||||
Option "metamodes" "{{ xorg.primary.connector }}: {{ xorg.primary.mode }} +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
|
||||
Option "AllowIndirectGLXProtocol" "off"
|
||||
Option "TripleBuffer" "on"
|
||||
Option "SLI" "Off"
|
||||
Option "MultiGPU" "Off"
|
||||
Option "BaseMosaic" "off"
|
||||
@@ -87,7 +89,9 @@ Section "Screen"
|
||||
Option "ConnectedMonitor" "{{ xorg.secondary.connector }}"
|
||||
Option "UseDisplayDevice" "{{ xorg.secondary.connector }}"
|
||||
Option "CustomEDID" "{{ xorg.secondary.connector }}:/etc/X11/edid.{{ xorg.secondary.connector }}.bin"
|
||||
Option "metamodes" "{{ xorg.secondary.connector }}: {{ xorg.secondary.mode }} +0+0"
|
||||
Option "metamodes" "{{ xorg.secondary.connector }}: {{ xorg.secondary.mode }} +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
|
||||
Option "AllowIndirectGLXProtocol" "off"
|
||||
Option "TripleBuffer" "on"
|
||||
Option "SLI" "Off"
|
||||
Option "MultiGPU" "Off"
|
||||
Option "BaseMosaic" "off"
|
||||
|
@@ -27,14 +27,13 @@
|
||||
- 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-hardware-irmp # install yavdr-hardware-irmp if a matching usb device is detected
|
||||
- autoinstall-atric-usb # preconfigure lircd for Atric IR-WakeupUSB receiver
|
||||
- autoinstall-dvbsky-firmware # download an install required firmware files for dvbsky cards
|
||||
- kodi
|
||||
- dvd # set up packages and a udev rule to allow kodi and other players
|
||||
# to play and eject optical media
|
||||
- wakeup # set up wakeup methods for rtc etc.
|
||||
- grub-config # configure grub
|
||||
tags:
|
||||
- always
|
||||
|
||||
handlers:
|
||||
- import_tasks: handlers/main.yml
|
||||
|
Reference in New Issue
Block a user