配置,编译,安装内核

来源:互联网 发布:java服务器端部署 编辑:程序博客网 时间:2024/06/14 12:27

这个过程是针对电脑版的ubuntu 12.04LTS。

1.下载内核。 www.kernel.org

2.配置内核  make menuconfig or make xconfig. make defconfig是默认配置。

3.编译前clear等。好几个命令:   

     确定依赖性:建立模块间的依赖信息

      make dep

  清除编译中间文件 :删除配置时留下的一些不用的文件
            make clean 
  

 (清除以前曾经编译过的旧文件,如果你是第一次编译,可不执行)  

          make mrproper  

4.编译。这个地方花样非常多。

   4.1 先试试第一种路径:http://blog.chinaunix.net/uid-25381054-id-3261796.html

  执行: make     (编译,可以加-j4,如果你CPU是双核心,够牛的话,因为可以提高速度)
  然后:sudo make install  
  再: make modules  (编译模块)
  再:sudo make modules_install  (安装模块)

  通过以上步骤,就可以实现自动更新grub配置文件,重新启动即可进入新内核,若有问题,进入老内核即可。

  编译的时候如果出错,就make clean或者make distclean一下。

 我遇到的错误是“No rule to make target `include/config/auto.conf',needed by `include/config/kernel.release'.”,这是因为.config文件没了,这个是你配置完内  核后的产物。没了我就make oldconfig, 回答了一些问题后,.config出来了。

  事实发现不是那么回事,问题依旧存在。上网搜,很多帖子是教人怎么编译安装内核的,但是方法貌似非常的多样。然后把报错信息贴上去继续搜,最后找到一点有用的。

  http://www.2eggs.org/archives/191 很感谢提供了思路。

今天编译kernel报了一个莫名其妙的错误:*** Error during update of the kernel configuration.make[2]: *** [silentoldconfig] 错误 1make[1]: *** [silentoldconfig] 错误 2CHK     include/linux/version.hmake[1]: “include/asm-arm/mach-types.h”是最新的。make: *** 没有规则可以创建“include/config/kernel.release”需要的目标“include/config/auto.conf”。 停止开始搞不懂为什么,冷静下来,稍微想了一下,恍然大悟。原因就在于ubuntu用户的切换。过程是这样的:我先用”sudo -s”切换到root用户,在root下面进行make,这就导致了make生产的配置文件owner是root。后来因为要使用git远程更新代码,于是exit到了普通用户。更新完代码之后,我就直接在普通用户下make kernel,然后就报错了。知道原因后,解决这个问题的方法就很显然了:1、切回到root去make kernel。2、change整个kernel目录下所有文件及文件夹的权限和owner。

然后就更改权限吧。 用chown命令。注意:chmod命令是用来更改文件的读写权限的,chown是更改该文件的owner的。chown命令实例:

例1:把文件shiyan.c的owner改为wang。

$ chown wang shiyan.c

例2: 把目录/his及其下的所有文件和子目录的owner改为wang,属组改为users。

$ chown -R wang.users /his

例3:修改文件testfile的文件所有者为root

$ chown-v root testfile #修改文件所有者为root,-v参数为显示详细过程


然后改了整个目录的权限,耗时很久10mins,还是不行,恼火啊。改变思路,重新解压,这时候发现在share文件夹下解压不了。复制到home下,解压,然后make,成功了。

4.2 第二种流程

  http://blog.csdn.net/newningning/article/details/8616513

step 1 生成新内核,此处内核较小时可以用make zImage,时间较长,请耐心等待,抓狂

             make bzImage     

Step 2:编译内核模块
       make modules   

Step 3:安装内核模块

      make modules_install  

Step 4:建立ramdisk映像

              mkinitramfs -o /boot/initrd-linux3.7.10.img

Step 5:安装新内核

     make install 

大功告成了有没有,O(∩_∩)O~,最后一步

Step 6:重新启动虚拟机

      reboot

以上命令都是以管理员身份运行的,登陆重启后的系统,查看内核版本:

root@ubuntu:~# uname -r
3.7.10

对于双系统或多系统来说,还需修改grub配置文件,在此不多说。

 4.3 第三种 

  在ubuntu12.04下使用make-kpkg完美编译安装3.3.4内核 - 查看主题 • Ubuntu中文论坛






原创粉丝点击