ldd3(《linux设备驱动程序》)里面使用的正是Linux2.6.10内核,如果内核不同,使用课本里的代码会出现各种问题,所以搭建与课本一样内核版本的环境,用来学习。

尝试过使用ubuntu14.04、fedora21直接编译2.6.10内核,结果都是gcc版本太高,尝试过给gcc降级,各种失败。

尝试在ubuntu9.04 ,10.04编译他们各自的内核版本,构建内核源码树,结果Ldd3给的代码会报错(虽然都是2.6.x)。

在fedora3上面编译内核成功,构建内核树成功,结果好像是找不到insmod这个命令就放弃了(忘了)。

最后在ubuntu5.04上成功编译内核、构建源码树,并且成功编译ldd3源码。

环境:vmware10+ubuntu5.04(32bit)+gcc3.3.5

一、安装ubuntu5.04(32bit)

vmware10虚拟机下安装ubuntu5.04

1、下载5.04安装包:

http://old-releases.ubuntu.com/releases/hoary/ubuntu-5.04-install-i386.iso

2、使用vmware创建虚拟机(需要设置一个地方)

创建虚拟机--》典型--》选择下载好的iso文件-》然后根据需要设置,下一步,直到出现“已选择好创建虚拟机”这个页面,选择“自定义硬件”,选中“CD/DVD”,点旁边的“高级”,将“虚拟设备节点”改成“IDE”,保存。
  • 1

只要设置这个就可以了,接着让它慢慢装吧。在装的过程中时不时会询问你一些问题(不够智能),根据需要设置就好了。

3、安装gcc

光盘里就有gcc,版本是3.3.5,用这个版本就可以了,版本太高编译内核会出问题。

系统默认的源来自安装盘,所以不用更新原,直接输入:

 #apt-get install gcc
  • 1

此时,要确保CD/DVD属于“已连接”状态,并且“使用ISO镜像文件”,选中的就是上面的安装包。不然会提示找不到/cdrom。(我这边是,重启之后,“已连接”消失,所以就在“硬件”那里找到CD/DVD,把“已连接”打钩就可以了)

二、编译内核

1、下载源码:linux-2.6.10.tar.gz

https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.gz

2、解压到/usr/src

tar zxvf  linux-2.6.10.tar.gz
  • 1

3、编译、安装

cd linux-2.6.10
make oldconfig
make
make bzImage
make modules
make modules_install
make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4、制作initrd.img文件

mkinitrd  -o  /boot/initrd.img-2.6.10   2.6.10
  • 1

这里末尾的2.6.10表示/lib/modules下面的一个目录(也就是版本号)

5、修改/boot/grub/menu.lst

里面已经有几个系统做好的,照着制作就可以了,这样开机就有选项可以来选择
可以把timeout的值改大一些,开机时候选择的时间比较长。
  • 1
  • 2

设置完成,重启。

重启,按ESC会让你选择要使用的版本。

三、验证

输入uname -r 查看版本。正是ldd3需要的2.6.10。
  • 1

附录:

这个网站提供了各种旧版本ubuntu:

http://old-releases.ubuntu.com/releases/

转载 ldd3环境配置的更多相关文章

  1. 史上最详细Windows版本搭建安装React Native环境配置 转载,比官网的靠谱亲测可用

    史上最详细Windows版本搭建安装React Native环境配置   2016/01/29 |  React Native技术文章 |  Sky丶清|  95条评论 |  33530 views ...

  2. ubuntu环境配置之vi 配置【转载】

    ubuntu环境配置之vi 配置 [日期:2014-02-10] 来源:Linux社区  作者:zhonghe1114 [字体:大 中 小]   Android的源码开发,几乎离不开Linux,Lin ...

  3. LNMP(linux+nginx+mysql+php)服务器环境配置【转载】

    本文转载自 园友David_Tang的博客,如有侵权请联系本人及时删除,原文地址: http://www.cnblogs.com/mchina/archive/2012/05/17/2507102.h ...

  4. Windows下OpenFOAM开发及使用环境配置指南 (2)【转载】

    转载自:http://openfoam.blog.sohu.com/158751915.html *************************************************** ...

  5. Windows下OpenFOAM开发及使用环境配置指南 (1)【转载】

    转载自:http://openfoam.blog.sohu.com/158614863.html *************************************************** ...

  6. [转载] 高效 MacBook 工作环境配置

    原文: http://mp.weixin.qq.com/s?__biz=MjM5NzMyMjAwMA==&mid=208231200&idx=1&sn=8a76ddc56c1f ...

  7. [转载] 高效MacBook工作环境配置

    原文: http://www.xialeizhou.com/?p=71 高效MacBook工作环境配置 发表于 2015 年 8 月 1 日 由 xialeizhou 本文记录整个配置过程,供新入手M ...

  8. 转载:win7JDK环境配置

    [win7JDK环境配置] 网址:http://blog.sina.com.cn/s/blog_6a9df2330100ms9q.html 系统变量下: (1) 新建->变量名:JAVA_HOM ...

  9. Spring MVC 学习总结(一)——MVC概要与环境配置 转载自【张果】博客

    Spring MVC 学习总结(一)--MVC概要与环境配置   目录 一.MVC概要 二.Spring MVC介绍 三.第一个Spring MVC 项目:Hello World 3.1.通过Mave ...

随机推荐

  1. JS-Number 的精度

    JS 使用 IEEE 754 的双精度数表示数字,1 位符号,10 位指数,53 位底数. 所以 JS 数字精度近似为 15.95 位 10 进制(10 ** 15.95). 也就是说整部加小数部分超 ...

  2. Vue混入:基础

    混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能. 一 App组件 <template> <div id="app"> & ...

  3. Python笔记(十八)_私有属性、实例属性、类属性

    私有属性 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,就变成了一个私有属性,只有内部可以访问,外部不能直接访问或修改. 这样就确保了外部代码不能随意修改对象内部的状态,这样通过 ...

  4. springboot连接mysql报错:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException

    nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. ...

  5. C#=>递归反转栈

    原理,递归反转栈 using System; using System.Collections.Generic; using System.Linq; using System.Threading.T ...

  6. lLinux 下 Stress 压力测试工具

    作者信息 邮箱:sijiayong000@163.com Q Q:601566386 Stress是什么 stress是一个linux下的压力测试工具,专门为那些想要测试自己的系统,完全高负荷和监督这 ...

  7. FireFox浏览器导出文件名乱码

    解决方案1 String codedFileName = "导出文件名.xls"; String agent = request.getHeader("USER-AGEN ...

  8. exports、module.exports和export、export default到底是咋回事

    地址1:https://segmentfault.com/a/1190000010426778 地址2:https://blog.csdn.net/caixiaowang/article/detail ...

  9. HTTP中ip地址伪造的问题以及解决办法

    在真实环境下,php获取客户端ip地址的方法通常有以下几种: (1):通过$_SERVER[ "HTTP_CLIENT_IP" ] (2):通过$_SERVER[ "HT ...

  10. python学习第二十九天函数局部变量如何改变外部变量

    python函数局部变量如何改变外部变量,之前我说过,局部变量是没办法改变外部变量的,除非局部变量找不到,去外部找,输出变量,使用关键词global 使变量改变外部变量. 1,使用关键词global ...