一. 简介
前面一篇文章学习了 ALPHA开发板修改CAN的设备树节点信息,并加载测试过设备树文件,文件如下:
ALPHA开发板修改CAN的设备树节点信息-CSDN博客
本文是学习使能 IMX6ULL的 CAN驱动,也就是通过内核配置来实现。
二. 使能IMX6ULL的FlexCAN 驱动
1. 使能CAN总线
首先,ubuntu终端进入 Kernel内核源码(即NXP官方提供的)的根目录,输入 "make menuconfig" 命令,即可打开 kernel源码配置界面。输入如下命令:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga$ make menuconfig
其次,打开 CAN 总线子系统,在 Linux 下 CAN 总线是作为网络子系统的。配置路径如下:
-> Networking support
-> <*> CAN bus subsystem support //打开 CAN 总线子系统
如下图所示:
使能好 CAN总线后如上所示,即 <>中为 *。
2. 使能 Freescale 系 CPU 的 FlexCAN 外设驱动
-> Networking support
-> CAN bus subsystem support
-> CAN Device Drivers
-> Platform CAN drivers with Netlink support //这一行也选中
-> <*> Support for Freescale FLEXCAN based chips //选中
如上配置好后,按 "Esc"按键退出,直到根界面会出现如下:
选中 "Yes" 选项进行保存。这里就将 Kernel内核源码新的配置配置到 .config文件(kernel内核源码根目录下的 .config)中。
可以在 .config文件中查看是否已保存,gedit .config命令打开 .config文件:
注意:这里只是暂时将新更改的配置保存到 .config文件中,当不小心 "make clean" 命令后就会删除掉更改的配置。
可以永久将更改的配置保存,使用"make menuconfig" 命令打开界面,选择 "Save"命令进行永久保存:
保存到我创建自己开发板的内核配置文件 imx_v7_alientek_nand_defconfig文件中(之前移植内核实验):
选中"OK"选项后,保存。可以通过查看 imx_v7_alientek_nand_defconfig文件是否有 CONFIG_CAN_FLEXCAN=y 命令即可。
可以看出,这里的配置文件为:
./arch/arm/configs/imx_v7_alientek_nand_defconfig
3. 编译内核源码
以上配置完成后,编译内核。进入 内核源码根目录下,输入 "make"命令即可:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga$ make
编译完成后,会在 "./arch/arm/boot" 目录下生成新的 zImage内核镜像文件。