VMware中安装ubuntu14.04 Server版本,在与主机进行文件交互时有多种方式,如通过xftp进行双向文件移动,通过xshell进行telnet/ssh远程连接。还可以通过共享文件夹设置,进行文件读写。
一、基于xftp5的文件共享方式(Windows与Ubuntu间)
首先介绍基于xftp 5的文件共享方式。
Windows端安装xshell5, xftp5软件。
Ubuntu作为被连接方,主要设置IP、DNS、安装ftp
(1)设置静态IP
虚拟机设置中的网络适配器,选择桥接模式
进入ubuntu,修改/etc/network/interfaces文件,设置本机IP:
# sudo vim /etc/network/interfaces
// 编辑输入
....
# the primary network interfaces
auto eth0
iface eth0 net static
address 192.168.207.94
netmask 255.255.255.0
gateway 192.168.207.207
// 保存退出
(2)设置DNS使能上网
修改 /etc/resolv.conf文件,设置可用DNS
# sudo vim /etc/resolv.conf
// 编辑输入
nameserver 223.5.5.5
nameserver 180.76.76.76
nameserver 8.8.8.8
nameserver 114.114.114.114
// 保存退出
这只是保证当前有效,要重启有效需要修改文件
/etc/resolvconf/resolv.conf.d/base,同样设置可用的DNS
# sudo vim /etc/resolvconf/resolv.conf.d/base
// 编辑输入
nameserver 223.5.5.5
nameserver 180.76.76.76
nameserver 8.8.8.8
nameserver 114.114.114.114
// 保存退出
最后执行/etc/NetworkManager/就可以连上网了。我的测试机器,ubuntu server 14.04 并没有执行步骤3,重启电脑后就可以上网。所以此步骤的有效性还需要验证。
使用的嵌入式设备,配置了interface3, resolv.conf后仍然不能上网,因为设备的原因重启后这两个配置会失效,所以需要额外工作:
// 我的嵌入式板子,restart也不能上网
# /etc/init.d/network restart
//于是进行下述操作后可以
ifconfig eth0 192.168.207.176 netmask 255.255.255.0
route add default gw 192.168.207.207
经过ifconfig, route 两个配置,嵌入式板子没有重启也可以上网了。
(3)xftp设置
虚拟机中确保安装openssh-server, openssh-sftp-server.
#安装
sudo apt-get update
sudo apt-get install openssh-server
sudo apt-get install openssh-xftp-server
#检测ssh是否启动
ps -e|grep sshd
#启动ssh,以下无效重启试一试
sudo service sshd start
或
sudo /etc/rc.d/init.d/sshd start
(4)启动xshell远程连接
可以通过ssh协议、ftp协议连接远程机器,这里我们使用ssh,设置好远端IP、User、Password等,
启动xftp连接,点击图示按钮即可。
二、Ubuntu与嵌入式设备间文件共享nfs
asdf
Ubuntu作为nfs服务端,提供一个共享文件夹挂载到网络中。
(1)Ubuntu Server端安装nfs-server
sudo apt-get install nfs-kernel-server
sudo apt-get install nfs-common
(2)Ubuntu Server提供共享文件夹
拟在当前用户目录下新建nfs文件夹,作为共享文件夹挂载。
sudo mkdir /home/ff/nfs
(3)配置nfs-server启动信息
#打开nfs使用的配置文件
sudo vim /etc/exports
#在最后一行添加
/home/ff/nfs *(rw,sync,no_root_squash,no_subtree_check)
#保存并重启nfs-server
sudo /etc/init.d/nfs-kernel-server restart
(4)检查nfs挂载信息
检查nfs启动后,是否将我们配置的/home/ff/nfs文件夹挂载在网络上
#本机检测挂载, 输出: /home/ff/nfs *
showmount -e
#其他机器检测挂载, 192.168.207.94是安装了nfs-server的这台机器
showmount -e 192.168.207.94
(5)将nfs挂载到本地
mount 192.168.1.94:/home/ff/nfs /home/root/nfs94
#这样在本地操作nfs94,就可以访问服务端的目录了。
三、tftp拷贝到嵌入式设备中
ubuntu——-(rz)——–>Windows———–(tftp32)——–>arm
(1)Ubuntu中安装rz sz工具
Ubuntu中交叉编译生成arm需要的文件。
rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具。
可以将Ubuntu中的文件拷贝到Windows系统中。
# 安装rzsz工具
sudo apt-get install lrzsz
# 将需要拷到arm嵌入式设备的文件准备好,rz命令取出到Windows中
rz abc.txt
(2)Windows安装tftp32.exe
tftp32.exe可以将文件作为资源,供嵌入式设备导入到设备中。
将欲共享的文件放到ftfp32.exe根目录下
(3)设备中使用tftp下载文件
# arm设备中下载tftp提供的文件, 倒数第二个参数表示文件名,最后参数为tftp所在的主机IP
tftp -g -r abc.txt 192.168.207.104
# 修改权限,尤其是拷贝过来的可执行程序,是没有权限运行的
chmod abc.txt 777
四、安装arm交叉编译工具
Linux下编译生成arm交叉编译工具很复杂,像我一样的新手,可以直接下载别人已经编译好的arm交叉编译工具。
综合入口
arm-none-linux-gnueabi-gcc
(1)下载文件
arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
(2)解压缩
# 解压缩
sudo tar -xvf arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
# 解压缩后文件为 /home/ff/arm-2009q3
sudo mv arm-2009q3 /usr/local
# 授权
sudo chmod 777 /usr/local/arm-2009q3 -R
# 配置arm编译工具环境变量
sudo vim /etc/profile
# 在/etc/profile文件最后添加如下内容,保存并退出
export ARM=/usr/local/arm-2009q3/bin
export PATH=$ARM:$PATH
# 使环境变量生效
source /etc/profile
(3)测试
输入arm,按tab键,如果能给出提示 :arm-none-linux-gnueabi-
表示arm交叉编译工具生效。
可以编写测试test.cpp文件,应用
# 编译test可执行文件
arm-none-linux-gnueabi-g++ test.cpp -o test
将test放到tftp根目录下。
在嵌入式设备中通过
# 下载tftp服务端中提供的test可执行文件
tftp -g -r test 192.168.207.104
# 修改test权限
chmod 777 test
# 运行test
./test