之前搭建了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. [实战经验]Macbook pro 苹果系统换window系统

    1.       Macbook的window软件驱动备份 通过Boot Camp助手进行window支持苹果驱动下载 2.       拆机把SSD固态硬盘放在主盘位置,把苹果的机械盘放在光驱位置 ...

  2. Swift开发中的一些琐碎

    1.Swift中使用OC 1.创建 pch 文件,直接引用需要的头文件  #import"SQLite3.h" 2.修改 pct 路径 ,如下图,就可以使用了 2. Swift 没 ...

  3. 洛谷P2725 邮票 Stamps

    P2725 邮票 Stamps 37通过 224提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交  讨论  题解 最新讨论 为什么RE?在codevs上AC的. 题目背景 给一组 ...

  4. 关闭GS选项,解决注入后崩溃

    利用CreateRemoteThread向进程注入远程代码时,一般会有以下两种做法: 利用LoadLibrary在目标进程加载指定的DLL 将代码复制到目标进程,然后启动这段代码 上面的第二种方法其实 ...

  5. javascript设计模式-外观模式

    也可译为门面模式.它为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用.引入外观角色之后,使用者只需要直接与外观角色交互,使用者与子系统之 ...

  6. Retrofit入门

    1 Retrofit retrofit = new Retrofit.Builder() .addConverterFactory(ScalarsConverterFactory.create()) ...

  7. PAT1099

    /*innner order traverse for BST will be ordered *1.sort the value in buffer *2.inner traverse the BS ...

  8. rel="stylesheet" 描述

    <link type="text/css" rel="stylesheet" href="css/style.css"/> re ...

  9. 轻松入门React和Webpack

    最近在学习React.js,之前都是直接用最原生的方式去写React代码,发现组织起来特别麻烦,之前听人说用Webpack组织React组件得心应手,就花了点时间学习了一下,收获颇丰 <!-- ...

  10. 图片无法显示,载入制定url失败

    今天要做一个图片列表,因为是临时用的,就把图片存放在了img/linshi文件夹下,但是在网页上总是显示不了,提示载入制定url失败, 找了半天,把图片放在上级目录,img下立刻就能访问了.