IMX6ULL基本环境搭建
基本环境搭建
1 交叉编译工具
在虚拟机中安装交叉编译工具,为后续开发做准备。
1.1 工具版本
工具版本:Linaro Releases
当前虚拟机为64位系统,因此下载64位系统的工具:
$ uname -a
Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
1.2 安装说明
将工具安装在:/usr/local/arm/arm-linaro-4-9-4目录
1)将工具压缩包拷贝到安装目录:
[root@localhost] /usr/local/arm/arm-linaro-4-9-4
$ ls
gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz*
2)解压缩
tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
3)修改环境变量,在文件末尾添加编译工具链路径
$ vim /etc/profile
export PATH=$PATH:/usr/local/arm/arm-linaro-4-9-4/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
4)重启虚拟机
5)查看安装是否成功
$ arm-linux-gnueabihf-gcc -v
Thread model: posix
gcc version 4.9.4 (Linaro GCC 4.9-2017.01)
2 网络环境配置-方式1
参考文档:【正点原子】I.MX6U网络环境TFTP&NFS搭建手册V1.3.1.pdf
2.1 网络拓扑
拓扑图如下:
开发板:开发板配置IP为192.168.1.20,通过网线和笔记本相连,由于电脑没有网口,通过USB转网口相连。
有线网卡:有点网卡配置的IP为192.168.1.8。
笔记本:笔记本的WiFi配置IP为192.168.1.6,笔记本中安装有虚拟机。
虚拟机:虚拟机配置IP为192.168.1.10,虚拟机设置为桥接模式,桥接在有线网卡上。
2.2 基本配置
虚拟机需要配置2个网卡,一个用于和开发板进行通信,一个用于上网。
(1)虚拟机配置为桥接模式(用于和开发板之间通信)
(2)虚拟机上网还需要再配置一个网卡,配置为NAT模式,用于虚拟机上网。
(3)启动虚拟机,可以看到虚拟机有两个网卡。
ens33是用于和开发通信的(需要和有限网卡配置在同一个网段);
ens37是用于上网的,登录SSH也可以使用这个地址。
2.3 测试
开发板Ping虚拟机:
root@ATK-IMX6U:~# ping 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=1.92 ms
64 bytes from 192.168.1.10: icmp_seq=2 ttl=64 time=1.65 ms
64 bytes from 192.168.1.10: icmp_seq=3 ttl=64 time=1.29 ms
虚拟机Ping开发板:
$ ping 192.168.1.20
PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.
64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=0.704 ms
64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.546 ms
64 bytes from 192.168.1.20: icmp_seq=3 ttl=64 time=1.12 ms
虚拟机Ping百度:
$ ping www.baidu.com
PING www.baidu.com (39.156.66.18) 56(84) bytes of data.
64 bytes from 39.156.66.18 (39.156.66.18): icmp_seq=1 ttl=128 time=40.3 ms
64 bytes from 39.156.66.18 (39.156.66.18): icmp_seq=2 ttl=128 time=43.9 ms
64 bytes from 39.156.66.18 (39.156.66.18): icmp_seq=3 ttl=128 time=43.3 ms
64 bytes from 39.156.66.18 (39.156.66.18): icmp_seq=4 ttl=128 time=44.3 ms
笔记本Ping虚拟机:
C:\Users\grace>ping 192.168.1.10
正在 Ping 192.168.1.10 具有 32 字节的数据:
来自 192.168.1.10 的回复: 字节=32 时间=3ms TTL=128
来自 192.168.1.10 的回复: 字节=32 时间=5ms TTL=128
来自 192.168.1.10 的回复: 字节=32 时间=3ms TTL=128
C:\Users\grace>ping 192.168.17.128
正在 Ping 192.168.17.128 具有 32 字节的数据:
来自 192.168.17.128 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.17.128 的回复: 字节=32 时间<1ms TTL=64
3 网络环境配置-方式2
参考文档:关于电脑两个网卡,有线网络直连开发板,无线上网.pdf
分享文档 :关于电脑两个网卡,有线网络直连开发板,无线上网-OpenEdv-开源电子网
3.1 网络拓扑
拓扑图如下:
3.2 基本配置
虚拟机需要配置2个网卡(都使用桥接模式),一个用于和开发板进行通信,一个用于上网。
(1)虚拟机配置两个桥接模式:VMnet0用于桥接到笔记本,用于上网;VMnet1用于连接到有线网卡,和开发板进行通信。
(2)虚拟机配置两个网卡,都使用桥接模式。
(3)启动虚拟机
配置ens37的IP:
ifconfig ens37 192.168.1.15 up
3.3 测试
虚拟机Ping百度:
$ ping www.baidu.com
PING www.baidu.com (39.156.66.18) 56(84) bytes of data.
64 bytes from 39.156.66.18 (39.156.66.18): icmp_seq=1 ttl=52 time=39.8 ms
64 bytes from 39.156.66.18 (39.156.66.18): icmp_seq=2 ttl=52 time=42.1 ms
64 bytes from 39.156.66.18 (39.156.66.18): icmp_seq=3 ttl=52 time=39.8 ms
虚拟机Ping开发板:
$ ping 192.168.1.20
PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.
64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=0.530 ms
64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=1.29 ms
64 bytes from 192.168.1.20: icmp_seq=3 ttl=64 time=1.08 ms
开发板Ping虚拟机:
root@ATK-IMX6U:~# ping 192.168.1.15
PING 192.168.1.15 (192.168.1.15) 56(84) bytes of data.
64 bytes from 192.168.1.15: icmp_seq=1 ttl=64 time=0.702 ms
64 bytes from 192.168.1.15: icmp_seq=2 ttl=64 time=1.38 ms
3.4 遇到的问题
虚拟机配置双网卡后,无法通过SSH连接,Samba无法正常使用,FTP无法正常使用等问题。
解决办法:参考(16条消息) CentOS7 配置双网卡_Benny-文俊的博客-CSDN博客_centos7双网卡配置
主要途径:将笔记本有线网卡、虚拟机ens37网卡、开发板网卡重新配置在另外一个网段。
(1)配置双网卡为静态IP
1)网卡ens33,桥接到电脑的WiFi,需要用来连接外网,配置文件的内容如下:
$ pwd
/etc/sysconfig/network-scripts
$ vim ifcfg-ens33
1 TYPE="Ethernet"
2 PROXY_METHOD="none"
3 BROWSER_ONLY="no"
4 BOOTPROTO=static
5 DEFROUTE="yes"
6 IPV4_FAILURE_FATAL="no"
7 IPV6INIT="yes"
8 IPV6_AUTOCONF="yes"
9 IPV6_DEFROUTE="yes"
10 IPV6_FAILURE_FATAL="no"
11 IPV6_ADDR_GEN_MODE="stable-privacy"
12 NAME="ens33"
13 UUID="0ab7073a-2165-4e45-b6e2-536bbdd70077"
14 DEVICE="ens33"
15 ONBOOT="yes"
16 IPADDR=192.168.1.10
17 NETMASK=255.255.255.0
18 GATEWAY=192.168.1.1
19
20 DNS1=114.114.114.114
21 DNS2=8.8.8.8
2)网卡ens37,桥接到有线网卡,拷贝一份ens33的配置文件,取命为ens37,配置文件的内容如下:
$ vim ifcfg-ens37
1 TYPE="Ethernet"
2 PROXY_METHOD="none"
3 BROWSER_ONLY="no"
4 BOOTPROTO=static
5 DEFROUTE="yes"
6 IPV4_FAILURE_FATAL="no"
7 IPV6INIT="yes"
8 IPV6_AUTOCONF="yes"
9 IPV6_DEFROUTE="yes"
10 IPV6_FAILURE_FATAL="no"
11 IPV6_ADDR_GEN_MODE="stable-privacy"
12 NAME="ens37"
13 DEVICE="ens37"
14 ONBOOT="yes"
15 IPADDR=192.168.2.15
16 NETMASK=255.255.255.0
17 GATEWAY=192.168.2.1
和ens33的配置文件相比:
1、删除了UUID,这个是唯一的,不能和ens33重复;
2、删除了DNS1和DNS2,不需要上网。
3、配置的IP在192.168.2.0这个网段。
3 TFTP服务器搭建
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。我们可以使用 TFTP来加载内核zImage、设备树和其他较小的文件到开发板DDR上,从而实现网络挂载。
参考博客:linux-Centos 7下tftp-server服务的安装与配置 - 520_1351 - 博客园 (cnblogs.com)
Linux版本:
$ uname -a
Linux 192.168.17.128 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
1)安装tftp服务器
$ yum install tftp-server -y
2)修改tftp配置文件来开启服务
$ vim /etc/xinetd.d/tftp
其中tftp的默认根目录为:/var/lib/tftpboot
3)可以使用TFTP服务的默认根目录,也可以修改一下,我这边进行修改。
$ pwd
/home/grace/IMX6U/tftpboot
# 更改目录权限
$ chmod 777 tftpboot/ -R
$ vim /etc/xinetd.d/tftp
# 更改为创建的路径,-c参数表示允许上传
13 server_args = -s /home/grace/IMX6U/tftpboot -c
4)启动tftp服务
$ service tftp restart
$ service tftp status
Redirecting to /bin/systemctl status tftp.service
● tftp.service - Tftp Server
Loaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled)
Active: active (running) since Sun 2022-04-17 14:50:06 CST; 2min 25s ago
Docs: man:in.tftpd
Main PID: 3712 (in.tftpd)
CGroup: /system.slice/tftp.service
└─3712 /usr/sbin/in.tftpd -s /var/lib/tftpboot
Apr 17 14:50:06 localhost.localdomain systemd[1]: Started Tftp Server.
Apr 17 14:50:06 localhost.localdomain systemd[1]: Starting Tftp Server...
可以看到,tftp的目录为/var/lib/tftpboot,也就是更改的目录路径无效。暂时还没找到原因
systemctl restart xinetd
systemctl restart tftp
4 总结
当前还有一些问题:
1)虚拟机起来之后需要配置ens37网卡的地址
ifconfig ens37 192.168.1.15 up
2)需要启动TFTP服务
$ service tftp restart