The document describes the Andbot auto upgrade OTA architecture and updrade mechanisam
The Andbot auto upgrade OTA (A-OTA) architecture include 3 parts; the Andbot app, colud server, and upgrade system.
The Andbot app is a background service application program. In A-OTA case, it provides functions as the below
- connecting and syncing up database to cloud server
- check system and upgrade information
- download and check upgrade files
- backup Andbot setting files
- system power monitor
- switch System to upgrade system
--TBD--
The servers provide andbot system upgrade files and andbot database in cloud. the architecture as the below
- internet cloud Server (Amazon EC2)
- system binary image Storage (Amazon S3)
- Andbot database (Amazon DynamoDB)
When system buring up from the upgrade u-boot, the root file system will change to busybox, we using bash script to do the upgrade process. There are some details and related information as the follows
[Normal] setenv bootrootfs "console=tty1 console=ttySAC2,115200n8 root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro" [Upgrade] setenv bootrootfs "console=tty1 console=ttySAC2,115200n8 root=LABEL=upgrade rootwait rw"
busybox config
Busybox Settings --->
Build Options --->
[*] Build Busybox as a static binary
kernel config
File systems --->
DOS/FAT/NT Filesystems --->
<*> MSDOS fs support
<*> VFAT (Windows-95) fs support
(437) Default codepage for FAT
(iso8859-1) Default iocharset for FAT
<M> NTFS file system support
[ ] NTFS debugging support
[*] NTFS write support
<*> VFAT (Windows-95) fs support
-*- Native language support --->
CONFIG_NLS_CODEPAGE_437=y [United States, Canada]
####busybox fstab and rcS files
etc/init.d/rcS
#!/bin/sh
mount -a
" << upgrating system now... >> "
sync
gzip -dc /warehouse/trusty.img.gz | dd of=/dev/mmcblk0p2 bs=1M
sync
cp /warehouse/BOOT/boot.ini /boot
cp /warehouse/BOOT/exynos5422-odroidxu3.dtb /boot
cp /warehouse/BOOT/uInitrd /boot
cp /warehouse/BOOT/zImage /boot
sync
reboot
etc/fstab
UUID=6E35-5356 /boot vfat defaults 0 0
UUID=88f52e33-8730-4943-81b0-f22292dd417b /warehouse ext4 defaults 0 0
-
busybox
-
ODROID-XU3 EVM board