ldd3-2 构造和运行模块:环境搭建2
之前搭建了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: 谷歌搜索)
这是搜到的几篇博文的链接:
-
说明:RHEL4.7-i386-AS-DVD.iso/make oldconfig/etc/grub.conf
- lddr3学习笔记--环境搭建 这篇文章的步骤很好,省去了其他博文里面的一些麻烦事
根据上面两篇文章,拷贝步骤如下:
- 下载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的更多相关文章
- Windows7下Java运行时环境搭建
第一步:下载JDK 地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,(由于Sun于2009年被oracle收 ...
- yarn上运行flink环境搭建
主要完成hadoop集群搭建和yarn上运行flink 1.搭建hadoop伪集群 主要是搭建hadoop MapReduce(yarn)和HDFS 1.1 下载&配置环境变量 这里下载的ha ...
- 【Linux设备驱动程序】Chapter 2 - 构造和运行模块
Hello World 模块 #include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Du ...
- docker_facenet_image在Docker容器中运行Facenet环境搭建
对开发和运维人员来说,可能最梦寐以求的就是一次性地创建或配置,可以在任意环境.任意时间让应用正常运行.而Docker恰恰是可以实现这一终极目标的瑞士军刀. 具体来说,Docker在开发和运维过程中,具 ...
- linux设备驱动第二篇:构造和运行模块
上一篇介绍了Linux驱动的概念,以及linux下设备驱动的基本分类情况及其各个分类的依据和差异,这一篇我们来描述如何写一个类似hello world的简单测试驱动程序.而这个驱动的唯一功能就是输 ...
- liunx驱动----构造和运行模块
以hello world模块为例 #include <linux/init.h> #include <linux/module.h> //在执行 insmod hlello 的 ...
- .net core 部署在Linux系统上运行的环境搭建总结
安装Linux用的是腾讯云的centos7.5,需要安装有环境有mysql5.7 .netcore2.1 nginx1.14 1.首先是mysql的安装 我用的链接工具是putty,首先root登入 ...
- python+selenium第一步 - 环境搭建
刚开始学习一门技术,肯定是要从环境搭建开始的,我也不例外. 首先选择需要安装的版本,我使用的是mac自带的2.7版本. selenium2,和火狐浏览器 为求稳定不会出现未知问题,我选择了seleni ...
- 基于Ubuntu的ORB-SLAM2项目环境搭建过程
目录 关于ORB-SLAM2 环境搭建 已有环境 创建环境 新建项目目录 安装Pangolin 安装OpenCV 3.2 安装Eigen DBoW2 and g2o (Included in Thir ...
随机推荐
- js和jQuery前台校验文件大小
1.支持Google 不支持IE <script type="text/javascript" src="${pageContext.request.context ...
- Intel HD4000的驱动-黑苹果之路
10.9.1装好后显卡HD4000能自动识别,但是识别的内存始终只有64M,使用了删.改AppleIntel*.kext驱动.修改clover的graphic的ig-platform-id.修改DSD ...
- ANR
/data/anr/traces.txt MySQL: select version();
- RequireJS API
可以找到许多的解读,但是原文总是最重要的,也是最正宗的说明,直接访问 RequireJS 有时不太方便,这里将 RequireJS 2.0 API 的原文转载到博客园,方便查看. This is th ...
- MFC中,如何自定义用户消息
1.用处 在多个类之间传递消息.当需要响应用户操作,本类却无法实现时,可以向系统发出消息.然后让系统中的需要的位置实现它. 2.方法 2.1定义这个消息,并让拥有者发送这个这个消息,传递一个整型参数 ...
- 手机app测试之我见
app端功能测试不是单纯的点点点,在实际的工作中,测试小白需要从业务入手,熟悉基本测试点.测试技巧和方法,以点带面,从功能和思维入手,避免眼高手低: app端测试,首先我们需要考虑不同的机型系统.不同 ...
- DB2 Magazine 中文版: 访问 iSeries 数据
当您第一次开始学习 DB2 for iSeries 时,一下子要弄清楚如何访问所有数据可能有些令人生畏.我将介绍访问 DB2 for iSeries 数据的一些常见的方法,并展示如何开始开发访问存储在 ...
- Datable 排序
if(dt.Columns.IndexOf("name") != -1) //存在这个字段 { dt.DefaultView.Sort = "name asc" ...
- 查询数据库中表或视图或存储过程的数量 sql 语句
如果一个数据库中表的数量较多的话,那么在统计数据库中表的数量或视图或存储过程的数量时,如果还有一个一个去数,那就太麻烦了,其实可以通过 sql 语句来查询的,sql 语句的查询方法如下: sql se ...
- ASP.NET MVC 开源项目学习之ProDinner (三)
第四层:Resources 这一层里面主要是几个资源文件. 资源文件知识小杂烩: 几乎每一个生产性应用程序都需要使用资源.资源是在逻辑上由应用程序部署的任何非可执行数据.资源可以在应用程序中作为错 ...