在讲述详细的开发环境搭建之前,先大概讲讲本文介绍了哪些内容
首先,我们是在Windows下通过VMware运行虚拟机Ubuntu来运行主机端的Linux,然后再通过串口线连接电脑和Linux开发板
那么就会产生问题:
1.如何将Windows中的文件导入Ubuntu?
2.如何让Ubuntu和Linux开发板能进行文件间的共享传输?
简单来说,就是让Window和Ubuntu共享文件,让Ubuntu和Linux开发板共享文件。因为Windows和Linux操作系统不一样,所以要在Ubuntu中搭建交叉编译环境,而不是直接让两个环境进行传输。
接下来介绍具体步骤,简单部分不细讲
一、VMware中创建虚拟机Ubuntu
(1).在Windows下,新建一个20GB以上的磁盘分区
具体自行百度
(2).在VMware中新建一个虚拟机
具体自行百度
(3).打开Ubuntu官网连接,下载Ubuntu的驱动文件
Ubuntu系统下载 | Ubuntu
(4).使用下载好的驱动文件
完成后,打开虚拟机,进入Ubuntu安装引导界面
具体安装教程,可自行百度,附上一个链接/AFCpM
二、 在Ubuntu中搭建交叉编辑环境
(1).下载解压Linaro公司基于GCC推出的ARM交叉编译工具压缩包
问题来了,为什么要下载这个东西呢?Ubuntu里不是自带gcc编译器么?
答案是Ubuntu里的gcc编译器和Linux开发板上的编译环境不一样,而且Ubuntu里的gcc编译器一次还就只能编译一个文件,不能批量编译,因此需要下载别的编译工具。
下载交叉编译压缩包的方法有两种:
第一种是在Windows下载,通过开启共享文件夹的方式,再在Ubuntu中将其复制出来
第二种是直接在Ubuntu中打开浏览器输入网址下载(需要更换Ubuntu下载源,否则下载速度会很慢)
第一种方法:
1.在Windows下,打开网址Linaro Releases 选择64位的编译工具压缩包下载
2.VM左上角点击虚拟机-设置-选项-共享文件夹-总是启用-添加。
如果“总是启用”是灰色的,先把虚拟机关机在点击设置
新建文件夹时,请不要使用中文路径,这很重要,其他随意,下一步即可
3.在终端下操作,使Ubuntu可以访问该共享文件
3.1安装open-vm-tools
命令为:sudo apt install open-vm-tools*
3.2 查看设置的共享文件有没有在Ubuntu里显示
命令为:vmware-hgfsclient
3.3 创建文件挂载目录/mnt/hgfs
命令为:sudo mkdir /mnt/hgfs
3.4 将共享文件挂载到目录/mnt/hgfs
命令为:sudo /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other
(./host后面跟着的是共享文件夹名字,但我们建立不止一个共享文件夹,每次都要重新挂载未免太麻烦,直接不写具体的文件夹名字,让整个目录里的所有共享文件夹一起挂载就行了)
3.5 设置开机自动挂载
打开配置文件
命令为:vim /etc/fstab
在配置文件最底下输入语句
语句为:.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,defaults 0 0
4.进入/mnt/hgfs,输入ls查看是否存在目录,UShare2是我从上面步骤一路新建的
5.将Windows中下载好的压缩包放到共享文件夹里,再从Ubuntu中进入该文件夹,查看该压缩包,先别急着解压,解压操作后续进行
第二种方法:
1.打开火狐浏览器
2.输入网址Linaro Releases
3.下载64位压缩包
(2).解压交叉编辑工具压缩包
1.解压压缩包
命令1:mkdir -p /usr/local/arm//交叉编译器安装目录
命令2:cp 压缩包名字 /usr/local/arm //在压缩包目录下执行,复制一份到创建的目录下
命令3:cd /usr/local/arm //进入创建的目录
命令4:sudo tar xvf 压缩包名字 //解压
命令5(选做):sudo mv 解压后文件名字 新的名字 //重命名解压后的文件
我解压后重命名的文件如下,下列步骤以cross-4.9.4代替“解压后文件”
2.进入cross-4.9.4/bin 目录下
3.在环境变量PATH中添加路径
命令:export PATH=$PATH:/usr/local/arm/cross-4.9.4/bin
4.使用arm-linux-gnueabihf-gcc命令查看编译工具版本信息,可以在/cross-4.9.4/bin文件夹中(上面图)找到对应的可执行文件
命令:arm-linux-gnueabihf-gcc -v
运行效果如下。第一次执行该命令会提示要下载,执行提示的下载语句,再次运行该命令即可。
三、配置NFS文件共享系统
为什么要配置NFS?NFS有啥用?
首先,让Ubuntu可以访问Windows中的文件可以通过共享文件夹的方式,那让Windows访问Ubuntu中的文件呢?那就需要配置Samba服务器,感兴趣可自行百度。那让Linux开发板访问Ubuntu中的文件呢?那就需要配置NFS了。
NFS就是用于Linux和Linux之间的共享文件,Samba用于Linux和Windows的共享文件,Samba也可以用于Linux和Linux,不过NFS更好,所以要配置NFS
NFS的配置文件在/etc/exports
1.NFS安装前的准备
新建一个用于NFS文件共享的文件夹
命令1:sudo mkdir /home/nfs
命令2:sudo chmod 777 /home/nfs
2.安装NFS
命令:sudo apt-get install nfs-kernel-server
3.配置exports文件
命令1:sudo gedit /etc/exports
在打开的文件最底下添加:
/home/nfs *(rw,sync,no_root_squash)
4.重启portmap
portmap在目录/etc/init.d/下,那么你可能会好奇了,怎么找不到portmap文件呢?因为Ubuntu中rpcbind已经更名取代了portmap,两者是一样的。所以重启rpcbind就行了
命令:sudo /etc/init.d/rpcbind restart
5.重启NFS服务
命令:sudo /etc/init.d/nfs-kernel-server restart
6.显示共享出的目录
命令:showmount -e
效果如下:
至此,完成在虚拟机上面搭建嵌入式交叉编译环境