~~tag> oowow howto autoinstall ~~ ====== OOWOW auto-install disk ====== Sometimes, your device has limited access (no keyboard, network, etc ... ), and we need to update eMMC storage content automatically. What did we need? Just [[#preparation|prepare a special removable disk]] These features can work from SD / USB removable disk ===== Preparation ===== * [[/software/oowow/how-to/start#write-oowow-image-to-removable-storage|write OOWOW system image to removable device]] * create dump image for eMMC by any way fox example from oowow or manually by hands * create [[#auto-install-config|autoinstall config]] ===== Autoinstall ===== * Plug prepared removable disk into your device * Reboot into OOWOW mode by any way - just reset your device if it can boot up from this removable disk or by a special shortcut or i2c command if device has embedded oowow * Wait for autoinstallation, all processes must go automatically * Reboot to upgraded system ===== Image filename rules ===== ''BOARD.*.emmc.img.zst'' put into root on 2n ''SD'' partition with label ''dump'' ===== Auto-install config ====== Stored into ''rescue/config/autoinstall'' on 1st ''SD'' partition with label ''rescue'' ==== Auto-install config format ==== ```config /config/autoinstall BOARD.image_name[.BYTES-bytes].img.[zst|gz] [-sBYTES] [-r] # BOARD board name [ VIM1 | VIM2 | VIM3 | VIM3L | Edge | Edge2 | VIM1S | VIM4 ] # .BYTES-bytes write size limitation tag # -sBYTES write size limitation parameter # -r resize fs parameter ``` ==== Example configs ===== ```config /config/autoinstall VIM3.hg_1.0.emmc.img.zst ``` ```config /config/autoinstall VIM3.hg_1.0.emmc.img.zst -s15634268160 ``` ```config /config/autoinstall VIM3.hg_1.0.emmc.img.zst -s15634268160 -r ``` ```config /config/autoinstall VIM3.hg_1.0.15634268160-bytes.emmc.img.zst -r ``` ==== Config setup by command-line ==== ```shell edit-and-save-auto-install-config ~$ echo VIM3.hg_1.0.emmc.img.zst -s15634268160 > /config/autoinstall ~$ krescue.configs -s ``` ```shell print-auto-intall-config ~$ krescue.configs -p | grep autoinstall config_autoinstall="VIM3.hg_1.0.emmc.img.zst -s15634268160" ``` ```shell display-auto-intall-config ~$ cat /config/autoinstall VIM3.hg_1.0.emmc.img.zst -s15634268160 ``` ```shell disable-autoinstall ~$ rm /config/autoinstall && krescue.config -s ``` Also can setup write size by image filename ''*.SIZE-bytes.*'' * VIM3.hg_1.0.17179869184-bytes.emmc.img.zst * VIM3.hg_1.0.16G-bytes.emmc.img.zst * VIM3.hg_1.0.16384M-bytes.emmc.img.zst Dump images created automatically with bytes tag, and better continue use this tag as is ===== Check blank trail image ===== can write only 11100000000 bytes for example ```shell check.sh tail -c+11100000000 VIM3.hg_1.0.emmc.img | hexdump -C ``` ===== Resize FS ===== ```shell resiez_root_fs.sh root@localhost:~# df / Filesystem 1K-blocks Used Available Use% Mounted on /dev/rootfs 14779408 5847484 8741216 41% / root@localhost:~# resize2fs /dev/rootfs resize2fs 1.45.5 (07-Jan-2020) Filesystem at /dev/rootfs is mounted on /; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 2 The filesystem on /dev/rootfs is now 7587840 (4k) blocks long. root@localhost:~# df / Filesystem 1K-blocks Used Available Use% Mounted on /dev/rootfs 29808700 5848092 23618452 20% / ``` ===== Custom disk create ===== This way for installation-disk preparation on user host PC Another way to create installation disk by script [[gh>/khadas/oowow-scripts-collection]]