从tiny210自带光盘中拷贝出Linux内核源码,注意一定要与开发板上运行的内核版本一致。查看内核版本命令:
$ ubname -a
获取到的Linux内核源码应该是一个.tar.gz格式的压缩包,解压缩该压缩包:
$ tar -zxvf linux-3.0.8-20150528.tgz
编译Linux内核
在编写驱动程序之前必须要编译一下Linux内核,如果直接编写hello模块,make的时候会如下错误:
make -C /home/kernel/iTop4412_Kernel_3.0 M=/mnt/code/01qudong/mini_linux_module modules
make[1]: Entering directory '/home/kernel/iTop4412_Kernel_3.0'
ERROR: Kernel configuration is invalid.
include/generated/autoconf.h or include/config/auto.conf are missing.
Run 'make oldconfig && make prepare' on kernel src to fix it.
WARNING: Symbol version dump /home/kernel/iTop4412_Kernel_3.0/Module.symvers
is missing; modules will have no dependencies and modversions.
CC [M] /mnt/code/01qudong/mini_linux_module/mini_linux_module.o
cc1: fatal error: include/generated/autoconf.h: No such file or directory
compilation terminated.
scripts/Makefile.build:311: recipe for target '/mnt/code/01qudong/mini_linux_module/mini_linux_module.o' failed
make[2]: *** [/mnt/code/01qudong/mini_linux_module/mini_linux_module.o] Error 1
Makefile:1368: recipe for target '_module_/mnt/code/01qudong/mini_linux_module' failed
make[1]: *** [_module_/mnt/code/01qudong/mini_linux_module] Error 2
make[1]: Leaving directory '/home/kernel/iTop4412_Kernel_3.0'
Makefile:18: recipe for target 'all' failed
make: *** [all] Error 2
此时有些童鞋就按照错误中提示的解决方法来解决这个错误,就会出现手动配置内核的界面或命令行,在Tiny210用户手册中已经说明了解决方法,光盘中的Linux内核源码包含了内核配置文件,而不需要自己重新配置,进入内核源码根目录,执行如下命令:
$ cp mini210_linux_defconfig .config #注意config前面的.
然后直接make编译内核即可。