之前搭建了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. 11g RMAN Restore archivelog用法

    I.备份所有归档日志文件 RMAN> BACKUP FORMAT '/u01/backup/arch_%U_%T' skip inaccessible filesperset 5 ARCHIVE ...

  2. 翻译:Knockout 快速上手 - 5: 你需要知道的顶级特性 续

    Utilities Knockout 提供了许多可以你开发中使用的工具,你可以在 ko.utils 命名空间中找到它们,我最喜欢的工具如下所示: extend: 这个方法将两个对象合并在一起,调用这个 ...

  3. Django中级篇之Model专题

    ORM 就是用面向对象的方式去操作数据库的创建表以及增删改查等操作 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据 ...

  4. 三方框架之masonry

    这个详细的介绍:http://www.cocoachina.com/ios/20141219/10702.html Masonry 源码:https://github.com/Masonry/Maso ...

  5. EXTJS 6 新特性(译文)

    Extjs 新特性 简介 使用extjs,sencha 团队开发一个简单的框架,可以为创建在任何类型设备上运行的应用,从手机端到平板电脑再到桌面应用,你将能够产生最佳的用户体验,编写更少的代码量,结合 ...

  6. 在使用 AjaxFileUpload 上传文件时,在项目发布到 iis 后,图片不能预览

    在使用 AjaxFileUpload  上传文件时,图片已经上传成功了,在站点没有发布时,可以预览,可是在项目发布到 iis 后,图片就不能预览,在网上找了很多的方案也没解决,最后的解决方案如下: 1 ...

  7. mysql显示乱码问题

    在select * from table:时往往会出现上图所示乱码现象 此时,输入status,会发现: 此时只要SET NAMES utf8即可解决该问题.此时,再次输入status:   总结:S ...

  8. XML Namespace 命名空间

    根据 Namespaces in XML W3C 推荐标准的定义,XML 命名空间 是由国际化资源标识符 (IRI) 标识的 XML 元素和属性集合:该集合通常称作 XML“词汇”. 定义 XML 命 ...

  9. ajax 跳入error的一些原因

    先放一个标准的jquery的ajax代码: $.ajax({ type: 'POST', url: 'getSecondClassification', data: {"sort2" ...

  10. 开源项目:libbpg

    1 ubuntu下编译libbpg(编译机器64bit) 安装cmake,libpng,yasm,gcc,g++ cmake版本最低为2.8.8,安装完毕后使用cmake --version查看是否安 ...