zoukankan      html  css  js  c++  java
  • (Mark) (Ubuntu)Ubuntu 12.04 LTS 编译内核 (Linux) (内核)

    编译环境为Ubuntu 12.04 LTS 64 Bit 内核版本3.2.0-59

    1.https://www.kernel.org/下载内核和补丁linux-3.13.6.tar.xzpatch-3.13.6.xz

    2.安装编译时需要的工具,构建编译环境

    sudo apt-get install build-essential kernel-package libncurses5-dev libqt3-headers

    注:

    build-essential  (基本的编程库(gcc, make等)

    kernel-package   (Debian 系统里生成 kernel-image 的一些配置文件和工具)

    libncurses5-dev  (meke menuconfig要调用的)

    libqt3-headers   (make xconfig要调用的)

    3.解压内核到/usr/src/下,补丁到/usr/src/linux-3.13.6/下

    sudo tar xvf linux-3.13.6.tar.xz -C /usr/src/
    xz -d patch-3.13.6.xz
    sudo cp patch-3.13.6 /usr/src/linux-3.13.6/

    4.净化内核

    cd /usr/src/linux-3.13.6/
    sudo make mrproper

    注:

     make mrproper

     删除之前编译所生成的文件和配置文件,备份文件,如.config配置文件。如果你是第一次编译,可不执行。

    5.为内核打上补丁,用file 命令查看补丁

    file patch-3.13.6

    输出:patch-3.13.6: unified diff output, ASCII text

    此处Patch文件使用diff 做的,因此使用diff命令打补丁

    sudo diff -rN patch-3.13.6 ./

    注:如果patch文件是patch做成的,那么就相应的用:patch -p1 < xxxx.patch

    5.配置内核

      对于内核配置可不是那么熟练什么的,可以用原来系统中存在的配置文件。原来系统中的配置文件,位置有两种情况:一是放在/boot下面的,一个是放在/usr/src/linux-headers-xxxxx-generic/下面.

      本机是把/usr/src/linux-headers-xxx-generic/下面的.config复制到要编译的内核路径下

    sudo cp ../linux-headers-3.2.0-59-generic/.config ./

    或者  sudo cp /boot/config-3.2.0-59-generic ./.config

    6.清理编译中间文件

    sudo make clean

    注: 删除绝大多数编译生产的文件并保留配置文件。如果你是第一次编译,可不执行

    7.在menuconfig中配置内核

    sudo make menuconfig

    默认会加载.config的配置,也可根据自己的需求在界面中修改。然后 Exit --->Yes

    8.编译

    sudo make -j4

    注:make命令可以理解为 make bzImage(编译内核) 和make modules (编译模块)

    -j4 表示jobs=4,同时最多跑4个进程。make自己会协调,如果CPU等资源不够可能小于4个。不过一般瓶颈都在硬盘,所以一般能看到4个进程一起跑。

    9.安装模块,将编译好的模块安装到/lib/modules/下

    sudo make modules_install

    10.创建创建initrd 文件

    sudo mkinitramfs -o /boot/initrd.img-3.13.6-generic

    注:如果linux系统安装在scsi磁盘上,这步是必须的,否则可以跳过。

    11.安装内核

    sudo make install 

    注:此步包含如下操作

    cp /usr/src/linux-3.13.6/arch/x86/boot/bzImage /boot/vmlinuz-3.13.6-generic 
    cp/usr/src/linux-3.13.6/System.map /boot/System.map-3.13.6-generic

    12.更新grub

    update-grub2

    到此完成内核编译安装完成

    注:使用命令查看grub添加的信息 3.13.6 为新编的内核

    sudo gedit /boot/grub/grub.cfg  

    查看信息中包含如下配置描述

    menuentry 'Ubuntu,Linux 3.13.6-generic' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos8)'
        search --no-floppy --fs-uuid --set=root 67f03453-7d9b-4a50-9441-ce3af69abc42
        linux    /boot/vmlinuz-3.13.6-generic root=UUID=67f03453-7d9b-4a50-9441-ce3af69abc42 ro   quiet splash $vt_handoff
        initrd    /boot/initrd.img-3.13.6-generic
    }

    重新编译可从第6步开始,如要清除配置文件从第4步开始。

  • 相关阅读:
    MYSQL中replace into的用法
    Typora自定义样式
    Advanced Installer轻松带你入门
    H2数据库入门,看这篇就对了
    Linux之vim的使用
    Linux文件上传与下载
    @ConfigurationProperties 注解使用姿势,这一篇就够了
    Javadoc 使用详解
    MySQL学习提升
    JS前端获取用户的ip地址的方法
  • 原文地址:https://www.cnblogs.com/think-o/p/3586655.html
Copyright © 2011-2022 走看看