其他分享
首页 > 其他分享> > 01-开发设备之间互联互通

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

作者:互联网

官方开发指南(嵌入式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. 网络服务硬件

4. 网络服务类型和特点

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. 前提

2. 挂载测试

192.168.1.12:/home/parallels

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 和开发板网络联通

2. 启动 FileZilla 连接开发板

注意 :解决 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