• 发文
  • 评论
  • 微博
  • 空间
  • 微信

英伟达Jetson Nano系统移植之内核编译

蓝海大脑2020-07-15 14:24发文

都说边缘计算是下一次信息技术的变革,英伟达Jetson系列的产品将其推到一个新的高度,如何定制一款符合自己需要的高性能边缘计算单元,下面我们开启英伟达Jetson Nano系统移植第一步——内核编译。



技术指标




L4T 组件说明

每个模块的组件说明如下:



L4T 介绍


在ubuntu主机交叉编译L4T软件包


1.下载L4T源码

点击

https://developer.nvidia.com/embedded/dlc/r32-3-1_Release_v1.0/Sources/T210/public_sources.tbz2,

下载L4T Driver Package (BSP) Sources解压和提取内核目录

lhy@lhy-desktop:~/Downloads$ tar -xjf public_sources.tbz2

lhy@lhy-desktop:~/Downloads$ cd /Linux_for_Tegra/source/public

lhy@lhy-desktop:~/Downloads/Linux_for_Tegra/source/public$ tar -xjf kernel_src.tbz2


2.构建NVIDIA内核

l 安装预装软件

sudo apt install build-essential bc


安装L4T工具链

http://releases.linaro.org/components/toolchain/binaries/latest-7/

l 工具链包含以下组件:

- GCC版本:7.5.0

- Binutils版本:2.28

- Glibc版本:2.25


# 下载和解压工具链

wget http://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86-64_aarch64-linux-gnu.tar.xz

sudo tar -xvf gcc-linaro-7.5.0-2019.12-x86-64_aarch64-linux-gnu.tar.xz -C /opt

# 修改环境变量

vim  ~/.bashrc

  export PATH=/opt/gcc-linaro-7.5.0-2019.12-x86-64_aarch64-linux-gnu/bin/:$PATH


source ~/.bashrc


导出相关环境变量


# 仅当前终端有效

export LOCALVERSION=-tegra

export CROSS_COMPILE=aarch64-linux-gnu-

其中export命令用来定义环境变量。上面的操作主要用来配置交叉编译环境。

创建.config 文件,配置你的内核,执行下面的命令。

cd kernel/kernel-4.9

make ARCH=arm64 tegra_defconfig


3. 编译内核


make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j8


 


编译得到的内核为arch/arm64/boot/Image

 


 


4. 安装Linux_for_Tegra


烧录内核


1.下载L4T Driver Package (BSP)

l 点击

https://developer.nvidia.com/embedded/dlc/r32-3-1_Release_v1.0/t210ref_release_aarch64/Tegra210_Linux_R32.3.1_aarch64.tbz2

下载L4T Driver Package (BSP)

l 解压文件

lhy@lhy-desktop:~/Downloads$ sudo tar -xjf Tegra_Linux_Sample-Root-Filesystem_R32.2.1_aarch64.tbz2 -C Linux_for_Tegra/rootfs


lhy@lhy-desktop:~/Downloads$ cd Linux_for_Tegra/

lhy@lhy-desktop:~/Downloads/Linux_for_Tegra$ sudo ./apply_binaries.sh


2. 将BSP软件烧录到jetson nano module主板


使jetson nano module进入recovery模式,接上usb到ubuntu 主机

lsusb

Bus 001 Device 057: ID 0955:7f21 NVidia Corp.


根据board执行烧录命令

sudo ./flash.sh jetson-nano-emmc mmcblk0p1


每一块板对应的配置文件


 


3. 覆盖L4T Driver Package (BSP) Sources编译结果


cd kernel/kernel-4.9/


# 内核

cp kernel/kernel-4.9/arch/arm64/boot/Image Linux_for_Tegra/kernel/Image


# 设备树

cp arch/arm64/boot/Image ../../../Linux_for_Tegra/kernel/Image


# 内核模块

sudo make ARCH=arm64 modules_install INSTALL_MOD_PATH=../../../Linux_for_Tegra/rootfs/



在Jetson Nano上直接编译内核


将public_sources.tbz2复制到nano板上并解压。


1.编译内核

$ cd ~/kernel/kernel-4.9

$ zcat /proc/config.gz > .config


# Prepare the kernel build

$ make prepare

$ make modules_prepare


# Compile kernel image and kernel modules

$ time make -j5 Image

$ time make -j5 modules


2.安装内核与内核模块

# Install modules and kernel image

$ sudo make modules_install

$ sudo cp arch/arm64/boot/Image /boot/Image




声明:本文为OFweek维科号作者发布,不代表OFweek维科号立场。如有侵权或其他问题,请及时联系我们举报。
2
评论

评论

    相关阅读

      暂无数据

      蓝海大脑

      GPU水冷服务器、超融合大数据一...

      举报文章问题

      ×
      • 营销广告
      • 重复、旧闻
      • 格式问题
      • 低俗
      • 标题夸张
      • 与事实不符
      • 疑似抄袭
      • 我有话要说
      确定取消

      举报评论问题

      ×
      • 淫秽色情
      • 营销广告
      • 恶意攻击谩骂
      • 我要吐槽
      确定取消

      用户登录×

      请输入用户名/手机/邮箱

      请输入密码