From 84e370bd949203d98926c37da59571893adf8803 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sat, 9 Sep 2023 16:49:15 -0400 Subject: [PATCH 1/6] Do not sleep the launch keyboard on Linux. --- ansible/roles/power_management/files/dont_sleep_usb_rulesd.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/ansible/roles/power_management/files/dont_sleep_usb_rulesd.conf b/ansible/roles/power_management/files/dont_sleep_usb_rulesd.conf index 16127a3..5cfdb16 100644 --- a/ansible/roles/power_management/files/dont_sleep_usb_rulesd.conf +++ b/ansible/roles/power_management/files/dont_sleep_usb_rulesd.conf @@ -1,2 +1,3 @@ ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1038", ATTR{idProduct}=="1832", TEST=="power/autosuspend" ATTR{power/autosuspend}="-1" ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="308f", ATTR{idProduct}=="0011", TEST=="power/autosuspend" ATTR{power/autosuspend}="-1" +ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="3384", ATTR{idProduct}=="0006", TEST=="power/autosuspend" ATTR{power/autosuspend}="-1" From 2fc923837f7fe1f10aa2a319eeac914ccbdb4a70 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sat, 9 Sep 2023 17:08:36 -0400 Subject: [PATCH 2/6] Install system76 tools. --- ansible/playbook.yaml | 1 + .../roles/launch_keyboard/tasks/common.yaml | 15 ++++++++ .../roles/launch_keyboard/tasks/freebsd.yaml | 5 +++ .../roles/launch_keyboard/tasks/linux.yaml | 34 +++++++++++++++++++ ansible/roles/launch_keyboard/tasks/main.yaml | 2 ++ .../roles/launch_keyboard/tasks/peruser.yaml | 29 ++++++++++++++++ .../tasks/peruser_freebsd.yaml | 0 .../launch_keyboard/tasks/peruser_linux.yaml | 0 8 files changed, 86 insertions(+) create mode 100644 ansible/roles/launch_keyboard/tasks/common.yaml create mode 100644 ansible/roles/launch_keyboard/tasks/freebsd.yaml create mode 100644 ansible/roles/launch_keyboard/tasks/linux.yaml create mode 100644 ansible/roles/launch_keyboard/tasks/main.yaml create mode 100644 ansible/roles/launch_keyboard/tasks/peruser.yaml create mode 100644 ansible/roles/launch_keyboard/tasks/peruser_freebsd.yaml create mode 100644 ansible/roles/launch_keyboard/tasks/peruser_linux.yaml diff --git a/ansible/playbook.yaml b/ansible/playbook.yaml index 4aec288..301ff15 100644 --- a/ansible/playbook.yaml +++ b/ansible/playbook.yaml @@ -50,6 +50,7 @@ - docker - vscode - javascript + - launch_keyboard - hosts: nat_dhcp:homeserver_nat_dhcp:mrmanager_nat_dhcp vars: diff --git a/ansible/roles/launch_keyboard/tasks/common.yaml b/ansible/roles/launch_keyboard/tasks/common.yaml new file mode 100644 index 0000000..fef1101 --- /dev/null +++ b/ansible/roles/launch_keyboard/tasks/common.yaml @@ -0,0 +1,15 @@ +- import_tasks: tasks/freebsd.yaml + when: 'os_flavor == "freebsd"' + +- import_tasks: tasks/linux.yaml + when: 'os_flavor == "linux"' + +- include_tasks: + file: tasks/peruser.yaml + apply: + become: yes + become_user: "{{ initialize_user }}" + when: users is defined + loop: "{{ users | dict2items | community.general.json_query('[?value.initialize==`true`].key') }}" + loop_control: + loop_var: initialize_user diff --git a/ansible/roles/launch_keyboard/tasks/freebsd.yaml b/ansible/roles/launch_keyboard/tasks/freebsd.yaml new file mode 100644 index 0000000..b417174 --- /dev/null +++ b/ansible/roles/launch_keyboard/tasks/freebsd.yaml @@ -0,0 +1,5 @@ +# - name: Install packages +# package: +# name: +# - foo +# state: present diff --git a/ansible/roles/launch_keyboard/tasks/linux.yaml b/ansible/roles/launch_keyboard/tasks/linux.yaml new file mode 100644 index 0000000..04fbbca --- /dev/null +++ b/ansible/roles/launch_keyboard/tasks/linux.yaml @@ -0,0 +1,34 @@ +- name: Build aur packages + register: buildaur + become_user: "{{ build_user.name }}" + command: "aurutils-sync --no-view {{ item }}" + args: + creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*" + loop: + - firmware-manager + - system76-driver + - system76-firmware-daemon + +- name: Update cache + when: buildaur.changed + pacman: + name: [] + state: present + update_cache: true + +- name: Install packages + package: + name: + - firmware-manager + - system76-driver + - system76-firmware-daemon + state: present + +- name: Enable services + systemd: + enabled: yes + name: "{{ item }}" + daemon_reload: yes + loop: + - system76.service + - system76-firmware-daemon.service diff --git a/ansible/roles/launch_keyboard/tasks/main.yaml b/ansible/roles/launch_keyboard/tasks/main.yaml new file mode 100644 index 0000000..888f733 --- /dev/null +++ b/ansible/roles/launch_keyboard/tasks/main.yaml @@ -0,0 +1,2 @@ +- import_tasks: tasks/common.yaml + when: install_graphics diff --git a/ansible/roles/launch_keyboard/tasks/peruser.yaml b/ansible/roles/launch_keyboard/tasks/peruser.yaml new file mode 100644 index 0000000..111e886 --- /dev/null +++ b/ansible/roles/launch_keyboard/tasks/peruser.yaml @@ -0,0 +1,29 @@ +- include_role: + name: per_user + +# - name: Create directories +# file: +# name: "{{ account_homedir.stdout }}/{{ item }}" +# state: directory +# mode: 0700 +# owner: "{{ account_name.stdout }}" +# group: "{{ group_name.stdout }}" +# loop: +# - ".config/foo" + +# - name: Copy files +# copy: +# src: "files/{{ item.src }}" +# dest: "{{ account_homedir.stdout }}/{{ item.dest }}" +# mode: 0600 +# owner: "{{ account_name.stdout }}" +# group: "{{ group_name.stdout }}" +# loop: +# - src: foo.conf +# dest: .config/foo/foo.conf + +- import_tasks: tasks/peruser_freebsd.yaml + when: 'os_flavor == "freebsd"' + +- import_tasks: tasks/peruser_linux.yaml + when: 'os_flavor == "linux"' diff --git a/ansible/roles/launch_keyboard/tasks/peruser_freebsd.yaml b/ansible/roles/launch_keyboard/tasks/peruser_freebsd.yaml new file mode 100644 index 0000000..e69de29 diff --git a/ansible/roles/launch_keyboard/tasks/peruser_linux.yaml b/ansible/roles/launch_keyboard/tasks/peruser_linux.yaml new file mode 100644 index 0000000..e69de29 From babf3bb971d0343360bf1feaf468d2cc4a30e71c Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sat, 9 Sep 2023 17:10:52 -0400 Subject: [PATCH 3/6] No idea. --- .../roles/launch_keyboard/tasks/linux.yaml | 45 +++++-------------- 1 file changed, 12 insertions(+), 33 deletions(-) diff --git a/ansible/roles/launch_keyboard/tasks/linux.yaml b/ansible/roles/launch_keyboard/tasks/linux.yaml index 04fbbca..262ba52 100644 --- a/ansible/roles/launch_keyboard/tasks/linux.yaml +++ b/ansible/roles/launch_keyboard/tasks/linux.yaml @@ -1,34 +1,13 @@ -- name: Build aur packages - register: buildaur - become_user: "{{ build_user.name }}" - command: "aurutils-sync --no-view {{ item }}" - args: - creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*" - loop: - - firmware-manager - - system76-driver - - system76-firmware-daemon +# - name: Install packages +# package: +# name: +# - system76-firmware +# state: present -- name: Update cache - when: buildaur.changed - pacman: - name: [] - state: present - update_cache: true - -- name: Install packages - package: - name: - - firmware-manager - - system76-driver - - system76-firmware-daemon - state: present - -- name: Enable services - systemd: - enabled: yes - name: "{{ item }}" - daemon_reload: yes - loop: - - system76.service - - system76-firmware-daemon.service +# - name: Enable services +# systemd: +# enabled: yes +# name: "{{ item }}" +# daemon_reload: yes +# loop: +# - system76-firmware-daemon.service From a54c966ad0bd6380effa2658d66a76c5377ebb31 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sun, 10 Sep 2023 18:25:36 -0400 Subject: [PATCH 4/6] Install the launch keyboard configurator. --- .../roles/launch_keyboard/tasks/linux.yaml | 34 ++++++++++++------- .../files/dont_sleep_usb_rulesd.conf | 6 ++++ 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/ansible/roles/launch_keyboard/tasks/linux.yaml b/ansible/roles/launch_keyboard/tasks/linux.yaml index 262ba52..c0ed422 100644 --- a/ansible/roles/launch_keyboard/tasks/linux.yaml +++ b/ansible/roles/launch_keyboard/tasks/linux.yaml @@ -1,13 +1,23 @@ -# - name: Install packages -# package: -# name: -# - system76-firmware -# state: present +- name: Build aur packages + register: buildaur + become_user: "{{ build_user.name }}" + command: "aurutils-sync --no-view {{ item }}" + args: + creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*" + loop: + - system76-keyboard-configurator -# - name: Enable services -# systemd: -# enabled: yes -# name: "{{ item }}" -# daemon_reload: yes -# loop: -# - system76-firmware-daemon.service +- name: Update cache + when: buildaur.changed + pacman: + name: [] + state: present + update_cache: true + +- name: Install packages + package: + name: + - dfu-programmer # For flashing keyboard https://support.system76.com/articles/launch_2-firmware-update/ + - avrdude # For flashing keyboard https://support.system76.com/articles/launch_2-firmware-update/ + - system76-keyboard-configurator + state: present diff --git a/ansible/roles/power_management/files/dont_sleep_usb_rulesd.conf b/ansible/roles/power_management/files/dont_sleep_usb_rulesd.conf index 5cfdb16..5c9d568 100644 --- a/ansible/roles/power_management/files/dont_sleep_usb_rulesd.conf +++ b/ansible/roles/power_management/files/dont_sleep_usb_rulesd.conf @@ -1,3 +1,9 @@ ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1038", ATTR{idProduct}=="1832", TEST=="power/autosuspend" ATTR{power/autosuspend}="-1" ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="308f", ATTR{idProduct}=="0011", TEST=="power/autosuspend" ATTR{power/autosuspend}="-1" + +# Launch keyboard ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="3384", ATTR{idProduct}=="0006", TEST=="power/autosuspend" ATTR{power/autosuspend}="-1" + +# DFU Programmer on launch keyboard +ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ff9", TEST=="power/autosuspend" ATTR{power/autosuspend}="-1" +ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ff9", TAG+="uaccess" From 754c84ad89a924902829e04a47d063b74415078e Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sun, 10 Sep 2023 18:28:32 -0400 Subject: [PATCH 5/6] Add a lvfs role for Linux. --- ansible/playbook.yaml | 1 + ansible/roles/lvfs/tasks/common.yaml | 5 +++++ ansible/roles/lvfs/tasks/freebsd.yaml | 5 +++++ ansible/roles/lvfs/tasks/linux.yaml | 14 ++++++++++++++ ansible/roles/lvfs/tasks/main.yaml | 2 ++ 5 files changed, 27 insertions(+) create mode 100644 ansible/roles/lvfs/tasks/common.yaml create mode 100644 ansible/roles/lvfs/tasks/freebsd.yaml create mode 100644 ansible/roles/lvfs/tasks/linux.yaml create mode 100644 ansible/roles/lvfs/tasks/main.yaml diff --git a/ansible/playbook.yaml b/ansible/playbook.yaml index 301ff15..993d215 100644 --- a/ansible/playbook.yaml +++ b/ansible/playbook.yaml @@ -51,6 +51,7 @@ - vscode - javascript - launch_keyboard + - lvfs - hosts: nat_dhcp:homeserver_nat_dhcp:mrmanager_nat_dhcp vars: diff --git a/ansible/roles/lvfs/tasks/common.yaml b/ansible/roles/lvfs/tasks/common.yaml new file mode 100644 index 0000000..c4f2d20 --- /dev/null +++ b/ansible/roles/lvfs/tasks/common.yaml @@ -0,0 +1,5 @@ +- import_tasks: tasks/freebsd.yaml + when: 'os_flavor == "freebsd"' + +- import_tasks: tasks/linux.yaml + when: 'os_flavor == "linux"' diff --git a/ansible/roles/lvfs/tasks/freebsd.yaml b/ansible/roles/lvfs/tasks/freebsd.yaml new file mode 100644 index 0000000..b417174 --- /dev/null +++ b/ansible/roles/lvfs/tasks/freebsd.yaml @@ -0,0 +1,5 @@ +# - name: Install packages +# package: +# name: +# - foo +# state: present diff --git a/ansible/roles/lvfs/tasks/linux.yaml b/ansible/roles/lvfs/tasks/linux.yaml new file mode 100644 index 0000000..2dde340 --- /dev/null +++ b/ansible/roles/lvfs/tasks/linux.yaml @@ -0,0 +1,14 @@ +- name: Install packages + package: + name: + - fwupd + - gnome-firmware + state: present + +- name: Enable services + systemd: + enabled: yes + name: "{{ item }}" + daemon_reload: yes + loop: + - fwupd.service diff --git a/ansible/roles/lvfs/tasks/main.yaml b/ansible/roles/lvfs/tasks/main.yaml new file mode 100644 index 0000000..6805b9d --- /dev/null +++ b/ansible/roles/lvfs/tasks/main.yaml @@ -0,0 +1,2 @@ +- import_tasks: tasks/common.yaml + # when: foo is defined From 21c664d2c01ae2550039347911dea84dd4f22e93 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sun, 10 Sep 2023 18:38:09 -0400 Subject: [PATCH 6/6] Install a polkit agent in the launch keyboard role. --- ansible/roles/launch_keyboard/tasks/linux.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/ansible/roles/launch_keyboard/tasks/linux.yaml b/ansible/roles/launch_keyboard/tasks/linux.yaml index c0ed422..76922b0 100644 --- a/ansible/roles/launch_keyboard/tasks/linux.yaml +++ b/ansible/roles/launch_keyboard/tasks/linux.yaml @@ -19,5 +19,6 @@ name: - dfu-programmer # For flashing keyboard https://support.system76.com/articles/launch_2-firmware-update/ - avrdude # For flashing keyboard https://support.system76.com/articles/launch_2-firmware-update/ + - lxqt-policykit # Need a polkit agent to launch the keyboard configurator - system76-keyboard-configurator state: present