科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件VMware中Linux内核2.6.14.4编译全过程

VMware中Linux内核2.6.14.4编译全过程

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

久就开始尝试编译Linux内核,但是总是遇到不少的问题,经过几十次的编译,直到现在才解决,人都要崩溃了。所以干脆把这个过程写出来,希望在你遇到同样问题的时候少走点弯路。

作者:水手 来源:CSDN 2008年3月26日

关键字: 内核 Linux VMware 开源

  • 评论
  • 分享微博
  • 分享邮件

很久就开始尝试编译Linux内核,但是总是遇到不少的问题,经过几十次的编译,直到现在才解决,人都要崩溃了。所以干脆把这个过程写出来,希望在你遇到同样问题的时候少走点弯路。我用的是Red Hat Linux 9. 内核版本是2.6.14.4

 

先到kernel.org去下载新的内核,然后解开到/usr/src/linux目录下,注意一定要在Linux下解开,如果是在Windows下的话会遇到问题(我就上了这样的当,郁闷了很久才找到原因)

cd /usr/src/linux

 

make mrproper  #清除目录下所有和先前生成内核时候产生的中间文件

make menconfig  #内核配置

 

注意在vmware下有以下几个必须选中否则编译将会遇到问题(参考http://bbs.chinaunix.net/forum/4/050622/566229.html)

 

Device Drivers  --->SCSI device support  ---><*>   SCSI disk support

Device Drivers  --->SCSI device support  --->SCSI low-level drivers  ---> <*> BusLogic SCSI support

Device Drivers  ---> Fusion MPT device support  ---><M> Fusion MPT (base + ScsiHost) drivers<M>   Fusion MPT misc device (ioctl) driver(这个不确定)

Device Drivers  ---> USB support  ---><*>   USB Mass Storage support

Device Drivers  ---> Networking support  --->Ethernet (10 or 100Mbit)  ---> <*>   AMD PCnet32 PCI support

 

2.6 make dep 可以不用了             #依赖性和完整性检测

 

make bzImage           #产生压缩内核

cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmkernel

make modules        #编译可加载模块

make modules_install     #安装模块

 

以上过程可能比较消耗时间,我每次编译都用了超过1小时的时间。.

如果BusLogic SCSI suppor选择的是M,就还要运行

mkinitrd  /boot/newkernel.img 2.6.14.4  #制作img文件和预加载模块

 

BusLogic SCSI support我选择的是*,所以就不用运行mkinitid命令了.

 

修改配置文件

我用的是grub,在/etc/grub.conf后添加以下语句

title New Kernel (2.6.14.4)

        root (hd0,0)

        kernel /newkernel ro root=/dev/sda2

        #initrd /newkernel.img

BusLogic SCSI support 如果你选的M,你还得把#initrd /newkernel.img前的#去掉.

然后重新启动。

 

我也用lilo试过

/etc/lilo.conf后添加以下语句

image=/boot/newkernel

        label=New

        #initrd=/boot/newkernel.img

        read-only

        append="root=/dev/sda2"

同样BusLogic SCSI support 如果你选的M,你还得把#initrd=/boot/newkernel.img前的#去掉.

运行lilo命令,然后重新启动。

 

问题

1.       No rule to make target `net/ipv4/netfilter/ipt_TOS.c', needed by `net/ipv4/netfilter/ipt_TOS.o'.  Stop.

上面提到了,如果你是在Windows下解开Linux内核的话就会遇到这个问题,因为Windows不区分文件大小写,ipt_TOS.cipt_tos.cWindows中是一回事,就被替换掉了,改在Linux下解开它就没有问题了。

2.       不能挂接根文件系统

修改配置文件把根文件系统改成具体的设备文件,不要使用LABEL标签

 

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章