1.驱动前提
编译驱动程序之前要编译内核,原因主要是:
(1)驱动程序要用到内核文件:
比如驱动程序中这样包含头文件: #include <asm/io.h>, 其中的asm是一个链接文件,指向asm-arm或asm-mips,这需要先配置、编译内核才会生成asm这个链接文件。
(2)编译驱动时用的内核,开发板上运行到内核,要一致:
开发板上运行到内核是出厂时烧录的,你编译驱动时用的内核是你自己编译的,这两个内核不一致时会导致- -些问题。所以我们编译驱动程序前,要把自己编译出来到内核放到板子上去,替代原来的内核。
(3)更换板子上的内核之后,板子上的其他驱动也要更换
板子使用新编译出来的内核时,板子上原来的其他驱动也要更换为新编译出来的。所以在编译我们自己的第1个驱动程序之前,要先编译内核、模块,并且放到板子上去。
2.编译内核
首先切换到内核所在目录
cd /home/xxl/100ask_imx6ull_mini-sdk/Linux-4.9.88
之后进行下面的操作
make mrproper
make 100ask_imx6ull_mini_defconfig
make zImage -j4
编译后生成的文件如下:

然后进行下面操作,也就是
在arch/arm/boot/dts
目 录 下 生 成 设 备 树 的 二 进 制 文 件
100ask_imx6ull_mini.dtb
。把这
2
文件复制到
/home/book/nfs_rootfs
目
录下备用
make dtbs
cp arch/arm/boot/zImage ~/nfs_rootfs
cp arch/arm/boot/dts/100ask_imx6ull_mini.dtb ~/nfs_rootfs
3.编译安装内核模块
3.1编译内核模块
首先进入内核源码目录,编译内核模块
cd /home/xxl/100ask_imx6ull_mini-sdk/Linux-4.9.88
然后输入下面的指令,编译完成如下图
make modules

3.2安装内核模块到Ubuntu某个目录下面备用
可以先把内核模块安装到
nfs <


407

被折叠的 条评论
为什么被折叠?



