mirror of
https://github.com/iiab/iiab.git
synced 2025-03-09 15:40:17 +00:00
handle firmware downgrade
This commit is contained in:
parent
bfd67f9713
commit
f6c31f80ba
6 changed files with 87 additions and 0 deletions
23
roles/firmware/tasks/install.yml
Normal file
23
roles/firmware/tasks/install.yml
Normal file
|
@ -0,0 +1,23 @@
|
|||
# check the timestamps, might want to preserve the old ones
|
||||
- name: Backup OS provided Firmware
|
||||
copy:
|
||||
src: "/lib/firmware/brcm/{{ item }}"
|
||||
dest: "/lib/firmware/brcm/{{ item }}.orig"
|
||||
with_items:
|
||||
- brcmfmac43430-sdio.bin
|
||||
- brcmfmac43455-sdio.bin
|
||||
|
||||
# grab the old firmware
|
||||
- name: Retrieve older firmware
|
||||
get_url:
|
||||
url: "{{ item.url }}"
|
||||
dest: "{{ item.dest }}"
|
||||
with_items:
|
||||
- { url: 'http://download.iiab.io/packages/brcmfmac43430-sdio.bin_2020-02-16_7.45.98.97' dest:/lib/firmware/brcm/brcmfmac43430-sdio.bin_iiab }
|
||||
- { url: 'http://download.iiab.io/packages/brcmfmac43455-sdio.bin_2015-03-01_7.45.18.0_ub19.10.1' dest: '/lib/firmware/brcm/brcmfmac43455-sdio.bin_iiab' }
|
||||
|
||||
- name: "Add 'firmware_retrieved: True' to {{ iiab_state_file }}"
|
||||
lineinfile:
|
||||
path: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml
|
||||
regexp: '^RPi_firmware_retrieved'
|
||||
line: 'RPi_firmware_retrieved: True'
|
20
roles/firmware/tasks/main.yml
Normal file
20
roles/firmware/tasks/main.yml
Normal file
|
@ -0,0 +1,20 @@
|
|||
- name: Include older RPi Firmware
|
||||
include_tasks: install.yml
|
||||
when: RPi_firmware_retrieved is undefined
|
||||
|
||||
- name: Install check-firmware service files
|
||||
template:
|
||||
src: "{{ item.src }}"
|
||||
dest: "{{ item.dest }}"
|
||||
mode: "{{ item.mode }}"
|
||||
with_items:
|
||||
- { src: 'fw-warn.sh', dest: '/usr/sbin/' mode: '0644' }
|
||||
- { src: 'check-firmware.service', dest: '/etc/systemd/system/' mode: '0644'}
|
||||
- { src: 'check-firmware.sh', dest: '/usr/sbin/' mode: '0755' }
|
||||
|
||||
- name: Enable and Start check-firmware.service
|
||||
systemd:
|
||||
name: check-firmware.service
|
||||
state: reloaded
|
||||
enabled: yes
|
||||
status: started
|
11
roles/firmware/templates/check-firmware.service
Normal file
11
roles/firmware/templates/check-firmware.service
Normal file
|
@ -0,0 +1,11 @@
|
|||
[Unit]
|
||||
Description=Check Firmware service
|
||||
Before=clone-wifi.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/sbin/check-firmware
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
22
roles/firmware/templates/check-firmware.sh
Normal file
22
roles/firmware/templates/check-firmware.sh
Normal file
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
FW_MODE=$(grep wifi_hotspot_capacity_rpi_fix /etc/iiab/local_vars.yml| grep True)
|
||||
WARN=0
|
||||
if [ -z "$FW_MODE" ]; then
|
||||
echo "FW marker not found"
|
||||
else
|
||||
echo "$FW_MODE"
|
||||
if ! $(diff -q /lib/firmware/brcm/brcmfmac43455-sdio.bin.iiab /lib/firmware/brcm/brcmfmac43455-sdio.bin); then
|
||||
cp /lib/firmware/brcm/brcmfmac43455-sdio.bin.iiab /lib/firmware/brcm/brcmfmac43455-sdio.bin
|
||||
WARN=1
|
||||
fi
|
||||
if ! $(diff -q /lib/firmware/brcm/brcmfmac43430-sdio.bin.iiab /lib/firmware/brcm/brcmfmac43430-sdio.bin); then
|
||||
cp /lib/firmware/brcm/brcmfmac43430-sdio.bin.iiab /lib/firmware/brcm/brcmfmac43430-sdio.bin
|
||||
WARN=1
|
||||
fi
|
||||
fi
|
||||
if [ "$WARN" = "1" ]
|
||||
touch /.fw_replaced
|
||||
else
|
||||
rm /.fw_replaced
|
||||
fi
|
||||
exit 0
|
6
roles/firmware/templates/fw_warn.sh
Normal file
6
roles/firmware/templates/fw_warn.sh
Normal file
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
if [ -f /.fw_replaced ]; then
|
||||
echo -e " \033[31;5mFirmware has been replaced\033[0m"
|
||||
echo -e " \033[31;5mReboot is required to activate\033[0m"
|
||||
fi
|
||||
|
|
@ -1,3 +1,8 @@
|
|||
- name: Select RPi firmware mode
|
||||
include_role:
|
||||
name: firmware
|
||||
when: rpi_model != "none"
|
||||
|
||||
- name: detected_network
|
||||
include_tasks: detected_network.yml
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue