reComputer J4012 - Edge AI Computer with NVIDIA® Jetson™ Orin™ NX 16GB
本文主要介绍reComputer J4012这个开发板的相关资料和SDK Manager安装,kernel编译和rootfs集成等操作。
reComputer J4012 NVIDIA开发指南
一、开发板资料介绍
产品reComputer J4012的模型是Jetson Orin NX 16GB,具体的产品信息页链接在产品说明,产品外观图如下图:
产品的电路图和PCB版图
二、NVIDIA SDK软件安装
软件下载网址链接,注意自己的ubuntu的环境版本信息,可以通过下面的命令进行查询,以小编的系统为例:
$ uname -a
Linux yz-MS-7E06 6.8.0-45-generic #45~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Sep 11 15:25:05 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
$ sudo apt install ./sdkmanager_2.1.0-11698_amd64.deb
小编使用最新版本 2.1.0,SDK版本JetPack 6.1,对相关系统版本的限制如下图:
三、SDK Manager烧录操作
- 通过sdk烧录系统非常便捷,第一次烧录注意进入Recovery模式,将REC管脚和GND管脚短接。然后成功进入下面的界面:
- 然后进入第二步骤,根据需要选择下位机安装Jetson Linux和Jetson Runtime Components组件,注意目标文件夹Target HW image folder的选择
- 第三步骤,则开始进行配置用户名和密码,开始烧录,如下图
- 第四栏可以查看安装进度,根据命令行的打印可以看中间flash.sh脚本调用过程,方便排查中间出现的问题
$ tree -L 3
.
├── JetPack_6.1_Linux
│ └── NVIDIA_Nsight_Perf_SDK
│ ├── Nsight Perf SDK for Tegra Getting Started Guide 2023.5 (rev5).pdf
│ ├── Nsight Perf SDK for Tegra Release Notes.pdf
│ ├── NvPerf
│ ├── redist
│ └── Samples
└── JetPack_6.1_Linux_JETSON_ORIN_NX_TARGETS
└── Linux_for_Tegra
├── apply_binaries.sh
├── bootloader
├── build_l4t_bup.sh
├── flash.sh
├── generate_capsule
命令行打如下:
四、官网相关的产品信息页说明
- 相关的对应的开发板对应的nvidia的产品doc信息页
- 小编使用的版本是:NVIDIA Jetson Linux 36.4,对应的版本说明wiki,里面主要对产品的配置说明,后面重点说明kernel和rootfs的配置。
- J4012 对应的版本是:Jetson Orin NX 16GB (P3767-0000)
五、交叉工具链和kernel和rootfs集成配置说明
- 下载NVIDIA Jetson Linux 36.4 版本对应的Bootlin Toolchain gcc 11.3,然后配置环境变量.bashrc如下:
export CROSS_COMPILE=$HOME/l4t-gcc/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-
- 进入第三章配置的Target HW image folder的文件夹路径
- 通过执行
$ sudo ./flash.sh [options] <board> <rootdev>
可以进行脚本批量烧录,不用通过sdk manager 软件。 - 准备kernel代码编译前的准备,需要执行下面的命令安装一些软件
$ sudo apt install git-core
$ sudo apt install build-essential bc
- 可以通过git在线同步代码或者离线下载两个方式,如下命令通过在线同步最新代码
$ cd <install-path>/Linux_for_Tegra/source
#$ ./source_sync.sh -k -t <release-tag>
$ ./source_sync.sh -k -t jetson_36.4
- 注意release-tag 可以通过Release_Notes 获取,如下图中的: jetson_36.4
- 通过下载 public_sources.tbz2 代码文件压缩包,然后解压文件到Target HW image folder 里面的 JetPack_6.1_Linux_JETSON_ORIN_NX_TARGETS -> install-path ,相关命令如下:
$ tar xf public_sources.tbz2 -C <install-path>/Linux_for_Tegra/..
$ cd <install-path>/Linux_for_Tegra/source
$ tar xf kernel_src.tbz2
$ tar xf kernel_oot_modules_src.tbz2
$ tar xf nvidia_kernel_display_driver_source.tbz2
- 进行源代码编译命令
$ cd <install-path>/Linux_for_Tegra/source
$ ./generic_rt_build.sh "enable" #enable the real-time configuration
$ make -j24 -C kernel #-j加快编译速度
$ export INSTALL_MOD_PATH=<install-path>/Linux_for_Tegra/rootfs/
$ sudo -E make install -C kernel
$ cp kernel/kernel-jammy-src/arch/arm64/boot/Image \
<install-path>/Linux_for_Tegra/kernel/Image #更新系统的image文件
- 对应的设备树文件位置: JetPack_6.1_Linux_JETSON_ORIN_NX_TARGETS/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/tegra234-p3768-0000+p3767-0000.dts
- 编译设备树文件
$ cd <install-path>/Linux_for_Tegra/source
$ export CROSS_COMPILE=<toolchain-path>/bin/aarch64-buildroot-linux-gnu-
$ export KERNEL_HEADERS=$PWD/kernel/kernel-jammy-src
$ make dtbs
$ cp kernel-devicetree/generic-dts/dtbs/* <install-path>/Linux_for_Tegra/kernel/dtb/ #更新dtb文件
- 执行如下命令下载rootfs文件
$ cd <your_L4T_root>/Linux_for_Tegra/tools/samplefs
#根据需要执行下面命令生成文件系统
$ sudo ./nv_build_samplefs.sh --abi aarch64 --distro ubuntu --flavor desktop --version jammy
$ sudo ./nv_build_samplefs.sh --abi aarch64 --distro ubuntu --flavor minimal --version jammy
- 对文件 nvubuntu-jammy-basic-aarch64-packages 修改需要集成库和程序,也可以对下面的文件放自定义的程序和文件
JetPack_6.1_Linux_JETSON_ORIN_NX_TARGETS/Linux_for_Tegra/rootfs #对应的rootfs文件夹路径
六、参考网站
- https://docs.nvidia.com/
- https://wiki.seeedstudio.com/reComputer_J4012_Flash_Jetpack/