From 01b875bb0f5ca7ef7ffac402685c5f6ba61366c4 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 12 Aug 2023 10:54:55 +0300 Subject: feat: install wifi support on target system Install iwd and wifi firmware on target system. Copy wifi credentials from installer to target. Sponsored-by: author --- installer-ansible.yml | 4 ---- std.yml | 40 +++++++++++++++++++++++++++++++++++++++- v-i | 1 + 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/installer-ansible.yml b/installer-ansible.yml index f1b4a68..e924f06 100644 --- a/installer-ansible.yml +++ b/installer-ansible.yml @@ -1,8 +1,4 @@ # Ansible playbook to install stuff for v-i. -# TODO: -# - maybe install iwlwifi firmware? -# - install liw-openpgp.pub and a gpg config to use my Yubikey - - hosts: image tasks: diff --git a/std.yml b/std.yml index e0ab762..08724a9 100644 --- a/std.yml +++ b/std.yml @@ -116,7 +116,30 @@ name: ifupdown state: absent - - name: "configure networkd" + - name: "enable the non-free-firmware component on bookworm" + when: debian_release != "bullseye" + apt_repository: + repo: "deb http://deb.debian.org/debian {{ debian_release}} non-free-firmware" + state: present + update_cache: yes + + - name: "install iwd and firmware for wifi" + apt: + name: + - firmware-brcm80211 + - firmware-iwlwifi + - firmware-libertas + - firmware-misc-nonfree + - firmware-realtek + - firmware-ti-connectivity + - iwd + + - name: "enable iwd" + systemd: + name: iwd + enabled: yes + + - name: "configure networkd for Ethernet" copy: content: | [Match] @@ -126,6 +149,21 @@ DHCP=yes dest: /etc/systemd/network/external.network + - name: "configure networkd for wireless" + copy: + content: | + [Match] + Name=wlan* + + [Network] + DHCP=yes + dest: /etc/systemd/network/wireless.network + + - name: "copy wireless credentials from host to target" + copy: + src: /var/lib/iwd/ + dest: /var/lib/iwd/ + - name: "enable networkd" systemd: name: systemd-networkd diff --git a/v-i b/v-i index 76a7946..96b76e6 100755 --- a/v-i +++ b/v-i @@ -549,6 +549,7 @@ def main(): log(f"reading Ansible vars from {filename}") with open(filename) as f: vars_dict = yaml.safe_load(f) + vars_dict["debian_release"] = system.debian_release ansible_vars.update(vars_dict) ansible_vars_json = json.dumps(ansible_vars, indent=4) log(f"ansible_vars:\n{ansible_vars_json}") -- cgit v1.2.1