From 3d9baafc559874754e8e053cda35d2a3d539b4cc Mon Sep 17 00:00:00 2001 From: shubhamsharma44 Date: Thu, 17 Oct 2024 20:54:28 +0530 Subject: [PATCH 1/3] Update architecture.md --- documentation/architecture.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/documentation/architecture.md b/documentation/architecture.md index f579c85a..a0a6053c 100644 --- a/documentation/architecture.md +++ b/documentation/architecture.md @@ -2,14 +2,14 @@ ## Disk image build up -The system uses a so called "Double copy with fall-back" architecture. Also known as "A/B (seamless) system updates". This system guarantess that there is always a working copy even if the softwre update is interrupted or a power off occurs. +The system uses a so called "Double copy with fall-back" architecture. Also known as "A/B (seamless) system updates". This system guarantees that there is always a working copy even if the software update is interrupted or a power off occurs. Each of these A/B copies contains a linux kernel within it's root file system, which is read only and compressed by utilizing squashfs. At current time the rootfs disk usage is ~300MB. ![Double_copy_layout](./images/Double_copy_layout.png) A synergy with the boot loader is necessary, because the boot loader must decide which copy should be started. It must be possible to switch between the two copies. After a reboot, the boot loader decides which copy should run. -A seperate overlay partition for all changeable files is used to make the userspace system read/write. This seperate partition can be overlayed over either active rootfs partitions, being it slot A or slot B. A factory reset can therefor also being easliy obtained by resetting that overlay partition. It will then again start with the files shipped within the read only squashfs partition. -All docker containers and OVOS framework associated configuration files are stored with the users HOME directory which again is a seperate partition at the end of the disk which is also auto extended over the full size of the disk at boot. This is done based on the availability of free unused disk space at boot. (Any boot, being it the first or any consecutive boot) +A separate overlay partition for all changeable files is used to make the userspace system read/write. This separate partition can be overlayed over either active rootfs partitions, being it slot A or slot B. A factory reset can therefore also being easily obtained by resetting that overlay partition. It will then again start with the files shipped within the read only squashfs partition. +All docker containers and OVOS framework associated configuration files are stored with the users HOME directory which again is a separate partition at the end of the disk which is also auto extended over the full size of the disk at boot. This is done based on the availability of free unused disk space at boot. (Any boot, being it the first or any consecutive boot) ## Partition layout From 467b01466882e6c979473ee1dd5f9c69aea51bb8 Mon Sep 17 00:00:00 2001 From: shubhamsharma44 Date: Thu, 17 Oct 2024 20:56:08 +0530 Subject: [PATCH 2/3] Update building.md --- documentation/building.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/documentation/building.md b/documentation/building.md index 59ce7746..7f2e5292 100644 --- a/documentation/building.md +++ b/documentation/building.md @@ -63,7 +63,7 @@ As example to build the rpi4 version; $ make clean $ make rpi4_64 ``` -Building an image on the above stated devlopment machne takes around 3-4 hours. If you have a higher specification build machine, the building time can be as fast (or slow, depending on your point of view) as ~2 hours. +Building an image on the above stated development machine takes around 3-4 hours. If you have a higher specification build machine, the building time can be as fast (or slow, depending on your point of view) as ~2 hours. When everything goes fine the following images/files will be available within the ./release directory; #### OpenVoiceOS_{CONFIG}_{TIMESTAMP}.img @@ -71,7 +71,7 @@ This is the raw flashable disk image that can be flashed to your to be used disk
* At current time this file is about ~1.4GB. #### OpenVoiceOS_{CONFIG}_{TIMESTAMP}.img.xz -This is the same raw flashable disk image that can be flashed to your to be used disk (SD-Card, USB-Stick, SSD, SATA, etc), however xz compressed. This save bandwith if it needs to be downloaded and certain disk image utilities such as the Raspberry Pi Disk imager have native support to flash these type of files without uncompressing them first. +This is the same raw flashable disk image that can be flashed to your to be used disk (SD-Card, USB-Stick, SSD, SATA, etc), however xz compressed. This save bandwidth if it needs to be downloaded and certain disk image utilities such as the Raspberry Pi Disk imager have native support to flash these type of files without uncompressing them first.
* At current time this file is about ~450MB. #### OpenVoiceOS_{CONFIG}_{TIMESTAMP}.swu @@ -84,4 +84,4 @@ This is the same firmware update file as above, however again xz compressed to s #### OpenVoiceOS_{CONFIG}_{TIMESTAMP}.vdi & OpenVoiceOS_{CONFIG}_{TIMESTAMP}.vdi.xz These files are Virtual Disk Images, where the .xz is again compressed for the same reasons as above. This VDI can be imported as virtual disk within Virtual Machine's. Bare in mind that these virtual disk images do not yet contain unused space, so for proper use of them make sure you extend them within the VM software to the disk size of choose (8 GB is more then enough). -
* At current time these files are about ~700MB and ~450MB. \ No newline at end of file +
* At current time these files are about ~700MB and ~450MB. From 670f4578aac7338a2730e5d1fdae0abcb8475c55 Mon Sep 17 00:00:00 2001 From: shubhamsharma44 Date: Thu, 17 Oct 2024 21:05:35 +0530 Subject: [PATCH 3/3] Update features.md --- documentation/features.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/documentation/features.md b/documentation/features.md index 151ee2de..8877f5ba 100644 --- a/documentation/features.md +++ b/documentation/features.md @@ -2,7 +2,7 @@ ## Updating the system -The system is using the SWUpdate system to seamlessly update and switch between Slot-A and Slot-B. An firmware update file basically contains a new version of the rootfs but can also include seperate files for either the overlay partion or even to update files wihin the HOME partition/ directory if required. +The system is using the SWUpdate system to seamlessly update and switch between Slot-A and Slot-B. An firmware update file basically contains a new version of the rootfs but can also include seperate files for either the overlay partion or even to update files within the HOME partition/ directory if required. SWupdate files are using the .swu extension (SoftWare Update) and are basically CPIO images that can contain one or multiple rootfs images and/ or files. In addition, it also contain a sw-description file with meta information about the update. A visual representation of this CPIO image looks like this: @@ -32,9 +32,9 @@ Updates can be applied by using the following multiple methods: - Push/Pull from a fleet management server using Hawkbit. (Planned for stable updates in the future) -### Streaminig updates +### Streaming updates -Because we make use of a mirrored Slot A/B update architecture and therefor it will always be possible to boot into the other Slot and/ or recovery mode, updates are streamingly applied. Therefor no additional free space is required to first upload/download the firmware update image to the device. The update is applied as it is being uploaded/ downloaded. +Because we make use of a mirrored Slot A/B update architecture and therefore it will always be possible to boot into the other Slot and/ or recovery mode, updates are streamingly applied. Therefore no additional free space is required to first upload/download the firmware update image to the device. The update is applied as it is being uploaded/ downloaded. ### On-device webbased updates @@ -43,4 +43,4 @@ If you browse to your device with a webbrowser pointing toward port 8080 (Exampl ![Update Webserver](./images/swupdate_web_interface.png) Either drag and drop a firmware update .swu file or click the box to browse to the firmware update .swu to start the update process. The progress bar shows the update status, however if you would like to see more verbose output you can open/ extend the messages box aqt the bottom of the page. -When everything went right, your device will reboot into the other updated slot. Fall over mechanisms are in place. If it can not boot into the just update system slot, it will revert back and boot into the old system slot. \ No newline at end of file +When everything went right, your device will reboot into the other updated slot. Fall over mechanisms are in place. If it can not boot into the just update system slot, it will revert back and boot into the old system slot.