在嵌入式Linux系统中,电脑端使用SSH登录和SFTP登录开发板的方式非常常见,这种登录方式比起串口登录方式要好得多,一根网线或者一个WIFI热点就可以进行Linux shell通信或者传输大文件,通常SSH登录和TFTP/SFTP的端口号都是22,而21则是FTP(如vsftpd,电脑端可直接在文件夹地址中输入开发板的地址,以系统文件的方式进行访问,而无需像SFTP那样要通过XShell或者FZ这种第三方软件访问)。
首先是SSH登录方式,这个登录方式需要开发板预先安装并开启SSH服务,在官方的Linux3.1内核的系统中,SSH服务是有安装的,但是却没有运行,使用网上常见的sshd start之类的指令也无法进行访问,后面刷了个Linux4.115内核的fsl-qt5的镜像之后SSH服务就可以正常访问了,访问步骤如下:
第一,使用网线连接开发板和电脑,注意开发板有两个网口,默认使用CPU左侧靠近音频接口那个网口:
使用命令提示符查询电脑的IP地址:
可以看到,这里面我电脑的以太网接口的IP地址为169.254.122.1,即网段为169.254.122.XXX,所以开发板也要设置成同一网段不同主机号的169.254.122.XXX,我这里设置成169.254.122.7:
ifconfig eth0 169.254.122.7
然后就可以使用putty或者XShell等软件进行SSH登录了。注意用户名是root:
搞定了SSH登录,然后就是锁定开发板的静态IP地址了,这样做的好处就是开发板每次上电启动都用固定的IP地址,直接可以进行SSH登录而无需事先用串口设置IP地址。锁定静态IP地址的方法:打开/etc/rc2.d/下的S99rc.local文件,在文件的最开头处添加ifconfig eth0 169.254.122.7:
至于怎么提取这个文件到Window上呢?可以直接在SSH登录窗口里面使用
sz /etc/rc2.d/S99rc.local
命令提取出来:
修改好之后,使用
命令选择修改好的S99rc.local文件覆盖至开发板的目录里面:
可以用
cat /etc/rc2.d/S99rc.local
的命令来检查文件是否成功修改:
检查文件无误,使用
chmod 777 /etc/rc2.d/S99rc.local
命令打开文件权限,使得关机或者重启都保留这个IP地址。
最后是SFTP权限的问题,这个反而是比较简单,直接在Linux系统下寻找sftp_server文件覆盖至开发板的/usr/libexec目录下即可:
为了方便我这里直接共享这个文件出来:
sftp-server.zip
(95.39 KB)
重启之后,便可以使用FZ软件输入开发板的端口号进行SFTP访问了,有提示密钥不匹配的直接覆盖忽略:
|