欢迎来到天天文库
浏览记录
ID:18104243
大小:1007.00 KB
页数:13页
时间:2018-09-13
《linux内核编译过程详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、内核升级前的准备工作:Linux系统进行内核升级或定制内核时需要安装GCC编译工具、make编译器,同时变异内核需要root权限。安装GCC编译环境参考:http://www.fengwenxuan.com/rhelinux/248.html操作系统:RHEL5.5开始安装:按照以下顺序安装所需要的包就可以完成GCC的安装了1.rpm-ivhkernel-headers-2.6.18-194.el5.i386.rpm2.rpm-ivhglibc-headers-2.5-49.i386.rpm3.rpm-ivhglibc-devel-2.5-49.i386.rpm4.rpm-ivhlibg
2、omp-4.4.0-6.el5.i386.rpm5.rpm-ivhgcc-4.1.2-48.el5.i386.rpm6.rpm-ivhlibstdc++-devel-4.1.2-48.el5.i386.rpm7.rpm-ivhgcc-c++-4.1.2-48.el5.i386.rpm8.rpm-ivhncurses-5.5-24.20060715.i386.rpm9.rpm-ivhncurses-devel-5.5-24.20060715.i386.rpm注意:在升级编译完内核,重启后提示如下错误信息:RedHatnashVersion5.1.19.6startingrver(2.6.3
3、3.3)mount:couldnotfindfilesystem‘/dev/root’setuproot:moving/devfailed:Nosuchfileordirectorysetuproot:errormounting/proc:Nosuchfileordirectorysetuproot:errormounting/sys:Nosuchfileordirectoryswitchroot:mountfailed:NosuchfileordirectoryKernelpanic–notsyncing:Attemptedtokillinit![Linux-initrd@0x1fc3
4、7000,0x228585bytes]于是在网上找了很多,也尝试了很多加模块、重编译了N次、改fstab等方法,都不行。最后在一个网站上找到解决方法。方法:编译时修改.config文件中的“CONFIG_SYSFS_DEPRECATED_V2”,默认该选项为notset,被注释掉的,将其改为y。即修改为“CONFIG_SYSFS_DEPRECATED_V2=y”,修改后,再编译,重启即正常了。内核升级命令:makemrproper清理源代码树makemenuconfig配置内核支持硬件参数vim.configmakedep设定依赖关系makebzImage编译内核makemodules编
5、译可加载内核模块makemodules_install安装编译的模块makeinstall安装新内核vim/etc/grub.conf编辑开机菜单选项grub文件下面是我的系统信息:————————————-RedHatEnterpriseLinux5.5kernel:2.6.18-194.el5————————————-注意:内核升级有风险,可能会影响现有的应用程序。但是只要做好准备,就能将危险性降到最低。进行内核升级对应用程序运行的兼容性、稳定性等等都有好处。下面进行内核升级:1.使用命令uname–r查看自己linux系统的内核版本2.进入解压后的内核源码包目录,接着使用命令mak
6、emrproper,命令的作用是在每次配置并重新编译内核前需要先执行“makemrproper”命令清理源代码树,包括过去曾经配置的内核配置文件“.config”都将被清除。即进行新的编译工作时将原来老的配置文件给删除到,以免影响新的内核编译。3.使用makemenuconfig命令,进行内核定制,选择自己想要的功能,这里以编译内核,让linux内核支持ntfs文件系统为例来讲解,具体过程见图:4.调出文字界面的配置菜单,接下来选择文件系统选项:5.敲回车后,继续选择能支持windows文件系统类型的选项6.最后选择我们需要的NTFS文件系统类型,编译到内核模块里,并且选择exit退出:
7、7.最后选择退出:8.选择yes,保存新的内核配置文件:9.看一下生成的.config文件的位置和属性10.在编译内核之前,需要使用“makedep”命令生成内核功能间的依赖关系,为编译内核做好准备。11.使用“makebzImage”命令进行内核编译,编译过程将持续相当长的时间(20分钟以上),请耐心等候。12.使用“makemodules”命令编译内核模块,编译过程将持续相当长的时间(30分钟以上),请耐心等候。13.内核模块编
此文档下载收益归作者所有