Linux内核的配置与编译(x86平台)

本文提供了一步一步指导如何配置、编译Linux内核,包括装载参考文件、执行makemenuconfig命令进行调整,以及最终安装内核的过程。详细介绍了编译内核、编译内核模块、制作initramdisk以及安装内核的方法,同时解释了为何更换内核后Linux文件系统不会改变的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 内核的配置

   1.装载所要参考的结果文件:执行命令make menuconfig ,选择装载那一项,退出然后选择yes保存。

     (1)装载前的准备工作:首先将你要装载的参考的结果文件(.config)cp到含有make menuconfig(makefile)文件的目录下(即所下载Linux内核目录下)。

     (2)注意事项:

              a.你的Linux系统必须已经安装了Ncurses然后才能执行make menuconfig命令,否则系统会报错。如何安装 Ncurses呢?挂载你安装的Linux镜像文件后,在Packages目录下可以找到RPM包,然后点击直接安装即可(我遇到这个问题是把Package下的每个Ncurses安装包都安装了,然后问题就解决了)。

              b.PC平台的参考结果文件在/boot目录下

                 ARM平台的参考结果文件在arch/arm/configs目录下

   2.基于1中的结果执行make menuconfig命令进行小的调整,不需要的内核功能的代码。

二 内核的编译

   1.编译内核:执行make bzImage命令(大概执行5分钟左右)
      (1)如果想获取详细编译信息和执行命令make bzImage V=1
      (2)编译好的内核位于arch/(cpu)/boot/目录下
   2.编译内核模块:执行make modules来编译内核模块。
               执行make modules_install来将编译好的内核模块(以*.ko、*.fw、*.bin、*.cis等结尾的文件),从内核源代码目录cp到/lib/modules/下,为打包做好准备。
   3.制作init ramdisk(即打包编译好的内核模块代码)
         (1) 执行命令mkinitrd initrd-$version $version。
              注意:该命令initrd-$version是你给你要打包的版本命的名字,$version是你要打包的版本。
          例:mkinitrd rd-2.6.39.1 2.6.39.1

三.安装内核

     1.将编译后的Linux内核镜像文件bzImage复制到 x86平台的/boot/目录下:
         执行命令cp arch/x86/boot/bzImage /boot/vmlinuz-$version
         命令解释:arch/x86/boot/bzImage是bzImage文件的位置
                           /boot/vmlinuz-$version是复制到boot目录下并给该内核版本命名为vmlinuz-$version
     2.将编译后的Linux内核模块(即打包后的文件initrd-$version)复制到/boot/目录下:
         执行命令cp initrd-$ersion /boot/    
     3.修改/etc/grup.conf
           执行命令vi /etc/grup.conf,将内核版本改为你所复制的版本。
     4.执行reboot重启系统,重启时按下回车键,选择你所安装的内核版本,重启成功,安装完成。
       说明:
           (1)复制到/boot/的原因:因为Linux系统启动是会从boot下找这些文件。
           (2)为什么更换内核后Linux文件系统没有变?
                    因为用户空间(文件系统)存储在硬盘(或者flash)中,而内核文件存储在内存中,所以更换内核,文件系统不会变。无论以前的内核,还是现在的内核,其访问的是同一个文件系统。

四 清理内核:  
           1.make clean :该命令只清理编译内核产生的*.o中间文件

           2.make distclean:该命令可以清理配置内核产生的.config和编译内核产生的*.o文件。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值