linux编译ko文件(不同内核源码版本)
2017-09-30 18:50
537 查看
最近编译内核驱动程序遇到了一些困难,网上下载与我的linux系统相同的版本,编译的时候过不去(每次都是编译到sound文件夹下时提示找不到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:
4.编译内核 make:
5.安装模块 make modules_install:
6.make install:
7.创建initrd文件:mkinitramfs -o /boot/initrd.img-2.6.32(这一步执行后镜像就生成了),不过这一次生成的镜像重启后无法进入安装的这个内核···,这个执行后继续执行下个命令;
8.更新镜像:update-initramfs -c -k 2.6.32,到这里内核安装完成了(在这里膜拜下当初参考的那位大神,本以为不同内核版本的内核安装后不能进入,这条指令改变了我的看法···);
9.更改启动文件:进入/boot/grub文件夹,输入命令update-grub;
10.更改启动文件:gedit /boot/grub/grub.cfg ,然后找到安装的内核信息位置放到原来内核信息的上面(大括号内为内核的启动信息);
11.更改内核选择页面停留时间:还是在grub.cfg内找到所有timeout进行更改(单位为秒),if判断处不需要更改;
重启后,可以选择自己的新内核进入了。
下面说下.ko文件的编译情况…!参考书籍、以及查看网上的资料一直没有编译出.ko文件,这里说下我的编译方式:
1.首先编写一个Makefile:
2.进行编译文件:
我增加了make编译指定,make -C /lib/modules/2.6.32/build M=/home/linux/work/Testlinux/Testhallo(这种方式成功编译出了.ko文件在别的工程中也是如此);
到这里整个内核编译ko的过程结束了,(由于我的电脑没有网络) 经历多次下载新的内核源码以及询问几位朋友总结出来的方法,在这里感谢网上提供参考资料的朋友和我询问的朋友!
只需要准备一个与自己linux系统内核接近的版本(我的系统内核是2.6.32.21后来下载了一个2.6.32稳定版成功编译并且可以进入这个新的内核)。
1.首先解压下载的内核源码拷贝到/usr/src路径下:
2.切换到root权限下进入内核源码文件夹 cd /usr/src/linux-2.6.32:
3.配置config:
这里由于我的menuconfig无法启动(根据网上参考的资料安装了ncurses并且设置了桌面分辨率还是打不开,只能通过命令显示页面(ctrl+alt+f1)打开),我跳过了这一步直接进行make oldconfig (最后说明设置编译内核的设置);
4.编译内核 make:
5.安装模块 make modules_install:
6.make install:
7.创建initrd文件:mkinitramfs -o /boot/initrd.img-2.6.32(这一步执行后镜像就生成了),不过这一次生成的镜像重启后无法进入安装的这个内核···,这个执行后继续执行下个命令;
8.更新镜像:update-initramfs -c -k 2.6.32,到这里内核安装完成了(在这里膜拜下当初参考的那位大神,本以为不同内核版本的内核安装后不能进入,这条指令改变了我的看法···);
9.更改启动文件:进入/boot/grub文件夹,输入命令update-grub;
10.更改启动文件:gedit /boot/grub/grub.cfg ,然后找到安装的内核信息位置放到原来内核信息的上面(大括号内为内核的启动信息);
11.更改内核选择页面停留时间:还是在grub.cfg内找到所有timeout进行更改(单位为秒),if判断处不需要更改;
重启后,可以选择自己的新内核进入了。
下面说下.ko文件的编译情况…!参考书籍、以及查看网上的资料一直没有编译出.ko文件,这里说下我的编译方式:
1.首先编写一个Makefile:
2.进行编译文件:
我增加了make编译指定,make -C /lib/modules/2.6.32/build M=/home/linux/work/Testlinux/Testhallo(这种方式成功编译出了.ko文件在别的工程中也是如此);
到这里整个内核编译ko的过程结束了,(由于我的电脑没有网络) 经历多次下载新的内核源码以及询问几位朋友总结出来的方法,在这里感谢网上提供参考资料的朋友和我询问的朋友!
相关文章推荐
- 在一套linux环境上编译不同内核版本上的内核模块
- linux编译内核定制不同的版本号扩展名
- 配置maven下载jar包源码文件、拷贝依赖jar到lib包、设置编译时jdk版本、根据不同环境采用不同配置
- linux初学-内核编译以及文件系统4
- linux内核编译时,修改内核版本信息
- linux 2.6.3x内核源码编译和安装
- 编译Linux2.6.x内核驱动的makefile文件
- linux初学-内核编译以及文件系统3
- linux、内核源码、内核编译与配置、内核模块开发、内核启动流程
- linux驱动学习(1)-ubuntu 内核源码下载及编译
- ubuntu 10.04 编译安装最新版本linux-2.6.34内核
- linux、内核源码、内核编译与配置、内核模块开发、内核启动流程(转)
- ubuntu 10.04 编译安装最新版本linux-2.6.34内核
- HOWTO compile kernel modules for the kernel 2.6: (编译linux2.6版本内核)
- 【转】Linux 2.6.3x内核源码编译和安装
- Ubuntu 10.04 编译安装最新版本Linux-2.6.34内核
- 用javac编译生成不同版本的源码和目标class
- linux初学-内核编译以及文件系统2
- linux、内核源码、内核编译与配置、内核模块开发、内核启动流程
- 编译Linux2.6.x内核驱动的makefile文件