ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

01-开发设备之间互联互通

2022-07-21 11:05:24  阅读:324  来源: 互联网

标签:互联互通 01 Windows 开发板 Mac NFS Ubuntu tftp 设备


官方开发指南(嵌入式Linux应用开发完全手册V4.0_韦东山全系列视频文档-IMX6ULL开发板)只讲解了基于 Windows PC,如何实现其与开发板、虚拟机 Ubuntu 系统的互联互通。指南中主要有三种方法:
第一种是 USB OTG 网卡,实现开发板和 PC 的直连。在 MAC 上尝试该方法,发现没有新增网络适配器;
第二种是主机和开发板同时网线接到交换机,由于网线只有一根,平时主机使用 wifi 和无线路由器连接,
因此本文连接方式为:开发板和交换机使用网线连接,主机使用 WIFI 和交换机连接。下面主要介绍 Mac 上,实现互联互通的软件工具和操作方法,如何实现开发流程命令文件传输过程。


Windows 上详细的手把手教学视频请看 https://www.bilibili.com/video/BV12A411J7DG 网络连接方式一。

软件清单

软件名 说明
Parallel Desktop 虚拟机软件,安装 Ubuntu、Win11 操作系统。具备融合模式,减少多系统使用割裂感、不同系统具备共享文件夹,提高文件分享效率
Source insight 阅读、编写源码的工具,即装即用;推荐初学者使用
Visual Studio Code 阅读、编写源码的工具,需要进行很多配置;不推荐初学者使用
MobaXterm Windows 上串口工具、远程登录工具,Mac上推荐使用 minicom
Filezilla 文件传输工具,在 Mac/Windows 和 Ubuntu 之间传输文件
Notepad++ 文本编辑工具,比记事本好用

硬件清单
选用的设备链接方式所需硬件参考网络服务硬件

Windows/Mac 主机开发流程

Mac 主机上一般的日常开发流程为

  1. 在 Mac 上阅读修改代码(VSCode),融合模式下使用 Windows 上 SourceInsight 阅读修改代码,然后通过 共享目录把代码传到 Parallel Desktop 中的 Ubuntu;
  2. 在 Ubuntu 上编译程序;
  3. 把程序下载到开发板上,运行验证;
  4. 在 Mac 下通过串口/网络操作开发板。

Mac_IMX6ULL_Network_System
Mac_IMX6ULL_Network_System

Windows 主机上一般的日常开发流程为

  1. 在 Windows 上阅读修改代码,然后通过 FileZilla 把代码传到 VMWare 中的 Ubuntu;
  2. 在 Ubuntu 上编译程序;
  3. 把程序下载到开发板上,运行验证;
  4. 在 Windows 下通过串口操作开发板。

文件传输方式种类和差异

1. 串口服务硬件

将串口线与电脑、板子连接,开发板插上电源。
其中特别需要注意的几点:
a) 板子的启动选择拨到正确的启动方式,保证该启动方式里面有系统可以运行;
b) 板子如图所示插上配套的电源到电源接口,电源开关暂时不用打开。

2. 串口服务类型和特点

  • 传输速度慢

3. 网络服务硬件

  • 百问网 imx6ull pro 开发板一套
  • 超六类 RJ45 网线至少 1M 长(默认配有)
  • 路由器
  • PC 需具备无线网卡

4. 网络服务类型和特点

  • NFS:NFS 实现了一个跨越网络的文件访问功能,如下图可以简要说明其原理。其整个架构为 Client-Server 架构,客户端和服务端通过 RPC 协议进行通信,RPC 协议可以简单的理解为一个基于 TCP 的应用层协议,它简化命令和数据的传输。NFS 最大的特点是将服务端的文件系统目录树映射到客户端, 而在客户端访问该目录树与访问本地文件系统没有任何差别,客户端并不知道这个文件系统目录树是本地的还是远在另外一台服务器

    • 挂载 Ubuntu 目录到开发板 /mnt 目录下
    • 编译和执行可以分开执行,文件共享
    • 免去上传和下载等等繁琐的操作
  • TFTP

    • 在 Ubuntu 启动 TFTP 服务,开发板通过 tftp 命令和 Ubuntu 互传文件;
    • 在 Windows 启动 TFTP 服务,开发板通过 tftp 命令和 Windows/Mac 互传文件;
  • SSH

    • 在开发板上启动 SSH 服务,Windows/Mac 通过 FileZilla 登录开发板,互传文件。
    • SSH 服务通过 FileZilla 是完全 GUI 操作,更方便

MAC 上 PD 安装 Ubuntu 的网络设置

1. 网络设置

  1. 控制中心,右键进入配置
  2. 点击硬件,网络 1 设置成共享网络,虚拟机可以使用互联网
  3. 新添加网络2,选择桥接模式,源为 Wifi

2. 测试三者是否能否能ping通

  1. 查看 mac IP 地址,和 ubuntu 互相 ping 得通
  2. 串口查看开发板 IP,和 ubuntu 互相 ping 得通
  3. mac 和开发板互相 Ping 得通

Ubuntu 安装、配置 NFS

  1. 查看一下 /etc/exports 的内容,确定是否已挂载
  2. 安装 NFS 服务
    $ sudo apt-get install nfs-kernel-server
    [sudo] password for parallels: 
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    
    Setting up nfs-kernel-server (1:1.3.4-2.5ubuntu3.4) ...
    Creating config file /etc/exports with new version
    Creating config file /etc/default/nfs-kernel-server with new version
    
  3. 修改 /etc/exports, 添加访问目录
    $ sudo vim /etc/exports
    
    添加如下内容:
    /home/parallels *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
  4. 重启 NFS 服务
    $ sudo /etc/init.d/nfs-kernel-server restart
    Restarting nfs-kernel-server (via systemctl): nfs-kernel-server.service.
    
  5. Ubuntu 上通过 NFS 挂载自己,验证一下 NFS 可用
    $ sudo mount -t nfs -o nolock,vers=3 127.0.0.1:/home/parallels/ /mnt
    $ ls /mnt
    cv_debug.log  Desktop  Documents  Downloads  fontconfig  Music  nfs_rootfs  Pictures  Public  snap  Templates  Videos
    $ sudo umount /mnt
    $ ls /mnt
    

Ubuntu 安装 TFTP 服务

  1. 创建 TFTP 服务器工作目录,并打开 TFTP 服务配置文件
$ mkdir -p /home/parallels/tftpboot
$ sudo chmod 777 /home/parallels/tftpboot
  1. 在配置文件/etc/default/tftpd-hpa 中,添加以下字段
    TFTP_DIRECTORY="/home/book/tftpboot"
    TFTP_OPTIONS="-l -c -s
$ sudo vim /etc/default/tftpd-hpa
  1. 重启 TFTP 服务
$ sudo service tftpd-hpa restart 
  1. 查看 tftp 服务是否在运行,运行如下命令,即可查看是否在后台运行。
$ ps -aux | grep "tftp"
root       74786  0.0  0.0   3040   132 ?        Ss   15:01   0:00 /usr/sbin/in.tftpd --listen --user tftp --address :69 -l -c -s /home/parallels/tftpboot
paralle+   74865  0.0  0.0   8908   688 pts/1    S+   15:01   0:00 grep --color=auto tftp

开发板实现串口通信

Windows 下串口通信工具较多,推荐使用 MobaXterm,而 Mac 下,这类工具较少,这里有软件推荐,但经测试,会出现乱码以及无法接收键盘命令问题。这里发现 minicom 最能满足需求。

homebrew install minicom
ls /dev/tty.*
minicom -s

设置开发板IP地址

  1. 每次手动设置
ifconfig eth0 192.168.5.9
  1. 静态 IP 设置
[root@imx6ull:~]# vi /etc/network/interfaces

更改为如下内容

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
        address 192.168.1.11
        netmask 255.255.255.0
        gateway 192.168.1.1

执行 /etc/init.d/S40network restart重启网络服务。

开发板挂载 Ubuntu 的 NFS 目录

1. 前提

  • 开发板带 mount 命令,支持 NFS 文件系统
  • Ubuntu已安装了 NFS 服务,并且在/etc/exports 中配置了某个目录供挂载
  • 使用桥接网络,开发板可以 ping 通 Ubuntu

2. 挂载测试

192.168.1.12:/home/parallels

  • 192.168.1.12 - ubuntu IP地址
  • /home/parallels - /etc/exports 配置的内容
mount -t nfs -o nolock,vers=3 192.168.1.12:/home/parallels /mnt

Ubuntu 中添加一个文件 hello.txt


开发板上查看 /mnt/Desktop/ 发现文件已更新

开发板通过 tftp 传输 ubuntu 文件

1. 开发板使用 tftp 命令下载文件

在 ubuntu 上新建文件

$ cd /home/parallels/tftpboot
$ touch hello.c
$ ls
hello.c

在开发板上下载 ubuntu 服务器上的zImage文件

[root@imx6ull:~]# tftp -g -r hello.c 192.168.1.12
[root@imx6ull:~]# ls
hello.c

2. 开发板上使用 tftp 命令上传文件

在开发板目录下创建 1.txt 文本文件

vi 1.txt

在开发板上执行如下命令上传到 ubuntu 服务器的 tftp 服务目录下

[root@imx6ull:~]# tftp -p -l 1.txt 192.168.1.12

Mac 和开发板传输文件(FileZilla)

Windows 和开发板之间可以通过 TFTP 服务, 或是 SSH 服务传输文件。 前者需要在开发板上输入 tftp 命令,后者可以在纯 GUI 界面操作。
100ASK_IMX6ULL 自带的 Linux 系统中,已经安装并开启了 SSH 服务,所以只要网络联通,就可以通过FileZilla 和开发板传输文件。

1. 确保 Mac 和开发板网络联通

  • 确定开发板 IP
  • Mac 命令行 Ping 得通开发板

2. 启动 FileZilla 连接开发板

  • 在 FileZilla 中输入开发板的 IP,输入用户名 root,输入端口号 22,就可以回车连接开发板了,连接成功,即可进行文件传输

注意 :解决 22 端口拒绝访问
Why am I getting a "port 22: Connection refused" error?

sudo apt-get update
sudo apt-get install openssh-server
sudo ufw allow 22

end

标签:互联互通,01,Windows,开发板,Mac,NFS,Ubuntu,tftp,设备
来源: https://www.cnblogs.com/oddpage/p/01-imx6ull-env-build-based-on-mac.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有