为嵌入式linux添加网络功能并用tftp传输文件(以ZYNQ为例)
在调试V4L2过程中需要用网络传输文件,将添加网络功能的过程记录在此。这里以ZYNQ为例。
首先需要在VIVADO中勾选以太网如下,
注意这里不要忘记勾选MDIO,需要通过这个接口与PHY芯片进行通信。
完成了硬件搭建并生成了BIT文件之后,用XILINX SDK生成设备树文件。打开SDK后点击,Xilinx -> Repositories后如下,
将XILINX提供的设备树包路径添加到上面,然后点击OK。完成后点击File -> New -> Board Support Package如下,
选中device tree,点击Finish。
生成完设备树文件后,我们重点关注下pcw.dtsi中gem0如下,
&gem0 {phy-mode = "rgmii-id";status = "okay";xlnx,ptp-enet-clock = <0x69f6bcb>;
};
phy-mode指定了SOC和PHY进行数据交互的接口;status变为了okay,因为我们在VIVADO中激活了网口;xlnx,ptp-enet-clock作用未知,不用管它,不影响使用。
除此之外,我们还需要在system-top.dts中添加如下内容,
&gem0 {phy-handle = <&phy0>;local-mac-address = [00 0a 35 00 1e 53];phy0:phy@1 {device_type = "ethernet-phy";reg = <0x1>;};};
local-mac-address是MAC地址;phy-handle是指定与其连接的PHY芯片的设备节点,这个节点就是它的子节点phy0,该节点中device_type用来指定设备类型,固定为"ethernet-phy";reg用来给出PHY芯片的地址,我用的PHY是RTL8211E,其地址为0x1,不同的PHY芯片地址可能不同。这里可能会有一个疑问,在PHY节点中并没有compatible属性,用来指定与其对应的驱动代码,我猜测,可能通过MDIO接口读取PHY芯片中的寄存器就可以知道其型号和厂家,并调用不同的PHY驱动代码。
完成设备树的编辑后,在内核代码中的xilinx_zynq_defconfig中查看相应的PHY是否勾选上,比如我用的REALTEK公司的PHY,就需要确保如下配置被勾选,
CONFIG_REALTEK_PHY=y
完成后,进行编译,然后运行,可以在开机的打印信息中看到如下内容,
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 28 (00:0a:35:00:1e:53)
RTL8211E Gigabit Ethernet e000b000.ethernet-ffffffff:01: attached PHY driver [RTL8211E Gigabit Ethernet]
说明内核通过MDIO接口读出了芯片型号。
开机后可以通过ifconfig配置网络如下,
ifconfig eth0 192.168.10.5 netmask 255.255.255.0
然后用ifconfig -a查看是否配置成功,并可以通过ping看看和电脑是否能通,这里可能需要先关闭防火墙再ping。
接下来用tftp传输文件,打开tftp64,将current direcrory路径改为与ZYNQ进行通信的目录,也就是说,要发送给ZYNQ的文件需要拷贝到这里,从ZYNQ接收的文件也会存在这里。如果想把文件传给ZYNQ,就在终端输入如下内容,
tftp -g -l b.txt -r a.txt 192.168.10.7
上面的意思是将电脑端的a.txt传给ZYNQ并命名为b.txt,后面跟的是电脑端ip地址。如果想上传文件给电脑端,就在终端输入如下内容,
tftp -p -r b.txt -l a.txt 192.168.10.7
上面的意思是将ZYNQ端的a.txt传给电脑端并命名为b.txt。
为嵌入式linux添加网络功能并用tftp传输文件(以ZYNQ为例)相关推荐
- 嵌入式linux与windows之间的tftp文件传输(保姆级)
目录 前言 一.为什么要文件传输 二.利用共享文件夹(简要流程) 三.tftp传输与环境搭建 四.传输前的准备工作 五.测试准备工作是否完成 六.传输文件 6.1.windows中tftp32的配置 ...
- 微型linux系统测试网卡,自制一个小型Linux(附带网络功能)
我们这次讲述一下Linux启动的启动流程以及制作一个附带网络功能的mini linux 一.叙述 在制作一个小型的Linux之前,首先你得明白Linux系统的启动过程,我们用一张图来进行说明 二.为什 ...
- 嵌入式linux软件专利,一种嵌入式Linux操作系统网络加速运行的系统及方专利_专利查询 - 天眼查...
1.一种嵌入式Linux操作系统网络加速运行的系统,其特征在于,主要包括以下单元:应用程序单元.Lwip函数库单元.系统接口单元.Linux系统单元.底层硬件接口单元.硬件平台单元.物理硬件网络设备单 ...
- ssh连接Linux很慢,且ssh传输文件很慢的解决方案
ssh连接Linux很慢,且ssh传输文件很慢的解决方案 网上关于该问题的常用解决方法是(主要就是修改配置文件/etc/ssh/sshd_config): (1)修改"UseDNS" ...
- Android网络编程只局域网传输文件
Android网络编程只局域网传输文件 首先创建一个socket管理类,该类是传输文件的核心类,主要用来发送文件和接收文件 具体代码如下: ```java1 package com.jiao.file ...
- linux常用的scp命令远程服务传输文件使用例子
场景: 在使用Linux操作系统的过程中,常常需要复制文件到本地或者传输文件到其他电脑上,这时候用到两个命令cp和scp. cp命令用来复制文件或者目录.scp是secure copy的简写,用来在L ...
- 【嵌入式Linux开发学习】基于TFTP的通用代码烧写方式
文章目录 概述 实现思路 升级UBOOT 升级KERNEL ROOTFS QEMU 仿真 代码实现 升级效果 概述 对于从事嵌入式行业的人来说,进行代码升级一定不会陌生.相对于单片机相对单一的烧写方式 ...
- 嵌入式linux 添加中断,《嵌入式linux应用程序开发完全手册》中断控制器操作(外部中断)学习笔记...
<嵌入式linux应用程序开发完全手册>中断控制器操作(外部中断)学习笔记 一.ARM中断体系 当一个"异常"发生时,或者说当收到一个中断触发信号时,ARM9将会自动完 ...
- 嵌入式Linux添加ssh服务
嵌入式Linux安装Dropbear 开发环境 嵌入式Linux平台: ARM 7 (IMX6ULL) 嵌入式Linux内核版本:4.1.15 宿主系统: Ubuntu 16.04 LTS SSH程序 ...
最新文章
- 硕士毕业两年算法工程师年终总结
- HTTP状态码和编程
- 尝试使用阿里云服务器
- log4net 小记
- CocoaPods打包静态库
- datax 定时执行多个job_DataX在有赞大数据平台的实践
- linux 将当前时间往后调整2分钟_【转】修改LINUX时间
- PHP中的错误处理set_error_handler()与trigger_error()的问题
- Ubuntu16.04 设置自启动脚本,系统重启自动执行自定义脚本任务
- 以WIN10 22H2为例,下载ISO、制作安装U盘的办法
- 移动增值短信平台实施计划方案(报业集团短信手机报)
- java计算机毕业设计基于安卓Android的团务智慧管理APP(源码+系统+mysql数据库+Lw文档)
- Tomcat——通过.bat批处理程序重启Tomcat
- usb3.0速度测试软件,Win10系统如何测试usb3.0设备传输速度|Win10测试usb3.0设备传输速度的方法...
- 【Java入门练习100例】03.短路与和逻辑与的区别——老实人和机灵鬼
- 冬季茄子怎么吃营养价值翻倍
- SRC漏洞挖掘--CNVD国家信息安全漏洞共享平台
- 获取当前系统日期和时间
- 将域名直接映射到网站首页(通过域名即可访问网站首页)
- 练习题之金融应用:比较不同利率下的贷款