Hello @Lars_L,
The easiest way to serve images and auto-install them is to use the TorizonCore Builder images serve
command (Production Programming for Linux | Toradex Developer Center).
This is true even if you are not using a Torizon OS image, as this command will serve all listed images in a Toradex Easy Installer format on the specified path. By default it will use zeroconf and require no configuration on the devices for the images to be auto-installed.
The images need to be listed in the image-list.json
file, as can be seen in the following example:
File Structure:
$ tree -L 1 images_server
images_server
├── image_list.json
└── Verdin-iMX8MP_Reference-Minimal-Image-Tezi_6.6.0+build.12
image_list.json:
{
"config_format": 1,
"images": [
"Verdin-iMX8MP_Reference-Minimal-Image-Tezi_6.6.0+build.12/image.json"
]
}
To make the installation unattended, you also need to do two changes to your image:
- Add a
"autoinstall": true
to your image’s image.json
file.
- Add a
reboot -f
command to your image’s wrapup.json
file.
Here is an example when this is done for the Reference Minimal Image 6.6.0 for the Verdin iMX8MP:
image.json:
{
"config_format": "4",
"autoinstall": true,
"name": "Toradex Embedded Linux Reference Minimal Image",
"description": "Minimal image without graphical interface that just boots",
"version": "6.6.0+build.12",
"release_date": "2024-04-02",
"u_boot_env": "u-boot-initial-env-sd",
"prepare_script": "prepare.sh",
"wrapup_script": "wrapup.sh",
"marketing": "marketing.tar",
"icon": "toradexlinux.png",
"license": "LA_OPT_NXP_SW.html",
"supported_product_ids": [
"0058",
"0061",
"0063",
"0064",
"0065",
"0066",
"0070"
],
"blockdevs": [
{
"name": "emmc",
"partitions": [
{
"partition_size_nominal": 48,
"want_maximised": false,
"content": {
"label": "BOOT",
"filesystem_type": "FAT",
"mkfs_options": "",
"filename": "Reference-Minimal-Image-verdin-imx8mp.bootfs.tar.xz",
"uncompressed_size": 11.875
}
},
{
"partition_size_nominal": "512",
"want_maximised": true,
"content": {
"label": "RFS",
"filesystem_type": "ext4",
"mkfs_options": "-E nodiscard",
"filename": "Reference-Minimal-Image-verdin-imx8mp.tar.xz",
"uncompressed_size": 170.6640625
}
}
]
},
{
"name": "emmc-boot0",
"erase": true,
"content": {
"filesystem_type": "raw",
"rawfiles": [
{
"filename": "imx-boot",
"dd_options": "seek=0"
}
]
}
}
]
}
wrapup.sh:
#!/bin/sh
reboot -f
exit 0
The combination of these steps should have the intended effect of an installation with zero user interaction. The only requirement is to turn on the modules on the network with the server running and wait for them to reboot.
Also note that any compatible device running Toradex Easy Installer on this network will automatically install the image, therefore it is important that the network is isolated from other networks used for development.
Best Regards,
Bruno