基本环境搭建

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基本环境搭建的更多相关文章

  1. .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门

    2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...

  2. Azure Service Fabric 开发环境搭建

    微服务体系结构是一种将服务器应用程序构建为一组小型服务的方法,每个服务都按自己的进程运行,并通过 HTTP 和 WebSocket 等协议相互通信.每个微服务都在特定的界定上下文(每服务)中实现特定的 ...

  3. rnandroid环境搭建

    react-native 环境搭建具体步骤这个大家已经玩烂了,这个主要是记录下来自己做win7系统遇到的坑 1.com.android.ddmlib.installexception 遇到这个问题,在 ...

  4. python开发环境搭建

    虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...

  5. springMVC初探--环境搭建和第一个HelloWorld简单项目

    注:此篇为学习springMVC时,做的笔记整理. MVC框架要做哪些事情? a,将url映射到java类,或者java类的方法上 b,封装用户提交的数据 c,处理请求->调用相关的业务处理—& ...

  6. 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~

    一.写在前面 web开发有前端和后端之分,其实android还是有前端和后端之分.android开发就相当于手机app的前端,一般都是php+android或者jsp+android开发.androi ...

  7. Nexus(一)环境搭建

    昨天,成功搭建了自己的 Maven 环境(详见:Maven(一)环境搭建),今天就来研究和探讨下 Nexus 的搭建! 使用背景: 安装环境:Windows 10 -64位 JDK版本:1.7 Mav ...

  8. 「译」JUnit 5 系列:环境搭建

    原文地址:http://blog.codefx.org/libraries/junit-5-setup/ 原文日期:15, Feb, 2016 译文首发:Linesh 的博客:环境搭建 我的 Gith ...

  9. appium+robotframework环境搭建

    appium+robotframework环境搭建步骤(Windows系统的appium自动化测试,只适用于测试安卓机:ios机需要在mac搭建appium环境后测试) 搭建步骤,共分为3部分: 一. ...

  10. Linux测试环境搭建的学习建议

    随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux测试环境搭建的一些建议. 一.Linux测试环境搭建从基 ...

随机推荐

  1. Vue3.0 框架搭建的后台管理模板

    一个Vue3.0框架搭建的后台管理模板 开源vue3.0版本基于vue3.x+ant-design-vue构建的免费开源admin项目,star高达8.4K+ 支持电脑端.手机.平板等平台 底层使用e ...

  2. DC-1渗透靶场实战速通版

    "感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友.您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!" 文章为速通 ...

  3. 【Oracle】lpad与rpad函数,从左边对字符串使用指定的字符进行填充将1变成000001

    [Oracle]lpad&rpad函数,从左边对字符串使用指定的字符进行填充将1变成000001 lpad与rpad函数 顾名思义,lpad是从左边开始进行填充,rpad是从右边开始进行填充 ...

  4. 力扣521(java&python)-最长特殊序列Ⅰ(简单)

    题目: 给你两个字符串 a 和 b,请返回 这两个字符串中 最长的特殊序列  的长度.如果不存在,则返回 -1 . 「最长特殊序列」 定义如下:该序列为 某字符串独有的最长子序列(即不能是其他字符串的 ...

  5. 基于 ASK + EB 构建容器事件驱动服务

    简介:本篇文章以"在线文件解压场景"为例为大家展示经典 EDA 事件驱动与容器如何搭配使用. 作者:冬岛.肯梦 导读 EDA 事件驱动架构( Event-Driven Archit ...

  6. C语言程序设计-笔记3-循环结构

    C语言程序设计-笔记3-循环结构 例4-1  用格雷戈里公式求给定精度的π值.使用格雷戈里公式求π的近似值,要求精确到最后一项的绝对值小于给定精度eps. =1--+-+- #include<s ...

  7. Solution Set - NOI级别真题选做

    [NOI2007] 社交网络 Link&Submission. key:Floyd Floyd求出任意两点间最短路,以及最短路的条数.求点 \(k\) 的答案时枚举所有点对 \(i,j\),若 ...

  8. 轻量级.net standard微信支付登录Nuget开源库

    我个人编写的库,在我个人网站,小程序等很多地方都在使用中,大家可以搜索小程序 什邡市宅猫君网络工作室 或者到我的网站 store.zhaimaojun.cn 去体验支付和登录效果. 本库主要实现了na ...

  9. 08. rails 创建user控制器-用户添加

    创建控制器 如果创始的数据模型是对应一张表,那么要使用复数的形式 例如给users表创建一个控制器 rails g controller users 路由 config/routes.rb里添加 re ...

  10. Linux下的目录

    FHS 因为利用Linux来开发产品或distributions的社群/公司与个人实在太多了, 如果每个人都用自己的想法来配置文件放置的目录,那么将可能造成很多管理上的困扰. 你能想象,你进入一个企业 ...