Linux 的网络卡
本机操作系统CentOS 10
root@bogon:/etc# uname -r
6.12.0-65.el10.x86_64
观察核心所捉到的网卡信息
假设你的网络卡已经在主机上面,不论是内建的还是自行安插到PCI或者PCI-x或者PCI-E的接口上,那么如何确认该网络卡有被核心所捉到呢?就利用dmesg来查阅即可:
###通过下面命令得到本机上面的网络接口名字,一共有两个,enp2s0和wlp0s20f3
root@bogon:/etc# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host proto kernel_lo valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 8c:32:23:02:74:1e brd ff:ff:ff:ff:ff:ffaltname enx8c322302741e
3: wlp0s20f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether b0:dc:ef:8d:bd:fa brd ff:ff:ff:ff:ff:ffaltname wlxb0dcef8dbdfainet 192.168.1.13/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp0s20f3valid_lft 83813sec preferred_lft 83813secinet6 2408:8207:846a:ef10:5a20:5b81:67f1:9940/64 scope global dynamic noprefixroute valid_lft 258961sec preferred_lft 172561secinet6 fe80::994f:f420:976:3515/64 scope link noprefixroute valid_lft forever preferred_lft forever
###分别查询上面所得到的网口对应的网络卡信息
###1 enp2s0
root@bogon:/etc# dmesg |grep -in enp2s0
1068:[ 3.954644] r8169 0000:02:00.0 enp2s0: renamed from eth0
1129:[ 6.345830] r8169 0000:02:00.0 enp2s0: Link is Down
1249:[ 1872.827430] r8169 0000:02:00.0 enp2s0: Link is Down
1346:[14662.364212] r8169 0000:02:00.0 enp2s0: Link is Down
1469:[17999.418636] r8169 0000:02:00.0 enp2s0: Link is Down
1573:[19828.033158] r8169 0000:02:00.0 enp2s0: Link is Down
1684:[24039.864073] r8169 0000:02:00.0 enp2s0: Link is Down
1781:[28774.445557] r8169 0000:02:00.0 enp2s0: Link is Down
1878:[29147.136903] r8169 0000:02:00.0 enp2s0: Link is Down
2003:[31586.317586] r8169 0000:02:00.0 enp2s0: Link is Down
2186:[40941.242370] r8169 0000:02:00.0 enp2s0: Link is Down
2341:[47131.620784] r8169 0000:02:00.0 enp2s0: Link is Down
2446:[48818.964858] r8169 0000:02:00.0 enp2s0: Link is Down
2557:[52345.950266] r8169 0000:02:00.0 enp2s0: Link is Down
2663:[53642.335682] r8169 0000:02:00.0 enp2s0: Link is Down
2774:[58084.041672] r8169 0000:02:00.0 enp2s0: Link is Down
2795:[58790.102852] r8169 0000:02:00.0 enp2s0: Link is Down
2901:[61329.403518] r8169 0000:02:00.0 enp2s0: Link is Down
3042:[65154.135974] r8169 0000:02:00.0 enp2s0: Link is Down
3160:[66742.855819] r8169 0000:02:00.0 enp2s0: Link is Down
3173:[68292.151190] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
3174:[68599.119578] r8169 0000:02:00.0 enp2s0: Link is Down
3186:[69653.569782] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
3187:[76059.581466] r8169 0000:02:00.0 enp2s0: Link is Down
3273:[76061.564803] r8169 0000:02:00.0 enp2s0: Link is Down
3279:[76064.212156] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
3286:[77120.664900] r8169 0000:02:00.0 enp2s0: Link is Down
3372:[77123.222626] r8169 0000:02:00.0 enp2s0: Link is Down
3378:[77125.896890] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
3385:[81738.379069] r8169 0000:02:00.0 enp2s0: Link is Down
3471:[81740.330038] r8169 0000:02:00.0 enp2s0: Link is Down
3477:[81742.978678] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
3484:[84179.363699] r8169 0000:02:00.0 enp2s0: Link is Down
3570:[84181.237058] r8169 0000:02:00.0 enp2s0: Link is Down
3576:[84183.877303] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
3583:[87970.224465] r8169 0000:02:00.0 enp2s0: Link is Down
3669:[87972.039855] r8169 0000:02:00.0 enp2s0: Link is Down
3675:[87974.680900] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
3682:[90403.072639] r8169 0000:02:00.0 enp2s0: entered promiscuous mode
3687:[91346.182768] r8169 0000:02:00.0 enp2s0: Link is Down
3773:[91348.847144] r8169 0000:02:00.0 enp2s0: Link is Down
3779:[91351.489450] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
3786:[94089.242990] r8169 0000:02:00.0 enp2s0: Link is Down
3872:[94091.177251] r8169 0000:02:00.0 enp2s0: Link is Down
3878:[94093.845322] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
3885:[97162.485494] r8169 0000:02:00.0 enp2s0: Link is Down
3971:[97164.338429] r8169 0000:02:00.0 enp2s0: Link is Down
3977:[97166.993881] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
3984:[99331.955007] r8169 0000:02:00.0 enp2s0: Link is Down
4070:[99333.804385] r8169 0000:02:00.0 enp2s0: Link is Down
4076:[99336.525708] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
4083:[102548.645264] r8169 0000:02:00.0 enp2s0: Link is Down
4169:[102550.507099] r8169 0000:02:00.0 enp2s0: Link is Down
4175:[102553.249929] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
4189:[104144.453502] r8169 0000:02:00.0 enp2s0: Link is Down
4275:[104146.199573] r8169 0000:02:00.0 enp2s0: Link is Down
4281:[104148.831545] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
4296:[105479.120959] r8169 0000:02:00.0 enp2s0: Link is Down
4382:[105481.758496] r8169 0000:02:00.0 enp2s0: Link is Down
4388:[105484.382011] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
4397:[109020.415098] r8169 0000:02:00.0 enp2s0: Link is Down
4483:[109022.220538] r8169 0000:02:00.0 enp2s0: Link is Down
4489:[109024.852366] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
4506:[110962.843002] r8169 0000:02:00.0 enp2s0: left promiscuous mode
4513:[114019.761922] r8169 0000:02:00.0 enp2s0: Link is Down
4599:[114021.544971] r8169 0000:02:00.0 enp2s0: Link is Down
4605:[114024.211786] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
4660:[121466.199742] r8169 0000:02:00.0 enp2s0: Link is Down
4746:[121468.244819] r8169 0000:02:00.0 enp2s0: Link is Down
4752:[121470.909932] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
4759:[122898.797804] r8169 0000:02:00.0 enp2s0: Link is Down
4845:[122900.618463] r8169 0000:02:00.0 enp2s0: Link is Down
4851:[122903.287944] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
4862:[129224.341855] r8169 0000:02:00.0 enp2s0: Link is Down
4948:[129226.269366] r8169 0000:02:00.0 enp2s0: Link is Down
4951:[129228.917423] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
4961:[131811.339723] r8169 0000:02:00.0 enp2s0: Link is Down
5047:[131813.109528] r8169 0000:02:00.0 enp2s0: Link is Down
5053:[131815.735095] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
5060:[133881.594756] r8169 0000:02:00.0 enp2s0: Link is Down
5146:[133883.304377] r8169 0000:02:00.0 enp2s0: Link is Down
5152:[133885.944370] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
5159:[136205.690533] r8169 0000:02:00.0 enp2s0: Link is Down
5245:[136207.607859] r8169 0000:02:00.0 enp2s0: Link is Down
5251:[136210.378606] r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx###可以从上面命令的输出结果看出来,网络卡enp2s0使用的模块是r8169。### 2 wlp0s20f3
root@bogon:/etc# dmesg |grep -in wlp0s20f3
...
3683:[90541.343281] iwlwifi 0000:00:14.3 wlp0s20f3: entered promiscuous mode
3684:[90546.638870] iwlwifi 0000:00:14.3 wlp0s20f3: left promiscuous mode
3685:[90596.083644] iwlwifi 0000:00:14.3 wlp0s20f3: entered promiscuous mode
3686:[90609.677000] iwlwifi 0000:00:14.3 wlp0s20f3: left promiscuous mode
...
###可以从上面命令的输出结果看出来,网络卡wlp0s20f3使用的模块是iwlwifi。
观察网络卡的模块
从刚刚的dmesg的输出讯息中,我们知道这部主机所使用的模块是r8169和iwlwifi,那么核心有顺利的载入了吗?利用lsmod去茶查看。此外,这两个模块的相关信息又是如何呢?使用modinfo来查查看吧!
root@bogon:/etc# lsmod |grep r8169
r8169 126976 0 <===确实被载入了核心之中
root@bogon:/etc# lsmod |grep iwlwifi
iwlwifi 462848 1 iwlmvm <===确实被载入核心之中
cfg80211 1372160 3 iwlmvm,iwlwifi,mac80211
root@bogon:/etc# modinfo r8169
filename: /lib/modules/6.12.0-65.el10.x86_64/kernel/drivers/net/ethernet/realtek/r8169.ko.xz
firmware: rtl_nic/rtl8126a-3.fw
...
license: GPL
softdep: pre: realtek
description: RealTek RTL-8169 Gigabit Ethernet driver
author: Realtek and the Linux r8169 crew <netdev@vger.kernel.org>
rhelversion: 10.1
srcversion: BA20F3359CFED0F6256CF13
...
alias: pci:v000010ECd00002600sv*sd*bc*sc*i*
alias: pci:v000010ECd00002502sv*sd*bc*sc*i*
depends:
intree: Y
name: r8169
retpoline: Y
vermagic: 6.12.0-65.el10.x86_64 SMP preempt mod_unload modversions
sig_id: PKCS#7
signer: CentOS Stream kernel signing key
sig_key: 0C:AD:9E:A2:3C:EB:9F:A5:1B:65:E2:33:B6:A1:7F:BA:D0:4A:87:27
sig_hashalgo: sha256
signature: 80:81:27:60:A3:3A:E3:82:5A:66:6C:85:CA:4D:86:03:6B:BC:1A:1E:7D:35:28:73:7B:20:35:FE:5C:D7:FD:8D:39:0C:E4:09:C2:CA:91:85:
...
root@bogon:/etc# modinfo iwlwifi
filename: /lib/modules/6.12.0-65.el10.x86_64/kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko.xz
license: GPL
description: Intel(R) Wireless WiFi driver for Linux
firmware: iwlwifi-100-5.ucode
firmware: iwlwifi-1000-5.ucode
...
上面输出信息的重点在于那个档名 (filename) 的部分!那一场串的文件名目录,就是我们驱动程序放置的主要目录所在。 得要注意的是,那个6.12.0-65.el10.x86_64是核心版本,因此,不同的核心版本使用的驱动程序其实不一样喔!我们才会一直强调,更改核心后, 你自己编译的硬件驱动程序就需要重新编译啦!
那你如何知道你的网络卡卡号呢?很简单啊!不管有没有启动你的网络卡,都可
以使用: 『 ifconfig xxx 』来查询你的网卡卡号。如果你照着上面的信息来作, 结果发现网卡已经驱动了,恭喜你,准备到下一节去设定网络吧!如果没有捉到网卡呢?那就准备自己编译网卡驱动程序吧!
参考,
鸟哥的linux私房菜-服务器架设篇(第三版)
第四章
4.1
Linux命令:用来列出当前系统内核加载的所有模块的工具lsmod详解-CSDN博客