Check the Driver version in Ubuntu
$ uname -r
5.4.0-39-generic
$ lsmod |grep r8169
r8169 90112 0
$ modinfo r8169
filename: /lib/modules/5.4.0-39-generic/kernel/drivers/net/ethernet/realte k/r8169.ko
firmware: rtl_nic/rtl8125a-3.fw
firmware: rtl_nic/rtl8107e-2.fw
firmware: rtl_nic/rtl8107e-1.fw
firmware: rtl_nic/rtl8168h-2.fw
firmware: rtl_nic/rtl8168h-1.fw
firmware: rtl_nic/rtl8168g-3.fw
firmware: rtl_nic/rtl8168g-2.fw
firmware: rtl_nic/rtl8106e-2.fw
firmware: rtl_nic/rtl8106e-1.fw
firmware: rtl_nic/rtl8411-2.fw
firmware: rtl_nic/rtl8411-1.fw
firmware: rtl_nic/rtl8402-1.fw
firmware: rtl_nic/rtl8168f-2.fw
firmware: rtl_nic/rtl8168f-1.fw
firmware: rtl_nic/rtl8105e-1.fw
firmware: rtl_nic/rtl8168e-3.fw
firmware: rtl_nic/rtl8168e-2.fw
firmware: rtl_nic/rtl8168e-1.fw
firmware: rtl_nic/rtl8168d-2.fw
firmware: rtl_nic/rtl8168d-1.fw
license: GPL
softdep: pre: realtek
description: RealTek RTL-8169 Gigabit Ethernet driver
author: Realtek and the Linux r8169 crew <netdev@vger.kernel.org>
srcversion: DF4ECFD2CD48E2A6FA2D7FE
alias: pci:v000010ECd00003000sv*sd*bc*sc*i*
alias: pci:v000010ECd00008125sv*sd*bc*sc*i*
alias: pci:v00000001d00008168sv*sd00002410bc*sc*i*
alias: pci:v00001737d00001032sv*sd00000024bc*sc*i*
alias: pci:v000016ECd00000116sv*sd*bc*sc*i*
alias: pci:v00001259d0000C107sv*sd*bc*sc*i*
alias: pci:v00001186d00004302sv*sd*bc*sc*i*
alias: pci:v00001186d00004300sv*sd*bc*sc*i*
alias: pci:v00001186d00004300sv00001186sd00004B10bc*sc*i*
alias: pci:v000010ECd00008169sv*sd*bc*sc*i*
alias: pci:v000010FFd00008168sv*sd*bc*sc*i*
alias: pci:v000010ECd00008168sv*sd*bc*sc*i*
alias: pci:v000010ECd00008167sv*sd*bc*sc*i*
alias: pci:v000010ECd00008161sv*sd*bc*sc*i*
alias: pci:v000010ECd00008136sv*sd*bc*sc*i*
alias: pci:v000010ECd00008129sv*sd*bc*sc*i*
alias: pci:v000010ECd00002600sv*sd*bc*sc*i*
alias: pci:v000010ECd00002502sv*sd*bc*sc*i*
depends:
retpoline: Y
intree: Y
name: r8169
vermagic: 5.4.0-39-generic SMP mod_unload
sig_id: PKCS#7
signer: Build time autogenerated kernel key
sig_key: 70:3A:0E:EF:43:F2:F2:F1:A6:03:AF:FE:E6:21:11:A1:3D:27:AF:2C
sig_hashalgo: sha512
signature: 6C:4C:5C:26:99:89:20:C5:BC:70:67:12:D5:CD:0B:38:28:9B:01:1B:
18:AF:B9:41:75:62:48:52:A8:96:43:CC:07:14:D1:C4:95:79:9F:28:
D0:1C:27:FA:79:0C:15:40:2D:58:A3:2A:CD:01:05:DE:BB:6A:51:19:
61:97:CC:76:2C:AB:85:AA:6D:E9:1A:DB:CB:AD:F7:B9:49:37:34:DF:
7A:F0:10:74:BB:11:87:C5:A4:7B:A4:0B:8D:66:D1:44:33:67:1C:DB:
F5:07:B3:7E:6B:B3:83:7F:85:21:EE:2A:49:9A:2F:53:05:7E:F2:D7:
83:8F:5E:6C:6A:81:DE:E9:CB:3A:AC:B3:CE:32:2C:E3:E0:8A:6A:DB:
76:C2:C8:FF:8D:54:AC:85:12:06:CD:92:BD:C4:85:21:05:A4:B7:DE:
A7:89:93:A3:5B:68:87:81:A8:C5:AF:A5:37:3A:1C:60:B2:C8:2D:B2:
F6:9C:A1:99:D1:07:0F:FE:E3:82:63:D2:1D:C4:C1:3A:9C:3C:05:DB:
BE:82:1B:0D:FD:2F:E4:81:28:D6:D5:38:FE:A2:CD:AB:D0:C8:A7:85:
25:BE:7D:61:D0:FC:B5:F9:6F:62:98:15:30:24:F5:23:4E:23:D8:70:
EE:B6:8B:D6:39:0B:79:E7:4C:8E:4D:E7:7A:D0:CB:BC:85:1F:90:11:
68:AE:E1:87:2F:46:2F:2D:63:95:F2:8B:7D:A5:B4:49:22:AE:55:6F:
F1:F5:8C:71:E8:16:F0:D0:83:53:A6:DA:86:52:97:A0:2E:6D:E8:64:
4C:54:C6:42:A3:6D:7B:E5:48:1A:52:B8:A4:AC:E8:25:C8:E4:02:00:
F1:CF:BA:8F:3E:B7:19:F0:8A:63:79:E7:60:03:1C:EB:E1:3E:60:7D:
7A:D8:0A:4C:77:20:C5:12:42:AE:90:66:D4:D6:A3:31:46:F2:DD:34:
03:7A:77:86:EA:80:FF:66:26:95:63:44:22:DA:B4:D9:09:70:04:12:
87:C6:85:53:EB:05:D9:96:20:68:7B:76:E8:17:FF:CB:0B:91:A5:31:
7A:9C:46:00:23:D1:2B:C6:C6:59:EE:E6:63:2A:7A:57:4A:08:61:C2:
C5:EE:A8:1E:82:FF:31:92:9D:5F:12:AA:F6:39:57:79:59:2F:95:01:
EA:45:20:AE:B6:20:59:90:0C:2F:A7:A0:87:98:3C:F5:4A:2B:33:D9:
82:7D:B9:BE:01:E2:68:B0:6D:9D:BE:05:F8:54:05:CA:24:C2:B2:D4:
CE:E2:4D:2D:F1:43:14:5F:E6:37:B0:29:28:27:05:76:39:34:C3:0B:
53:DE:71:6E:05:48:C3:F1:2E:DF:48:C3
parm: debug:Debug verbosity level (0=none, ..., 16=all) (int)
Kernel site
https://www.kernel.org/doc/html/latest/
//Kernel src
apt-get source linux-image-$(uname -r)
Get:2 http://in.archive.ubuntu.com/ubuntu focal-updates/main linux-signed 5.4.0-39.43 (tar) [18.4 kB]
//
sudo apt-get install linux-source -y
Get:1 http://in.archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-source-5.4.0 all 5.4.0-39.43 [135 MB]
Get:2 http://in.archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-source all 5.4.0.39.42 [2,464 B]
//path of source in system
/usr/src$ ls -ltr
total 20
lrwxrwxrwx 1 root root 32 Jun 4 23:25 vboxhost-6.1.10 -> ../share/virtualbox/src/vboxhost
drwxr-xr-x 24 root root 4096 Jun 10 12:07 linux-headers-5.4.0-37
lrwxrwxrwx 1 root root 45 Jun 19 15:26 linux-source-5.4.0.tar.bz2 -> linux-source-5.4.0/linux-source-5.4.0.tar.bz2
drwxr-xr-x 24 root root 4096 Jun 25 19:54 linux-headers-5.4.0-39
drwxr-xr-x 7 root root 4096 Jun 25 19:54 linux-headers-5.4.0-39-generic
drwxr-xr-x 7 root root 4096 Jun 25 20:09 linux-headers-5.4.0-37-generic
drwxr-xr-x 4 root root 4096 Jun 26 11:39 linux-source-5.4.0
//ethernet drivers
linux-source-5.4.0/drivers/net/ethernet/realtek
8139cp.c 8139too.c atp.c atp.h Kconfig Makefile r8169_firmware.c r8169_firmware.h r8169_main.c
Ubuntu 18.04 (Bionic) sources.list
/etc/apt/sources.list
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://us.archive.ubuntu.com/ubuntu/ bionic main restricted
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
deb http://us.archive.ubuntu.com/ubuntu/ bionic universe
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates universe
deb http://us.archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
deb http://us.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu bionic-security main restricted
deb http://security.ubuntu.com/ubuntu bionic-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse
DLINK related change
"r8169_n.c"
#ifndef PCI_VENDOR_ID_DLINK
#define PCI_VENDOR_ID_DLINK 0x1186
#endif
static struct pci_device_id rtl8169_pci_tbl[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8167), 0, 0, RTL_CFG_0 },
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8169), 0, 0, RTL_CFG_0 },
{ PCI_VENDOR_ID_DLINK, 0x4300, PCI_VENDOR_ID_DLINK, 0x4300, 0, 0, RTL_CFG_0 },
{0,},
};
Kernel module building
make -C /lib/modules/5.4.0-39-generic/build SUBDIRS=/home/nsarkar/work/dlink-dge528t/Linux/src clean
lspci Ethernet Driver info
sudo lspci -s 02:00.0 -vv
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c)
Subsystem: Gigabyte Technology Co., Ltd Onboard Ethernet
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 18
Region 0: I/O ports at e000 [size=256]
Region 2: Memory at f7c00000 (64-bit, non-prefetchable) [size=4K]
Region 4: Memory at f0000000 (64-bit, prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [70] Express (v2) Endpoint, MSI 01
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 10.000W
DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 4096 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 <64us
ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s (ok), Width x1 (ok)
TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, NROPrPrP-, LTR+
10BitTagComp-, 10BitTagReq-, OBFF Via message/WAKE#, ExtFmt-, EETLPPrefix-
EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
FRS-, TPHComp-, ExtTPHComp-
AtomicOpsCap: 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled
AtomicOpsCtl: ReqEn-
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Capabilities: [b0] MSI-X: Enable+ Count=4 Masked-
Vector table: BAR=4 offset=00000000
PBA: BAR=4 offset=00000800
Capabilities: [d0] Vital Product Data
pcilib: sysfs_read_vpd: read failed: Input/output error
Not readable
Capabilities: [100 v1] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
HeaderLog: 00000000 00000000 00000000 00000000
Capabilities: [140 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
Status: NegoPending- InProgress-
Capabilities: [160 v1] Device Serial Number 01-00-00-00-68-4c-e0-00
Capabilities: [170 v1] Latency Tolerance Reporting
Max snoop latency: 71680ns
Max no snoop latency: 71680ns
Kernel driver in use: r8169
Kernel modules: r8169
Vendor ID
include/linux/pci_ids.h
#define PCI_VENDOR_ID_DLINK 0x1186
#define PCI_VENDOR_ID_REALTEK 0x10ec
#define PCI_VENDOR_ID_MELLANOX 0x15b3
#define PCI_VENDOR_ID_INTEL 0x8086
#define PCI_VENDOR_ID_NETGEAR 0x1385
#define PCI_VENDOR_ID_APPLE 0x106b
#define PCI_VENDOR_ID_DELL 0x1028