因为玩imx6ull 是交叉编译,免不了要把在PC机上的交叉编译内容拷贝到imx6ull 里面,进行运行。刚开始我用U盘拷来拷去的,麻烦!
用tftp 或者nfs 服务器 传输是“标准撸法”。于是小试了一把,过程用onenote 记录,如下:
1 首先 iot 联网后,肯定是和笔记本连的wifi 在一个局域网内,这是前提; 2 把VM ware 的 Ubuntu 网络设置成桥接模式,这样虚拟机就如同一个实际的主机连在局域网中了。 3 在 Ubuntu 上安装tftp 这个网上很多, 很好搜,主要是自己也测一下,能不能在自己的主机上用。
我后来发现 在修改了tftphd-dpa 的参数后,restart 出现错误: 1 wb@ubuntu:~/Documents/tftpboot$ sudo/etc/init.d/tftpd-hpa restart 2 [....] Restarting tftpd-hpa (via systemctl): tftpd-hpa.serviceJob for tftpd-hpa.service failed because the control process exitedwith error code. See "systemctlstatus tftpd-hpa.service" and "journalctl-xe" for details. 3 failed!
于是我修改了配置,将端口改了一下,再restart 就好了。 1 # /etc/default/tftpd-hpa 2 3 TFTP_USERNAME="tftp" 4 TFTP_DIRECTORY="/home/wb/Documents/tftpboot" 5 TFTP_ADDRESS=":12345" //修改后的端口 6 #TFTP_OPTIONS="--secure" 7 TFTP_OPTIONS="-l -c -s" 8 TFTP_DAEMON="yes" 9 OPTIONS="-l -s /home/wb/Documents/tftpboot" 然后在 imx6ull 上先 ping 一下 虚拟机的IP : root@mys6ull14x14:~#ping 10.8.6.113 PING 10.8.6.113(10.8.6.113) 56(84) bytes of data. 64 bytes from10.8.6.113: icmp_seq=1 ttl=64 time=1016 ms 64 bytes from10.8.6.113: icmp_seq=2 ttl=64 time=1024 ms 64 bytes from10.8.6.113: icmp_seq=3 ttl=64 time=24.1 ms 64 bytes from10.8.6.113: icmp_seq=4 ttl=64 time=961 ms 64 bytes from10.8.6.113: icmp_seq=5 ttl=64 time=1008 ms 64 bytes from10.8.6.113: icmp_seq=6 ttl=64 time=1004 ms
发现能连了,再进行tftp 传输。
传输当然要有传输的内容,再Ubuntu的tftpboot目录下 新建一个文件比如 aaa.c
在imx 端 也就是客户端,tftp 的命令格式如下: 1 命令格式为: 2 3 tftp [option] ... host [port] 4 5 如果要下载或上传文件的话是一定要用这些option的。 6 7 -g表示下载文件(get) 8 -p表示上传文件(put) 9 -l表示本地文件名(local file) 10 -r表示远程主机的文件名(remote file) 11 12 例如,要从远程主机 (x.x.x.x)IP 上下载aaa.c,则应输入以下命令 13 14 tftp -g -r embedexpert x
实际从主机上把 aaa.c 下载下来:
1 root@mys6ull14x14:~#tftp -g -r aaa.c 10.8.6.113:12345 //我在配置里改了端口号 这里就要加上端口号 2 root@mys6ull14x14:~# ls 3 aaa.c vim-common-8.0.1842-1.fc27.armv7hl.rpm 4 example wifi.conf 5 startwlan0 6 root@mys6ull14x14:~#
|