Compiling drivers from special github for debian

Debian users can successfully use drivers compiled from github. If SUSE has something to replace e.g. dkpg -i, with zypper commnds then users can also compile drivers to translate e e.g. the high-priority Realtek RTL8125 driver for chipset 870.

You can use this one:
https://download.opensuse.org/repositories/home:/Sauerland:/hardware/openSUSE_Leap_15.6/
It’s build from the original Realtek drivers as the git Repo is also used.

Install r8125-kmp-default r8125-blacklist-r8169 and r8125-ueficert

In opensuse you do not need dkms, this “update” is done by a script when installing a kmp or a new kernel.
This script will “install” the ko to all installed kernels:

find /lib/modules/ -name r8125.ko.xz
/lib/modules/6.4.0-150600.23.47-default/weak-updates/updates/r8125.ko.xz
/lib/modules/6.4.0-150600.23.42-default/weak-updates/updates/r8125.ko.xz
/lib/modules/6.4.0-150600.21-default/updates/r8125.ko.xz
/lib/modules/6.4.0-150600.23.38-default/weak-updates/updates/r8125.ko.xz

Installed is only the version for Kernel k6.4.0_150600.21

LANG=C zypper se -si r8125
Loading repository data...
Reading installed packages...

S  | Name                  | Type    | Version                             | Arch   | Repository
---+-----------------------+---------+-------------------------------------+--------+--------------
i+ | r8125-blacklist-r8169 | package | 9.015.00-lp156.1.1                  | x86_64 | Sauerland-OSS
i+ | r8125-kmp-default     | package | 9.015.00_k6.4.0_150600.21-lp156.1.1 | x86_64 | Sauerland-OSS
i  | r8125-ueficert        | package | 9.015.00-lp156.1.1                  | x86_64 | Sauerland-OSS

What advantages this driver provides? (comparing to default one).

Thank you for the solution description. Of course, I use git for development, but I guess to my detriment I’ve never used Google repo. I was able to compile drivers without using repo, both of the outputs you listed I got, but the driver didn’t install. The lpci -k command didn’t show up for my driver. I guess you have to use repo I went through quite a few of the available links on the web and I think I should use the repo sync [project-list] command. What is project-list, your web link? I never found out how I should run repo for compiling and installing drivers, I guess some kind of certificate is needed.I guess the repo clone command would run me the well-known git cone command and then I would run the install command from the github repository. I’d be awfully grateful for the commands to run the repo commands for the RTL8125 driver. Thank you in advance.

See the REALTEK_README.txt in the git Repo.

Remove all out-of-tree kernel modules. Replace all unsupported (cheap) hardware.
https://hatchjs.com/loading-out-of-tree-module-taints-kernel/

And check if linux kernel is tainted or not.
https://docs.kernel.org/admin-guide/tainted-kernels.html

https://www.suse.com/support/kb/doc/?id=000016321

# uname -rsm
Linux 6.4.0-150600.23.47-default x86_64

# cat /proc/sys/kernel/tainted
0
# cat /proc/sys/kernel/tainted
9216

# uname -rsm
Linux 5.4.0-1122-raspi aarch64

# dmesg  |grep -i taint
[    9.092474] vc_sm_cma: module verification failed: signature and/or required key missing - tainting kernel

# dmesg |grep -i stag
[    9.092027] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[    9.156941] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[    9.194293] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[    9.194299] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[    9.211505] bcm2835_isp: module is from the staging directory, the quality is unknown, you have been warned.
[    9.213519] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[    9.251273] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.

OS: Ubuntu 20.04.6 LTS aarch64
Host: Raspberry Pi 4 Model B Rev 1.1

https://docs.kernel.org/process/2.Process.html#staging-trees

I took the advice from GrandDixence2Explorer Penguin the answer, too, and the recommended commands provided me with this information.

cat /proc/sys/kernel/tainted
2147483648

dmesg |grep -i stag
[ 2.411938] ahci 0000:0a:00.0: flags: 64bit ncq sntf stag pm led only pio sxs deso sadm sds apst
[ 2.412995] ahci 0000:0d:00.0: flags: 64bit ncq sntf stag pm led clo only pmp pio slum part sxs deso sadm sds apst

From the link at the end of his answer, I learned that developers using git often have staging tree problems. I make a lot of mistakes, but I can’t make a tainting problem. I’m in a rather difficult situation waiting for a mainline driver in the SUSE distribution will take a very long time because the SUSE team is concentrating effort on completing Suse Leap 16.0. You’re the only one team who develops drivers for SUSE, wouldn’t my driver listings help you improve your driver?

Realtek rtl8125 Chips are supported by the r8169 driver of the kernel.

 /usr/sbin/modinfo r8169
filename:       /lib/modules/6.4.0-150600.23.47-default/kernel/drivers/net/ethernet/realtek/r8169.ko.zst
firmware:       rtl_nic/rtl8125b-2.fw
firmware:       rtl_nic/rtl8125a-3.fw
firmware:       rtl_nic/rtl8107e-2.fw
firmware:       rtl_nic/rtl8168fp-3.fw
firmware:       rtl_nic/rtl8168h-2.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>
suserelease:    SLE15-SP6
srcversion:     E079743135A477C6B3A1A61
alias:          pci:v000010ECd00003000sv*sd*bc*sc*i*
alias:          pci:v000010ECd00008126sv*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:v000010ECd00008162sv*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*

So the r8125 driver will not get into the Kernel.

realtek-r8125-dkms/README.md at master · awesometic/realtek-r8125-dkms · GitHub

Verify the module is loaded successfully

After installing the DKMS package, you may not be able to use the new r8125 module on the fly. This because the existing r8169 module will be loaded priority to r8125 so that it prevents working of the r8125 module.

Check if the r8169 module loaded currently.

lsmod | grep -i r8169

Command:
/usr/sbin/modinfo r8169

returned a compiled driver r8169.ko.zst

/lib/modules/6.4.0-150600.23.47-default/kernel/drivers/net/ethernet/realtek/r8169.ko.zst
Although the x86_64 directory from the link
https://download.opensuse.org/repositories/home:/Sauerland:/hardware/openSUSE_Leap_15.6/x86_64/

contained a lot of data for translating various drivers, so I couldn’t find data for translating the r8169 driver on 51 pages. The r8169.ko.zst file apparently came from some github repository specifically created for this driver, or there is some generic repository I could get if you would provide me with its URL to find and install in the Yast Software repository. In it I would then probably find packages for the r8169 driver that would allow some zypper commands like

Install r8169-kmp-default r8169-blacklist-r8169 and r8169-ueficert

The Packman repository contained packages for running the r8125 driver commands, so the zypper could run the

Install r8125-kmp-default r8125-blacklist-r8169 and r8125-ueficert

which the r8125 driver translated, but for some mysterious reason did not install.

If you would be so kind as to send me a github link for the r8169 driver, or the URL of your more general repository, I would definitely contribute financially to your development (but you should tell me how I should do this)

Enjoy: Repository search results · GitHub

Read post #2 what to install…

PS:
dkms is not needed for this driver in openSUSE…

r8169 must be blacklisted to get r8125 working, this will be done by the r8125-blacklist-r8169:

r8125-blacklist-r8169 - To favour r8125 blacklist the r8169 device driver

On many Realtek Ethernet controllers the old device driver r8169 does not work reliably. To solve this the r8169 kernel module has to be blacklisted to enable the system to load the new device driver r8125.

If you need a driver for r8168 Chip, install the r8168-kmp, because r8169 supports many chips (1 GB, 2,5 GB and 5 Gb Chips) and realtek only supports the Chips needed this driver.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.