




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
linux内核编译心得 linux内核编译心得xx-10-1715:06经过2周多的时间,一次又一次的对内核动刀,并反反复复的编译内核。 终于我成了熟练工。 对于内核的编译,我也有了一些自己的心得。 内核编译是痛苦的,不可预料的困难是很多的。 但是我都绕过或者解决了。 我将这些经验分享给大家,希望能有帮助。 内核编译第一步,先安装内核编译的必要工具(需要说明的是我使用Linux的是Ubuntu)apt-get installbuild-essential(安装g,make等)apt-get installlibncurses5-dev(安装make menuconfig时必须的库文件)apt-get installkernel-package,fakeroot(Debian系统里生成kernel-image的一些配置文件和工具)kernel-package可能会出现安装不上的问题,E无效操作kernel-package但是我用aptitude searchkernel后发现有这个安装包,然后将安装包的包名用复制的方式填入命令行,这样就可以安装了。 apt-get installapt-get installinitramfs-tools,module-init-tools(initramfs-tools好像是2.6.17内核以上版本用的,以下的版本用initrd)如果不安装build-essential,就会在make menuconfig时出现error:sys/types.h:No suchfile ordirectory等错误。 如果不安装libncurses,就会出现error:curses.h:No suchfile ordirectory错误。 当初我遇到这个错误时,使用这个aptitude installlibncurses5-dev命令,却找不到安装包。 郁闷的重新设置了源,仍然找不到,无奈之下,只好手动自己安装了。 先下载一个ncurses-5.6.tar.gz,地址是ftp.gnu/pub/gnu/ncurses/ncurses-5.6.tar.gz tarzxvf ncurses-5.6.tar.gz cdncurses-5.6./configureprefix=/usrwith-sharedwithout-debug make make installclean然后再运行make menuconfig就好了,呵呵。 实际上,后来我才发现为什么会找不到这个安装包,居然是因为我的软件源设置的有问题。 配置安装源只需要将好的sources.list复制到/etc/apt下。 然后aptitude update即可实现安装源的更新。 然后再次去查找这些软件包,就能找到了。 内核编译第二步,从网上下载新的内核源码,并解压缩。 比如,将linux-2.6.24.tar.gz复制到/usr/src中tar xzvflinux-2.6.24.tar.gz建立一个ln ln-s linux-2.6.24linux cdlinux makemrproper为编译做准备。 内核编译第三步,make menuconfig来配置。 这是内核编译是否成功的关键,很容易配置不好,导致无法从新内核启动。 常见的错误有Could notopen/lib/modules/4/modules.dep.temp forwriting。 或者然后就在waiting file system处死机。 这些我们先按下不谈。 先说说配置中需要注意什么。 选择处理器Processor typeand features-Processor family-386Ram Disk驱动(在devices driver里)Block devices-RAM disk support (4096)Default RAMdisk size(NEW)Initial RAMdisk(initrd)support文件系统File systems-*Ext3journalling filesystem support*Ext3Security Labels*JBD(ext3)debugging supportBusLogic驱动(devices driver-scsi devicesupport里)SCSI support-SCSI low-level drivers-BusLogic SCSIsupport另外,(Device drivers-ATA/ATAPI/MEM/RLL support中)Include IDE/ATA-2DISK support如果你的/boot是放在IDE硬盘上,那么这里一定要选Y,选M都不行。 否则启动时会出现“waiting forroot filesystem”的提示而停滞不前。 SCSI devicesupport如果有SATA硬盘,就选Y SCSIdisksupport如果你的/boot放在SATA硬盘上,一定要选Y。 PS:最主要的就是filesystem和device中的选择了,如果你不想麻烦,就大部分都选上吧。 ext2和ext3的都要选上。 scsi和SATA,IDE的也都选上。 内核编译第四步,漫长的编译过程。 makemakeinstall makemodules makemodules_install mkdir/lib/firmwar/2.6.24(这一步是需要的,因为如果没有这个,下一步mkinitramfs就会出错,说找不到这个目录。 )/usr/src/linux#/usr/sbin/mkinitramfs-o/boot/initrd.img-.24大概整个编译过程需要持续40分钟到1个半小时不等。 内核编译第五步,修改menu.lst。 gedit/boot/grub/menu.lst复制原来的,只改一下title。 root不改。 kernel改一下/boot/vmlinuz-2.6.24即可,root不动,后面的ro加上,但是把quiet删了,如果加上这个,就不显示启动过程了。 initrd改动为/boot/initrd.img-2.6.24即可。 内核编译第六步,reboot。 如果你编译成功了,那么祝贺你,你太幸运了,一下就编译成功了。 编译不成功才是正常的,呵呵。 我说说我遇到的问题,并如何解决的吧。 最开始是这个错误Could notopen/lib/modules/4/modules.dep.temp forwriting后来在waiting filesystem处死机。 后来感觉menu.lst中的root=/dev/sda1才对。 我在grub中用“E”启动,反复试验,发现VMware确实是应该是sda1,因为原来可以启动的选项,我这样改是可以进入的。 但是我新编译的内核却仍然不行,恍然大悟,很可能是新编译的内核没有选中SCSI设备。 再次重新选择,并编译,还是老错误。 然后就莫名的死机了,但是比刚才的结果又前进了一步。 在困扰了我一天之后,我决定将虚拟机模拟出IDE硬盘,再重新编译内核。 选择custom创建虚拟机,new machine5.选择IDE硬盘。 最后成功了。 呵呵。 但是在我对老版本内核进行编译时,又有了新问题。 编译2.6.16内核时遇到一个小问题,make出现undefined referenceto_stack_chk_fail错误。 我百度了一下,修改了Makefile文件,问题得以解决。 it seemsthat CFLAG-fstack-protector isadd bydefault toour CFLAGSin edgypreventing somekernel tobe build.i manuallyedit theMakefile andadd afterthe line:CFLAGS:=-Wall-Wundef-Wstrict-prototypes-Wno-trigraphs-fno-strict-aliasing-fno-mon to:CFLAGS:=-Wall-Wundef-Wstrict-prototypes-Wno-trigraphs-fno-strict-aliasing-fno-mon-ffreestanding-fno-strict-aliasing-fno-mon-fno-stack-protector CFLAGS+=$(call -option,-fno-stack-protector-all-fno-stack-protector)后来还是没有过,可能是因为g版本过高的原因,现在Ubuntu7.1默认的是4.1版本,我将它降为3.3.6版本了。 降的方法就是,aptitude searchg aptitudeinstall g-3.6然后进入/usr/bin下ln-s g-3.3g最后输入g-version查看,发现g的版本已经倒回去了。 呵呵。 而且老版本里要用mkinitrd而不是mkinitramfs。 郁闷的是,不知道是什么原因,这个版本的编译总是不顺利。 后来我放弃了2.6.16内核,采用了2.6.18的内核,并没有出现这些问题,一次就通过了。 呵呵。 最后是一些Ubuntu下偶尔出现的问题。 /无法获取权限。 $su-root Password:su:Authentication failureSorry.这时候输入$sudo passwdroot Enternew UNIX
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年4月重庆市妇幼保健院部分岗位招聘模拟试卷附答案详解(模拟题)
- 2025江西吉安市吉水县吉瑞招商运营有限公司面向社会招聘1人模拟试卷含答案详解
- 2025贵州省文化和旅游厅所属事业单位第十三届人博会引进人才3人模拟试卷及完整答案详解1套
- 2025贵州惠水县公益性岗位招聘4人考前自测高频考点模拟试题有答案详解
- 2025标准车辆买卖合同模板
- 2025内蒙古鑫和资源投资集团有限责任公司招聘26名模拟试卷含答案详解
- 2025规范的劳动合同样本
- 2025江西九江市武宁县医疗卫生单位招聘劳务派遣人员3人考前自测高频考点模拟试题及1套参考答案详解
- 2025年河北石家庄海关技术中心公开招聘劳务派遣类工作人员2名模拟试卷及参考答案详解1套
- 2025年深圳房地产中介服务合同
- 稳评从业人员培训考试及答案解析
- 2025年度反洗钱阶段考试培训试考试题库(含答案)
- 2025年甘肃省兰州市榆中县招聘乡村医生考试参考试题及答案解析
- 收割芦苇施工方案
- 燃气入户安检课件
- 普通黄金现货购买合同8篇
- 预防静电安全知识培训课件
- 三力测试考试题库及答案视频讲解
- 2025年河南省人民法院聘用书记员考试试题及答案
- 2025年中学教师资格考试《综合素质》核心考点与解析
- 2025党校中青班入学考试试题及答案
评论
0/150
提交评论