之前搭建了Ubuntu10.04驱动开发环境,但是那儿的内核版本是2.6.32.27,总感觉无从下手的感觉,因为书上的内核版本是2.6.10,作为初学者不知道差异在哪里,或许不应该纠结这个问题吧。

昨天搜2.6.10版本的时候,一直没有搜到关键的文章,今天偶尔搜了关键字"kernel 2.6.10 编译"一下子命中多篇关于搭建ldd3环境的博文,看来关键字选择很重要,昨天用的关键字是"构建内核树""Linux Device Driver 驱动开发虚拟机环境",可见都没有命中问题节点,因为这个环境搭建的卡壳点就在于"kernel 2.6.10 虚拟机环境",而失败的几个关键字中都没有直接出现,难怪搜不到。(note: 谷歌搜索)

这是搜到的几篇博文的链接:

根据上面两篇文章,拷贝步骤如下:

  • 下载5.04安装包:

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

  • 虚拟机(这里用的vmware12.0版本,其他的一样使用)安装,特别注意下面这点否则提示检测不到CD驱动,估计是因为这个版本的Ubuntu只能识别IDE接口的光驱吧:

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

    自动分区就可以了--中文语言的话就不要下载折腾了--然后自动重启安装。

  • 安装Gcc

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

    系统默认的源来自安装盘(还有这种说法!),所以不用更新原,直接输入:sudo apt-get install gcc

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

  • 安装vmware tools,但是提示,所以暂时无法安装,所以也就不能使用共享文件夹或者直接拖文件到虚拟机里面

  • 准备编译内核,先下载内核源码

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

  • 因为无法直接传文件到虚拟机,所以使用USB的方法,先把文件拷到U盘里面:

     
     

  • sudo cp linux-2.6.10.tar.gz /usr/src/

    sudo tar zxvf linux-2.6.10.tar.gz

  • 编译安装:

    cd linux-2.6.10

    sudo make oldconfig

    sudo make -j4

    sudo make bzImage

    sudo make modules

    此处保存一次虚拟机快照

    sudo make modules_install

    sudo make install

  • 生成内核对应的RAMDISK文件,这个估计是用于启动用的

    sudo update-initramfs -c -k 2.6.10 这个命令不再有效

    sudo mkinitrd -o /boot/initrd.img-2.6.10 2.6.10

  • 添加启动项:sudo gedit /boot/grub/menu.lst

  • 不知道什么原因这个版本的字体有些模糊,而且在虚拟机里面操作也不是很流畅,所以决定用ssh连接它使用
    • 安装ssh,把安装盘如前挂载上:

      sudo apt-get install ssh

      /etc/init.d/ssh restart

    • 查看虚拟机ip地址

      ifconfig

    • 使用 SSH Secure Shell Client 连接虚拟机即可,登录后效果如下:
  • 此处务必记得保存一个快照
  • 保存快照后重启:

  • 测试是否成功替换内核版本:

    成功替换!

  • 接下来就是重新安装vmware tools,为了避免不必要的问题,这里绝对不安装了。
    • 重启一下ssh:
    • 配置一下IP和win7同一个网段:

    • 重启一下网络连接:

    • 还是连接ssh,把网络连接改为桥接方式,成功!(具体原理也不清楚)
    • 连接ssh

    • 提示:

    • 解决方法:
      • sudo vim /etc/ssh/sshd_config
      • 修改:

      • 重启ssh:

      • 再次连接ssh成功:

  • 使用linux,在用户根目录下有一个.bash_profile配置文件,该配置只对当前用户有效.若对所有的用户有效,修改/etc/profile文件

    使用ls -a命令可以查看到该文件.使用vi编辑器打开该文件后,在其中加入

     
     

    LANG=zh_CN.GB2312

    export LANG

  • ctags/cscope

    1)从http://ctags.sourceforge.net/下载源代码包后,解压缩生成源代码目录,

2)然后进入源代码根目录执行./configure,

3)然后执行make,

4)编译成功后执行make install。

 
 

小结:

  • 不要折腾工具吧,尽快学习内容吧

ldd3-2 构造和运行模块:环境搭建2的更多相关文章

  1. Windows7下Java运行时环境搭建

    第一步:下载JDK 地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,(由于Sun于2009年被oracle收 ...

  2. yarn上运行flink环境搭建

    主要完成hadoop集群搭建和yarn上运行flink 1.搭建hadoop伪集群 主要是搭建hadoop MapReduce(yarn)和HDFS 1.1 下载&配置环境变量 这里下载的ha ...

  3. 【Linux设备驱动程序】Chapter 2 - 构造和运行模块

    Hello World 模块 #include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Du ...

  4. docker_facenet_image在Docker容器中运行Facenet环境搭建

    对开发和运维人员来说,可能最梦寐以求的就是一次性地创建或配置,可以在任意环境.任意时间让应用正常运行.而Docker恰恰是可以实现这一终极目标的瑞士军刀. 具体来说,Docker在开发和运维过程中,具 ...

  5. linux设备驱动第二篇:构造和运行模块

      上一篇介绍了Linux驱动的概念,以及linux下设备驱动的基本分类情况及其各个分类的依据和差异,这一篇我们来描述如何写一个类似hello world的简单测试驱动程序.而这个驱动的唯一功能就是输 ...

  6. liunx驱动----构造和运行模块

    以hello world模块为例 #include <linux/init.h> #include <linux/module.h> //在执行 insmod hlello 的 ...

  7. .net core 部署在Linux系统上运行的环境搭建总结

    安装Linux用的是腾讯云的centos7.5,需要安装有环境有mysql5.7  .netcore2.1 nginx1.14 1.首先是mysql的安装 我用的链接工具是putty,首先root登入 ...

  8. python+selenium第一步 - 环境搭建

    刚开始学习一门技术,肯定是要从环境搭建开始的,我也不例外. 首先选择需要安装的版本,我使用的是mac自带的2.7版本. selenium2,和火狐浏览器 为求稳定不会出现未知问题,我选择了seleni ...

  9. 基于Ubuntu的ORB-SLAM2项目环境搭建过程

    目录 关于ORB-SLAM2 环境搭建 已有环境 创建环境 新建项目目录 安装Pangolin 安装OpenCV 3.2 安装Eigen DBoW2 and g2o (Included in Thir ...

随机推荐

  1. V$SGA_RESIZE_OPS.STATUS = ERROR, and MMAN / auto-tuning stops.

    Oracle Server - Standard Edition - Version: 10.2.0.3This problem can occur on any platform. SYMPTOMS ...

  2. How to Release the Temp LOB Space and Avoid Hitting ORA-1652 (文档 ID 802897.1)

    APPLIES TO: Oracle Database - Enterprise Edition - Version 8.1.5.0 and laterInformation in this docu ...

  3. spark1.2.0版本SparkSQL使用parquet类型注意事项

    在Spark1.2.0版本中是用parquet存储类型时注意事项: sql语句: select * from order_created_dynamic_partition_parquet; 在spa ...

  4. Rehat 5.8下oracle11g安装

    Oracle 11g Redhat 5安装  一.检查硬件是否满足要求 检查一内存 On Linux x86: At least 1 GB of RAM 内存至少1G To determine the ...

  5. 007 The Inheritance In JAVA

    在JAVA中有一个特型叫继承(Inheritance),通过继承我们可以重复使用代码,令代码简洁,易于扩展.例如:有一个sharp的类,这个类实现了sharp的一些方法,现在我们要写一个circle的 ...

  6. TCP和HTTP的关系

    TCP和HTTP的关系 首先简单地看看tcp,TCP连接是通过4个值来识别的: <源IP地址 源端口号 目的IP地址 目的端口号> 这四个值定义了一个TCP连接,两条不同的TCP连接中这四 ...

  7. Flex 使用列表和表格

    Flex 设计了不同的控件来实现列表和表格,不仅能够将数据显示在表格和列表中,还可以实现对数据进行操纵,修改等更加强大的功能. 与列表和表格相关的控件如下所示: 列表控件(List Control): ...

  8. SDUT 3347 数据结构实验之数组三:快速转置

    数据结构实验之数组三:快速转置 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 转置运算是一 ...

  9. .net Url重写

    详细说明及下载dll源码路径: http://msdn.microsoft.com/zh-cn/library/ms972974.aspx 顺带上本人写的一个小例子:http://files.cnbl ...

  10. 华为OJ平台——将真分数分解为埃及分数

    题目描述: 分子为1的分数称为埃及分数.现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数.如:8/11 = 1/2+1/5+1/55+1/110. 输入: 输入一个真分数, ...