LDD3linux设备驱动源码树的安装和第一个hello wolrd驱动的编写
刚开始LDD3这本书,按照书上的hello world编写了第一个hello.c的代码。同时也写了完整的makefile文件,但是在执行sudo make的时候提示各种问题。
一/。照ldd3书上说的,需要构建源码树。
1.进入/usr/src ,在这里构建源码树,我们用下面指令查看可用的源码包:
$ sudo apt-cache search linux-source
2.查看结过后安装对应的源码树
sudo apt-get install llinux-source-3.13.0(此处选择与自己内核版本对应的即可)
3.将linux-headers-3.13.0-96-generic/下的.config文件拷贝到llinux-source-3.13.0。
sudo cp ../linux-headers-3.13.0-96-generic/.config ../llinux-source-3.13.0/.config
4.执行 make menuconfig
5.选择下方的load akernel configuration 载入之前拷贝的.config文件
6.之后选择保存当前配置文件,并退出。
7.执行make 编译内核
此处是漫长的等待过程。。。。。。。。。。。。。
二.开始编写hello.c文件,此处代码网上多的是,就不粘贴了 主要是想说下Makefile的编写注意事项。
KERNELDIR的路径要选择我们构建的源码树的路径,这样我们的hello.c才能编码,并且能够insmod到我们的系统上不会提示内核版本不兼容的问题。
我们通过执行
sudo insmod hello.ko
文件会在/var/log/下的system里面提示Hello,World!
执行
sudo rmmod hello
同样也会提示googbye helloworld!
详细可见此文章:http://www.linuxidc.com/Linux/2011-09/42777.htm