这里是要把http://www.cnblogs.com/hackfun/p/6260396.html中的enc28j60网卡驱动模块,添加到2.6.22.6内核中,这个模块代码不需要任何修改。只需要在内核目录下的相关配置脚本文件,如Makefile,Kconfig,.config ...
这里是要把http://www.cnblogs.com/hackfun/p/6260396.html中的enc28j60网卡驱动模块,添加到2.6.22.6内核中,这个模块代码不需要任何修改。只需要在内核目录下的相关配置脚本文件,如Makefile,Kconfig,.config等,修改某些配置就行。
enc28j60网卡驱动模块使用到的几个文件:
enc28j60.c
enc28j60_hw.h
spi_bitbang.c
spi_s3c24xx.c
spi_platform_dev.c
实际上spi_bitbang.c,spi_s3c24xx.c为内核原生文件,也不需要任何改动。在http://www.cnblogs.com/hackfun/p/6260396.html这个例子中,我的内核没有把这两个文件编译进去。因此需要手动把这两个文件加载进去。
在这里,我们在内核添加
enc28j60.c
enc28j60_hw.h
spi_platform_dev.c
这3个文件即可。
enc28j60.c,enc28j60_hw.h这两个文件,是与平台无关的网络驱动,因此把他们放到linux-2.6.22.6/drivers/net目录下。
spi_platform_dev.c是与平台硬件有直接关系,因此把它放到linux-2.6.22.6/arch/arm/plat-s3c24xx目录下。
1. 把spi模块添加进内核
a. 进入到linux-2.6.22.6源码目录下
make makeconfig
这样,就会在中端显示图形界面的内核配置菜单,找到SPI相关的配置:
Device Drivers --->
SPI support --->
[*] SPI support
[*] SPI Master Support
<*> Bitbanging SPI master
<*> Samsung S3C24XX series SPI
<M> Samsung S3C24XX series SPI by GPIO
在[]或<>的条目按空格键,*号表示把相关的模块文件添加进内核,M表示把相关的文件编译成模块,不添加到内核,空格表示不配置:如
[*] SPI support 设置把linux-2.6.22.6\drivers\spi目录添加到上层drivers目录
[*] SPI Master Support 设置把spi.c添加进内核
<*> Bitbanging SPI master 设置把spi_bitbang.c添加进内核
<*> Samsung S3C24XX series SPI 设置把spi_s3c24xx.c添加内核,硬件SPI
<M> Samsung S3C24XX series SPI by GPIO 设置把spi_s3c24xx_gpio.c生成模块,模拟SPI
b. 退出配置菜单,保存,会在linux-2.6.22.6源码目录下生成.config文件。
vi .config
找到SPI的相关配置:
## SPI support#CONFIG_SPI=y# CONFIG_SPI_DEBUG is not setCONFIG_SPI_MASTER=y## SPI Master Controller Drivers#CONFIG_SPI_BITBANG=y# CONFIG_SPI_BUTTERFLY is not setCONFIG_SPI_S3C24XX=yCONFIG_SPI_S3C24XX_GPIO=m## SPI Protocol Masters## CONFIG_SPI_AT25 is not set# CONFIG_SPI_SPIDEV is not set
原标题:enc28j60网卡驱动模块添加进linux内核,Kconfig,Makefile配置过程
关键词:linux
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。