NVIDIA Jetson TX2 内核中添加 CP210x 串口驱动

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gzj2013/article/details/77069803

说明:本文的核心内容是围绕版本为 L4T 27.1 的内核编译过程。如果内核版本是 L4T 28.1 ,则可移步这篇文章:
编译 L4T 28.1,这两个版本的编译步骤几乎一样。

问题背景:

最近在 TX2 下做项目,遇到了一个问题: CP210x 串口设备插入 TX2 板子之后无法生成 /dev/ttyUSB0 设备节点。试过了很多办法,最后找到了这篇文章,亲测可用,英文好的同学可以直接撸英文原贴。(传送门在这里: http://www.jetsonhacks.com/2017/03/25/build-kernel-and-modules-nvidia-jetson-tx2/)

与本文配合的还有一个贴在 YOUTUBE 上的视频,可以翻墙的同学请点击 视频教程。需要注意的是,视频中的步骤是针对 L4T 28.1 的编译步骤,对于 L4T 27.1 版本的需要按照本文的步骤进行操作。

本篇文章介绍如何在 NVIDIA Jetson TX2 板子上编译 NVIDIA Jetson TX2 的内核。

编译步骤

编译 Jetson TX2 内核使用的脚本文件在 JetsonHacks Github 的 buildJetsonTX2 仓库中:

1 下载脚本文件

$ git clone https://github.com/jetsonhacks/buildJetsonTX2Kernel.git
$ cd buildJetsonTX2Kernel
# 如果你使用的 Tegra 版本是  L4T 27.1, 那么需要切换分分支:
$ git checkout vL4T27.1

一共有3个脚本文件。第一个脚本 getKernelSources.sh 从 NVIDIA developer 网站获取内核源码, 然后将源码解压到 /usr/src/kernel 目录中。

Note

如何区分自己的版本是 L4T 27.1 还是 L4T 28.1?
使用 uname -r 提示的消息是 “4.4.15-tegra”,则说明版本是 L4T 27.1;
使用 uname -r 提示的消息是 “4.4.38-tegra”,则说明版本是 L4T 28.1;

2 获取内核源码

$ ./getKernelSources.sh

源码下载完毕后,脚本会打开一个 xconfig 配置界面。有两个地方需要设置:
(1) 设置 Genral Setup | Local version - append to kernel release
文本框内输入-jetsonbot-v0.1,回车;如图所示:

local version

(2) 在 xconfig 中按 Ctrl+F,弹出一个搜索框,输入你想要添加的设备驱动,比如这里添加 CH341 串口驱动;如图所示:

这里写图片描述
最后一定要保存设置,File->Save。

3 编译内核

$ ./makeKernel.sh

第二个脚本 makeKernel.sh , 会给一部分 Makefile 文件更新补丁以满足 Jetson TX2 平台的编译条件,之后就开始内核编译。
脚本中的 make modules install 命令会将模块安装到 /lib/modules/ 目录中。

4 将之前的启动镜像替换为新的镜像

$ ./copyImage.sh

第三个脚本文件 copyImage.sh 会将新的编译镜像 Image 和 zImage 文件拷贝到 /boot 目录。

重新启动 TX2:reboot。

5 删除步骤(2)中下载的源文件

源文件的下载目录为 /usr/src:

$ sudo rm -rf kernel sources r27.1.0_sources.tbz2 kernel_src.tbz2
展开阅读全文

没有更多推荐了,返回首页