1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-03-09 15:40:17 +00:00

WiFi firmware fixing w/o local_vars, cleaner w/ explanations

This commit is contained in:
root 2020-09-22 13:17:34 -04:00
parent 8279f64a26
commit 1a3f386065
8 changed files with 138 additions and 108 deletions

View file

@ -0,0 +1,33 @@
- name: Back up original e.g. OS-provided firmware (for RPi internal WiFi)
copy:
src: "/lib/firmware/brcm/{{ item }}"
dest: "/lib/firmware/brcm/{{ item }}.orig"
with_items:
- brcmfmac43430-sdio.bin
- brcmfmac43455-sdio.bin
- brcmfmac43455-sdio.clm_blob
- name: Download high-capacity older firmware (for RPi internal WiFi, per https://github.com/iiab/iiab/issues/823#issuecomment-662285202)
get_url:
url: "{{ item.url }}"
dest: "{{ item.dest }}"
with_items:
- { url: 'http://d.iiab.io/packages/brcmfmac43430-sdio.bin_2018-09-11_7.45.98.65', dest: '/lib/firmware/brcm/brcmfmac43430-sdio.bin.iiab' }
- { url: 'http://d.iiab.io/packages/brcmfmac43430-sdio.clm_blob_2018-09-11_7.45.98.65', dest: '/lib/firmware/brcm/brcmfmac43430-sdio.clm_blob.iiab' }
- { url: 'http://d.iiab.io/packages/brcmfmac43455-sdio.bin_2015-03-01_7.45.18.0_ub19.10.1', dest: '/lib/firmware/brcm/brcmfmac43455-sdio.bin.iiab' }
- { url: 'http://d.iiab.io/packages/brcmfmac43455-sdio.clm_blob_2018-02-26_rpi', dest: '/lib/firmware/brcm/brcmfmac43455-sdio.clm_blob.iiab' }
# RECORD firmware AS DOWNLOADED
- name: "Set 'firmware_downloaded: True'"
set_fact:
firmware_downloaded: True
- name: "Add 'firmware_downloaded: True' to {{ iiab_state_file }}"
lineinfile:
path: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml
regexp: '^firmware_downloaded'
line: 'firmware_downloaded: True'
# SEE ALSO firmware_installed in install.yml

View file

@ -1,32 +1,35 @@
# check the timestamps, might want to preserve the old ones
- name: Back up OS-provided firmware (for RPi's internal WiFi)
copy:
src: "/lib/firmware/brcm/{{ item }}"
dest: "/lib/firmware/brcm/{{ item }}.orig"
with_items:
- brcmfmac43430-sdio.bin
- brcmfmac43455-sdio.bin
- brcmfmac43455-sdio.clm_blob
- name: Back up originals then download firmware (for RPi internal WiFi)
include_tasks: download.yml
when: firmware_downloaded is undefined # SEE ALSO firmware_installed below
- name: Download older firmware (for RPi high-capacity internal WiFi)
get_url:
url: "{{ item.url }}"
- name: 'Install from template: check-firmware.service, iiab-check-firmware & fw_warn.sh'
template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode }}"
with_items:
- { url: 'http://d.iiab.io/packages/brcmfmac43430-sdio.bin_2018-09-11_7.45.98.65', dest: '/lib/firmware/brcm/brcmfmac43430-sdio.bin.iiab' }
- { url: 'http://d.iiab.io/packages/brcmfmac43430-sdio.clm_blob_2018-09-11_7.45.98.65', dest: '/lib/firmware/brcm/brcmfmac43430-sdio.clm_blob.iiab' }
- { url: 'http://d.iiab.io/packages/brcmfmac43455-sdio.bin_2015-03-01_7.45.18.0_ub19.10.1', dest: '/lib/firmware/brcm/brcmfmac43455-sdio.bin.iiab' }
- { url: 'http://d.iiab.io/packages/brcmfmac43455-sdio.clm_blob_2018-02-26_rpi', dest: '/lib/firmware/brcm/brcmfmac43455-sdio.clm_blob.iiab' }
- { src: 'check-firmware.service', dest: '/etc/systemd/system/', mode: '0644' }
- { src: 'iiab-check-firmware', dest: '/usr/sbin/', mode: '0755' }
- { src: 'fw_warn.sh', dest: '/etc/profile.d/', mode: '0644' }
- name: Enable & (Re)Start check-firmware.service (also runs on each boot)
systemd:
name: check-firmware.service
daemon_reload: yes
state: restarted
enabled: yes
# RECORD RPi Firmware AS DOWNLOADED
# RECORD firmware AS INSTALLED
- name: "Set 'rpi_firmware_downloaded: True'"
- name: "Set 'firmware_installed: True'"
set_fact:
rpi_firmware_downloaded: True
firmware_installed: True
- name: "Add 'firmware_retrieved: True' to {{ iiab_state_file }}"
- name: "Add 'firmware_installed: True' to {{ iiab_state_file }}"
lineinfile:
path: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml
regexp: '^rpi_firmware_downloaded'
line: 'rpi_firmware_downloaded: True'
regexp: '^firmware_installed'
line: 'firmware_installed: True'
# SEE ALSO firmware_downloaded above & in download.yml

View file

@ -1,35 +1,17 @@
- name: Back up/Download firmware (for RPi internal WiFi)
# Please set 'wifi_hotspot_capacity_rpi_fix: True' in /etc/iiab/local_vars.yml
# to restores support for 30-32 WiFi client devices on any Raspberry Pi that
# has internal WiFi. This installs firmware 7.45.18.0 for Zero W and RPi 3
# and firmware 7.45.98.65 for RPi 3 B+ and RPi 4. Capacity testing writeup:
# https://github.com/iiab/iiab/issues/823#issuecomment-662285202
- name: Install firmware (for RPi internal WiFi)
include_tasks: install.yml
when: rpi_firmware_downloaded is undefined
#when: firmware_installed is undefined
- name: 'Install from template: check-firmware.service, check-firmware.sh & fw_warn.sh'
template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode }}"
with_items:
- { src: 'check-firmware.service', dest: '/etc/systemd/system/', mode: '0644' }
- { src: 'check-firmware.sh', dest: '/usr/sbin/', mode: '0755' }
- { src: 'fw_warn.sh', dest: '/etc/profile.d/', mode: '0644' }
- name: Enable & (Re)start check-firmware.service
systemd:
name: check-firmware.service
daemon_reload: yes
state: restarted
enabled: yes
# RECORD firmware AS INSTALLED
- name: "Set 'firmware_installed: True'"
set_fact:
firmware_installed: True
- name: "Add 'firmware_installed: True' to {{ iiab_state_file }}"
lineinfile:
path: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml
regexp: '^firmware_installed'
line: 'firmware_installed: True'
# Two variable are placed in /etc/iiab/iiab_state.yml:
#
# - firmware_downloaded (set in download.yml) is used in install.yml
#
# - firmware_installed (set in install.yml) isn't acted upon programmatically.
# It serves as a very helpful rapid reminder in iiab_state.yml in the same
# way as roles like: sshd, iiab-admin, pylibs, www_base, www_options.