2009年3月18日 星期三

●讀網卡MAC Address有這麼難嗎?


或許你知道ipconfig,linux:ifconfig;但是很抱歉,我不想在有os的狀況讀出這些資訊,更不想拆下eeprom直接讀取IC。說穿了就是我現在工作遇上的瀕頸(不知這兩ㄍ字有沒有打錯,好久沒用)因為我知道bios有提供int 1ah中斷,從這部分我們可以去找出你想要的pci device的PFA,再從PFA中透過bus、device、function去找出真正你想找到的device,再從device中的BAR(Base Address Register)中找出你要的io port這樣就可以從port讀出你要的mac address。很幸運也很不幸rtl8139、rtl8168讀出來都正確無誤,不管是內建網卡還是外插螃蟹卡都可以,但是問題來ㄌ,Marvell Yukon的網卡卻讓我失去信心,原因是它是memory mappied而不是I/O mappied,還是說它是PCI-e的Device,不好意思,我還不確定,若你是高手高高手,煩請指點迷津。‧‧‧‧‧‧迷途羔羊--------Benson,也有人稱呼我老B,雖然這兩ㄍ字有點不雅。


這個問題終於搞定,感謝jajamboliao的熱心指導。現在可以放下它ㄌ,若沒有高人指點,上面那張圖我已經跑了3個loop,結果每次放下它,都是因為處理不了它;now;如釋重負。

沒有留言:

張貼留言