近来编译内核驱动程序遇见了一些困难,网上下载与我的linux系统相同的版本,编译的时侯过不去(每次都是编译到sounc62e3324e2f56f515a7e24df96da94eb文件夹下时提示找不到xxx.c文件),后来经过多次的实验后便把内核换了别的版本作为系统内核启动成功编译出ko文件,下边贴上具体过程:
只须要打算一个与自己linux系统内核接近的版本(我的系统内核是2.6.32.21后来下载了一个2.6.32稳定版成功编译而且可以步入这个新的内核)。
1.首先解压下载的内核源码拷贝到/usr/src路径下:
2.切换到root权限下步入内核源码文件夹cd/usr/src/linux-2.6.32:
3.配置config:
05f0c412cb8fdc2230929639e36a3088
这里由于我的menuconfig无法启动(根据网上参考的资料安装了ncurses并且设置了桌面分辨率还是打不开,只能通过命令显示页面(ctrl+alt+f1)打开),我跳过了这一步直接进行make oldconfig (最后说明设置编译内核的设置);
4.编译内核make:
5.安装模块makemodules_install:
6.makeinstall:
7.创建initrd文件:mkinitramfs-o/boot/initrd.img-2.6.32(这一步执行后镜像就生成了)linux内核版本 选择,不过这一次生成的镜像重启后未能步入安装的这个内核···,这个执行后继续执行下个命令;
8.更新镜像:update-initramfs-c-k2.6.32,到这儿内核安装完成了(在这儿膜拜下曾经参考的这位前辈,本以为不同内核版本的内核安装后不能步入,这条指令改变了我的想法···);
9.修改启动文件:步入/boot/grub文件夹,输入命令update-grub;
10.修改启动文件:gedit/boot/grub/grub.cfg,之后找到安装的内核信息位置挪到原先内核信息的前面(大括弧内为内核的启动信息);
11.修改内核选择页面逗留时间:还是在grub.cfg内找到所有timeout进行修改(单位为秒)linux解压rar,if判定处不须要修改;
重启后,可以选择自己的新内核步入了。
下边说下.ko文件的编译情况…!参考书籍、以及查看网上的资料仍然没有编译出.ko文件linux内核版本 选择,这儿说下我的编译形式:
1.首先编撰一个Makefile:
2.进行编译文件:
我降低了make编译指定linux关机命令,make-C/lib/modules/2.6.32/buildM=/home/linux/work/Testlinux/Testhallo(这些方法成功编译出了.ko文件在别的工程中也是这么);
到这儿整个内核编译ko的过程结束了,(因为我的笔记本没有网路)经历多次下载新的内核源码以及寻问几位同事总结下来的方式,在这儿谢谢网上提供参考资料的同事和我寻问的同事!