... ... obj-$(CONFIG_SPI_MASTER) += spi.o ... ... obj-$(CONFIG_SPI_BITBANG) += spi_bitbang.o ... ... obj-$(CONFIG_SPI_S3C24XX) += spi_s3c24xx.o ... ...
d. 修改完以上配置之后,在linux-2.6.22.6目录下输入:
make uImage
进行编译,耐心等候。。。。。。。。。。。。。。
编译完之后,通过观察编译输出信息,验证一下到底有没有编译进内核,第一次编译输出的信息太多不好找。可以打开
spi_bitbang.c
spi_s3c24xx.c
这两个文件,分别在里面空白的地方输入一个空格,保存,再编译,会看到以下信息:
... ... CC drivers/spi/spi_bitbang.o CC drivers/spi/spi_s3c24xx.o ... ...
到这里,SPI的驱动就已经添加到内核了
2. enc28j60的驱动的添加方法也是类似的,这里只给出基于JZ2440自带内核的修改地方不再分析Kconfig和Makefile的配关系。
linux-2.6.22.6\drivers\net\Kconfig
... ... config ENC28J60 tristate "ENC28J60 support" depends on NET_ETHERNET ---help--- Support for ENC28J60 chipset. To compile this driver as a module, choose M here and read <file:Documentation/networking/net-modules.txt>. The module will be called enc28j60. ... ...
linux-2.6.22.6\drivers\net\Makefile
... ... obj-$(CONFIG_ENC28J60) += enc28j60.o ... ...
make menuconfig
Device Drivers ---> Network device support ---> Ethernet (10 or 100Mbit) ---> <*> ENC28J60 support
linux-2.6.22.6\arch\arm\plat-s3c24xx\Makefile
... ... obj-$(CONFIG_CPU_S3C244X) += s3c244x.o spi_platform_dev.o ... ...
3. 重新编译
make uImage
4. 烧写
烧写uImage到开发板中
5. 启动
a. 启动起来后,看内核打印的信息:
查看驱动加载情况
b. 让系统挂载系统文件之后,配置eth1(enc28j60)
vi /etc/init.d/rcS
添加:
ifconfig eth1 192.168.1.12 netmask 255.255.255.0 up
重新启动,看网络配置情况
关闭eth0,自动切换到eth1挂载nfs
到这里,enc28j60已经可以正常工作了。