我如何知道 dsa_loop 和 dsa_loop_bdinfo Linux 内核模块何时工作?

问题描述 投票:0回答:1

我正在开发一个嵌入式系统,该系统将使用基于端口的 DSA 帧标记协议之一通过“管道”以太网链路(例如 eth0)将运行 Linux 的处理器连接到以太网交换机,以便 Linux 内核将呈现用户空间,每个交换机的用户端口(例如 lan1、lan2、lan3)具有单独的以太网链路。

据我了解,这通常是通过固定的 phy-less 管道(例如 xMII)以及处理器和交换机之间的 MDIO 链路来完成,以便处理器可以配置和控制物理用户端口。

我想在接收硬件之前进行一些软件开发,因此我想“伪造”MDIO 链路,或者以其他方式配置内核,以便它在普通 (PHY-配备)以太网端口。

内核模块

dsa_loop
dsa_loop_bdinfo
的文档暗示这些可能是合适的,并且源代码似乎将
.netdev  = "eth0"
链接到某些用户端口(
"lan1".."lan4"
),但我似乎无法使用这些用于创建所需的端口设备(添加了 printk 调试行的相关内核模块):

root@machine:~/dsa_loop# modprobe dsa_core
root@machine:~/dsa_loop# modprobe tag_dsa
root@machine:~/dsa_loop# insmod dsa_loop_bdinfo.ko
[   64.258577] dsa_loop_bdinfo_init
root@machine:~/dsa_loop# insmod dsa_loop.ko
[   70.802119] dsa_loop_init

root@machine:~/dsa_loop# lsmod
Module                  Size  Used by
dsa_loop               16384  0
dsa_loop_bdinfo        16384  0
tag_dsa                16384  0
dsa_core              118784  2 tag_dsa,dsa_loop
...

我使用

ifconfig -a
显示网络设备,但我没有看到 lan1..lan4,只有 eth0。

所以我想我有几个问题:

  1. dsa_loop 和 dsa_loop_init 模块是否旨在允许在“正常”以太网链路上执行 DSA 标记?

  2. 这些模块打算如何使用?

  3. dsa_loop_bdinfo.ko 似乎依赖于固定的 PHY 设备 - 我需要以某种方式创建它的实例吗?

  4. 是否有其他方法可以配置 Linux 以在不访问交换机 MDIO 的情况下执行此操作?

linux-kernel embedded-linux ethernet switching
1个回答
0
投票

你找到答案了吗? 尝试使用dsa循环,添加驱动程序,但不要探测

© www.soinside.com 2019 - 2024. All rights reserved.