Loading...
Loading...
Use after jetson-flash-image to run static BSP checks, on-target smoke/regression tests on a flashed DUT, or both. Not for build or flash steps. Triggers: validate bsp, on-target validation.
npx skill4agent add nvidia/skills jetson-validate-imageStatus: the DUT-access contract is stable; the rest of the validation procedure is a skeleton.
../../context/bsp-customization-workflow.mdbsp_image:/jetson-init-image<bsp_image.root_path>/jetson-flash-imagedut_access:## DUT accesssshsshpasspyserialauth=passwordsudo.method=passwordpassword_envsudo.password_envjetson-flash-imagebsp_image<bsp_image.root_path>/Linux_for_Tegra/.confbsp_image<bsp_image>/Linux_for_Tegra/bootloader/l4t_initrd.img<bsp_image>/Linux_for_Tegra/rootfs/boot/initrdbsp_image<bsp_image>/Linux_for_Tegra/kernel/Image<bsp_image>/Linux_for_Tegra/rootfs/boot/Image<bsp_image>/Linux_for_Tegra/rootfs/lib/modules/<ver>/*.koUTS_RELEASE<bsp_image>/Linux_for_Tegra/kernel/ImageLinux version …stringsImagel4t_update_initrd.sh/jetson-promote-imagekernel/Imagerootfs/lib/modules/../jetson-promote-image/SKILL.md## DUT accessdut_access:promptcat /sys/module/<name>/srcversionmodinfo /lib/modules/$(uname -r)/.../<name>.ko | awk '/srcversion/ {print $2}'/jetson-promote-imagesrcversion/sys/module/<name>/sections/Imagecat /proc/versionuname -vLinux version …/boot/Imagestrings /boot/Image | grep -m1 'Linux version'LOCALVERSIONImageImageextlinux.confmodprobe.ko/jetson-promote-imagekernel.dmesg_restrict=1dmesgdmesgsudosudo sysctl kernel.dmesg_restrict=0sshuartreferences/dut-access.mddut_access:uname -rcat /etc/nv_tegra_releasescpsudo.methodscripts/uart_session.py| Script | Purpose | Arguments |
|---|---|---|
| UART transport black box for the on-target leg: login, command exec (with optional sudo), and base64-over-tty file transfer. Replaces ssh when the DUT has no network or ssh is broken. | |
run_script()# run_script: probe the DUT over UART
DUT_UART_PASSWORD_ENV=DUT_UART_PWD \
DUT_UART_PWD="$(read -rs -p 'UART login pw: '; echo "$REPLY")" \
scripts/uart_session.py \
--tty /dev/ttyACM0 --baud 115200 \
--user ubuntu --password-env DUT_UART_PASSWORD_ENV \
probe
# run_script: exec a sudo command and capture exit code
scripts/uart_session.py --tty /dev/ttyACM0 --user ubuntu \
--password-env DUT_UART_PASSWORD_ENV \
--sudo-password-env DUT_SUDO_PWD \
exec --use-sudo 'dmesg | tail -200'UART implementation contract/jetson-validate-image
> static checks only against the staged BSP/jetson-flash-image
↓
/jetson-validate-image
> on-target checks via dut_access.ssh/jetson-validate-image
> use the uart transport at /dev/ttyACM0; the dut_access.uart block
in the profile already has the tty and login_password_env wired upuart_session.py## Open itemsuart_session.py10 commands amortize poorly on UART; prefer SSH.
StrictHostKeyChecking=accept-newknown_hostspassword_envauth=promptsudo.method=prompttransport=uartlock_strategy=steal| Error | Cause | Solution |
|---|---|---|
| On-target scope requested but | Author |
| | |
| | Close the holding process ( |
| UART transport selected but | |
| SSH fingerprint refused | DUT's host keys changed since the per-profile | Remove the matching line from |
| UART probe couldn't match a login or shell prompt within timeout | Confirm the DUT is powered + booted to userspace; check |
| | Re-run |
| | Set |
| Long-running DUT command exceeded the script's timeout | Run the command directly via |
references/dut-access.md../../context/target-platform-contract.md../../context/bsp-customization-workflow.md../jetson-build-source/SKILL.md