Development Environment Setup
本章详细介绍 NG4520 的开发环境搭建流程,包括本地开发环境配置、源码部署、交叉编译、内核与设备树更新,以及远程调试与桌面访问等内容,旨在帮助开发者高效构建适用于嵌入式 AI 边缘计算设备的开发体系。
1. 本地源码开发环境搭建
前提条件
-
Ubuntu 主机(推荐 20.04/22.04 LTS,空间>100GB ,用于交叉编译)
-
安装必要开发工具:
sudo apt update
sudo apt install git-core build-essential bc flex bison libssl-dev
源码部署
- 下载并解压 Linux_for_Tegra 源码
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.0/release/Jetson_Linux_R36.4.0_aarch64.tbz2
tar xf Jetson_Linux_R36.4.0_aarch64.tbz2
- 下载并解压文件系统
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.0/release/Tegra_Linux_Sample-Root-Filesystem_R36.4.0_aarch64.tbz2
sudo tar xpf Tegra_Linux_Sample-Root-Filesystem_R36.4.0_aarch64.tbz2 -C Linux_for_Tegra/rootfs/
- 拉取内核源码
cd Linux_for_Tegra/source/
./source_sync.sh -t jetson_36.4
- 获取下述代码并覆盖原始源代码
cd ../..
mkdir -p gitlab/Linux_for_Tegra
git clone git@gitlab.milesight.com:ai-developer/aibox/l4t.git gitlab/Linux_for_Tegra
cp -r gitlab/Linux_for_Tegra/* Linux_for_Tegra/
- 部署NVIDIA Tegra组件
cd Linux_for_Tegra
sudo ./apply_binaries.sh
交叉编译工具链部署
下载并解压交叉编译工具链
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v3.0/toolchain/aarch64--glibc--stable-2022.08-1.tar.bz2
mkdir -p $HOME/l4t-gcc
tar xf aarch64--glibc--stable-2022.08-1.tar.bz2 -C $HOME/l4t-gcc
编译方法
环境变量配置,每次新开终端编译前,需配置如下环境变量:
cd Linux_for_Tegra/source
export CROSS_COMPILE=$HOME/l4t-gcc/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-
export KERNEL_HEADERS=$PWD/kernel/kernel-jammy-src
export INSTALL_MOD_PATH=$PWD/Linux_for_Tegra/rootfs/
完整编译方法(包含内核、模块、设备树)
./nvbuild.sh
单独编译方法
- 编译内核
cd Linux_for_Tegra/source
./nvbuild.sh -o $PWD/kernel_output
- 编译Out-of-Tree Modules
cd Linux_for_Tegra/source
make modules
# 安装模块驱动到rootfs
sudo -E make modules_install
- 编译设备树
cd Linux_for_Tegra/source
make dtbs