linux内核编译+打补丁+内核升级

转自liangxanhai

打补丁如下:

首次cd到内核源码目录,然后

打补丁: patch  -p1 < budingwenjian

卸载补丁: patch -p0 -R <budingwenjian

下载另外版本的内核代码来编译,并且安装,其中遇到很多问题,但是最终总算还是成功的编译完并且安装上了自己编译的内核了。下面是我自己编译内核的方法和步骤,贴出来供有用的人参考参考:

 1、首先下载你想要编译的内核版本:www.kernel.org去下载你想要的版本。

 2、进入root权限把刚下载的内核代码复制到/usr/src目录下面去。

3、在/usr/src目录下面解压刚才下载的内核代码:tar zxvf linux-xxx.xxx,加压完成后进入相应的linux-xx。xx目录,以后的工作都会在这个目录下面完成。

4、开始编译前的工作:配置内核选项:使用命令:make menuconfig   然后再出现的界面中移动鼠标选中file system项目,进入其中,把second extended fs suppor前面的 * 好改成M(修改这个的目的是让在编译内核的时候以模块的方式进行编译,而不是把内核集成到以前的内核中)。

5、接下来就是 使用命令 make 进行编译内核了(这个大概需要一两个小时的时间).

6、等编译内核完成之后就是编译模块并且安装模块了。使用命令:make modules_install

7、安装模块  使用命令:make install

8、创建initrd文件  使用命令:mkinitramfs -o /boot/initrd.img-2.6.21.5 2.6.21.5(后面的数字是自己需要编译的内核的版本,根据自己的版本不同来书写).

9、更新grub来显示自己安装的内核。进入/boot/grub目录,然后输入命令:update-grub即可。

经过以上的步骤,内核基本上已经编译成功并且已经安装上了。

为了看自己的内核是否安装上了可以通过以下步骤来看:进入/boot/grub/目录,然后打开grub.cfg文件,看你自己编译的版本是否已经在里面了,如果在里面了,就说明你自己编译的内核就完成了。这是后重启就可以进入你自己编译的内核里面了。(但是为了选择自己安装的内核或者是选择进入以前系统自带的内核还必须更改/boot/grub/目录下面的文件grub.cfg,把里面的所有的timeout的值都更改成10)。然后重新启动就可以选择了。

以上就是编译和安装自己内核的步骤。

--------------------------------------------------------------------------------------------------------------------

1.到Linux官方网站下载内核,网址为 http://www.kernel.org/

更多关于Linux Kernel的详细信息,或者下载地址请点这里
 
2.解压linux-3.6.6.tar.bz2到工作目录(我在/study下进行,linux-3.6.6.tar.bz2也在该目录下)
 # cd /study
 # tar jxvf linux-3.6.6.tar.bz2
 
3.进入内核目录,执行清理工作
 # cd linux-3.6.6
 # make distclean
 
4.拷贝参考的配置文件到内核目录下,命名为.config
 # cp /boot/config-3.3.4-5.fc17.i686 .config
 
5.启动基于文本模式的菜单型配置界面,不需修改,直接保存退出,即可使.config生效
 # make menuconfig
 
6.编译内核镜像
 # make bzImage
 
7.编译内核模块
 # make modules
 
8.安装内核模块
 # make modules_install
 
9.制作initrd
 # mkinitrd initrd-3.6.6 3.6.6
 (先切换到linux-3.6.6的上一级目录)
 
10.拷贝内核镜像bzImage和initrd到/boot
 # cp initrd-3.6.6 /boot
 # cp linux-3.6.6/arch/x86/boot/bzImage /boot/vmlinuz-3.6.6
 (处于linux-3.6.6的上一级目录)
 
11.修改grub配置文件,添加新的启动项
 # cd /boot/grub2
 # vi grub.cfg
 复制该配置文件中的以下内容
 
### BEGIN /etc/grub.d/10_linux ###
 menuentry 'Fedora Linux' --class fedora --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-c6063f22-ac4c-4245-8e20-a826ba86e6d2' {
 load_video
 set gfxpayload=keep
 insmod gzio
 insmod part_msdos
 insmod ext2
 set root='hd0,msdos1'
 if [ x$feature_platform_search_hint = xy ]; then
 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' c6063f22-ac4c-4245-
 
8e20-a826ba86e6d2
 else
 search --no-floppy --fs-uuid --set=root c6063f22-ac4c-4245-8e20-a826ba86e6d2
 fi
 echo 'Loading Linux 3.3.4-5.fc17.i686 ...'
 linux /boot/vmlinuz-3.3.4-5.fc17.i686 root=UUID=c6063f22-ac4c-4245-8e20-a826ba86e6d2 ro rd.md=0 rd.lvm=0 rd.dm=0 SYSFONT=True KEYTABLE=us rd.luks=0
 
LANG=en_US.UTF-8 rhgb quiet
 echo 'Loading initial ramdisk ...'
 initrd /boot/initramfs-3.3.4-5.fc17.i686.img
 }
 
.......(省略的部分不必复制)
 ### END /etc/grub.d/10_linux ###
 
将以上内容作以下修改(grub选项名称、引导时的显示文字、内核镜像、初始化RAM磁盘)
 menuentry 'Fedora Linux' 改为
 menuentry 'Fedora Linux (linux-3.6.6)' 改为
 
Loading Linux 3.3.4-5.fc17.i686 ... 改为
 Loading Linux 3.6.6
 
linux /boot/vmlinuz-3.3.4-5.fc17.i686 改为
 linux /boot/vmlinuz-3.6.6
 
initrd /boot/initramfs-3.3.4-5.fc17.i686.img 改为
 initrd /boot/initrd-3.6.6
 
12.保存该配置文件后重启计算机,即可看到新的启动项
 # reboot






你可能感兴趣的:(工作,File,System,linux内核)