news 2026/2/24 23:10:46

一、orin nx JP6.2开发环境搭建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一、orin nx JP6.2开发环境搭建

文章目录

  • 一、orin nx JP6.2开发环境搭建
  • 1 sdk下载编译和烧录
    • 1.1 sdk下载
    • 1.2 镜像构建烧录
  • 2 kernel 源码下载
  • 3 bootloader下载

一、orin nx JP6.2开发环境搭建

本专栏旨在记录jetson平台系统开发过程中的一些调试心得和笔记,好记性不如烂笔头,本节就以我手中的orin nx 16G super版本的硬件为例介绍系统开发开发环境如何搭建,其他硬件版本类似。

nv官方提供了SdkManager用于通过界面来操作和刷写开发板,SDKManager官网:https://developer.nvidia.com/sdk-manager

所有的系统组件包括bsp,driver, bootloader, Sample等都可以通过这个软件烧录到系统,但是这里不能对系统做更深层次的系统定制,也不能启动super模式。所以本章节主要是通过源码构建和烧录super sdk。

1 sdk下载编译和烧录

1.1 sdk下载

当前我使用的JP版本是6.2.对应的Jetson Linux版本是36.4.3,在下面这个页面下找到所有的下载资源:
https://developer.nvidia.com/embedded/jetson-linux-r3643

下载上述Drivers里面的BSP和Sample Root Filesystem,然后执行如下指令解压:

tar xf Jetson_Linux_R36.4.3_aarch64.tbz2 sudo tar xpf Tegra_Linux_Sample-Root-Filesystem_R36.4.3_aarch64.tbz2 -C Linux_for_Tegra/rootfs/

安装相关依赖:

cd Linux_for_Tegra/ sudo ./tools/l4t_flash_prerequisites.sh

创建默认用户和登录密码(如果不设置需要通过接显示器通过界面设置,如果不想通过后期设置可以执行如下内容):

sudo ./tools/l4t_create_default_user.sh -u tao -p 1 -a

其中:
-u : 指定用户名
-p: 指定密码

以上配置和脚本只用执行一次即可,后续无需再次执行

1.2 镜像构建烧录

SDK开发环境准备好以后就可以开始编译系统和烧录镜像了,这一部需要让开发板进入recovery模式,短接如下位置给单板上电:

执行如下指令构建系统并烧录:

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 external

这里根据电脑的配置差异可能需要数十分钟,耐心等候即可,烧录完成会自动开机,可以接入串口登陆设备,串口使用上图的UART RXD和UART TXD以及GND,串口模特率默认115200,可以使用minicom查看日志:

sudo minicom -b 115200 -D /dev/ttyUSB0

/dev/ttyUSB0 根据你的实际串口设备指定。

2 kernel 源码下载

有了上面的SDK其实就可以定制系统了,但是如果想要定制内核则还不够,SDK里面是预先继承好了内核镜像,如果需要自己定制就必须下载源码并编译源码:

下载上图连接中的内核源码以及交叉编译工具链:


设置交叉编译工具链:

mkdir $HOME/l4t-gcc cd $HOME/l4t-gcc tar xf aarch64--glibc--stable-2022.08-1.tar.bz2 export CROSS_COMPILE=$HOME/l4t-gcc/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu- export IGNORE_PREEMPT_RT_PRESENCE=1

编译内核:

cd Linux_for_Tegra/source ./generic_rt_build.sh "enable" # 配置是否使能RT export CROSS_COMPILE=$HOME/l4t-gcc/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu- make -C kernel make modules make dtbs

安装目标产物到SDK对应路径:

export INSTALL_MOD_PATH=<install-path>/Linux_for_Tegra/rootfs/ sudo -E make install -C kernel sudo -E make modules_install cp kernel/kernel-jammy-src/arch/arm64/boot/Image <install-path>/Linux_for_Tegra/kernel/Image

install-path根据本机实际路径设置

完成以后在重新执行1.1章节的编译和烧录既可以自己编译的内核启动系统

3 bootloader下载

orin nx上使用nv定制的uefi固件来启动系统,如果有涉及到开机启动速度优化需求的话还是需要自己编译固件的,一般情况下开发者需要修改的情况极少,这里就不详细列举过程了,可以参考如下官方仓库的readme操作:
源码仓库:https://github.com/NVIDIA/edk2-nvidia/tree/main
使用wiki: https://github.com/NVIDIA/edk2-nvidia/wiki

uefi可以配置默认启动方式、开机速度优化等等,按需操作,这里需要注意的是编译完成以后需要将编译的两个固件拷贝并替换到SDK源码Linux_for_Tegra/bootloader路径下的BOOTAA64.efi和uefi_jetson.bin,然后在重新执行1.1章节的编译和烧录既可以使用自己编译的uefi固件启动系统。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/21 13:38:02

数位dp模版

直接放一篇比较有代表性的数位dp学习的题目链接和标准的题解代码&#xff0c;由于题解代码较少就懒得解释更多了&#xff0c;关键就是从高位到低位的状态dfs➕记忆化➕对区间答案拆解为前缀差 https://www.luogu.com.cn/problem/P13085 #include <iostream> #include &…

作者头像 李华
网站建设 2026/2/24 16:36:41

手写一个熔断器(附完整代码)

概述 一个用于 RPC 框架的异常比例熔断器&#xff0c;可以实现时间窗口内统计请求成功次数&#xff0c;失败次数&#xff0c;失败比例达到阈值并且时间窗口内总请求数量达到阈值则对服务进行降级&#xff0c;经过特定时间间隔尝试恢复服务&#xff0c;放开服务可调用次数permit…

作者头像 李华
网站建设 2026/2/24 21:54:42

Java Web 光影系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

摘要 随着互联网技术的快速发展&#xff0c;Web应用在多个领域的应用需求日益增长&#xff0c;尤其是在光影艺术与数字化展示领域&#xff0c;传统的静态展示方式已无法满足用户对交互性和动态效果的需求。光影系统作为一种结合艺术与技术的创新应用&#xff0c;能够通过动态光…

作者头像 李华
网站建设 2026/2/17 14:58:25

经常使用 Code Agent/Chat:思考和感想

背景 做了一年的 code review&#xff0c;看大家都用上了 AI 来辅助编程&#xff0c;有一些些小的想法&#xff0c;生成此篇。 做过技术支持的人&#xff0c;应该有很多相似的感受&#xff1a;很多人在描述自己遇到的问题、需求时&#xff0c;往往说不清楚&#xff0c;难以让人…

作者头像 李华
网站建设 2026/2/24 22:07:36

驱动开发系列78 - 应用程序渲染与显示(二)

将应用程序生成的图形内容显示到屏幕上,需要经过图像合成与显示模式设置等关键步骤,这些操作必须在图形栈各组件之间正确同步,并在保证性能的前提下尽量降低系统开销。回顾第一篇文章,我们已经从应用程序出发,梳理了图形数据经由图形 API 传递至 Mesa,并由 DRM 子系统完成…

作者头像 李华
网站建设 2026/2/20 2:56:20

从基础到进阶:C语言猜数字游戏的完整开发历程

猜数字游戏是C语言入门阶段的经典实践案例&#xff0c;它能很好地锻炼我们对分支、循环、函数封装的理解。今天我们就从基础版开始&#xff0c;一步步迭代到功能丰富的进阶版本&#xff0c;感受代码从“能用”到“好用”的蜕变。&#x1f4cc; 基础版&#xff1a;实现核心玩法需…

作者头像 李华