驱动编译有两种方法:
1. 编译到内核中
2. 编译为独立模块
建立方法:
1) 在linux源码树的驱动目录增加自己的驱动目录,比如:现在新增一个网络设备驱动
mkdir linux_tree/drivers/net/poker_driver -p
cd linux_tree/drivers/net/poker_driver
2) 编写驱动源码
vi poker_drv_part1.c
vi poker_drv_part2.c
vi poker_drv_part3.c
3) 编写源码目录Kconfig
vi Kconfig
config POKER_DRV
tristate "poker_driver support"
default n
---help---
If you say Y here, the kernel will support poker_driver.
If you say M here, the kernel not support poker_driver, must perform "insmod poker_driver.ko".
If you say N here, the kernel not support poker_driver.
4) 编写源码目录Makefile
vi Makefile
obj-$(CONFIG_POKER_DRV) += poker_drv.o
poker_drv-objs += poker_drv_part1.o poker_drv_part2.o poker_drv_part3.o
5) 修改上级Kconfig
vi linux_tree/drivers/net/Kconfig
source "drivers/net/poker_driver/Kconfig"
6) 修改上级Makefile
vi linux_tree/drivers/net/Makefile
obj-$(CONFIG_POKER_DRV) += poker_driver/
7) 配置内核
make menuconfig
Device Drivers --->
[*] Network device support --->
<>poker_driver support
1. 编译到内核中:
<*>poker_driver support
linux_tree# make uImage
2. 编译为独立模块
poker_driver support
linux_tree# make modules
括号问题:
[] 可选项 * 空
<> 可选项 * M 空
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)