SSH是一种加密的网络传输协议,可以在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。
在嵌入式开发中,我们通常开启Ubuntu的SSH服务,然后在window下通过putty/SSH、SecureCRT、MobaXterms等软件使用SSH服务远程登录系统来传输命令行界面和远程执行命令,这样可以省去来回切换window与Linux虚拟机的麻烦,甚至有些在某些场合下Linux环境并不是部署在本机上,我们并不能直接接入图形界面去操作linux,此时SSH就派上很大的用场了。
1、安装Ubuntu SSH服务:
sudo apt-get install openssh-server
ssh 的配置文件为/etc/ssh/sshd_config,使用默认配置即可。
2、MobarxTerm连接SSH:
samba服务器可以做为windows和linux交互的媒介,让windows用户轻松的在电脑上使用图形界面访问linux文件系统,并可以设置写入权限,实用性极佳。
1、安装samba服务
sudo apt-get install samba
2、备份原始配置smb.conf
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
3、在smb.conf的文件最后加入以下配置并保存,然后退出
sudo vi /etc/samba/smb.conf
[ work ]
comment = samba home directory
path = /home/lyy
public = yes
browseable = yes
public = yes
writeable = yes
read only = no
valid users = lyy
create mask = 0777
directory mask = 0777
#force user = nobody
#force group = nogroup
available = yes
sudo smbpasswd -a lyy
5、重新启动samba服务:
sudo service smbd restart
6、查看Ubuntu的IP地址:
ifconfig
7、添加window访问samba共享文件的方法。可以选择以下任一方法来访问。
a、在window文件目录栏输入Ubuntu的IP地址,填写samba用户及密码即可登录查看samba共享文件。
b、使用window映射网络驱动器:
此时samba共享文件夹就会显示在我的电脑->网络位置里了,
若要取消映射,则选择对应的驱动器,再选择断开网络驱动器的连接即可。
c、添加samba共享文件快捷访问方式,桌面右击新建->快捷方式
FTP服务是用于在网络上进行文件传输的一套标准协议,window与Ubuntu互传文件可以使用上面介绍的samba服务来互传文件,或者使用MobarxTerm SSH连接到Ubuntu后,也可以直接互拉文件。
1、使用命令安装FTP服务:
sudo apt-get install vsftpd
2、修改FTP配置
sudo vi /etc/vsftpd.conf
local_enable=YES
write_enable=YES
3、重启FTP服务:
sudo /etc/init.d/vsftpd restart
重启FTP服务后,window可以使用FileZilla软件与Ubuntu互传文件。
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
在嵌入式linux开发中,常用于在uboot中使用TFTP来加载内核镜像、设备树和其他文件到开发板中,省去开发调试阶段重复烧写内核镜像、设备树的步骤。
1、使用命令安装xinetd:
sudo apt-get install xinetd
xinetd的配置在/etc/xinetd.conf中,一般使用默认配置即可。
2、新建TFTP目录:
mkdir -p /home/lyy/work/tftproot
sudo chmod 777 /home/lyy/work/tftproot
3、使用命令安装tftpd-hpa 和 tftp-hpa 服务程序
sudo apt-get install tftpd-hpa tftp-hpa
4、配置tftpd-hpa,修改TFTP服务器工作目录:
sudo vi /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/lyy/work/tftproot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"
5、配置xinetd TFTP服务器工作目录:
sudo vi /etc/xinetd.d/tftp
server tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s -c /home/lyy/work/tftproot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
6、重启tftp-hpa、xinetd服务:
sudo service tftpd-hpa restart
sudo service xinetd restart
NFS全称为Network File System,即为网络文件系统,是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。
在嵌入式开发中常用于将Ubuntu上编译好的根文件系统挂载到开发板上,或者开发应用程序挂载到开发板上,方便开发与调试。
1、使用使命安装NFS服务:
sudo apt-get install nfs-kernel-server rpcbind
sudo apt-get install nfs-common
2、创建NFS共享目录:
sudo mkdir -p /home/lyy/work/nfsroot
sudo chmod 777 /home/lyy/work/nfsroot
3、配置NFS服务:
使用命令打开/etc/exports文件:
sudo vi /etc/exports
在最后添加NFS访问路径配置:
/home/lyy/work/nfsroot *(rw,sync,no_root_squash,no_subtree_check)
*表示允许所有的网络段访问
rw 表示访问者具有可读写权限
sync 表示将缓存写入设备中,可以说是同步缓存的意思
no_root_squash 表示访问者具有 root 权限。
修改完以后保存退出。
4、Ubuntu 17.10 之后 nfs 默认就只支持协议3和协议4,若嵌入式设备只开启了nfs协议2,则再挂载的nfs时可能会出现“Protocol not supported
”错误。如果想让Ubuntu支持 nfs 协议2,需要在/etc/default/nfs-kernel-server末尾加一句:RPCNFSDOPTS=" --nfs-version 2,3,4 --debug --syslog"。
5、执行以下指令重启 NFS 服务器。
sudo /etc/init.d/nfs-kernel-server restart
6、开发板挂载NFS文件系统:
sudo mount -t nfs 192.168.31.72:/home/lyy/work/nfsroot /mnt -o nolock
挂载好后,开发板就可以操作本地文件一样操作NFS挂载后的文件系统。若不再使用则使用umount就可以卸载掉了。
umount /mnt
至此,Ubuntu搭建嵌入式Linux网络开发环境都已经介绍完了。