前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >展锐UDX710:LAN7800 PHY驱动调试

展锐UDX710:LAN7800 PHY驱动调试

作者头像
四儿家的小祖宗
发布2022-11-15 16:18:14
2.4K0
发布2022-11-15 16:18:14
举报

展锐UDX710:LAN7800 PHY驱动调试

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) 差异项:

代码语言:javascript
复制
CONFIG_USB_NET_DRIVERS=y
CONFIG_USB_LAN78XX=m

2.2 驱动加载验证

将LAN7800 USB端插入UDX710的Type A(USB3.0)口,UDX710将可以识别设备LAN7800,我们可以通过如下方式去验证设备识别和驱动加载:

  1. lsusb 通过串口可以确认UDX710已按照USB Host模式启动,总线上也可以检测到LAN7800设备的接入:
在这里插入图片描述
在这里插入图片描述

并可以通过lsusb查询到模块usb总线上已识别到LAN78XX PHY芯片:

在这里插入图片描述
在这里插入图片描述
  1. dmesg 可以通过dmesg log查看驱动也已经成功加载到设备LAN7800端口上:
在这里插入图片描述
在这里插入图片描述
  1. ifconfig 通过ifconfig命令查看LAN7800在模组UDX710侧枚举出的LAN侧网卡:
在这里插入图片描述
在这里插入图片描述

注:为什么是eth0网卡?因为驱动在加载到LAN7800时会有如下log打印,代表LAN7800枚举出的网卡名是eth0:

在这里插入图片描述
在这里插入图片描述

2.3 配置网络通路

  1. 创建网卡 为了让LAN7800 RJ45口连接的PC可以通过模块访问外网,需要将LAN7800在模块侧枚举出的网卡eth0和模块拨号后进行数据业务的网卡通过网桥的方式进行连接。

可以通过如下命令创建网桥bridge0:

代码语言:javascript
复制
brctl addbr bridge0

创建成功后可以通过brctl show查看:

在这里插入图片描述
在这里插入图片描述
  1. 添加eth0到网桥 通过brctl addif bridge0 eth0命令将LAN7800在模块侧枚举出的网卡eth0加入网桥:
在这里插入图片描述
在这里插入图片描述
  1. 给网桥配置ip 在网桥中beidge0作为网关,将数据从eth0转发给其他网桥内的网卡(如外网)。因此给bridge0配置网关IP,为了不和sipa_usb0冲突,不能配置未225.x,配置ip如下:
代码语言:javascript
复制
ifconfig bridge0 192.168.255.1
在这里插入图片描述
在这里插入图片描述
  1. 启动dnsmasq服务 由于LAN7800为UDX710 LAN侧,因此ip地址需要由UDX710来分配IP并配置路由,因此我们启动dnsmasq进程来实现LAN侧设备ip的分配和路由的配置,具体启动配置如下:
代码语言:javascript
复制
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
  1. LAN侧PC分配到ip 当dnsmasq服务启动后,LAN侧连接的PC会自动发起dhcp请求获取到ip地址:
在这里插入图片描述
在这里插入图片描述
  1. PC ping网关 PC端获取到了192.168.255.30的ip,尝试从PC ping网关192.168.255.1:
在这里插入图片描述
在这里插入图片描述
  1. 网关ping PC
在这里插入图片描述
在这里插入图片描述

可以看到从UDX710到LAN7800数据是通路的,反过来亦然,目标达成。完结撒花。

3. 小结

从上面的测试结果来看,我们的LAN7800已经调试成功,整个数据通路是没有问题的。暂时不做外网测试,如果小伙伴们有需要的话,只需要将UDX710的拨号网卡加入到网桥再拨号,LAN7800也可以访问外网。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 展锐UDX710:LAN7800 PHY驱动调试
  • 1. 前期准备
    • 1.1 调试环境
      • 1.2 预置条件
        • 1.3 硬件连接
        • 2. 驱动适配
          • 2.1 开启内核驱动支持
            • 2.2 驱动加载验证
              • 2.3 配置网络通路
              • 3. 小结
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档