本文为《编译S3C2410的kernel》的续
这里以最简单的驱动为例:网卡驱动。
步骤一:
准备网卡驱动程序,enc28j60.c、enc28j60.h。
步骤二:
在内核的驱动目录下建立ncard的文件夹
# cd /home/su/kernel/drivers
# mkdir ncart
把网卡驱动程序拷到该文件夹下
# cd ncard
# cp /home/su/enc28j60.c /home/su/enc28j60.h ./
步骤三:
在网卡驱动的目录下写一个配置文件Config.in
# vi Config.in
其内容如下:
#netcard drviver configuration
mainmenu_option next_comment
comment 'Net Card Driver'
bool 'NET CARD support' CONFIG_NCARD
endmenu
步骤四:
在网卡驱动的目录下写Makefile
# vi Makefile
其内容如下:
#driver Makefile
O_TARGET := ncard.o
export-objs :=
obj-$(CONFIG_NCARD) += enc28j60.o
include $(TOPDIR)/Rules.make
步骤五:
修改总驱动目录下的Makefile
# pwd
/home/su/kernel/drivers/ncard
# cd ..
# vi Makefile
在其42行加入以下这句:
subdir-$(CONFIG_NCARD) += ncard
步骤六:
修改kernel中某个目录下的Config.in 文件,这里选择改kernel/arch/arm 下的Config.in
# cd /home/su/kernel/arch/arm
# vi Config.in
在其最后一行加入下面的一句话:
source drivers/ncard/Config.in
步骤七:
修改kernel顶层目录的Makefile
# cd /home/su/kernel
# vi Makefile
在161行加入如下的一句话:
DRIVERS-$(CONFIG_NCARD) += drivers/ncard/ncard.o
步骤八:
配置内核的选项
# make menuconfig
这时,可看到菜单列表中多了一项
Net Card Drive --à
进去按“Y”选上,形如
【*】NET CARD support
步骤九:
保存,退出
步骤十:
编译内核
# make zImage
步骤十一:
新生成的内核zImage,可在kernel/arch/arm/boot 下找到,把其烧到arm板上。