zoukankan      html  css  js  c++  java
  • linux内核编译

    1,进入内核源码树,如果是第一次编译,建议清理以下内核功能选择文件:

    make mrproper

    2,删除前一次编译的残留文件:

    make clean

    3,配置内核功能

    make menuconfig

    这一步有可能是会提示缺少库

    根据提示去安装库:

    yum install ncurses-devel

    ( 我这里是centos,若是debian家族发行版,可能是:libncurses5-dev )

    寻找方法

    先可以先用关键字搜索列出相关可能是包:

    yum search ncurses

    再查看info来确定:

    yum info ncurses-devel

    从下边就是在menuconfig中根据自己的主机来配置编译选项。

    这个就因人而异了,不过默认配置已经能满足大多数人的需要,只是这样编译出来的内核比较臃肿,根据个人需要精简,比如X86上用的intel的CPU就可以将AMD相关的选项去掉,不多赘述

    这里特别提一下ntfs分区的支持:

    File systems -> DOS/FAT/DVD Filesystems --> NTFS file system support

    最后要保存一下刚刚的配置:

    文件名用默认的就可以,因为接下来的配置默认是读取的这个文件明的配置,如果你保存为别的文件明,那么就有可能编译时读取的不是这次配置的.config,导致问题。

    4,编译内核

    make clean        # 先清除临时文件
    make bzImage -j2  # 编译内核(并行编译,2个编译命令同时进行,对于双核CPU -j4也没问题)

    编译完成后(若你是X86环境)

    ll  arch/x86/boot/bzImage

    这就是编译出的内核在内核代码树下的目录,应该存在设个文件:

    4,编译模块

    make modules -j4 # 编译刚刚配置时打M标记的内核模块

    这个编译过程相对比较长。

    5,安装内核模块外挂模组

    make modules_install

    安装完成后可以看到内核模块外挂模组目录:

    6,将内核拷贝至/boot

    cp arch/x86/boot/bzImage  /boot/vmlinuz-3.8.0

    7,制作虚拟文件系统

    mkinitrd  -v /boot/initrd-3.8.0.img  3.8.0LeTX

    (若是debian家族发行版,使用 mkinitramfs -o /boot/initrd-3.8.0.img 3.8.0LeTX)

    8,编辑开机菜单

    更新:

    grub.cfg不建议手动修改,

    grub2工具可以帮助搞定:

    grub2-mkconfig -o /boot/grub2/grub.cfg

    以下方法有效,但是不建议,

    配置文件: /boot/grub2/grub.cfg

    按照上下文新编译的内核文件和虚拟文件系统改一下即可:

    menuentry 'CentOS Linux, with Linux 3.8.0' {
              load_video
              set gfxpayload=keep
              insmod gzio
              insmod part_msdos
              insmod xfs
              set root='hd0,msdos9'
              if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos9 --hint-efi=hd0,msdos9 --hint-baremetal=ahci0,msdos9 --hint='hd0,msdos9'  bf17c730-86f6-4XXXXXXXX
              else
                   search --no-floppy --fs-uuid --set=root bf17c730-86f6-47f0-9XXXXXX
              fi
              linux16 /vmlinuz-3.8.0 root=UUID=2e144fd9-7166-4060-a58c-a76XXXXX ro rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto  vconsole.keymap=us rhgb quiet LANG=en_US.UTF-8
              initrd16 /initrd-3.8.0.img
          }
    http://www.cnblogs.com/skynext/
  • 相关阅读:
    CentOS yum 源的配置与使用
    CentOS 添加常用 yum 源
    给centOs添加epel源
    centos 推荐使用epel源
    如何在CentOS 5/6上安装EPEL 源
    为centos添加第三方源
    Linux远程桌面工具 -- NoMachine
    Redis windows版本的启停bat脚本命令
    Elasticsearch+Hbase实现海量数据秒回查询
    mysql 与elasticsearch实时同步常用插件及优缺点对比(ES与关系型数据库同步)
  • 原文地址:https://www.cnblogs.com/skynext/p/4053927.html
Copyright © 2011-2022 走看看