![确定 NetBSD 中的网络接口名称](https://linux22.com/image/31498/%E7%A1%AE%E5%AE%9A%20NetBSD%20%E4%B8%AD%E7%9A%84%E7%BD%91%E7%BB%9C%E6%8E%A5%E5%8F%A3%E5%90%8D%E7%A7%B0.png)
如果您事先知道要使用哪个网卡/驱动程序,有谁知道是否有办法确定 NetBSD 中将调用什么网络接口?
我正在尝试为各种不同的机器自动化 NetBSD 设置的一部分,并且想编写 /etc/ifconfig.xx 文件,但不知道“xx”部分是什么。例如,我知道我的 Intel NIC 使用“wm”作为后缀,但是 NetBSD 从哪里获取该信息?
答案1
不,您无法事先知道某些神秘硬件配置将附加什么驱动程序。当然,如果您正在使用已知配置的硬件清单,并且您已经预先确定了已知系统中每种类型的接口将使用什么驱动程序,那么它就具有相当的确定性。
另一方面,当系统启动时或首次启动后,已知接口的列表由命令给出ifconfig -l
。
当然,这仍然不能告诉您哪个接口插入了以太网电缆,例如,如果您的系统主板上有多个接口,或者安装了多个以太网卡,或多端口卡等。有些接口会自动出现不过,每当他们与交换机/集线器/任何东西协商连接时,如果是这样,那么ifconfig -a
就会向您显示有关所有已知接口的所有信息,包括哪些接口处于活动状态以及它们正在使用什么媒体(status:
和media:
线路,分别)。
然而,如果您的目标环境使用 DHCP 来分配地址,那么您可以通常只需使用以下行即可摆脱困境/etc/rc.conf
dhclient=YES
默认情况下,它将尝试在每个可用(具有广播功能)的接口上请求地址。
答案2
我认为您可以使用 dhcpd.conf 或一些启动后 ifconfig(8) 脚本通过引用接口的硬件 MAC 地址来重新分配接口,即使您使用多个相同的 NIC,这些地址也是唯一的。如果能够引用 MAC 地址就好了反而XXn 接口名称,但 ifconfig(8) 似乎没有该选项。
答案3
我认为 NetBSD 通过使用供应商 ID 和 PCI ID 来探测这一点。也许 pcidevs.h 和 pcidevs_data.h 对您有帮助。