最近需要对Linux的一个内核模块进行调整实验,故决定先在虚拟机中完成编译调试工作,最后再在真实的系统上进行测试。为了防止遗忘,把过程记录于此。

1. 准备系统环境

首先从官网下载最新版的VirtualBox和Debian Wheezy 7.3.0的32位网络安装版CD镜像文件(debian-7.3.0-i386-netinst.iso)。然后就可以载入光盘开始安装了,安装的时候有几点需要注意:

  1. 选择语言、地区的时候,最好选择English / Hong Kong,如果选择中文则可能会出现乱码
  2. 选择安装哪些组件的时候,只要选择“标准系统组件”就行了,其它的都不装
  3. 如果之后要写到8G的U盘或者CF卡里,最好建立虚拟硬盘的时候就设置得小一些,比如7.2GB,要确保能写得下,否则之后还需要用resize2fs和fdisk重新调整,这就比较麻烦了

2. 下载内核源码,安装必需的软件

Debian Wheezy默认没有提供sudo工具,所以可以先把它装上。

su root...
apt-get install sudo
exit

但是现在还是不能使用sudo,为了能让普通用户能够使用sudo,需要将用户加到/etc/sudoers文件中。

su root...
vi /etc/sudoers

再次进入特权模式,找到文件中的下面这一行:

root    ALL=(ALL:ALL) ALL

在下面添加一行,变成这样(其中feng32是作者的用户名):

root    ALL=(ALL:ALL) ALL
feng32 ALL=(ALL:ALL) ALL

然后退出保存,就可以使用sudo来临时获得管理员权限了。接着安装使用更方便的vim,方便之后的操作:

exit
sudo apt-get install vim

接着安装两个编译内核真正需要的软件包:

sudo apt-get install kernel-package
sudo apt-get install libncurses5-dev

最后从kernel.org上下载Linux内核源码。这里我选择的是最新的longterm版本3.12.14。

wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.12.14.tar.xz

3. 解压内核源代码

Debian Wheezy默认就整合了xz工具,所以可以直接解压。

xz -d linux-3.12.14.tar.xz
tar xf linux-3.12.14.tar

4. 配置、编译内核

解压得到约520MB的文件,位于当前用户的home目录下。接着从现有的内核中获取配置信息,运行:

cd linux-3.12.14
make oldconfig

配置系统会询问很多新出现的配置选项,直接回车选择默认项即可。然后运行:

make menuconfig

确保你需要的特性都已经包括,按ESC退出配置。最后运行下面的指令开始编译:

make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-hlcodel --revision=1.0 kernel_image

在虚拟机中,单线程编译3.12.14内核大约要花费1.5小时。在编译完成之后,home目录下出现了一个deb文件:linux-image-3.12.14-hlcodel_1.0_i386.deb。

5. 安装内核

使用下面的命令安装这个deb包:

dpkg -i linux-image-3.12.14-hlcodel_1.0_i386.deb

完成后重启,然后运行unamr –r,如果出现下面的输出,则代表安装已经完成了:

3.12.14-hlcodel

在Debian Wheezy 7.3.0上编译安装3.12.14内核的更多相关文章

  1. Ubuntu 11.10 (Oneiric)上编译带utrace补丁的内核 转

    Ubuntu 11.10 (Oneiric)上编译带utrace补丁的内核 首先准备linux内核编译环境: sudo apt-get install fakeroot build-essential ...

  2. Linux上编译安装PHP

    这篇文章主要介绍了关于Linux上编译安装PHP,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 之前在服务器上编译安装了PHP运行环境,但是安装完过了一段时间就差不多忘记了,只是零零星 ...

  3. 在CUDA8.0下编译安装OpenCV3.1.0来实现GPU加速(Compiling OpenCV3.1.0 with CUDA8.0 support)

    在CUDA8.0下编译安装OpenCV3.1.0 一.本人电脑配置:ubuntu 14.04, NVIDIA GTX1060. 二.编译OpenCV3.1.0前,读者需要成功安装CUDA8.0(网上有 ...

  4. MAC 上编译安装nginx-rtmp-module 流媒体服务器

    MAC 上编译安装nginx-rtmp-module 流媒体服务器 记录踩坑过程 下载nginx和nginx-rtmp-module wget http://nginx.org/download/ng ...

  5. CentOS-7.3.1611编译安装 Nginx-1.12.1+mysql-5.7.19+PHP-7.1.8+zabbix-3.4.1

    CentOS-7.3.1611编译安装 Nginx-1.12.1+mysql-5.7.19+PHP-7.1.8+zabbix-3.4.1 下载软件 1.下载nginx http://nginx.org ...

  6. 对<< ubuntu 12.04编译安装linux-3.6.10内核笔记>>的修正

    前题: 在前几个月的时候,写了一篇笔记,说的是kernel compile的事情,当时经验不足,虽说编译过了,但有些地方写的有错误--因为当时的理解是有错误的.今天一一更正,记录如下: 前文笔记链接: ...

  7. CentOS 6.9编译安装Python-2.7.14(python升级)

    参考 Python官网:https://www.python.org/ 阿里云 https://www.aliyun.com/jiaocheng/517192.html 一.查看CentOS版本和系统 ...

  8. 编译安装 nginx -1.14.2

    编译安装 nginx -1.14.2 1 ) 下载nginx-1.14.2 源码包: wget http://nginx.org/download/nginx-1.14.2.tar.gz 2 ) 编译 ...

  9. 在树莓派1B上编译安装lnmp服务器

    最近一周给部门内部搭建考试系统,选择使用PHPEMS.这是个开源的系统,唯一缺点是PHP的版本比较低,只能使用5.2或5.3.而我的树莓派系统更新后使用apt-get安装得到的PHP版本为5.4.由于 ...

随机推荐

  1. mssql 2008 失败 需要重新启动计算机 的解决办法

    大致出错信息如下:RebootRequiredCheck 检查是否需要挂起计算机重新启动.挂起重新启动会导致安装程序失败. 失败 需要重新启动计算机.必须重新启动计算机才能安装 SQL Server. ...

  2. maven发布时在不同的环境使用不同的配置文件

    在开发时,不同的环境总会使用到不同的配置.如本地,测试,预发布,发布等环境,像数据库这些都要使用到不同的配置.如果手动改的话肯定会十分的麻烦. 还好maven提供的功能能够帮我们解决这个问题. 我们通 ...

  3. Ignatius and the Princess I

    算法:搜索+优先队列+(递归输出结果) The Princess has been abducted by the BEelzebub feng5166, our hero Ignatius has ...

  4. golang 阻塞的坑

    1.写go程序的时候一定要牢记主线程不能阻塞,一旦阻塞就崩溃,就怕那种某种情况下偶尔会出现几下阻塞的,一定要杜绝.2.select case的执行顺序是乱的,不确定的3.写入管道的时候,一定要保证管道 ...

  5. KACK的处理方法

    demo: .eq { color:#f00;/*标准浏览器*/ color:#f30\0;/*IE8,IE9,opera*/ *color:#c00;/*IE7及IE6*/ _color:#600; ...

  6. powerpoint无法输入中文怎么办|ppt文本框无法输入中文解决办法

    powerpoint文本框无法输入中文的情况不知大家是否遇到过呢?反正小编是遇到过这样的情况的,简直是急煞人也!那么powerpoint无法输入中文时应该怎么办呢?本节内容中小编就为大家带来ppt文本 ...

  7. Swift—析构函数-备

    与构造过程相反,实例最后释放的时候,需要清除一些资源,这个过程就是析构过程.在析构过程中也会调用一种特殊的方法deinit,称为析构函数.析构函数deinit没有返回值,也没有参数,也不需要参数的小括 ...

  8. AudioServicesPlaySystemSound音频服务—备用

    对于简单的.无混音音频,AVAudio ToolBox框架提供了一个简单的C语言风格的音频服务.你可以使用AudioservicesPlaySystemSound函数来播放简单的声音.要遵守以下几个规 ...

  9. AtomicInteger小小的理解

    这里仅仅是验证多线程环境下,AtomicInteger的安全性. 通过源码不难发现两点: 1.value属性是volatile修饰 2.使用了unsafe的CAS操作 通过上述两点,实现非阻塞同步(乐 ...

  10. build.prop各种优化代码

    1.首先要准备RE管理器以及root权限.2.在根目录里的system文件夹找到build.prop文件.3.打开build.prop文件后找到代码ro.sf.lcd_density=240(这里的2 ...