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. About_类与对象03

    php中的static: 1:属于静态变量:: 2:是全部类的属性: 3:调用静态变量要用::(两个冒号). eg:1 <html> <head> <title>s ...

  2. JavaScript模拟鼠标右键菜单

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. SQL Server 2008 R2数据库镜像部署

    概述 “数据库镜像”是一种针对数据库高可用性的基于软件的解决方案.其维护着一个数据库的两个相同的副本,这两个副本分别放置在不同的SQL Server数据库实例中.建议使用不同位置的两台服务器来承载.在 ...

  4. [转自天涯]ISO27001与ISO20000的关系心得

    “获得认证,就能得到政府的补助,能将对手甩掉.”这是很多管理者的一种想法.但是关于ISO27001与 ISO20000的关系问题很多人都不是很清楚.湖南冉达专家表示想解决这个主要要从三个方面进行分析: ...

  5. Windows 10 Build 14997中Edge浏览器已默认阻止Flash运行

    在上周末偷跑的 Windows 10 Build 14997 向我们传递了很多信息,新增了蓝光过滤器等功能,并有望装备在即将到来的 Creators Update 中.经过深入发掘,外媒发现新版系统中 ...

  6. AutoIt操作Windows GUI实现文件上传

    AutoIt 一个使用类似BASIC脚本语言的免费软件,用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务. 官方网站: htt ...

  7. 网页语言有html,php.jsp,无论什么语言浏览器总是能正常显示,这个解析工作是浏览器完成的吗?

    不是,浏览器最基本的语言是html也就是说浏览器只看得懂html.css.js等其他的服务器端动态脚本,比如你说的php.jsp等,解析工作是在服务器完成的!打个比方,你在电脑显示屏上看到的一切东西, ...

  8. linux cntlm代理的配置

    在linux下需要配置代理上网,如yum, wget等.如果直接配置windows下的代理,如下: export http_proxy=http://<proxyIP>:<port& ...

  9. java中类继承,到底继承了什么?

    继承的最大好处就是为了实现代码的复用.那么,子类到底从父类得到的什么呢? 实例成员 父类的private成员不会被子类继承,子类不能访问.但是子类对象的确包含父类的私有成员. 父类的 包访问成员 继承 ...

  10. Glide加载异常调试

    Glide提供了listener链式调用方法,传入一个RequestListener对象,然后实现内部的onException方法,那么在Glide加载图片失败时就会调用这个方法. 代码实现很简单: ...