orin NX 在OE4T(OpenEmbedded for Tegra)上的环境搭建

OE4T解决的问题

NVIDIA 官方 Jetson 开发流程一般是:

  • JetPack
  • SDK Manager
  • L4T (Linux for Tegra)
  • Ubuntu RootFS

具有上手快,GUI工具多,示例齐全,CUDA/TensorRT/DeepStream 集成成熟,但是系统可裁剪性差,可重复构建能力一般,产品化困难,OTA 管理不够优雅,长期维护成本高。

OE4T 本质上用 Yocto/OpenEmbedded 重新组织 Jetson BSP,把 NVIDIA BSP 变成 Yocto layer,变成真正的可重复构建,系统极致裁剪,OTA 升级更正规,更适合工业产品,长期维护更舒服,更适合 CI/CD 自动化的特点。

环境搭建准备

小编使用的宿主机ubuntu环境是ubuntu-2204 6.8.0-111-generic,编译工程需要使用本地代理127.0.0.1:7897,需要准备预留200G以上的存储空间。测试下位机板子使用的是Jetson Orin NX 16 GB

根据需要进行配置git代理参数执行如下:

bash 复制代码
git config --global --list #获取git的配置代理参数
#配置本地代理参数
git config --global http.proxy http://127.0.0.1:7897 
git config --global https.proxy http://127.0.0.1:7897
#取消本地代理
git config --global --unset http.proxy
git config --global --unset https.proxy

开始获取git工程

bash 复制代码
git clone https://github.com/OE4T/tegra-demo-distro.git  --depth=1 #减少下载的流量
cd tegra-demo-distro
git submodule update --init --depth=1
. ./setup-env -m p3768-0000-p3767-0000 -d tegrademo testBoardBuild

针对上面的setup-env,传参-h 查看已经支持的开发板信息,其中p3767-0000代表Jetson Orin NX / Nano 模组编号,常见如下:

模组 编号
Orin NX 16GB p3767-0000
Orin NX 8GB p3767-0001
Orin Nano 8GB p3767-0003
Orin Nano 4GB p3767-0004

p3768-0000代表NVIDIA 官方 Orin Nano Developer Kit Carrier Board的开发板底板编号

开始编译前的准备

执行完上面的指令后,根据个人主机的性能参数进行一些额外的配置如下:

bash 复制代码
source ./setup-env ./testBoardBuild #启动yocto守护程序
vim ./conf/local.conf #编辑配置文件,新增如下内容
BB_NUMBER_THREADS = "3" #BitBake 同时允许执行多少个 task
PARALLEL_MAKE = "-j3"  #单个 make 工程内部允许几个线程并行编译
DL_DIR = "~/yocto_downloads/downloads" #Yocto 下载源码包的统一缓存目录
SSTATE_DIR = "~/yocto_downloads/sstate-cache" #Yocto 编译结果缓存
BB_HASHSERVE_DB_DIR = "${SSTATE_DIR}" #Hash Equivalence 数据库目录

关于上面的参数,建议 BB_NUMBER_THREADS x PARALLEL_MAKE 不要超过电脑的cpu数量,也需要根据电脑的的内存进行调整,否则电脑容易卡死并编译失败

执行编译命令和烧录

根据需求选择任一编译的命令

bash 复制代码
bitbake core-image-minimal  #- minimally bootable image (no demo apps, no graphics)
bitbake demo-image-base     #- basic image with no graphics
bitbake demo-image-egl      #- basic image with DRM/EGL, no window manager
bitbake demo-image-sato     #- X11 image with 'sato' UI
bitbake demo-image-weston   #- Wayland with Weston compositor
bitbake demo-image-full     #- X11/sato UI plus docker, openCV, VPI, TensorRT and multimedia API samples

接下来漫长的等待所有的tasks执行完毕,编译进度下图所示:

编译完成如下:

bash 复制代码
$ bitbake demo-image-base
Loading cache: 100% |####################################################################################################################################################################################################| Time: 0:00:01
Loaded 5792 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies
NOTE: Multiple providers are available for runtime libnss-mdns (avahi-libnss-mdns, mdns)
Consider defining a PREFERRED_RPROVIDER entry to match libnss-mdns

Build Configuration:
BB_VERSION           = "2.19.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "aarch64-oe4t-linux"
MACHINE              = "p3768-0000-p3767-0000"
SDKMACHINE           = "x86_64"
DISTRO               = "tegrademo"
DISTRO_VERSION       = "6.1+snapshot-97a940bfdeaa3f9f4442a6fbb0fabe1ce5eaff69"
TUNE_FEATURES        = "aarch64 armv8a crc"
meta                 = "HEAD:97a940bfdeaa3f9f4442a6fbb0fabe1ce5eaff69"
meta-tegra           = "HEAD:f6987622d98cb4ea56c3ec880ef2016da7888888"
meta-oe              
meta-python          
meta-networking      
meta-filesystems     = "HEAD:420222862f5a6d95023b8f5f3b7e1808b2264ef9"
meta-virtualization  = "HEAD:4ba5825ee16fcded87f4d555b4ed7a7615dc67ac"
meta-tegra-community = "HEAD:b47ec3876125eb8602ee4562b6c682cafe321540"
meta-tegra-support   
meta-demo-ci         
meta-tegrademo       = "master:295210b0c43d6d7c1968879122ca134391b266af"

Sstate summary: Wanted 0 Local 0 Mirrors 0 Missed 0 Current 4290 (0% match, 100% complete)                                                                                                                                              
Initialising tasks: 100% |###############################################################################################################################################################################################| Time: 0:00:06
NOTE: Executing Tasks
NOTE: Tasks Summary: Attempted 7723 tasks of which 7723 didn't need to be rerun and all succeeded.

烧录成果物在如下的文件夹内:./tmp/deploy/images/p3768-0000-p3767-0000/demo-image-base-p3768-0000-p3767-0000.rootfs.tegraflash-tar.zst,解压相关的文件命令:tar --zstd -xvf ./demo-image-base-p3768-0000-p3767-0000.rootfs.tegraflash-tar.zst

将orin nx的rec管脚接地进入到烧录模式,执行如下命令进行烧录操作:

bash 复制代码
sudo ./initrd-flash

默认登录名为root,没有密码,直接回车登录

未待结束。。。

相关推荐
Rocktech_ruixun5 小时前
机器人本地跑LLM大模型对主板硬件有什么要求?瑞迅科技RK3588/3568方案选型解析
人工智能·科技·嵌入式硬件·机器人·边缘计算
天空'之城7 小时前
单片机基础核心知识点汇总(三十四)
单片机·嵌入式硬件
Horn Still Sounds8 小时前
51单片机入门:硬件基础、位运算、数码管动态显示完整梳理
嵌入式硬件·mongodb·51单片机
三佛科技-187366133979 小时前
24W-48W隔离双绕组非标自供电芯片LP3718CD(电路原理图)
单片机·嵌入式硬件
糖糖单片机设计11 小时前
基于 STM32 的小型鸟类宠物繁殖系统
stm32·嵌入式硬件·宠物
电子元器件选型哥12 小时前
一文讲清LLC谐振电路工作原理
单片机·嵌入式硬件·硬件工程师·电子元器件·器件选型
HUI-47413 小时前
EG1162|SOP‑16 高压同步整流降压控制器,最高 600V 输入,大电流 5V 输出优选
嵌入式硬件·硬件工程
POMAGTOR13 小时前
【5G 通讯 POGOPIN 弹簧顶针连接器解决方案】
网络·嵌入式硬件·5g
ZLG_zhiyuan13 小时前
测试方案 | 从“000”到“111”,高效完成100BASE-TX以太网眼图测试
单片机·嵌入式硬件
恒锐丰科技林技术员13 小时前
EG1198:120V 宽压内置 MOS 降压 DC‑DC 电源芯片解析
经验分享·嵌入式硬件·硬件工程