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日