zoukankan      html  css  js  c++  java
  • 【原创】Linux编译内核

    Linux 编译内核 大致分这几个步骤

    1、准备编译工具、内核文件

    2、开始编译

    3、将编译好的新内核install进系统

    4、查看是否成功。

     

    一、准备好必备的库和内核文件

    1、添加必备的编译工具。

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

    (以下所有命令若是权限问题、请自行加上sudo)

    2、处理好内核文件。

    访问www.kernel.org

    image

    建议下载稳定版。

    拷贝内核文件至usr/src 目录下:sudo cp linux-4.0.6.tar.xz /usr/src

    进入/usr/src目录:cd /usr/src

    image

    接下来解压 内核文件。

    image

    发现内核文件以.tar.xz结尾,

    So 先去掉xz:sudo xz –d linux-4.0.6.tar.xz

    得到tar后缀文件

    再键入sudo tar –xvf  linux-4.0.6.tar

    解压完成。

    二 、开始正式编译内核

    进入目录: cd linux-4.0.6/

    做净化:make mrproper

    然后是配置内核。我们将新内核的配置保持原来内核的配置一样。

    我们先来搞清楚原来内核文件的名字。先找到原来内核的配置文件在终端输入

    cd /boot

    在输入ls 如下图 得到老内核的配置文件叫config-3.16.0-30-generic ,所安装的Linux版本不同,配置文件名字不同。

    image

    将新内核的配置和老内核的配置设为一样的:sudo cp /boot/config-3.16.0-30-generic .config

    在输入:Make Menuconfig

    在出现的图形界面通过方向键

    选择save在选择load

    接下来开始比较费时的工作。你可以选择如下两种方式:

    方式一、输入一次命令,别的什么都不管

    我们先切换至root用户 ,终端中键入su -

    image

    输入密码,默认为toor(貌似是的如果不是出现验证故障,请通过sudo passwd root 根据提示修改root密码,重新验证) 这样我们在当前终端中,我们拥有一直root权限

    在终端中输入

    make bzImage &&   make modules &&   make modules_install  &&  make install &&  update-grub && reboot

    (&&符号代表只有当前面的命令执行成功才执行下一条命令)

    编译完内核并插入新内核后,Ubuntu会重启,重启后输入uname –a 即可验证是否编译成功。

    方式二、一步一步慢慢来

    使用下面的分步方式。

    make bzImage

    等待。。

    博主虚拟机 i3+1GB内存 大概40分钟完成。

    image

    make modules

    更漫长的等待。。。

    博主虚拟机 i3+1GB内存 大概3小时完成。

    image

    三 、将编译好的内核install进系统。

    接下来 将新内核插入新系统。

    (建议使用sudo make modules_install && sudo make install  &&  sudo update-grub && sudo reboot )

    sudo make modules_install

    sudo make install

    sudo update-grub

    sudo reboot

    四、验证内核是否成功install

    重启之后,在终端输入uname –a  查看内核情况。看是否与新内核一致。。

    作者:leemoaly
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    冒泡排序
    线程同步
    线程取消
    线程分离
    第3月第2天 find symbolicatecrash 生产者-消费者 ice 引用计数
    第3月第1天 GCDAsyncSocket dispatch_source_set_event_handler runloop
    第2月第25天 BlocksKit
    第2月第24天 coretext 行高
    第2月第6天 iOS 运行时添加属性和方法
    第2月第5天 arc invocation getReturnValue
  • 原文地址:https://www.cnblogs.com/kavs/p/4607371.html
Copyright © 2011-2022 走看看