Flashing jetson-tk1 eMMC from running system

I was wondering, if it is possible to flash the eMMC of the jetson-tk1 board while the board is running. I want to avoid having to connect the system to another computer each time I do a kernel upgrade or anything like that.

Of course it is not possible to run the flash scripts from the board itself, since the board has to be in recovery mode for these scripts to work. However, the flash scripts simply write some binary files to several partitions on the eMMC. The eMMC can be accesses using the device node files in /dev. So it should be possible to replace the content with other files using dd or similar tools.

Has anybody tried anything like this? Is the internal format of these partitions really that simple, or is there anything else added/removed/changed in the files which are written during flashing?

If you have u-boot (an option during flash), you can simply copy new kernels to /boot, editing /boot/extlinux.conf if you want multiple kernels available. Under fastboot (default if you don’t specify) flash is required.

in 21.2 default is copy to /boot.


Also curious about this. Is it possible in a good way to flash updated BCT/u-boot from the device itself?

You cannot flash a running system. However, if you use u-boot (default in R21.x), installing a new kernel can occur on a system as it runs. U-boot has a config file (/boot/extlinux/extlinux.conf) which can be edited to add an alternate boot entry, and then you select which boot entry you want at the serial console boot prompt. If that works, you could then make the new config default and still have the old config for backup. If you use fastboot, you are out of luck.

Are you interested in just putting in a new kernel?

To clarify - is it the uboot or kernel you are trying to update?