文章目录
- 一、FTP是什么?
- 二、NFS是什么?
- 三、SSH是什么?
- 四、FTP,NFS,SSH安装(Ubuntu 操作系统)
- 1.FTP安装
- 2.NFS安装
- 3.SSH服务安装
- 五、FTP,NFS,SSH应用
- 1.FTP应用1
- 2.FTP应用2
- 3.NFS应用
- 4.SSH应用
- 六、NFS使用报错
- 1.报错
- 2.问题定位
一、FTP是什么?
💦FTP是File Transfer Protocol(文件传输协议),顾名思义,就是专门用来传输文件的协议,简单地说,支持FTP协议的服务器就是FTP服务器
💦FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一,它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、Linux和Windows等操作系统中都可实现FTP客户端和服务器,相互之间可跨平台进行文件的传输。因此,FTP服务是网络中经常采用的资源共享方式之一。
💦FTP(File Transfer Protocol)即文件传输协议,是一种基于TCP的协议,采用客户/服务器模式,通过FTP协议,用户可以在FTP服务器中进行文件的上传或下载等操作,虽然现在通过HTTP协议下载的站点有很多,但是由于FTP协议可以很好地控制用户数量和宽带的分配,快速方便地上传、下载文件,因此FTP已成为网络中文件上传和下载的首选服务器,同时,它也是一个应用程序,用户可以通过它把自己的计算机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。
二、NFS是什么?
💦NFS是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。 💦NFS服务器的作用是:让不同的电脑将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程NFS服务器主机的目录就好像是自己的一个磁盘分区一样,类似与共享文件夹。
三、SSH是什么?
💦SSH是一种协议标准,其功能是实现安全远程登录以及其它安全网络服务。
四、FTP,NFS,SSH安装(Ubuntu 操作系统)
1.FTP安装
💦FTP作用:
在Linux开发的过程中会频繁的在 Windows 和 Ubuntu 下进行文件的互传,比如将在Windwos 下的文件,传输到Ubuntu 系统中,此时就可以通过FTP服务进行传输。
💦安装步骤:vsftpd是Linux下的一款FTP服务器软件
1)在 Ubuntu 系统中,输入指令安装FTP服务,指令如下
sudo apt-get install vsftpd
💦等待安装完成如下
2)修改Ubuntu 系统下ftp配置选项,目录如下:vsftpd.conf是vsftpd软件的配置文件。
sudo vi /etc/vsftpd.conf
💦原内容如下:
💦修改成:将1和2都更改成yes,开启本地访问和写的权限
3)重启FTP服务
sudo /etc/init.d/vsftpd restart
4)FTP服务验证
💦输入指令:
sudo netstat -antup | grep ftp
💦netstat指令含义:netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
💦grep指令含义:
搜索相关信息
💦上述图片表示ftp服务已经启动,监视端口21。
2.NFS安装
💦安装步骤:rpcbind是nfs应用不可少的服务或者叫工具
1)输入指令如下:安装nfs和rpcbind
sudo apt-get install nfs-kernel-server rpcbind
💦等待安装完成如下
2)在Ubuntu系统中新建个文件夹,供nfs服务使用
💦在用户根目录创建个nfs文件供nfs服务使用,以后我们可以在开发板上通过网络文件系统来访问 nfs 文件夹。
3)修改Ubuntu 系统下nfs配置选项,目录如下:/etc/exports
输入指令如下:
sudo vi /etc/exports
💦添加如下内容:*(内容)给挂载目录添加相应权限
💦 *(rw,sync,no_root_squash)解析
(1) * 任意主机可以使用NFS服务
(2) rw 该主机对该共享目录有读写权限
(3) sync 资料会同步到硬盘
(4) no_root_squash 登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限,单词squash是压缩压扁的意思。
(5) root_squash 在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份。
4)重启NFS服务
sudo /etc/init.d/nfs-kerner-server restart
5)验证NFS服务
💦 输入以下指令查看NFS服务状态:
sudo systemctl status nfs-kernel-server //查看NFS服务器的状态
sudo systemctl status nfs-client //查看NFS客户端的状态
sudo showmount -e <nfs_server> //列出NFS服务器上所有已经导出的共享目录
sudo mount -t nfs <nfs_server>:/<remote_directory> <local_directory>//将NFS共享目录挂载到本地目录,如果成功挂载,说明NFS服务正常运行
💦 查看NFS服务器状态,active表示NFS服务正常运行
3.SSH服务安装
💦安装步骤:SSH服务是远程控制服务,可以在windows下通过SSH服务控制Ubuntu系统。
1)输入指令如下:
sudo apt-get install openssh-server
2)SSH配置文件,在目录/etc/ssh/sshd_config,使用默认配置即可。
3)查看SSH服务状态
💦输入如下指令
ps -e | grep ssh
💦结果如下,表示SSH服务正常
五、FTP,NFS,SSH应用
1.FTP应用1
💦在windows下安装FileZilla软件,此软件支持FTP服务
💦利用FileZilla软件从windows复制文件到Ubuntux系统中
2.FTP应用2
💦步骤:
💦创建tfpt文件夹
💦修改文件夹权限
💦配置 tftp,安装完成以后新建文件/etc/xinetd.d/tftp,如果没有/etc/xinetd.d 目录的话自行 创建,然后在里面输入如下内容:
💦tftp文件内容:
💦打开/etc/default/tftpd-hpa 文件
💦TFTP_DIRECTORY 就是我们上面创建的 tftp 文件夹目录,以后我们就将所有需要通过TFTP 传输的文件都放到这个文件夹里面,并且要给予这些文件相应的权限。
💦最后重启服务
sudo service tftpd-hpa start
💦uboot 中的 tftp 命令格式如下:
tftpboot [loadAddress] [[hostIPaddr:]bootfilename]
💦看 起来 和 nfs 命令格 式一 样的 , loadAddress 是文 件在 DRAM 中的 存放 地址 ,[[hostIPaddr:]bootfilename]是要从 Ubuntu 中下载的文件。但是和 nfs 命令的区别在于,tftp 命令不需要输入文件在 Ubuntu 中的完整路径,只需要输入文件名即可。比如我们现在将 tftpboot 文件夹里面的 zImage 文件下载到开发板 DRAM 的 0X80800000 地址处,命令如下:
tftp 80800000 zImage
3.NFS应用
💦比如我们将 linux 镜像和设备树文件放到 Ubuntu 中,然后在 uboot 中使用 nfs 命令将 Ubuntu 中的 linux 镜像和设备树下载到开发板的 DRAM 中。这样做的目的是为了方便调试 linux 镜像和设备树,也就是网络调试,通过网络调试是Linux 开发中最常用的调试方法。
💦原因是如下:
💦嵌入式 linux开发不像单片机开发,可以直接通过 JLINK 或 STLink 等仿真器将代码直接烧写到单片机内部的 flash 中,嵌入式 Linux 通常是烧写到 EMMC、NAND Flash、SPI Flash 等外置 flash 中,但是嵌入式 Linux 开发也没有 MDK,IAR 这样的 IDE,更没有烧写算法,因此不可能通过点击一个“download”按钮就将固件烧写到外部 flash 中。虽然半导体厂商一般都会提供一个烧写固件的软件,但是这个软件使用起来比较复杂,这个烧写软件一般用于量产的。其远没有 MDK、IAR的一键下载方便,在 Linux 内核调试阶段,如果用这个烧写软件的话将会非常浪费时间,而这个时候网络调试的优势就显现出来了,可以通过网络将编译好的== linux 镜像和设备树文件下载到 DRAM 中==,然后就可以直接运行。
4.SSH应用
💦在windows环境下,使用VScode下载remote组件,通过找个组件可以远程控制ubunt系统。
六、NFS使用报错
1.报错
2.问题定位
💦1)nsf服务查看,确定服务是否安装。
可以使用上述查看nfs的状态或者下方指令查看nfs服务是否运行
netstat -a | grep "nfs"
💦如下图所示表示服务正在运行
💦2)查看nfs的配置,nfs是网络文件系统,可以传送文件,所以Ubuntu系统中,肯定会有文件夹和nfs的配置文件。
💦 在系统中创建的 nfs 文件夹供 nfs 服务器使用,以后我们可以在开发板上通过网络文件系 统来访问 nfs 文件夹,要先配置 nfs,使用如下命令打开 nfs 配置文件/etc/exports:
💦主要是查看目录是否正确,然后重启服务。
💦2).uboot和Ubuntu系统的nfs版本不一致
💦 查看nfs版本
sudo cat /proc/fs/nfsd/versions
💦 可以看出我的Ubuntu系统没有+2或者-2
原因是Ubuntu的系统内核是6.5不支持版本2,所以解决办法切换内核版本。
💦 安装步骤:
💦 实际操作如下:
💦 安装头文件
💦 安装内核模块和驱动
💦 如果有问题修复,使用下面指令修复
sudo apt --fix-broken install
💦 查看安装是否成功
💦 修改启动项
💦 更新grub
💦 重启sudo reboot
💦 补充:
进入安装系统的两种方法:
1.按ESC键进入启动项选择,选择安装的系统。
2.可以配置GRUB_DEFAULT=0 修改为 GRUB_DEFAULT=“1> 6”,第一个选项是数字0。
注意:> 与7之间有个空格
Menuenty 就是启动顺序,比如启动6.2版本GRUB_DEFAULT=“1> 5”