I am trying to create over the air updates to my beagle bone black devices using self hosted mender server. Currently I was able to connect a beagle bone black device to my device and update management application and the device which I’m testing on works normal. I created the mender image from a SD card which contains the OS and all the services and flashed the generated image file to a new SD card and plugged it to my beagle bone black.
In the first SD card I used to create the mender image I created a text file under a user which I use to get a shell in the device. Then, I created a new image file with this SD card containing the newly created text file. Using this image file I created a mender artifact using
When I uploaded this artifact to my management dashboard and created a deployment everything looked fine and said the update was successful but when I checked the device the text file was not there.
Another test I conducted was I used the first SD card again and plugged it into another beagle bone black and got a shell in to it and installed
telnet package and created another artifact with this SD card’s image file and created a deployment with this release which was also successful, but when I checked the device if the
telnet package was installed or not it was not installed.
What should I do to create a deployment which will copy exact state of the image file to all my devices?
or What is the best way to create a release to alter the state of the devices to be exactly same as the image which was used to create the artifact?
The command I use to create image file from SD card:
sudo dd if=/dev/sdb of=<image file name>.img bs=1M conv=fdatasync
The command I use to create flash ready mender image:
MENDER_ARTIFACT_NAME=<artifact name> ./docker-mender-convert --disk-image input/<image file name>.img --config configs/beaglebone_black_debian_sdcard_config --overlay input/rootfs_overlay_demo/
(I use this command’s output image file as the base image to prepare my devices. The input image has no modifications.)
mender artifact creation command I use:
mender-artifact write rootfs-image -f <image file name>.img -t "beaglebone-sdcard" -n <artifact name> -o <artifact name>.mender
(The input image file is modified with telnet package or the new text file.)