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
IMX6ULL基本环境搭建的更多相关文章
- .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门
2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...
- Azure Service Fabric 开发环境搭建
微服务体系结构是一种将服务器应用程序构建为一组小型服务的方法,每个服务都按自己的进程运行,并通过 HTTP 和 WebSocket 等协议相互通信.每个微服务都在特定的界定上下文(每服务)中实现特定的 ...
- rnandroid环境搭建
react-native 环境搭建具体步骤这个大家已经玩烂了,这个主要是记录下来自己做win7系统遇到的坑 1.com.android.ddmlib.installexception 遇到这个问题,在 ...
- python开发环境搭建
虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...
- springMVC初探--环境搭建和第一个HelloWorld简单项目
注:此篇为学习springMVC时,做的笔记整理. MVC框架要做哪些事情? a,将url映射到java类,或者java类的方法上 b,封装用户提交的数据 c,处理请求->调用相关的业务处理—& ...
- 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~
一.写在前面 web开发有前端和后端之分,其实android还是有前端和后端之分.android开发就相当于手机app的前端,一般都是php+android或者jsp+android开发.androi ...
- Nexus(一)环境搭建
昨天,成功搭建了自己的 Maven 环境(详见:Maven(一)环境搭建),今天就来研究和探讨下 Nexus 的搭建! 使用背景: 安装环境:Windows 10 -64位 JDK版本:1.7 Mav ...
- 「译」JUnit 5 系列:环境搭建
原文地址:http://blog.codefx.org/libraries/junit-5-setup/ 原文日期:15, Feb, 2016 译文首发:Linesh 的博客:环境搭建 我的 Gith ...
- appium+robotframework环境搭建
appium+robotframework环境搭建步骤(Windows系统的appium自动化测试,只适用于测试安卓机:ios机需要在mac搭建appium环境后测试) 搭建步骤,共分为3部分: 一. ...
- Linux测试环境搭建的学习建议
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux测试环境搭建的一些建议. 一.Linux测试环境搭建从基 ...
随机推荐
- Python中2种常用数据可视化库:Bokeh和Altair
本文分享自华为云社区<探究数据可视化:Bokeh vs. Altair>,作者:柠檬味拥抱. 在数据科学和数据分析领域,数据可视化是一种强大的工具,可以帮助我们更好地理解数据.发现模式和趋 ...
- vscode使用npm安装依赖报错
1.报错信息 npm ERR! code EPERM npm ERR! syscall open npm ERR! path C:\Node\node_cache_cacache\index-v5\4 ...
- Java equals(),== 和 hashcode()
首先来看看equals() 和 "==" 的关系 1.在Java中==是用来比较两个对象的内存地址是否相同的,如果是基本类型的话将会比较其值. 2.equals()我们如果使用的是 ...
- vue+element设置选择日期最大范围(普通版)
效果是只能跟当天时间有关(30天),下一篇将来的任意时段,比较符合实际 <!DOCTYPE html> <html> <head> <meta charset ...
- Radash库使用说明——数组方法篇(全)
写在前面 tips:点赞 + 收藏 = 学会! 本文包含radash中数组相关的所有方法说明 + 使用示例 + 思维导图查看 这边会整理出一份数组相关方法的使用大纲(不含源码解析),方便大家查阅使用: ...
- uiautomator2环境搭建+元素定位(安卓)
一.环境搭建 1.安装uiautomator2 在终端使用pip安装即可 pip install uiautomator2 2.安装adb 可参考:https://www.cnblogs.com/li ...
- Typora最后的免费版本0.11.18
Typora最后的免费版本为0.11.18. 之后的1.x开始收费. 免费版本0.11.18的百度网盘链接如下(永久链接): 链接:https://pan.baidu.com/s/1XizAD0SFp ...
- 网络安全—Kerberos认证系统
文章目录 前提知识 原理 第一次对话 第二次对话 第三次对话 总结发现 前提知识 KDC:由AS.TGS,还有一个Kerberos Database组成. Kerberos Database用来存储用 ...
- C语言:渔夫捕鱼算法问题
题目:渔夫捕鱼 A,B,C,D,E五个渔夫夜间合伙捕鱼,,第二天清A先醒来,他把鱼均分五份,把多余的一条扔回湖中,便拿了自己的一份回家了,B醒来后,也把鱼均分五份,把多余的一条扔回湖中,便拿了自己的一 ...
- C 语言编程 — 数据类型的别名
目录 文章目录 目录 前文列表 typedef 关键字 typedef 和预处理器指令 #define 的区别 前文列表 <程序编译流程与 GCC 编译器> <C 语言编程 - 基本 ...