我在总线上有2个无线pci卡(相同型号,但可以在2种不同模式下工作)。他们共享相同的驱动程序。我想要做的是像这样破解驱动程序:检查pci索引,第一个探测设备(索引0)将配置为模式A,下一个(索引1)将配置为模式B.
所以我想知道每次系统初始化时是否以相同的顺序探测它们。
如果探测顺序是随机的,还有其他方法可以做到吗?
我试过这个:将相同的卡插入不同的插槽,并检查我在/ sys / devices / pci0000:00下得到的内容。结果都是一样的。 所以内核对物理插槽一无所知?我想也许内核知道卡安装在哪个物理插槽上。可惜..
答案 0 :(得分:1)
回答:不,他们不是一般的。
要解决的问题:不需要这样做,因为它已在现代内核 Linux系统中修复,网络接口的名称链接到设备的物理插槽。在您实际移动卡片之前,您将始终使用相同的名称。
<强>校正即可。最初我认为这是由内核提供的。不,它是由用户空间助手提供的,即 udev 。
原产地:https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
示例:
% ip link list dev enp0s20u2c2
42: enp0s20u2c2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 4a:06:8b:65:72:36 brd ff:ff:ff:ff:ff:ff
% ls -l /sys/class/net/enp0s20u2c2
lrwxrwxrwx 1 root root 0 Dec 23 14:59 /sys/class/net/enp0s20u2c2 -> ../../devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:2.0/net/enp0s20u2c2