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
至此最新版本内核安装完成
ubuntu 下编译内核的更多相关文章
- Ubuntu下编译内核
一.下载源代码和编译软件的准备 下载内核源代码:http://www.kernel.org/ 注意,点击2.6.25内核的F版,即完整版. 如果你懒得去网站点联接,运行下列命令: 代码: $cd ~ ...
- ubuntu下编译内核驱动。
目的: 1. 驱动热身.网上有很多类似的文章可供参考. 2. 在操作系统中, 编写这个设备的驱动. 3. 为写qemu的watchdog驱动练手. 有朋友问make的 watchdog驱动 需要什么准 ...
- ubuntu下编译caffe
Ubuntu下编译caffe 纯粹是个人编译的记录.不用CUDA(笔记本是amd卡,万恶的nvidia):不手动编译依赖包(apt-get是用来干啥的?用来直接装二进制包,以及自动解决依赖项的) ca ...
- ubuntu下编译VLC
ubuntu下编译VLC 标签(空格分隔): ubuntu vlc 视频 编译 [TOC] 1.下载VLC源码包并解压 VLC的源码包在VLC的官网有,可以直接下载.也可以使用git来clone一个. ...
- 在Ubuntu下编译wpa_supplicant
最近在研究WiFi联盟的多屏互动协议Miracast,其中需要用到wpa_supplicant,编译中遇到了一些问题,经过一下午的折腾也都解决了,下面分享给各位. 一.编译需要用到三个库源码包,分别是 ...
- 在Ubuntu下编译Assimp库
在Ubuntu下编译Assimp库 怎样在Ubuntu下编译Assimp库?这是我曾经编译成功后做的笔记,供參考. 1.去以下的站点去下载Assimp库: http://assimp.sourcefo ...
- ubuntu下编译java程序
ubuntu下编译java程序 首先需要安装jdk,并配置好相应环境变量 下面以简单的HelloWorld为例 文件名为HelloWorld.java java代码: public class Hel ...
- Ubuntu下编译Bilibili/ijkplayer
在做Android客户端视频播放器的过程中熟悉ijkplayer.他在视频支持协议上要比Android原生的mediaplayer做的要好.因此,自己也基于Bilibili/ijkplayer的重新编 ...
- Ubuntu下编译SHTOOLS
SHTOOLS是使用Fortran语言写的一个专门用于处理球谐函数的一个开源库,更多的介绍请猛戳这里,关于这个库的安装和使用,都在官网上有详细的说明,虽然很详细,但是编译的时候还是比较费劲,下面将我在 ...
随机推荐
- requireJS配置选项
1. baseUrl 当设置的目录最前面带有/,则是从电脑的根目录开始算起,若是baseUrl='another/path' 则是从require.js的目录开始算起 而且当require(['a. ...
- thinkphp从数据库里的html代码显示页面不解析
首先,这个问题不应该出现在这里,因为以前在用ThinkPHP3.1.2的时候,利用富文本编辑器保存文本后,直接从数据库里面取出的数据都能正常显示,改用ThinkPHP3.2.3之后,thinkphp从 ...
- Smarty3配置
下载Smarty压缩包并解压,复制其中的libs文件夹到我们的PHP工程目录下(可将其改名为smarty).同时,在工程目录下新建三个文件夹,分别取名为templates.templates_c和sm ...
- Emacs配置erlang开发环境(.emacs 文件)
以前都是用sublime写erlang代码,好处不多说,主要是觉得一点不好用,不能实现函数跳转,及其不方便,尤其是代码一多,头疼.后来折腾过IntelliJ,下了个收费$0.00的版本,风格还是挺稀饭 ...
- 常用在线工具及API网址总结
1.小图标在线查找 https://www.iconfinder.com/ 2.在线做图,Flowchart流程图,BPMN图,Org组织结构图等 http://www.processon.com/ ...
- js获得url内的参数
/** * js获得url内的参数 * 返回值: string or undefined * 使用方法:$_GET['from'] */ var $_GET = (function() { var s ...
- poj1423---求一个大数的位数方法,我猜网站上统计输入字符少于多少位的那个算法
法一:对一个数求它的对数,+1取整为其位数 问题转化为int (log10(N!)+1),对数性质log10(N!)=log10(N)+log10(N-1)+...+log10(1) /*用log10 ...
- AndroidUI 引导页面的使用
一个应用程序都少不了欢迎页面和引导页面,本文主要讲如何制作一个引页面: 首页所有的目录结构: 新建Welcome引导页面和Activity: <RelativeLayout xmlns:andr ...
- Soft Drinking(水)
A. Soft Drinking time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- OAuthBase.cs
using System; using System.Security.Cryptography; using System.Collections.Generic; using System.Tex ...