首先是安装编译环境所需的依赖
sudo apt-get install git bison flex libssl-dev zip libncurses-dev make
sudo apt-get install build-essential bc
下载交叉编译器以及代码,官方链接: link
https://developer.nvidia.com/embedded/jetson-linux
解压下载的两个文件,并提取内核源代码public_sources/linux_for_Tegra/source/public/kernel_src
方法一:采用编译树莓派4B等设备内核的方法
编译内核执行以下命令
make ARCH=arm64 CROSS_COMPILE=~/aarch64--glibc--stable-final/bin/aarch64-buildroot-linux-gnu- tegra_defconfig
make ARCH=arm64 CROSS_COMPILE=~/aarch64--glibc--stable-final/bin/aarch64-buildroot-linux-gnu- menuconfig
make ARCH=arm64 CROSS_COMPILE=~/aarch64--glibc--stable-final/bin/aarch64-buildroot-linux-gnu- -j10
若要打包驱动,则执行
make ARCH=arm64 CROSS_COMPILE=~/aarch64--glibc--stable-final/bin/aarch64-buildroot-linux-gnu- modules_install INSTALL_MOD_PATH=./modules
方法二:官网给的编译步骤
这里推荐官网给的编译步骤
官网链接: link https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/SD/Kernel/KernelCustomization.html#building-the-kernel
对于官网上的
这一步在他的脚本里面并未发现将驱动打包的命令。需要自己实现
进入kernel_src下的kernel_out执行如下命令
make ARCH=arm64 CROSS_COMPILE=~/aarch64--glibc--stable-final/bin/aarch64-buildroot-linux-gnu- modules_install INSTALL_MOD_PATH=./modules
对于某个外设的驱动,也可以直接在kernel_out里面编译
nvidia非脚本编译参考链接: link https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/kernel_custom.html#