使用l4t_initrd_flash.sh
烧写打包好的固件,一直提示Waiting for target to boot-up...
最后timeout
,通过调试口的打印信息看到设备在进入Rcm mode时,uefi中 uefi nvidia rcm kernel boot
的启动项是存在的,但是是空的,我猜想是不是在生成固件的过程中部分文件缺失导致启动项为空,不知道我的猜想是否正确,如果是正确的,那么哪些文件缺失会导致该问题呢?
以下是initrdlog:
flash_3-2_0_20241219-180234.log (9.5 KB)
Hi,
If the device cannot be flashed/booted, please refer to the page to get uart log from the device:
Jetson/General debug - eLinux.org
And get logs of host PC and Jetson device for reference. If you are using custom board, you can compare uart log of developer kit and custom board to get more information.
Also please check FAQs:
Jetson AGX Orin FAQ
If possible, we would suggest follow quick start in developer guide to re-flash the system:
Quick Start — NVIDIA Jetson Linux Developer Guide 1 documentation
And see if the issue still persists on a clean-flashed system.
Thanks!
Hi,
一些問題確認
- 您要flash的Jetpack version是哪一版?
- 看起來AGX Orin 是用 custom carrier board 不是 dev kit 對嗎?
- 請 record serial consol log 可以參考底下網站
- 請目錄名全部使用英文
謝謝
我已经试过跟随quick start
操作烧写固件,是没有问题的,但是通过l4t_initrd_flash.sh
脚本打包再烧写就会有问题,进入rcm mode时,可以看到有启动项uefi nvidia rcm kernel boot
,如下图所示:
但是选择该启动项没有效果,进不去,感觉是确实某些文件导致
$ tar xf ${L4T_RELEASE_PACKAGE}
$ sudo tar xpf ${SAMPLE_FS_PACKAGE} -C Linux_for_Tegra/rootfs/
$ cd Linux_for_Tegra/
$ sudo ./tools/l4t_flash_prerequisites.sh
$ sudo ./apply_binaries.sh
- Jetpack version是36.4
- AGX Orin用的我们自己设计的载板
- 烧写固件时调试口输出日志如下:
36.4-boot.log (24.7 KB)
Hi,
想請問您是否有改寫UEFI?
如果有,請問改寫哪一部分。
謝謝
目录名字已改为英文,问题仍然存在
上述命令已经执行过,问题仍然存在
UEFI只修改过等待时间,即nvidia-config/Jetson/.config
中的CONFIG_BOOT_DEFAULT_TIMEOUT
,如下图所示:
Hi
請改用uefi_Jetson_DEBUG.bin
而不是uefi_Jetson_RELEASE.bin
並再次附上 serial console log
謝謝
我现在编出来的debug和release两个版本的bin文件大小完全一样,是正常的吗,还是说需要在源码里打开什么配置debug才会生效?
Hi,
這些問題也請回答一下
-
使用l4t_initrd_flash.sh烧写打包好的固件,一直提示Waiting for target to boot-up…最后timeout
這一段你使用的command是什麼? UART端又是看到什麼log? 能否請你要分享flash log的話就把host端跟uart端同時分享出來? 他們是一對log. 你少給任何一邊資訊都不夠.
-
請先不要管那些什麼uefi rcm kernel boot. 那個完全不是現在的重點.
-
如果不用你自己改的UEFI, 用預設的直接燒. 你碰到的log又是長怎樣?
打包命令如下:
sudo BOARDID=3701 FAB=501 BOARDSKU=0004 OARDREV=D.0 ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash --massflash 5 --network usb0 jetson-agx-orin-devkit mmcblk0p1
烧写命令如下:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --flash-only jetson-agx-orin-devkit mmcblk0p1
initrdlog和串口日志如下:
flash_3-2_0_20241230-100343.log (9.5 KB)
flash_initrd_failed.log (24.4 KB)
用预设的uefi直接烧写,可以往下走,不会卡在uefi rcm kernel boot
下面是用自己改的 uefi_Jetson_DEBUG.bin
的日志:
flash_3-2_0_20241230-104538.log (9.5 KB)
flash_uefi_debug.log (101.6 KB)
-
請問你的問題在NV devkit上能複製出來嗎?
-
請問是不是你只要自己build UEFI (就算什麼都沒改), 就會碰上這個問題?
- 我现在没有开发板
- 是的,只要用自己编的uefi就会有这个问题
能請你分享一下你build UEFI的步驟嗎? 我從log上看, 當用了你的UEFI之後看起來就抓不到任何boot device了
按照以下链接进行操作的
https://github.com/NVIDIA/edk2-nvidia/wiki/Build-with-docker
顺带说一下,使用flash.sh
直接烧写固件,能够正常烧写,烧写完也能进入系统
麻煩把你所選的參數全部列出來一下. 我們需要詳細步驟.
這網頁是我們提供的…你把同樣的東西貼給我們說實話對你自己的問題幫助不大…
function build_uefi()
{
echo "============Start building uefi============"
echo "TEGRA_UEFI_DELAY =$TEGRA_UEFI_DELAY"
echo "TEGRA_UEFI_TYPE =$TEGRA_UEFI_TYPE"
echo "============================================="
cd $LDK_DIR/nvidia-uefi
# Init venv
if [ ! -d venv ];then
run virtualenv -p python3 venv
run . venv/bin/activate
run pip install --no-index --find-links="./packages" -r packages/package-list.txt
fi
init_edkrepo_conf
edkrepo manifest-repos add nvidia https://github.com/NVIDIA/edk2-edkrepo-manifest.git main nvidia
edkrepo clone nvidia-uefi NVIDIA-Platforms main
# applay boot delay time
timeout=`grep -e "^CONFIG_BOOT_DEFAULT_TIMEOUT" nvidia-config/Jetson/.config`
if [ ! -z "$timeout" ];then
sed -i "s%$timeout%CONFIG_BOOT_DEFAULT_TIMEOUT=${TEGRA_UEFI_DELAY}%g" nvidia-config/Jetson/.config
fi
# close xhci controller detect
xhci_txt="ASSERT (!(XHC_REG_BIT_IS_SET (Xhc, XHC_USBSTS_OFFSET, XHC_USBSTS_CNR)));"
file=${LDK_DIR}/nvidia-uefi/edk2/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c
if [ ! -z "`grep -e "${xhci_txt}" ${file}`" ];then
run sed -i "s/${xhci_txt}//g" ${file}
fi
run edk2-nvidia/Platform/NVIDIA/${TEGRA_UEFI_TYPE}/build.sh
if [ ! -e "$LDK_DIR/nvidia-uefi/images/uefi_${TEGRA_UEFI_TYPE}_RELEASE.bin" ]; then
echo "Error: Missing uefi image: uefi_${TEGRA_UEFI_TYPE}_RELEASE.bin"
exit 1
fi
install -D $LDK_DIR/nvidia-uefi/images/uefi_${TEGRA_UEFI_TYPE}_RELEASE.bin ${BOOTLOADER_DIR}/uefi_jetson.bin
run edk2-nvidia/Platform/NVIDIA/DeviceTree/build.sh
if [ ! -e "$LDK_DIR/nvidia-uefi/images/L4TConfiguration_DeviceTree_RELEASE.dtbo" ]; then
echo "Error: Missing uefi dtb image: L4TConfiguration_DeviceTree_RELEASE.dtbo"
exit 1
fi
install -D $LDK_DIR/nvidia-uefi/images/L4TConfiguration_DeviceTree_RELEASE.dtbo ${KERNEL_DIR}/dtb/L4TConfiguration.dtbo
finish_build $?
}
上述是我们自己的编译脚本,整个build_uefi
都是用docker执行的。
我发现在步骤Create workspace
中使用edkrepo
克隆时会选择代码分支,分支的选择是否有影响呢?