hello,
I try to use boot from usb on xavier , i can’t found any instruction.
Did i format my usb disk and put the “boot.img” and “tegra194-p2888-0001-p2822-0000.dtb” inside ?
Or using flash.sh to generate usb boot ?
Thank your response .
hello,
I try to use boot from usb on xavier , i can’t found any instruction.
Did i format my usb disk and put the “boot.img” and “tegra194-p2888-0001-p2822-0000.dtb” inside ?
Or using flash.sh to generate usb boot ?
Thank your response .
boyi_liao,
#check and get connected sdcard device name (ex: /dev/sdd or /dev/sdc)
df -h
sudo lshw -quiet -short -c disk
#create new gpt (assuming it is /dev/sdd, it will get at runtime)
sudo parted /dev/sdd mklabel gpt
#add kernel partition and allocate 64MB
sudo parted /dev/sdd mkpart kernel 0MB 64MB
#add kernel-dtb partition and allocate 1MB
sudo parted /dev/sdd mkpart kernel-dtb 64MB 65MB
# print start/end/size in sectors of partitions
sudo parted /dev/sdd unit s print
#write kernel image to the kernel partition
sudo dd if=<path>/boot.img of=/dev/sdd1
#write kernel-dtb image to the kernel-dtb partition
sudo dd if=<path> kernel-dtb.dtb of=/dev/sdd2
**For kernel and kernel-dtb image, you need use encrypt file, like "boot_sigheader.img.encrypt" and "tegra194-p2888-0001-p2822-0000_sigheader.dtb.encrypt"
Thank your response, if i check my flash.xml , my kernel and kernel-dtb is below
<partition name="kernel" type="data" oem_sign="true">
<allocation_policy> sequential </allocation_policy>
<filesystem_type> basic </filesystem_type>
<size> 67108864 </size>
<file_system_attribute> 0 </file_system_attribute>
<allocation_attribute> 8 </allocation_attribute>
<percent_reserved> 0 </percent_reserved>
<filename> boot.img </filename>
</partition>
<partition name="kernel-dtb" type="data" oem_sign="true">
<allocation_policy> sequential </allocation_policy>
<filesystem_type> basic </filesystem_type>
<size> 524288 </size>
<file_system_attribute> 0 </file_system_attribute>
<allocation_attribute> 8 </allocation_attribute>
<percent_reserved> 0 </percent_reserved>
<filename> tegra194-p2888-0001-p2822-0000.dtb </filename>
</partition>
So i dd “boot.img” and “tegra194-p2888-0001-p2822-0000.dtb” right ?
Tegra bootloader would verify the signature in the kernel and kernel-dtb header. Pure “boot.img” and “tegra194-p2888-0001-p2822-0000.dtb” are not signed.
You have to use the commands to generate signed kernel and kernel-dtb.
sudo ./flash.sh --no-flash -k kernel jetson-xavier mmcblk0p1
sudo ./flash.sh --no-flash -k kernel-dtb jetson-xavier mmcblk0p1
After these commands, you should be able to see “boot_sigheader.img.encrypt” and “tegra194-p2888-0001-p2822-0000_sigheader.dtb.encrypt”. You have to use dd command to put these two to correct partition on your usb drive.
Hi WayneWWW,
I use USB typeC HUB and USB disk plugin into HUB, but it’s seem some error happen.
[0004.469] I> Loading kernel & kernel-dtb from removable storage (6)
[0004.480] W> No valid slot number is found in scratch register
[0004.481] W> Return default slot: _a
[0004.486] I> USB Firmware Version: 60.05 release
[0005.005] I> USB 2.0 port 2 new high-speed USB device detected
[0005.007] W> WARNING: event and command not matching, cmd_trb_ptr = 0xa0796700, cmd_ring.dma = 0xa07967c0
[0005.008] E> slot id is 1
[0005.009] W> WARNING: event and command not matching, cmd_trb_ptr = 0xa0796700, cmd_ring.dma = 0xa07967c0
[0005.014] W> WARNING: event and command not matching, cmd_trb_ptr = 0xa0796700, cmd_ring.dma = 0xa07967c0
[0005.018] I>
[0005.018] I> Enumerated USB Device 05e3:0610
[0005.022] I>
[0005.024] E> Enumerated device doesn’t belong to MSD class!!
[0005.029] E> USBMSD: Failed to initialize enumerated usb device is not MSD.
[0005.036] E> USBMSD: Failed to open usbmsd open, 0.
[0005.041] E> Error opening USBMSD driver 0, err: 7c7c0312
[0005.046] W> Failed to initialize device 6-0
boyi_liao,
It is weird that a USB stick is not a MSD class (mass storage device). Could you share what stick you are using?
Hi WayneWWW:
I use the type-C USB Disk, it can boot kermel from USB Disk, Thank your help.
Do you have a specific model of the USB drive? This seems to be something unusual.
Also, if you run “lsusb” you will see a list of USB devices. Find the one which is that particular device, and note its ID. The ID will have a format such as “0955:7019” (but different from that specific ID). Find the verbose lsusb by naming the ID. Example (adjust for your ID):
sudo lsusb -d 0955:7019 -vvv
Also, if you run “lsblk -f” on the host, then you will see each mass storage device. That output would be useful.