展锐UDX710:LAN7800 PHY驱动调试
展锐UDX710:LAN7800 PHY驱动调试
- 1. 前期准备
- 1.1 调试环境
- 1.2 预置条件
- 1.3 硬件连接
- 2. 驱动适配
- 2.1 开启内核驱动支持
- 2.2 驱动加载验证
- 2.3 配置网络通路
- 3. 小结
1. 前期准备
1.1 调试环境
内核:Linux 4.14.98
Modem:展锐UDX710
驱动:LAN78XX PHY驱动
USB PHY:LAN7800
1.2 预置条件
将展锐UDX710 Type A(USB3.0)配置为主模式,确保可以识别从设备LAN7800 PHY:
1.3 硬件连接
将LAN7800 USB口连接到UDX710的Type A(USB3.0)口,然后将RJ45连接到PC的网口供PC上网使用。
2. 驱动适配
2.1 开启内核驱动支持
在内核中按照如下打开编译选项开启内核LAN78XX驱动支持,在kernel目录下执行make menuconfg,然后依次选中Devices_Drivers:
-> Network device support:
-> USB Network Adapters :
-> Microchip LAN78XX Based USB Ethernet Adapters:
将Microchip LAN78XX Based USB Ethernet Adapters设置为< M >后退出并保存会生成.config,将现在的.config与修改menuconfig之前生成的.config进行比较,把差异项合入kernel4.14_orca/arch/arm64/configs/sprd_orca_defconfig,然后编译内核即可,会生成.ko文件。(在menuconfig修改后,需执行make mrproper,方可重新编译kernel)
差异项:
CONFIG_USB_NET_DRIVERS=y
CONFIG_USB_LAN78XX=m
2.2 驱动加载验证
将LAN7800 USB端插入UDX710的Type A(USB3.0)口,UDX710将可以识别设备LAN7800,我们可以通过如下方式去验证设备识别和驱动加载:
- lsusb
通过串口可以确认UDX710已按照USB Host模式启动,总线上也可以检测到LAN7800设备的接入:
并可以通过lsusb查询到模块usb总线上已识别到LAN78XX PHY芯片:
- dmesg
可以通过dmesg log查看驱动也已经成功加载到设备LAN7800端口上:
- ifconfig
通过ifconfig命令查看LAN7800在模组UDX710侧枚举出的LAN侧网卡:
注:为什么是eth0网卡?因为驱动在加载到LAN7800时会有如下log打印,代表LAN7800枚举出的网卡名是eth0:
2.3 配置网络通路
- 创建网卡
为了让LAN7800 RJ45口连接的PC可以通过模块访问外网,需要将LAN7800在模块侧枚举出的网卡eth0和模块拨号后进行数据业务的网卡通过网桥的方式进行连接。
可以通过如下命令创建网桥bridge0:
brctl addbr bridge0
创建成功后可以通过brctl show查看:
- 添加eth0到网桥
通过brctl addif bridge0 eth0命令将LAN7800在模块侧枚举出的网卡eth0加入网桥:
- 给网桥配置ip
在网桥中beidge0作为网关,将数据从eth0转发给其他网桥内的网卡(如外网)。因此给bridge0配置网关IP,为了不和sipa_usb0冲突,不能配置未225.x,配置ip如下:
ifconfig bridge0 192.168.255.1
- 启动dnsmasq服务
由于LAN7800为UDX710 LAN侧,因此ip地址需要由UDX710来分配IP并配置路由,因此我们启动dnsmasq进程来实现LAN侧设备ip的分配和路由的配置,具体启动配置如下:
dnsmasq --conf-file=/etc/dnsmasq.conf --dhcp-leasefile=/var/run/dnsmasq.leases --pid-file=/var/run/dnsmasq.pid --resolv-file=/etc/resolv.conf -i bridge0 -I lo -z --dhcp-range=bridge0,192.168.255.20,192.168.255.60,255.255.255.0,43200 --dhcp-option-force=6,192.168.255.1 --dhcp-script=/bin/dnsmasq_script.sh
- LAN侧PC分配到ip
当dnsmasq服务启动后,LAN侧连接的PC会自动发起dhcp请求获取到ip地址:
- PC ping网关
PC端获取到了192.168.255.30的ip,尝试从PC ping网关192.168.255.1:
- 网关ping PC
可以看到从UDX710到LAN7800数据是通路的,反过来亦然,目标达成。完结撒花。
3. 小结
从上面的测试结果来看,我们的LAN7800已经调试成功,整个数据通路是没有问题的。暂时不做外网测试,如果小伙伴们有需要的话,只需要将UDX710的拨号网卡加入到网桥再拨号,LAN7800也可以访问外网。
展锐UDX710:LAN7800 PHY驱动调试相关推荐
- 网络驱动->PHY驱动调试
1. Linux 系统网络协议层架构 网络协议框架图: 网络子系统是 linux 操作系统里很重要的一部分.关于这部分有很多的参考资料.这里主要说明一下 phy 芯片在整个子系统里的位置.从这个结构里 ...
- PHY驱动调试之 --- PHY控制器驱动(二)
1. 前言 内核版本:linux 4.9.225,以freescale为例. 2. 概述 PHY芯片为OSI的最底层-物理层(Physical Layer),通过MII/GMII/RMII/SGMII ...
- 展锐UDX710:MMC概述、SD Card驱动解析及调试
一.MMC概述 相关定义 符合MMC协议接口的存储器,都称为MMC存储体 MMC总线,类似于I2C.SPI总线的一种总线结构 使用MMC接口规范(HCI, Multimedia Card Interf ...
- Marvell 88Q1010百兆PHY驱动调试
文章目录 1. 概述 2. 调试 2.1 调试源码 2.2 调试方法 2.2.1 mii cmd 参考 1. 概述 为了降成本,千兆PHY改为了百兆PHY,Marvell 88Q2112换成了88Q1 ...
- 展锐UDX710:TTS SDK移植
简介 TTS(Text To Speech)又称语音合成,是一种将文本转化成相应语音的技术. 本文大致介绍在UDX710上合入科大讯飞TTS SDK的流程 移植及调试 首先需要将其提供的Resourc ...
- linux网卡phy地址修改,【基础技能】Linux PHY驱动调试方法
https://gitee.com/lee790608/linuxPhyDriver STEP1 准备硬件环境 1. 开发环境,可以修改内核代码,编译 2. 硬件开发板,可以进入系统调试,可以传送代码 ...
- 展锐UDX710:u-Boot 初始化流程分析
一.mk文件说明 UDX710平台的uBoot文件夹位于u-boot15_orca中,device/sprd/orca/udx710_4h10下AndroidBoard.mk 定义了生成uboot:u ...
- 展锐UDX710:5G LAN数据流通图
宏观 详细
- 展讯8910DM:LED驱动调试,支持一线脉冲调节
LED采用艾为电子的AW36404DNR,模组原理图如下: AW36404是一款低压降电流吸收器LED驱动器,支持闪光灯和手电筒模式.集成在芯片中的电流调节接收器使LED电流在输入时能够保持恒定电压, ...
最新文章
- Monkey测试1——Monkey的使用
- 2019_BUAAOO_第一单元总结
- hibernate中merge/attachDirty/attachClean
- java三年工作经验工资_工作三年还是只会增删改查,Java 程序员如何进阶?
- IEnumerableT和IQueryableT区分
- 小汤学编程之JavaScript学习day05——DOM、事件
- Precedence Problems of C Operators
- 语音识别芯片原理是什么 语音识别芯片有哪些【详解】
- python打开浏览器全屏_python 打开浏览器的两种方式
- SqlServer事务回滚
- Linux期末考试题库(超全)
- Android Studio 4.1中的模板插件
- mysql可以用表情符号_让MySQL支持emoji表情符号存储
- 考研英语语法_Day05_状语和状语从句
- 万顿思电商:拼多多推广是如何收费的?
- 长沙市民吴先生乘坐滴滴D1后,取消了买特斯拉的计划
- 基于JAVA线上动漫周边商城计算机毕业设计源码+数据库+lw文档+系统+部署
- Word2016中添加目录
- 计算机与信息与计算科学的论文,信息与计算科学专业论文参考文献
- 练习-输入M行N列的矩阵A和B,编程计算并输出矩阵A与B之和