tomeshnet / mesh-orange

A small ramdisk system running modern Debian to support mesh networking on ARM single-board computers
https://tomeshnet.github.io/mesh-orange/
GNU General Public License v2.0
39 stars 7 forks source link

Upgrade path #14

Open benhylau opened 6 years ago

benhylau commented 6 years ago

The SD card is a MBR disk containing at least one FAT partition:

To upgrade the node software, the user can mount the FAT filesystem on a computer, then drag-and-drop replace:

In the rare case that the bootloader (uboot being not in the FAT filesystem) needs to be upgraded, the user can back-up conf.d then reflash the SD card, and drop the backed up config directory into the new FAT filesystem.

benhylau commented 6 years ago

@hamishcoleman Perhaps you can elaborate on the OTA upgrade addition, and its self-recovery mechanism based on an incrementing counter of failed boots?

darkdrgn2k commented 6 years ago

In the rare case that the bootloader (uboot being not in the FAT filesystem) needs to be upgraded, the user can back-up conf.d then reflash the SD card, and drop the backed up config directory into the new FAT filesystem.

Thought:

Could we create a DD file with just the boot loader and not the root partition. That way the bootloader is seperate from the full flash image. (Kind of like what you see CISCO do with them ROMON boot loader)

That way you just flash the dd to the card and the partition does not get overwritten (as long as the partition tables are not part of that image!

darkdrgn2k commented 6 years ago

From what I learned I think that on ram disk uInitrd holds the root filesystem. Simply replacing it (assuming no kernel modifications etc) would be enough