I think our camera supplier gave us a proper dtb that could be copied to a partition on the mmc.
WITHOUT USING flash.sh, can you tell me how to build the proper dtb and which partition to use to update the dtb.
Also can I build a proper uboot and put it on the device without USING flash.sh
During manufacturing we use flash.sh, but after it is done being built, there is no access the the usb used by flash.sh, and need to address updates in the field.
it’s kernel-dtb partition for device tree blob. you may use dd commands to update this partition remotely.
please check with… $ ls -al /dev/disk/by-partlabel/ for it.
for example, lrwxrwxrwx 1 root root 16 Oct 21 03:57 kernel-dtb -> ../../mmcblk0p30
then, please copy the file to your target and enable dd utility to update that.
for example, $ sudo dd if=tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb.encrypt of=/dev/mmcblk0p30 bs=1M
[Edit] please see-also comment #16 it’s able to update uboot with dd utility remotely.
you must may update uboot binary with flash script command-line.
i.e. $ sudo ./flash.sh -r -k kernel jetson-tx2-devkit mmcblk0p1
since u-boot.bin were actually working with kernel image (boot.img) and it flashed to kernel partition, you may try updating your u-boot binary, recreating kernel image with flash script, and using dd utility to update it remotely.
Partial answer: For encrypted content, you can flash with the “--noflash” option. It won’t actually flash, but it will leave behind the “.encrypt” file version and not actually flash. Example: sudo ./flash.sh --no-flash -k kernel-dtb jetson-tx2 mmcblk0p1
(or different partition, e.g., “-k kernel”)
The same thing with logging (useful for finding files): sudo ./flash.sh --no-flash -k kernel-dtb jetson-tx2 mmcblk0p1 2>&1 | tee log_noflash.txt
I’m not sure if you can just flash “everything” (but not really flash) using “--no-flash” without specifying a partition, e.g., without using “-k something”. Wouldn’t hurt to try though. Perhaps also use the “-r” so the rootfs is not generated.
there’s u-boot.bin binary under $OUT/Linux_for_Tegra/bootloader/t186ref/p2771-0000/000/u-boot.bin, uboot (u-boot.bin) were actually working with kernel image (boot.img) and it flashed to kernel partition,
so,
you may try updating your u-boot binary, recreating kernel image with flash script, and using dd utility to update it remotely.
I’d like to put in a request for a new feature on command line related to this. That would be a “range” of contiguous partitions. Right now we could flash or clone like this for a single example partition: sudo ./flash.sh --no-flash -k kernel-dtb jetson-tx2 mmcblk0p1
I imagine a “range” of start and stop partitions, with everything between. As an example, a single contiguous copy (like with dd) of kernel-dtb through UDA (example case is a TX2 with kernel-dtb at mmcblk0p26, and UDA at mmcblk0p31, with everything between and no holes), and no “sparse” partition attempt): sudo ./flash.sh --no-flash -k kernel-dtb::UDA jetson-tx2 mmcblk0p1
(this would assume some standard file name, e.g., it might create “partitions.img” in the “Linux_for_Tegra/” directory)
Or the reverse flash of the same example using a single contiguous image (new option “-”): sudo ./flash.sh -r -k kernel-dtb::UDA jetson-tx2f mmcblk0p1
(and it would assume filename in “bootloader/”, perhaps named “partitions.img”, reading labels inside this to find the partitions matching the XML layout, rejecting if it isn’t from that layout or the size is wrong for that layout)
Or to do the same thing using device specs, e.g.: sudo ./flash.sh --no-flash -k mmcblk0p5::mmcblk0p10 jetson-tx2 mmcblk0p1
(everything between p5 and p10)
instead of having request as a reply.
could you please init a new discussion thread to submit this feature request.
I’ll arrange resources to review this.
thanks
I am embarrassed we have the correct files on a system that is built with flash.sh, so find the partition you want to move to other system, dd it out and then back into the other system.
No need to do anything special for u-boot or dtb, use flash.sh to build the system the way you want and dd it to the next system.
I found u-boot in kernel, partition 29 on my system, I dd it out and then dd’d it into the target system.
actually, which JetPack release version you’re looking for should be more important.
you may init a thread with TX2 series if you request this for JP-4.x, otherwise, please file with Xavier/Orin series for JP-5.x.
moved the file2 to the target system and reversed the dd
New target has the correct u-boot, you can tell by do a strings on file2 and greping for 2022, to get the date, and in my case grep for boot_target which showed I remove the mmc1 from the target path,
on my system u-boot does not look at mmc1 or my sdcard during the boot, no delay is seen scanning the mmc1 device, if there is a large number of files on the mmc1 it can get very slow and make boot time unacceptable.
thanks for sharing, I’ll revise my previous comments that we’re able to update uboot binary remotely.
is there anything wait for confirmation in this discussion thread? can we close this?