您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页linux内核编译的详细步骤

linux内核编译的详细步骤

来源:意榕旅游网
实验四 编译Linux内核

实验内容:

完成Linux内核2.6系列的编译,编译后的新内核能成功运行即可。

实验要求:

在编译过程中,记录遇到的问题及解决方法,实验结束后将这部分内容写到实验报告中(实验报告格式另附)。

实验开始前,请认真阅读实验指导及实验报告中的思考题,边思考边完成实验。

实验详细步骤:

Linux内核编译(以2.6.17.10为例)

以下的编译过程是在vmware workstation 5.5.1中的Red Hat Linux 9(内核版本2.4.20-8)中完成的。 编译内核需要root权限,以下操作都假定你是root用户。

一、编译前准备

1)下载内核源代码,如:linux-2.6.17.10.tar.bz2 ,网址:http://kernel.org/pub/linux/kernel/v2.6/ 2)下载最新版本的module-init-tools ( \"module-init-tools-3.0.tar.gz\" and \"modutils-2.4.21-23.src.rpm\" )

http://www.kernel.org/pub/linux/kernel/people/rusty/modules/module-init-tools-3.0.tar.gz http://www.kernel.org/pub/linux/kernel/people/rusty/modules/modutils-2.4.21-23.src.rpm

注:为方便同学们完成实验,所需要的软件包及源代码已下载到/root/linux-kernel目录中。

3)安装modutils-2.4.21-23.src.rpm。可能会看到\"user rusty and group rusty not existing\"的警告,没关系,只需强制安装就是了。如果你不对Redhat 9做这几步,将会在\"make modules_install\"这一步时出现问题。

# rpm -e --nodeps modutils (强行卸载原有的modutilsRPM包) # cd /root/linux-kernel (自己创建的目录linux-kernel,下载的modutils-2.4.21-23.src.rpm就放在该目录下)

# rpm -ivh modutils-2.4.21-23.src.rpm (把源代码包安装到了/usr/src/redhat目录下) # cd /usr/src/redhat/SPECS (进入规范文件目录下) # rpmbuild -bb modutils.spec (生成二进制的RPM包) # cd ../RPMS/i386 (转入刚生成的二进制的RPM包所在位置)

# rpm -ivh modutils*.rpm (刚生成两个[modutils-2.4.21-23.i386.rpm与modutils-debuginfo- 2.4.21.23.i386.rpm]二进制的RPM包,一起安装吧!)

4)安装module-init-tools。它会替代depmod [/sbin/depmod]和其他工具。

# cd /root/linux-kernel (自己创建的目录linux-kernel,下载的module-init-tools-3.0.tar.gz就放在该目录下)

# tar -zxvf module-init-tools-3.0.tar.gz (或:tar -jxvf module-init-tools-3.0.tar.bz2 ) # cd module-init-tools-3.0 # ./configure --prefix=/sbin # make

# make install

# ./generate-modprobe.conf /etc/modprobe.conf

5)将新版本内核linux-2.6.17.10.tar.bz2拷贝到/usr/src目录中,解压,并为目录linux-2.6.17.10创建符号链接linux。

# cd /root/linux-kernel (自己创建的目录linux-kernel,下载的内核源代码就放在该目录下)

1

# cp linux-2.6.17.10.tar.bz2 /usr/src # cd /usr/src

先查看一下当前/usr/src的内容,注意到有一个linux-2.4的符号链接,指向一个linux-2.4.20-8(以REDHAT 9为例)的目录。这就是你所装的Red Hat Linux 9的kernel源代码。 现在解压我们下载的源程序文件:

# tar -xjvf linux-2.6.17.10.tar.bz2

文件默认将解压到/usr/src/linux-2.6.17.10目录中。然后为它创建一个符号链接linux:

#ln -s linux-2.6.17.10 linux

6) # cd /usr/src/linux

7) 如果你多次使用了这些源程序编译内核,请执行make mrproper命令。由于我们使用刚下载的完整的源程序包进行编译,所以本步可以省略。

二、开始编译

1. 配置内核 # make xconfig

说明:√表示将该功能编译进内核, • 表示编译成模块。 注意:在Vmware下必须选以下选项,否则编译要出问题: File systems  (√)ext3 journaling file system support

Device Drivers  SCSI device support (√)SCSI device support (√) SCSI disk support

Device Drivers SCSI device support (√)SCSI device support  SCSI low-level drivers (√)BusLogic SCSI support

Device Drivers ---> Network device support --->Ethernet (10 or 100Mbit) --->(√)AMD PCnet32 PCI support

保存所做的修改,退出。

2. 编译

# make

# make bzImage或make zImage # make modules

# make modules_install

 make bzImage和make zImage实现完全编译内核,二者生成的内核都是使用gzip压缩的,只要使用一个就够了,它们的区别在于使用make bzImage可以生成大一点的内核,比如在编译2.6版本的内核时如果使用make zImage命令,那么就会出现system too big的错误提示。建议大家使用make bzImage命令。

后面两个命令只有在你进行配置的过程中,在回答Enable loadable module support (CONFIG_MODULES)时选了\"Yes\"才是必要的,make modules和make modules_install分别生成相应的模块和把模块拷贝到需要的目录中。

3. 安装内核 # make install

这里如果出现 \"NO MODULE BUSLOGIC FOUND\",解决方法 :

编辑文件 /etc/modules.conf

将\"alias scsi hostadapter BusLogic\"这行注释掉, 即#alias scsi hostadapter BusLogic 保存 /etc/modules.conf,退出 。 再重新执行 make install 。 4. 重启,使用新的内核。

5. 系统重新启动以后,可用uname –r命令查看内核的版本号。

2

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务