歡迎您光臨本站 註冊首頁

嵌入式Linux 雙網卡問題(會什麼會出現eth2)

←手機掃碼閱讀     火星人 @ 2014-03-22 , reply:0

有個問題請教大家.
1.系統環境,系統是三星晶元6410 + 雙網卡(一塊是DM9000,一塊是SMSC9500),Kernel是2.6.31,Ubuntu9.10
2.我先把/etc/udev/rules.d/70-persistent-net.rules 文件貼出來
# USB device 0x0424:0x9500 (usb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:80:0f:95:06:4
2", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# net device ()
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:09:c0:ff:ec:4
8", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

3.我所做的測試,由於我有雙網卡,當我在Kernel中兩塊網卡都選上時,感覺系統起來一切正常.

Kernel列印:
dm9000 Ethernet Driver, V1.31
eth0: dm9000e at c087e000,c0882002 IRQ 41 MAC: 00:09:c0:ff:ec:48 (chip)
....
eth1: register 'smsc9500' at usb-s5pv210-1.2, smsc9500 USB 2.0 Ethernet, 00:80:0f:95:06:42
最後用ifconfig查看
內容如下:
eth0 Link encap:Ethernet HWaddr 00:09:c0:ff:ec:48
inet addr:109.120.23.32 Bcast:109.120.23.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:109 errors:0 dropped:0 overruns:0 frame:0
TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:18942 (18.9 KB) TX bytes:4700 (4.7 KB)
Interrupt:41 Base address:0xe000

eth1 Link encap:Ethernet HWaddr 00:80:0f:95:06:42
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:100 (100.0 B) TX bytes:100 (100.0 B)

第一個疑問:
為什麼在70-persistent-net.rules 文件中,eth0 對應的MAC地址是 00:80:0f:95:06:42
,而這裡卻是eth1對應的MAC地址是00:80:0f:95:06:42???
(不過我猜測,之所以出現這樣的現象是,估計系統是按網卡的載入順序來定的,並沒有去匹配rules文件.)

4.如果Kernel只選中DM9000,
系統起來后,Kernel列印
dm9000 Ethernet Driver, V1.31
eth0: dm9000e at c087e000,c0882002 IRQ 41 MAC: 00:09:c0:ff:ec:48 (chip)
用ifconfig查看
eth0 Link encap:Ethernet HWaddr 00:09:c0:ff:ec:48
inet addr:109.120.23.32 Bcast:109.120.23.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:301 errors:0 dropped:0 overruns:0 frame:0
TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:49373 (49.3 KB) TX bytes:5398 (5.3 KB)
Interrupt:41 Base address:0xe000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:100 (100.0 B) TX bytes:100 (100.0 B)


5.如果Kernel只選中SMSC9500,
系統起來后,Kernel列印
eth0: register 'smsc9500' at usb-s5pv210-1.2, smsc9500 USB 2.0 Ethernet, 00:80:0f:95:06:42
用ifconfig查看
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:100 (100.0 B) TX bytes:100 (100.0 B)
用ifconfig -a查看
eth2 Link encap:Ethernet HWaddr 00:80:0f:95:06:42
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:100 (100.0 B) TX bytes:100 (100.0 B)

我的第二個問題: 為什麼這裡用ifconfig看不到東西,用ifconfig -a為什麼會出現eth2呢
為什麼不是eth0???

希望能得到大家的解釋.
謝謝

[火星人 ] 嵌入式Linux 雙網卡問題(會什麼會出現eth2)已經有402次圍觀

http://coctec.com/docs/linux/show-post-104609.html