通常我们通过网络传输文件有以下几种方式:
- scp
- ftp
- telnet
- mount nfs
小的在板卡上对上述几个进行了逐一尝试
scp 对不起,板子上的默认配置没有
tftp
tftp可以进行一些文件传输,但是并不支持较大文件
从服务器拉一个文件下来,只需要执行
tftp -r -g filename ip_address
板卡端设置的存储空间大小极其有限,各位少侠要量力而行。
但是我有尝试把板端的目录切换到/app/sd卡上
继续使用tftp命令来拉取文件,此时较大的文件还是无法拉取,但是相对直接在板端的rootfs下拉取要好一些,可支持的文件大小有增长。
至于这个在sd卡上为什么还无法进行大文件拉取,有知道的大佬还请告诉我。
有人说tftp访问不了服务器,报错了? 少年,你是不是要check一下你的服务器端有没有tftp的server
sudo apt-get install tftp-hpa tftpd-hpa
接下来来书写配置文件,修改/etc/default/tftpd-hpa3
其中的TFTP_DIRECTORY就是tftp要访问的地址目录,可以根据你的需要自行修改
TFTP_OPTIONS里的 -s指定访问目录,-c表示可以上传文件
紧接着在服务器上重启服务
sudo service tftpd-hpa restart
telnet
这个倒是可以访问到服务器直接
telnet ip_address
就可以了,然后通过get命令来从服务器下载文件,
nfs
这个是被文档坑的最惨的,一直以为直接mount nfs就可以了。
我们来深扒一下具体的操作流程
- 首先海思的默认linux kernel下是没有编译nfs的,我们需要自行编译进去
好的,那我们来到linux kernel的目录下,/osdrv/opensouce/kernel/linux-4.9.y
首先说明一个,海思在此处放的配置文件,可能和我们需要的不同,因此我们需要在arch/arm/configs下选择相对应的config文件进行拷贝
make ARCH=arm CROSS_COMPILE=arm-himix100-linux- menuconfig
好啦,可以开始编译了
make ARCH=arm CROSS_COMPILE=arm-himix100-linux- uImage -j 20
编译我弄成之后可以在/arch/arm/boot路径下找到这个uImage的文件。将镜像重新烧写到海思的板卡中就好
如果出现了错误,请使用
make ARCH=arm CROSS_COMPILE=arm-himix100-linux- clean
接下来在板端可以执行了
mount -t nfs 172.19.121.123:/home/jack/Downloads/nfs /app/nfs/ -o nolock
如果你还是mount不成功,请再次去确认服务器端是否安装了nfs-server并启动成功