I’m running into a bit of a strange issue. I’ve created a custom image using yocto and
meta-tegra, and have had great success. The goal is to create an image that can be flashed onto a nano dev-kit (the brains of a smart appliance), and have it ready to go on first boot.
There are elements that weren’t possible during the image creation. For these cases, I created one-shot services to run on first boot and then be disabled.
During development I flashed the nano using the toolkit provided by NVIDIA and running the
doflash.sh script available in the image archive generated from Yocto. The layer also generated a script named
dosdcard.sh that generates an sd card image. This image can be flashed to the sd card using software like balenaEtcher.
When flashing the nano in recovery mode and connected via micro USB, the image performs it’s cold boot and runs initial setup correctly. Rebooting after this setup has finished, it starts up perfectly fine and requires no additional work.
When booting from the flashed sd card, however, the system is not configured correctly. There is a node web app that is managed using pm2 (node process manager) and is run by a restricted user. During initial boot, the daemon service is configured to run the node app at boot. Running from the sd card flashed image, this daemon service never exists.
Additionally, the system runs significantly slower. There’s a startup script that turns on 8 GPIOs on boot with a 1 second delay. When running from a sd card flashed image, the gpios turn on with a delay of 2-2.5 seconds in between. The nano drived an OLED, but the response time is significantly slower on the sd card flashed image.
I’m wondering if anyone has noticed differences in using an image flashed to an sd card and inserted into the nano versus an image flashed onto the SD card via recovery-mode and micro-USB connection.
Also, I can provide more information as needed. I wanted to keep this post brief.