最近,用2.6.39.1重新编译了内核,重新跑了hello world驱动,建立好了驱动的开发环境,看了一些文档,但是还没有熟练的掌握驱动开发的技术,在这里记录一些心得,备忘。
以前在看ldd3的时候,觉得十分的茫然,连内核树是什么都不知道,然后在不知道的某一天,编译了一个内核,虽然建立起了一棵内核树,但是并没有用自己编译的内核来替换现有的内核,对于驱动的链接过程和源代码的目录结构也不熟悉,这里总结如下:
源代码目录:/usr/src/linux-2.6.39.1
内核的initrd目录:/boot/initrd-img-2.6.39.1
grub配置文件目录:/boot/grub/grub.cfg 自己编译内核后,运行sudo update-grub后,不能够正确的配置initrd
内核安装目录:
内核源代码中与Makefile和kbuild相关的文档:
Hello work 源代码:
一个Makefile例子