Jetson TX2 内核重新编译

源码准备

使用的内核版本是 4.4.15-tegra 。就是Jetpack3.0下的r27.1。
wget  http://developer2.download.nvidia.com/embedded/L4T/r27_Release_v1.0/BSP/r27.1.0_sources.tbz2
tar -jxvf r27.1.0_source.tbz2 
tar -jxvf kernel_src.tbz2
cd kernel/kernel-4.4
zcat /proc/config.gz > .config //将原本的内核配置记录到.config中make xconfig//打开menuconfig配置界面
make xconfig
 如果没有特殊要求,menuconfig不需要改动(由于我需要添加imx219驱动,ctrl+f->imx219->勾选IMX219 sensor driver) 
   
 
  

编译

// 给部分makefile文件打补丁,使得源码可以在Jetson平台上编译
make prepare
make modules_prepare
//内核编译
make -j6

这一步出现的问题最多,比如:

In file included from sound/soc/tegra-alt/ahub_unit_fpga_clock.c ......tegra210_xbar_alt.h: No such file or directory
dev-t18x.h: No such file or directory 

但是find后发现这些文件都是存在的,应该是makefile没有添加上路径。于是手动在sound/soc/tegra-alt这些路径的makefile中添加 ccflags-y += -Isound/soc/tegra-alt(路径是find到的),有些文件报错,但是目录中没有MakeFile文件,可以到上一级或者上几级的路径中找到编译时使用的MakeFile,在其中添加路径,使用相对路径时注意验证正确性。经常改完一个error就出现另一个,只能一个个手动改完,保证make成功。

make modules// 模块编译
make modules_install // 安装模块到/lib/modules
sudo cp ./arch/arm64/boot/zImage /boot/zImage
sudo cp ./arch/arm64/boot/Image /boot/Image

重启即可
如果没有zImage和Image文件,很大可能是make -j6出现问题,重新make,检查

验证

在重启前 uname -r 显示 4.4.15-tegra
重启后 uname -r 显示 4.4.15
或者重启后直接 uname -a后发现内核版本的时间信息是最近的。

以上纯属个人经验,如有错误,欢迎指正~

你可能感兴趣的:(NVIDIA,Jetson,TX2)