Windows+VirtualBox的嵌入式Linux开发环境的搭建

最近一直在学习Linux的设备驱动编写,一直是在物理机上安装的Ubuntu进行的,但是在Ubuntu12.04的系统中,已经不能用以前的阅读源码的工具KScopse软件了,阅读源码不方便,Linux驱动开发会用到Linux的很多头文件,源码树,查看很不易,同时。linux下的vim编写代码的速度比windows下的notepad++要慢,个人感觉的。但是代码编译必须使用Linux系统,于是就想出了在虚拟机中搭建服务器,在windows中使用Source Insight编码,写完后拿到服务器编译,在服务器上开启nfs文件系统,开发板挂载nfs文件系统。网上很多开发环境都是用VMware建立的,我在VirtualBox中设置了很多次都失败了,最后翻看了很多资料,建立了基于VirtualBox的开发环境。不过很希望读者能先熟悉Linux物理机上的环境搭建与操作,最后转到Windows下开发,这样对学习更有利,笔者的环境是:

主机:windows8

虚拟机软件:VirtualBox4.3.0,开源软件,Oracle官网上有下载。

虚拟机系统:中文Ubuntu12.04 桌面版

配套需要的软件:Secure CRT,cuteFTP

下面介绍过程:

第一步:首先在Windows上安装VirtualBox虚拟机,这款虚拟机是Oracle公司的开源软件。免费小巧,使用方便。安装过程中当询问网卡驱动时,需要注意要安装Host-Only适配器驱动以便接下来可以使用Host-Only网络连接。

第二步:配置虚拟机,VirtualBox和VMware差不多,略有区别,新建一台虚拟电脑,注意设置虚拟电脑的网络时将网卡配置为NAT地址转换,以便使用主机网络,这时主机需要联网。在虚拟电脑中安装Ubuntu系统,这里默认为读者会简单的使用Linux系统,并会在虚拟机中安装Linux,这些内荣百度到处都有,不过既然准备从事Linux嵌入式开发,必须会使用Linux系统,这是前提。

第三步:进入虚拟机的Ubuntu,安装ftp服务,以便在Windows中使用cuteFTP与虚拟机交互文件,使用sudo apt-get install vsftpd,安装完后,打开/etc/vsftpd.conf文件,去掉local_enable = YES和write_enable = YES前面的#号,重启ftp服务,sudo  /etc/init.d/vsftpd restart,接着安装SSH服务,sudo apt-get install openssh-server,使用默认配置就好了,安装nfs服务,sudo apt-get install nfs-kernel-server portmap,打开/etc/exports文件,修改配置文件,添加nfs文件共享目录,比如我的目录是:/home/wangzx/nfs_root,则添加:/home/wangzx/nfs_root *(rw,sync,no_root_squash),然后重启nfs服务,sudo  /etc/init.d/nfs-kernel-server restart,至此,虚拟机中的Ubuntu的网络配置环境已经完成,如果有其他需要的软件,自行安装,接下来虚拟机不再需要主机的外网了。

第四步:关闭虚拟机,重设网络,打开网卡1,配置如图

该网卡以后为了开发板能挂接虚拟机中的网络文件系统nfs。

打开网卡2,配置如图:

这张网卡,将会完成虚拟机与物理机的交互,在这里提一个知识点,为什么使用两张网卡,因为桥接网卡,是指将虚拟机的网卡和物理机的网卡处于同一网段,组成局域网,这样就可以让物理机和虚拟机通信并和开发板组网,但是桥接网卡的前提条件是,主机连网线并且已经建立了网络连接,因此在开发板和主机尚未建立网络连接时,虚拟机和物理机是不能进行网络交互的,为了让物理机和虚拟机在任何时刻都能文件交互,所以添加第二张网卡,使用Host-Only网卡,在你的网络共享中心中:

这个网卡的IP地址被默认为192.168.56.1, 我们使用默认设置,而虚拟机如果开了这个网卡,则Ubuntu的该网卡的IP默认设置为192.168.56.101,

这些可以修改,在虚拟机配置网卡时修改,这里使用默认,打开虚拟机,我们ping一下192.168.56.1,

同样,windows下也能ping虚拟机。

第五步:在windows中安装cuteFTP,自己百度安装,然后打开软件,

输入主机IP,登录名,密码,点连接按钮,则建立了FTP连接,这样就可以使用鼠标拖动文件进行上传和下载,我们就使用这种方式在windows中编写代码,拖到虚拟机服务器中编译。完了也可以拖回windows。

第六步:安装SecureCRT软件,新建一个SSH2连接:

完成后连接,则登陆上了服务器,

这样就可以在终端中操作服务器。

第六步:开nfs服务,并使用开发板测试,将本地网卡的IP设置为和你的开发板虚拟机一个网段,我的开发板IP为192.168.2.100,所以将windows的IP设置为192.168.2.*,虚拟机中桥接的那张网卡一样设置,注意不是Host-Only的那张,那张不要动。

这样就配置好了第二张网卡,环境搭建好了,接下来测试。

打开开发板,接上网线和串口线,使用SecureCRT打开一个串口,启动开发板,然后将内核镜像文件拷贝到你的共享目录,记得将共享目录设置为777,使用chmod 777 共享目录 -R,然后打开/etc/hosts文件,添加一行,“开发板IP  nfs服务器目录”比如我的是:192.168.2.100 /home/wangzx/nfs_root/这样就好了,然后就可以使用开发板u-boot的nfs下载内核了,

下载成功,启动内核:

最后nfs根文件系统挂载成功,这样完整的开发环境搭建完成了。我们可以在windows中编写代码,也可以使用source insight查看代码,编写完后上传到服务器编译,挂载网络文件系统,操作服务器使用终端,这样一切操作都简单了,学习什么的就更方便了。

原创声明:本文属原创,转载请注明出处

冰雪王爵.obj

2014年2月3日

用Windows+VirtualBox搭建嵌入式Linux开发环境的更多相关文章

  1. Windows下搭建objective C开发环境

    摘自:http://blog.csdn.net/zhanghefu/article/details/18320827 最近打算针对iPhone.iPod touch和iPad开发一些应用,所以,需要开 ...

  2. 「C语言」在Windows平台搭建C语言开发环境的多种方式

    新接触C语言,如何在Windows下进行C语言开发环境的搭建值得思考并整理. 以下多种开发方式择一即可(DEV C++无须环境准备). 注:本文知识来源于  Windows 平台搭建C语言集成开发环境 ...

  3. Windows下搭建Spark+Hadoop开发环境

    Windows下搭建Spark+Hadoop开发环境需要一些工具支持. 只需要确保您的电脑已装好Java环境,那么就可以开始了. 一. 准备工作 1. 下载Hadoop2.7.1版本(写Spark和H ...

  4. windows下搭建nginx+php开发环境

    windows下搭建nginx+php开发环境 1.前言 windows下大多我们都是下载使用集成环境,但是本地已经存在一个集成环境,但不适合项目的需求.因此准备再自己搭建一个环境. 2.准备 工具: ...

  5. 嵌入式linux开发环境构建

    2.1硬件环境构建 2.1.1主机与目标板结合的交叉开发模式 在主机上编辑.编译软件,然后再目标办上运行.验证程序. 对于S3C2440.S3C2410开发板,进行嵌入式Linux开发时一般可以分为以 ...

  6. Windows下搭建Android NDK开发环境及命令行编译

    首先说明本文内的相关安装操作参考<Pro Android C++ with the NDK>一书. 安装 Windows搭建Android NDK开发环境需要安装如下部分(同时需要配置对应 ...

  7. 【RN - 基础】之Windows下搭建React Native开发环境

    前言 React Native由Facebook公司于2015年F8大会上开源,其主张“Learn once, write everywhere”.React Native的核心设计理念是:既拥有Na ...

  8. C++开发安卓、windows下搭建Android NDK开发环境

    1. NDK(Native Development Kit) 1.1 NDK简介 Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android APP功能开发的工具,通过这个 ...

  9. 【原创】Windows平台搭建Kafka源代码开发环境(Eclipse版本)

    最近在研究Kafka源代码,需要自己搭建一个开发环境.官网上给出的提示略显简单,照着做了一遍也碰到了一些问题.特此记录下来. 开发环境: Oracle Java 1.7_u71 + Eclipse 4 ...

随机推荐

  1. 有限状态机(FSM)

    在游戏开发中,AI是个永恒不变的话题,如果你要的AI只是很简单的一个逻辑 那么有限状态机是一个很好的解决方案,尽管在实际开发中,AI的设计并不是一个简单的逻辑, 如果用有限状态机,维护起来会非常麻烦, ...

  2. 细读cow.osg

    细读cow.osg 转自:http://www.cnblogs.com/mumuliang/archive/2010/06/03/1873543.html 对,就是那只著名的奶牛. //Group节点 ...

  3. Ubuntu14.10安装Eclipse

    方法一:(缺点是安装时附加openjdk等大量程序并无法去除,优点是安装简单) $ sudo apt-get install eclipse 方法二:(优点是安装内容清爽,缺点是配置麻烦) 1、安装J ...

  4. HDU 1281 二分图

    棋盘游戏 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  5. oracle数据导入/导出

    Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份.   大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据 ...

  6. Linux下解压命令大全 解压缩 tar bz2 zip tar.gz gz

    .tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)---------------.gz解压1:gunz ...

  7. ArcGIS Server,rest路径输入要素json 格式描述

    以下内容只测试了简单线, 在ArcGIS Server 的rest路径下可以对服务进行操作,如Query等,这些操作可以输入json 格式要素描述或运行得到即输出json格式要素描述. 如博客:htt ...

  8. 从程序员到CTO的Java技术路线图(我爱分享)

    在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高级特性 反射.泛型. ...

  9. PS通过滤色实现简单的图片拼合

     素材如下: 素材一: 雪山 素材二: 月亮  效果: 实现步骤 1.在PS中打开雪山素材一 2.将月亮素材直接拖入雪山所在的图层中 3.锁定置入素材的高宽比(点击一下链状按钮) 4.调整月亮到合适大 ...

  10. C# 接口笔记

    /* 1. 实现多态的两种方式.             *    使用虚方法实现多态.             *    使用抽象方法实现多态.             *              ...