收藏 分享(赏)

Linux内核的编译,安装与问题处理.doc

上传人:hwpkd79526 文档编号:8202602 上传时间:2019-06-13 格式:DOC 页数:7 大小:74.50KB
下载 相关 举报
Linux内核的编译,安装与问题处理.doc_第1页
第1页 / 共7页
Linux内核的编译,安装与问题处理.doc_第2页
第2页 / 共7页
Linux内核的编译,安装与问题处理.doc_第3页
第3页 / 共7页
Linux内核的编译,安装与问题处理.doc_第4页
第4页 / 共7页
Linux内核的编译,安装与问题处理.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、目录1、从 linux2.4 内核升级到 linux2.6 内核的步骤 .12、 RPM 无法使用的问题 63、英文版 RedHat 无法显示中文字体的问题 .64、内核升级后出现 CD 无法挂载的情况 71、从 linux2.4 内核升级到 linux2.6 内核的步骤本文的具体工作是将 linux2.4.20-8 升级到 linux2.6.15.5 的步骤,升级到其它 2.6.x 版本的与此类似。一、准备工作首先说明,下面带#号的行都是要输入的 命令行,且本文提到的所有命令行都在终端里输入。启动 Linux 系统,并用根用户登录,进入终端模式下。1、查看 Linux 内核版本# uname

2、 -a如果屏幕显示的是 2.6.x,说明你的已经是 2.6 的内核,也用不着看下文了,该干什么干什么去吧!如果显示的是 2.4.x,那恭喜你,闯关通过,赶快进行下一步。2、下载 2.6 内核源码下载地址:http:/www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.15.5.tar.bz23、下载内核升级工具由于 linux2.6 内核的内核模块处理过程有所改变,因此 linux2.4 内核下的 modutils 工具包已经不再适合 linux2.6 内核,需要下载较新版本的 module-init-tools 和 modutils,笔者下载的是 m

3、odule-init-tools-3.2.2.tar.bz2 和 modutils-2.4.5-1.src.rpm(1)下载 module-init-tools-3.2.2.tar.bz2http:/www.kernel.org/pub/linux/utils/kernel/module-init-tools/(2)下载 modutils-2.4.5-1.src.rpm 的地址是http:/www.kernel.org/pub/linux/utils/kernel/modutils/v2.4/其安装步骤为:#rpm -e -nodeps modutils (强行卸载原有的 modutils R

4、PM 包)#rpm -ivh modutils-2.4.5-1.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.5-1.i386.rpm 和 modutils-debuginfo-2.4.5-1.i386.rpm 二进制 RPM 包)(3)下载 mkinit

5、rd-4.1.18-2.i386.rpmhttp:/ lvm2-2.00.25-1.01.i386.rpmhttp:/ device-mapper-1.00.19-2.i386.rpmhttp:/ 内核和 4 个升级工具都下载完了(少一个也不行,如果没有下载齐全,请不要尝试下面的步骤,升级是不会成功的),下面回到 Linux 系统中开始配置工作吧。4、将下载好的内核源码包和 4 个升级工具都拷贝到/usr/src 文件夹下。怎么拷贝就不用我教了吧不会拷贝的去撞墙吧!呵呵!5、拷贝完毕,开始解压新内核,具体操作请依次执行以下命令:# cd /usr/src (进入到/usr/src 目录下,如果

6、已经在/usr/src 目录下,可不执行该命令)# rm rf linux (删除 linux 文件夹。值得一提的是,如果内核先前从未编译过,则没有这个文件夹,此命令行可略过)# tar jvxf linux-2.6.15.5.tar.bz2 (解压新内核)# ln -s linux-2.6.15.5 linux (重新生成 linux 文件夹)6、安装 module-init-tools 工具在/usr/src 目录下,依次执行下列命令:# tar jvxf module-init-tools-3.2.tar.bz2 (解压 module-init-tools)# cd module-ini

7、t-tools-3.2 (由/usr/src 目录进入 module-init-tools 目录下)#./configure -prefix=/# make moveold# make all install#./generate-modprobe.conf /etc/modprobe.conf7、安装另外三个升级工具回到/usr/src 目录下,依次执行下列 3 个命令来安装另外三个升级工具:# rpm -ivh -nodeps mkinitrd-4.1.18-2.i386.rpm (注意,这里一定要加入-nodeps 参数,下同)# rpm -ivh -nodeps lvm2-2.00.2

8、5-1.01.i386.rpm# rpm -ivh -nodeps device-mapper-1.00.19-2.i386.rpm如果不更新以上几个升级包,在后面编译内核时会提示以下错误:mkinitrd failedmake1: * install Error 1make: * install Error 28、配置内核选项。有点繁琐,希望一次成功哦 。# cd linux-2.6.15.5 (进入到/usr/src/linux-2.6.15.5 目录下)# make mrproper (该命令可确保源代码目录下没有不正确的.o 文件)# make menuconfig (配置内核各选项

9、)此时会出现一个图形界面,列出了所有的内核配置选项,有的选项下还有子选项,你可以用方向键来选择,用 Y 键来确定。经过我多次试验,大多数选项默认就行,以下几个选项必须选择(请认真核对下面每一个选项,否则编译很有可能前功尽弃):(1)Loadable Module support 选项中,选上“Module unloading”和“Automatic kernel module loading”这两项;(2)Device Drivers-Block Devices 中选上“Loopback device support”;Device Drivers-Multi-device support(R

10、AID and LVM)处要选上“device mapper support”;Device Drivers-Graphics support,一定要选上“ Support for frame. buffer devices”;Device Drivers -USB support -选上“USB Mass Storage support”(如果是在实环境中,想要更多 USB 支持,就全选吧。我的是在虚拟机中,用不着了)Device Drivers -;Network device support -Ethernet (10 or 100Mbit) - AMD PCnet32 PCI supp

11、ort(3)File system-(以下 9 个选项是关于 ext2 和 ext3 文件系统配置,全部选上)Second extended fs supportExt2 extended attributesExt2 POSIX Access Control ListsExt2 Security LabelsExt3 journalling file system supportExt3 extended attributesExt3 POSIX Access Control ListsExt3 Security LabelsJBB (ext3) debugging supportFile

12、system-DOS/FAT/NT Filesystems -选上“NTFS file system support”;注意:ext2 和 ext3 文件系统配置很重要,也是必需的,如果对 Ext3、 Ext2 文件的支持不直接编译进内核,在你 reboot 时机器就会当掉,出现如下错误信息:kernel panic : no init found ,try passing init = option to kernel.或者是:VFS:Cannot open root device “hdxy“ or unknow-block(0,0)Please append a correct “roo

13、t=“ boot optionkernel panic:VFS:Unable to mount root fs on unknown-block(0,0)或者是:mount: error 19 mounting ext3pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2umount /initrd/proc fail: 2Freeing unused kernel memory: 244k freedKernel panic not syncing: No init found. Try passing init = option

14、 to kernel(我的机器就是在重启之后出现第三种错误,进不去系统,郁闷死,只好重装了如果依照本文做完所有步骤,当你重启 Linux 系统后,若不幸进不去 2.6.18 内核,你会发现你的出错信息就是上面三种了哈!)(4)如果你在 vmware 下编译内核,硬盘用的是 scsi 的,以下三个选项必选:Device Drivers -SCSI device support (此项不选的话,下面两项就选择不上 )Device Drivers -SCSI device support -SCSI disk supportDevice Drivers-SCSI device support-SCS

15、I low-level drivers-; BusLogic SCSI support三、编译工作OK,繁杂的配置工作完成了,至此,编译前的准备工作都做好了!9、开始编译啦在/usr/src/linux-2.6.15.5 目录下,执行以下命令即可编译。编译需要一段时间,给自己倒杯茶耐心等候吧!# make dep (建立编译时所需的从属文件。注意:如果内核从未编译过,此步可跳过)# make clean (清除内核编译的目标文件。注意:如果内核从未编译过,此步可跳过)# make bzImage (注意大小写。这一步才是真正编译内核)内 核编译成功后,会在/usr/src/linux/arch

16、/i386/boot 目录中生成一个新内核的映像文件 bzImage。如果用 make zImage 编译,内核很大的话,系统会提示你使用 make bzImage 命令来编译,所以我直接用 make bzImage 来编译。# make modules (编译可加载模块)# make modules_install (安装可加载模块)安装成功后,系统会在/lib/modules 目录下生成一个 2.6.15.5 子目录,里面存放着新内核的所有可加载模块。# make install (安装新内核)注意:make install 的时候可能会出现如下错误信息:No module BusLogi

17、c found for kernel 2.4.20-8mkinitrd failed此问题一般只出现在 SCSI 硬盘VMWARE+REDHAT 架构中,因为 BusLogic 被编译进了内核而不是一个 module 的形式(2.4 内核的 Buslogic 模块即使静态编译进内核也不行)。解决方式是直接将BusLogic.o 文件复制过去:# cp /usr/src/linux-2.6.15.5/drivers/scsi/BusLogic.o /lib/modules/2.6.15.5/kernel/drivers/scsi不过别忘记,复制过后再执行一下 make install。这一步若卡

18、住了,下面的都无法进行。四、启动新内核10、将新内核和 System.map 文件拷贝到/boot 目录下,依次执行以下命令:# cp /usr/src/linux-2.6.15.5/arch/i386/boot/bzImage /boot/vmlinuz-2.6.15.5# cp /usr/src/linux-2.6.15.5/System.map /boot/System.map-2.6.15.5# cd /boot (进入 boot 目录)# rm rf System.map (删除原来的连接)# ln s System.map-2.6.15.5 System.map (重新建立连接 )

19、11、修改 Grub 启动管理器如果没有错误的话, 下面开始修改 grub 配置文件(不要告诉我你用的 lilo)在/boot 目录下,执行以下命令:# new-kernel-pkg -mkinitrd -depmod -install 2.6.15.5 (这时候你的/boot 下会生成一个initrd-2.6.15.5.img,并且你的 grub.conf 文件也作了相应更改)# df (查看根目录在那个分区,下一步要用到。注意,这里根分区不时 boot 的那个 50M 的分区,而一般是你最大的那个分区,也就是“/”,千万不要搞错哦。我的为 /dev/sda1)# vi /etc/grub.

20、conf进入 grub.conf 文件,找到如下信息:default=1timeout=10splashimage=(hd0,0)/grub/splash.xpm.gztitle Red Hat Linux (2.6.18)root (hd0,0)kernel /vmlinuz-2.6.18 ro root= LABEL=/initrd /initrd-2.6.18.img做两处修改:(1) 将 default=1 改为 default=0(不改的话也可以,只不过重启之后会默认进入 2.4 内核)(2) 将 kernel 行的 “LABEL=/”换成根目录所在的分区(上一步查看的就是)此步很重

21、要,修改错误将可能导致进不去系统,我把我修改后的 grub.conf 文件列出来,不明之处,可以对照修改:default=0timeout=10splashimage=(hd0,0)/grub/splash.xpm.gztitle Red Hat Linux (2.6.18)root (hd0,0)kernel /vmlinuz-2.6.15.5 ro root=/dev/sda1initrd /initrd-2.6.15.5.imgtitle Red Hat Linux (2.4.20-8)root (hd0,0)kernel /vmlinuz-2.4.20-8 ro root=LABEL=

22、/initrd /initrd-2.4.20-8.img12,OK,大功告成!赶快重启,看看升级后的 2.6 内核吧另外需要注意的是,如果使用虚拟机,必须在虚拟机下解压,不能在 windows 下解压,否则不能编译通过。2、RPM 无法使用的问题You get following or error while Rebuilding RPM database:=rootwww root# rpm rebuilddbrpmdb: unable to join the environmenterror: db4 error(11) from dbenv-open: Resource temporar

23、ily unavailableerror: cannot open Packages index=SOLUTION:Try This:=rootwww root# rm -f /var/lib/rpm/_db*rootwww root# echo “%_dbi_cdb create private cdb mpool mp_mmapsize=16Mb mp_size=1Mb” /etc/rpm/macrosrootwww root# rpm rebuilddb=PLEASE NOTE: This Fix Is Only For RedHat OS3、英文版 RedHat 无法显示中文字体的问题

24、从如下网站下载一个 RPM 包装上即可:http:/ ftp.rediris.es ttfonts-zh_CN-2.14-6.noarch.rpm ftp.rediris.es ttfonts-zh_CN-2.14-6.noarch.rpm ftp.rediris.es ttfonts-zh_CN-2.14-6.noarch.rpm ftp.rediris.es ttfonts-zh_CN-2.14-6.noarch.rpm ftp.icm.edu.pl ttfonts-zh_CN-2.14-6.noarch.rpm ftp.icm.edu.pl ttfonts-zh_CN-2.14-6.no

25、arch.rpm ftp.icm.edu.pl ttfonts-zh_CN-2.14-6.noarch.rpm ttfonts-zh_CN-2.14-6.noarch.rpm ftp.icm.edu.pl ttfonts-zh_CN-2.14-6.noarch.rpm ftp.sunet.se ttfonts-zh_CN-2.14-6.noarch.rpm ftp.sunet.se ttfonts-zh_CN-2.14-6.noarch.rpm ftp.sunet.se ttfonts-zh_CN-2.14-6.noarch.rpm ftp.sunet.se ttfonts-zh_CN-2.

26、14-6.noarch.rpm ftp.is.co.za ttfonts-zh_CN-2.14-6.noarch.rpm ftp.is.co.za ttfonts-zh_CN-2.14-6.noarch.rpm ftp.is.co.za ttfonts-zh_CN-2.14-6.noarch.rpm ftp.is.co.za ttfonts-zh_CN-2.14-6.noarch.rpm 4、内核升级后出现 CD 无法挂载的情况升级内核后如果无法使用光驱则先试一下: mount /dev/cdrom /mnt/cdrom 要是不行就用这条命令:modprobe ide-cd 然后再用上面那条命令。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报