如何知道實時網路設備的Linux驅動是否內建在核心中?

如何知道實時網路設備的Linux驅動是否內建在核心中?

從這裡:http://www.xenomai.org/index.php/RTnet:Installation_%26_Testing#Debugging_RTnet

即時網路裝置的Linux驅動程式內建於核心中並阻塞硬體。

當我執行時,rmmod 8139too它說該模組不存在於/proc/modules.

內核是2.6.38.8 (64 bit).

針對該問題我還應該提供哪些其他資訊?


linux-y3pi:~ # uname -a
Linux linux-y3pi 2.6.38.8-12-desktop #2 SMP PREEMPT Fri Jun 1 17:27:16 IST 2012 x86_64 x86_64 x86_64 GNU/Linux

linux-y3pi:~ # ifconfig
eth0      Link encap:Ethernet  HWaddr 00:24:8C:D9:D6:2E  
          inet addr:192.168.16.86  Bcast:192.168.16.255  Mask:255.255.255.0
          inet6 addr: fe80::224:8cff:fed9:d62e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:414 errors:0 dropped:0 overruns:0 frame:0
          TX packets:261 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:118971 (116.1 Kb)  TX bytes:35156 (34.3 Kb)
          Interrupt:17 Base address:0x4000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:68 errors:0 dropped:0 overruns:0 frame:0
          TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4720 (4.6 Kb)  TX bytes:4720 (4.6 Kb)

linux-y3pi:~ # ethtool -i eth0
driver: r8169
version: 2.3LK-NAPI
firmware-version: 
bus-info: 0000:01:00.0

linux-y3pi:~ # rmmod r8169

linux-y3pi:~ # ethtool eth0
Settings for eth0:
Cannot get device settings: No such device
Cannot get wake-on-lan settings: No such device
Cannot get message level: No such device
Cannot get link status: No such device
No data available

linux-y3pi:~ #  lsmod|grep 8169

linux-y3pi:~ #  lsmod|grep 8139

linux-y3pi:~ #                                              

.config 來自 /usr/src/linux-2.6.38.8

CONFIG_R8169=m
CONFIG_R8169_VLAN=y


CONFIG_8139CP=m
CONFIG_8139TOO=m
#CONFIG_8139TOO_PIO is not set                                                                                                                                                   
#CONFIG_8139TOO_TUNE_TWISTER is not set                                                                                                                                          
CONFIG_8139TOO_8129=y
#CONFIG_8139_OLD_RX_RESET is not set 

答案1

rmmod 8139too不起作用,因為:

  • 8139 支援內建於核心中,且驅動程式無法卸載,因為它不是模組。在許多系統上,都有一個/boot/config-2.6.38.8檔案(或類似​​檔案)。您可以grep使用“8139TOO”之類的名稱。如果您看到類似的內容CONFIG_8139TOO=m,則8139too驅動程式被編譯為模組。如果是CONFIG_8139TOO=y,則驅動程式已內建在核心中。如果它顯示類似於 的內容# CONFIG_8139TOO is not set,則驅動程式尚未在以下位置編譯全部
  • 您的乙太網路卡不使用 RTL8139 晶片,因此未載入其驅動程式。您必須找到您想要的乙太網路連接埠的驅動程式並卸載那個反而。如果有lshw,請說sudo lshw | less並尋找eth0:將列出驅動程式模組。如果有systool,請嘗試sudo systool -c net -A uevent eth0尋找該DRIVER=零件。右側應顯示已載入的用於處理設備的驅動程式。dmesg | grep eth0也可能有效,但它不是 100% 可靠,特別是如果您的系統已經運行了一段時間(如果有/var/log/dmesg,您可能也想這樣做grep eth0 /var/log/dmesg)。

相關內容