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

    目的:

    1. 练习。网上有很多类似的文章可供参考。

    2. 为写qemu的watchdog驱动练手。

    有朋友问make的 watchdog驱动 需要什么准备,所以写这个blog。

    环境:

    ubuntu 12.04.4

    耗时(基于熟悉linux环境和操作系统的条件下):

      1. make 时间 大于1个小时

    过程:

    1.安装编译内核所需要的软件

    $ apt-get install build-essential kernel-package libncurses5-dev

    2.下载内核源码

    先查看linux内核版本:

    $ uname -r

    3.11.0-15-generic

    搜索内核源码

    $ apt-cache search linux-source

    linux-source - Linux kernel source with Ubuntu patches
    linux-source-3.2.0 - Linux kernel source for version 3.2.0 with Ubuntu patches

    会列出一些可选源码包,选择你的内核版本号, “with Ubuntu patche”的那个

    下载

    $ apt-get install linux-source

    下载之。会在/usr/src下。 解压缩源码包(tar jxvf  linux-source.tar.bz2),进入解压后的源码目录。

    配置内核:

    有三种选择选择方式1:make oldconfig  2:make  menuconfig 3:make  xconfig

    最快的是配置原版的配置方法

    $ cd /usr/src/linux-x.x.xx

    $ sudo  make  oldconfig

    (如果配置的过程中出现问题,原因是因为没有下载配置环境的那个依赖的库文件,可以自己下载)

    可以借用Ubuntu原来内核的一个配置文件, 将linux-headers-x.x.xx-xx-generic目录下的.config 我们把它拷贝到刚下好解压的目录,也就是linux-source-x.x.xx

    $ sudo cp /usr/src/linux-headers-x.x.xx-xx-generic/.config /usr/src/linux-x.x.xx

    $ cp  /boot/config-x.x.xx-xx-generic ~/linux-x.x.xx

    $ sudo  make menuconfig

    编译内核

    #sudo  make -j4

    这个过程很漫长,建议去做做别的事情。  -j 取决于你的CPU的个数。

    #sudo  make  zImage

    执行结束之后,会在当前目录下面生成一个新的文件:vmlinux

    编译模块

    #sudo make  modules

    安装模块

    #sudo  make  modules_install

    这条命令能在/lib/modules目录下产生一个目录

    $ sudo make install

    (以下的才做没有执行)

    生成initrd

    sudo update-initramfs -k -c x.x.xx

    注意 :此处若使用mkinitramfs 则会在重启后报如下错误:

    FATAL: Could not load /lib/modules/.../modules.dep

    更新grub启动菜单

    sudo update-grub

    更新显卡驱动

    重启后nvidia显卡驱动出错,报告ubuntu 正在运行在低画质模式,后面是各种failed to load。

    通过ppa(personal package archive https://launchpad.net/ubuntu/+ppas)解决驱动更新问题

    sudo sh -c "echo 'deb http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu lucid main' >> /etc/apt/sources.list"
    sudo sh -c "echo 'deb-src http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu lucid main' >> /etc/apt/sources.list"

    sudo apt-get update
    sudo apt-get install nvidia-current nvidia-current-modaliases nvidia-settings

    至此最新版本内核安装完成

  • 相关阅读:
    表单验证
    obs 之 OBSObj
    rtmp流媒体协议分析(h264、aac)
    lintcode 508.Wiggle Sort
    SVN备份批处理文件
    防火墙没关导致 ORA-12541: TNS: 无监听程序
    [转]window10系统安装oracle11g时遇到INS-13001环境不满足最低要求
    关键驱动因素、约束和浮动因素
    C#之虚函数 非常清晰全面的讲解
    今天有个朋友问我抽象方法和接口的区别,为了解释清楚这个事情,我在网上看到一篇文章讲的非常好给大家分享一下,也感谢原作者的付出
  • 原文地址:https://www.cnblogs.com/shaohef/p/3799346.html
Copyright © 2011-2022 走看看