1.什么是内核
内核其实就是你下载的内核软件包里的东西,比如:linux-2.6.28.tar解压后里面的所有的文件和代码就是内核。
2.板子上移植的uImage或则zImage是什么
其实板子上我们用的uImage其实也就是内核,但他不是我们平时能编写的内核程序,他其实是内核源代码经过编译后的一个可执行的镜像文件。就有点想我们单片机写好代码编译后的hex文件。
3.编译内核出现的问题
内核编译时出现这个问题,解决的方法可能有几种(前提是你的Makefile是正确的)
(1)、需要建立内核树:#make modules #make modules_install
这两个命令执行完后 一般会在 /lib/modules/ 里生成对应的文件
(2)、如果上面命令执行完后make还是不行,就试试 make oldconfig && make prepare
执行完后在make
(3)、如果上面的都不行就要改Makefile了:把makefile里的 $(PWD) modules 改成 $$PWD 就可以了
4、在终端运行时出现这个错误:
insmod: cannot insert 'myled.ko': invalid module format
那么一定是编译的内核版本和arm里的内核版本不一致。(不一致的原因很多,有可能是你移植的内核就跟你编译的内核不一样,也有可能是你的开发板根本没有从你的SD/mmc里启动 他是从flash里启动的,所以当你怎么改sd卡的内核,发现板子的内核始终没有变是,肯定是这个原因,解决办法就是设置板子从SD卡启动)