2011-12-29 57 views
0

我需要一種方法來執行以下任務,假設我有一臺帶有k(k是大)個以太網接口的計算機。我想有一個方法來確定哪個標識符(em0)被分配給哪個物理接口。FreeBSD以太網操作

我想出的唯一「簡單」的方法是閃爍物理接口上的LED燈。

例如

etherblink em0 

會閃爍鏈路或活動分配給EM0物理以太網接口上的LED。

我知道在Linux上有ethertool,但這對FreeBSD不起作用。除了FreeBSD上的LED驅動程序外,它只支持有限數量的以太網模塊。

任何想法?我想過將一個套接字綁定到接口並寫入套接字,但是這不起作用。

和C或Perl

+0

是的,你可以,而我很尷尬,我不記得如何。你在FreeBSD論壇上問過嗎? http://forums.freebsd.org/ – Rob 2011-12-29 19:13:09

+0

是的,我確實,有時間等待看看我能否得到一個可行的答案/解決方案。 – Bill 2011-12-29 20:57:41

回答

0

可悲的是我沒有找到這個問題的通用解決方案,不過,從我的研究(通過讀取的FreeBSD 8.2的更改日誌,並從論壇)看來:

"some cards blink the LEDs on access, so pings could make a repeated pattern. 
The LEDs might even go off if the card is downed with ifconfig(8)." 

特別EM和IGB接口,如規定:

"The em(4) and igb(4) drivers now support the led(4) interface via /dev/led/emN and 
/dev/led/igbN for identification LED control. The following command line makes the 
LED blink on em0:[r211241]" (FreeBSD 8.2 Release changelog) 

但是我沒有測試這個硬件。我最終做的是重寫了用於支持LED硬件功能的接口的以太網驅動程序。

2

強硬。我沒有這樣做,但是,根據FreeBSD使用手冊,有可能使用的內核配置提示到特定的驅動程序節點綁定到特定的硬件IRQ。請參閱device.hints(5)和FreeBSD network setup以瞭解如何查找每個以太網設備IRQ。

+0

當我有更多的空閒時間時,我一定會考慮這一點。 – Bill 2012-01-10 21:46:31

1

假設有問題的接口是fxp0 ...運行此爲根

use strict; 
my $intf = "fxp0"; 
while (1) { 
    foreach my $state (qw/up down/) { 
     system("ifconfig $intf $state\n"); 
     sleep 3; 
    } 
} 

我想你不會在乎通過接口transfering數據,而它的閃爍......

+0

感謝您的回答,但是這並沒有幫助我做什麼,LED燈保持關閉。 – Bill 2012-01-10 21:46:21

+0

這是我第一次聽到一個以太網接口聽不到,當你打開它時沒有連接...你嘗試了更長的頻率(比如說10秒?) – 2012-01-11 00:42:16

+0

我沒有插入電纜,也沒有插入電纜,它是Sokeris工程的SBC。 – Bill 2012-02-06 19:59:40