- Reorganized variable definitions for clarity and consistency.
- Encapsulated SWU file creation logic into 'create_swu_file' function for better modularity and readability.
- Implemented 'cleanup' function to handle temporary file cleanup, enhancing script robustness.
- Utilized bash array for 'SWUPDATE_FILES' to improve handling of multiple file entries.
- Simplified error handling with 'set -e' and streamlined script exit using 'trap' for cleanup operations.
- Cleaned up directory changing commands by redirecting 'pushd' and 'popd' output to '/dev/null'.
- Encapsulated functionality into functions for better script organization.
- Introduced 'write_os_release' and 'write_machine_info' functions for creating os-release and machine-info files.
- Streamlined Raspberry Pi specific file handling with 'handle_raspberry_pi' function.
- Consolidated script execution within a 'main' function for clearer flow and execution order.
- Improved readability with consistent formatting and added inline comments for clarity.
- Enhanced robustness with comprehensive error checking and streamlined command execution.
- RPI5 not supported yet.
- Streamlined variable declarations for improved readability.
- Added error checking to ensure successful retrieval of the image digest.
- Encapsulated core functionality into 'fetch_and_copy_image' function for better script structure.
- Introduced a 'lock_file' variable to clarify the file locking mechanism.
- Combined 'set' options into a single line and added 'pipefail' for robust error handling.
- Refined comments and structured the script into clearly defined sections.
- Reorganized OVOS_CONTAINERS_IMAGES to list each image on a new line for improved readability.
- Relocated the definition of OVOS_CONTAINERS_INSTALL_GUI_SERVICES to precede its conditional inclusion, ensuring clarity in script structure.
- Adjusted conditional inclusion of GUI services in OVOS_CONTAINERS_IMAGES to ensure proper execution of GUI-related installation steps.
- Raspberry Pi: Using the RT patches and select RT as PREEMPT
- Pipewire changes to upvote itself to prio 95% nice -19
- Other small kernel tweaks and fixes
It checks for i2c address of the sound hat first
If found it can be a WM8960 (2-mic) or WM8731 (Mark1) based hat.
It then checks if the right Arduino is connected to the right pins.
If so it assumes a Mark1 device and configures the device.
As the default is /ver/tmp which is a 50% of memory tmpfs, this can be
problematic for <=1GB memory systems as the ovos_listener and
ovos_audio contaiers are => 1GB in size.