Hello,
I am trying to flash a Jetson Orin NX 16GB module on a custom carrier board from an Ubuntu host PC.
Environment
Host:
-
Ubuntu PC
-
Jetson Linux / L4T R36.4
-
Flashing from
Linux_for_Tegra -
The Jetson module is connected to the host through the USB recovery port
Target:
-
Jetson Orin NX 16GB
-
Custom carrier board
-
Storage target: NVMe SSD
The board can enter recovery mode correctly. On the host, I can see the NVIDIA APX device:
Bus 003 Device 118: ID 0955:7323 NVIDIA Corp. APX
Kernel build before flashing
Before flashing, I build the kernel with the following script:
INSTALL_PATH=/home/laizy/ZQY-Jetson6/r36.4
export CROSS_COMPILE=$HOME/l4t-gcc/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-
export INSTALL_MOD_PATH=$INSTALL_PATH/Linux_for_Tegra/rootfs/
cd $INSTALL_PATH/Linux_for_Tegra/source
./generic_rt_build.sh "disable"
export KERNEL_HEADERS=$PWD/kernel/kernel-jammy-src
export KERNEL_OUTPUT=$PWD/kernel_out_S1059
make -C kernel -j8
sudo -E make install -C kernel -j8
cp $KERNEL_OUTPUT/arch/arm64/boot/Image \
$INSTALL_PATH/Linux_for_Tegra/kernel/Image
make dtbs -j8
cp kernel-devicetree/generic-dts/dtbs/* $INSTALL_PATH/Linux_for_Tegra/kernel/dtb/
if [ "$1" == "m" ]; then
export KERNEL_HEADERS=$PWD/kernel/kernel-jammy-src
make modules -j8
sudo -E make modules_install -j8
fi
cd $INSTALL_PATH/Linux_for_Tegra
sudo ./tools/l4t_update_initrd.sh
I have also tried running the script with the module build option:
./Build_kernel_S1059.sh m
Flash command
Then I run the following flash command:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
-c tools/kernel_flash/flash_l4t_t234_nvme.xml \
-p "-c bootloader/generic/cfg/flash_t234_qspi.xml" \
--showlogs --network usb0 jetson-orin-nano-devkit-super internal
Error
The flashing process fails at the initrd SSH stage:
Waiting for target to boot-up...
Waiting for device to expose ssh ...
Run command: flash on fc00:1:1:0::2
Debug log saved to /tmp/tmp.tvcx6gQ94T.
Device should have booted into initrd kernel now. However, the host cannot connect to its ssh server
Error: Command failed: sshpass -p root ssh root@fc00:1:1:0::2.
Check your network setting (VPN, firewall,...) to make sure the device can ssh root@fc00:1:1:0::2
The host network interface information at that time is:
79: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
link/ether 8e:0d:f6:cb:2a:38 brd ff:ff:ff:ff:ff:ff
inet6 fc00:1:1::1/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::8c0d:f6ff:fecb:2a38/64 scope link
valid_lft forever preferred_lft forever
inet6 fe80::2/64 scope link
valid_lft forever preferred_lft forever
I am not sure whether this issue is related to my custom kernel, DTB, or initrd update.
Question
What are the common reasons why the target does not expose SSH at fc00:1:1:0::2 during initrd flashing, and what should I check next?
Any suggestions would be appreciated.
Thanks.