您的位置:首页 > 其它

内核编译 安装

2011-06-08 18:32 204 查看
1. 查看当前linux内核的版本号,使用命令uname -r或uname -a ,得出当前linux内核的版本号为linux-2.4.20-8。
2. 下载源码包linux -2.4.30.tar.bz2。拷贝到目录/usr/src
3. 进入/usr/src目录,使用命令对linux -2.4.30.tar.bz2软件包进行解包bzip2 –xvfj linux -2.4.30.tar.bz2 。
4. 执行make mrproper命令,这个步骤会删除/usr/srclinx-2.4.30目录中不稳定的 .o文件,附属文件以及内核配置文件。
5. 进行内核选项设置。make config :这是文字模式的设置方式,它以逐项问答的方式进行,若是答错了任何一个项目,都必须重新再设置一次。make oldconfig; 完全使用旧的内核功能设置,若不需要办更内核功能,应该使用这种方法。make menuconfig; 这是文字模式的设置方式,它包含一个菜单以设置内核编译选项。make xconfig; 这是图形界面的设置方式,make menuconfig的选项设置。

以下是配置举例(可用make menuconfig等命令):

网卡配置:
Network device support --->
Ethernet (10 or 100Mbit) --->
[*] Ethernet (10 or 100Mbit)
[*] EISA, VLB, PCI and on board controllers
<*> DECchip Tulip (dc21x4x) PCI support

USB support--->
<*> Support for USB
[ ] USB verbose debug messages
--- Miscellaneous USB options
[*] Preliminary USB device filesystem
--- USB Host Controller Drivers
<*> UHCI Alternate Driver (JE) support
< > OHCI (Compaq, iMacs, OPTi, SiS, AL
--- USB Device Class drivers
< > USB Audio support
< > USB MIDI support
<*> USB Mass Storage support
<*> USB Modem (CDC ACM) support
--- USB Human Interface Devices (HID)
<*> USB Human Interface Device (full HID) support

Input core support --->
<M> Input core support
<M> Keyboard support
<M> Mouse support
(1024) Horizontal screen resolution (NEW)
(768) Vertical screen resolution (NEW)
< > Joystick support
< > Event interface support
< > User level driver support

File systems--->
[*] Quota support
<*> VFS v0 quota format support
<M> Kernel automounter version 4 support
<M> Ext3 journalling file system support

File systems--->Native Language Support--->
<*> NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)
<*> NLS UTF8

Networking options-->
<*> Packet socket
[*] Packet socket: mmapped IO
<*> Netlink device emulation
[*] Network packet filtering (replaces ipchains)
[ ] Network packet filtering debugging (NEW)
[*] Socket Filtering
<*> Unix domain sockets
[*] TCP/IP networking
[*] IP: multicasting
[*] IP: advanced router
[*] IP: kernel level autoconfiguration
[*] IP: DHCP support
IP: Netfilter Configuration --->全部选为M
6. 在完成以上的全部设置后,系统会响应信息,并提示需执行make dep命令,make dep命令用来连接linux程序代码与数据库。
7. 在连接程序代码与函数库后,必须删除不必要的模块和文件,可以执行命令make clean。
8. 在完成以上的两个步骤后,接下来是最费时的内核编译过程。通常内核编译的方法有以下三种:make bzImage 这是最常用的编译方法,在利用此法编译后,系统会在/usr/src/linux-2.4.30/arch/i386/boot目录下产生内核程序文件zImage。 make bzlilo这个方法除了会编译内核程序文件外,还会在lilo中设置相关的设置。 make bzdisk 这个方法除了会编译内核程序文件外,还会制作一张不含lilo的引导盘。我做这个实验时使用了make bzImage命令,完成命令后系统会在 /usr/src/linux-2.4.30/arch/i386/boot下生成一个名为bzImage的核心文件。
9. 在内核编译完成后,使用命令make modules 开始编译外挂模块,然后使用命令make modules_install安装编译完成的模块。最后使用命令depmod –a建立模块连接。
10. 在内核编译后并不表示已经完成了所有工作,接下来必须更换新的内核了,建议不要覆盖原有核心,而是安装为双启动:一是以防万一不成功,还可以用旧核心启动。二是学习配置几种启动方式,有时是需要的。将当前目录(/usr/src/linux-2.4.30)下编译好的核心文件改名-复制到/boot目录下,cp /usr/src/linux-2.4.30/System.map /boot/System.map-2.4.30;cp /usr/src/linux-2.4.30/arch/i386/boot/bzImage /boot/vmlinuz-2.4.30, 删除vmlinuz、System.map符号连接,建立新的符号连接,因为我们是使用双内核启动,所以就不删除vmlinuz、System.map符号连接,建立新的符号连接。
11. 这是整个内核编译的作后步骤了—修改引导文件的内容,我们使用的red hat linux 9使用的是GURB引导程序,所以我们要使用vi编辑/boot/grub/grub.conf文件。没有经过修改的原文件内容
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,2)
# kernel /boot/vmlinuz-version ro root=/dev/hda3
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=1
timeout=20
splashimage=(hd0,2)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-8)
root (hd0,2)
kernel /boot/vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /boot/initrd-2.4.20-8.img
修改这个文件就是在这个文件中加入linux-2.4.30的引导程序,根据linux-2.4.20-8的引导程序,可以在此文件中加入以下的内容:
title Red Hat Linux (2.4.30)
root(hd0,2)
kernel /boot/vmlinuz-2.4.30 ro root=/dev/hda3
接下来还要把文件中的 default选项的值修改为1,因为是双内核选择启动,保存此文件退出。
12. reboot 重新启动Linux。重新启动后进入red hat linux GRUB开机管理程序窗口,在此窗口会出现两个内核启动,一个是原内核即linux-2.4.20-8,一个是我们新编译的内核即linux-2.4.30,选择内核linux-2.4.30进入系统。
13. 到此为止,此次实验已经做完。但是由于我从老师那里下载到升级内核的patch-2.4.31.bz2软件包,所以决定继续升级自己的内核,首先将升级patch-2.4.31.bz2软件包下载到自己的机器,并制成 .iso格式的文件,linux挂接cdrom将patch-2.4.31.bz2软件包拷贝到/usr/src目录(cp /mnt/cdrom/patch-2.4.31.bz2 /usr/src)并进入该目录,先使用命令less /src/linux-2.4.30/Makefile查看没有升级前的内核版本号在此文件第二行可是看出SUBLEVEL=30,然后使用命令bzip2 –dc ../patch-2.4.31.bz2 | patch –p1 ,这时系统会自动升级内核,此命令执行完后,再次查看升级后的版本号得出SUBLEVEL=31,这说明升级成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: