如果您事先知道要使用哪個網卡/驅動程序,有誰知道是否有辦法確定 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 對您有幫助。