Initial
This commit is contained in:
parent
853b49b823
commit
ef89b3e9c3
134
README.md
Normal file
134
README.md
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
# Realtek r8125 DKMS
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
This provides Realtek r8125 driver in DKMS way so that you can keep the latest driver even after the kernel upgrade.
|
||||||
|
|
||||||
|
## Before use
|
||||||
|
|
||||||
|
This DKMS package is for Realtek RTL8125 (r8125 in module name) Ethernet, which is designed for the PCI interface.
|
||||||
|
|
||||||
|
If you are searching for the Realtek 2.5 Gbits **USB Ethernet**, which may use RTL8156 (r8152 in module name), you are in the wrong place. Please refer to another DKMS project for that Realtek driver.
|
||||||
|
|
||||||
|
- [Realtek R8152 DKMS](https://github.com/awesometic/realtek-r8152-dkms)
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
There are 3 ways to install this DKMS module. Choose one as your tastes.
|
||||||
|
|
||||||
|
Those are not interfering with each other. So you can do all 3 methods but absolutely you don't need to.
|
||||||
|
|
||||||
|
Installation using the Debian package is recommended for the sake of getting the newer driver.
|
||||||
|
|
||||||
|
### Debian package
|
||||||
|
|
||||||
|
#### Released package file
|
||||||
|
|
||||||
|
Download the latest Debian package from the Release tab on the Github repository.
|
||||||
|
|
||||||
|
Then enter the following command.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dpkg -i realtek-r8125-dkms*.deb
|
||||||
|
```
|
||||||
|
|
||||||
|
> If multiple files selected by the wild card, you should type the specific version of the file.
|
||||||
|
>
|
||||||
|
> ```bash
|
||||||
|
> sudo dpkg -i realtek-r8125-dkms_9.016.01-1_amd64.deb
|
||||||
|
> ```
|
||||||
|
|
||||||
|
If dependency error occurs, try to fix that with `apt` command.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt install --fix-broken
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Launchpad PPA (Recommended)
|
||||||
|
|
||||||
|
Add the Launchpad PPA.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo add-apt-repository ppa:awesometic/ppa
|
||||||
|
```
|
||||||
|
|
||||||
|
Then install the package using `apt` tool.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt install realtek-r8125-dkms
|
||||||
|
```
|
||||||
|
|
||||||
|
### autorun.sh
|
||||||
|
|
||||||
|
Using the `autorun.sh` script that Realtek provides on their original driver package. This is **not installed as a DKMS**, only efforts to the current kernel.
|
||||||
|
|
||||||
|
Download or clone this repository and move to the extracted directory, then run the script.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo ./autorun.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### dkms-install.sh
|
||||||
|
|
||||||
|
This script is from aircrack-ng team. You can install the DKMS module by a simple command.
|
||||||
|
|
||||||
|
Download or clone this repository and move to the extracted directory, then run the script.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo ./dkms-install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
lsmod | grep -i r8169
|
||||||
|
```
|
||||||
|
|
||||||
|
If there is a result, maybe the `r8125` module wasn't loaded properly. You can check out modules currently in use via `lspci -k` or `dmesg` too.
|
||||||
|
|
||||||
|
To use the `r8125` module explicitly you can add the `r8169` module to not be loaded by adding it to a blacklist file.
|
||||||
|
|
||||||
|
Enter the following command to configure the blacklist.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo tee -a /etc/modprobe.d/blacklist-r8169.conf > /dev/null <<EOT
|
||||||
|
# To use r8125 driver explicitly
|
||||||
|
blacklist r8169
|
||||||
|
EOT
|
||||||
|
```
|
||||||
|
|
||||||
|
To apply the new blacklist to your kernel, update your initramfs via
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo update-initramfs -u
|
||||||
|
```
|
||||||
|
|
||||||
|
Finally, reboot to take effect.
|
||||||
|
|
||||||
|
> - If you need to load both r8169 and r8125, maybe removing r8125 firmware could make it work. Please enter `sudo rm -f /lib/firmware/rtl_nic/rtl8125*` to remove all the r8125 firmwares on the system. But it is just a workaround, you should have to do this every time installing the new kernel version or new Linux firmware.
|
||||||
|
> - In the case of the Debian package, I will update the scripts to make it do this during the installation.
|
||||||
|
|
||||||
|
## Debian package build
|
||||||
|
|
||||||
|
You can build yourself this after installing some dependencies including `dkms`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt install devscripts debmake debhelper build-essential dkms dh-dkms
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
dpkg-buildpackage -b -rfakeroot -us -uc
|
||||||
|
```
|
||||||
|
|
||||||
|
## LICENSE
|
||||||
|
|
||||||
|
GPL-2 on Realtek driver and the debian packaing.
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
- [Realtek r8125 driver release page](https://www.realtek.com/Download/List?cate_id=584)
|
||||||
|
- [ParrotSec's realtek-rtl88xxau-dkms, where got hint from](https://github.com/ParrotSec/realtek-rtl88xxau-dkms)
|
5
debian/README.Debian
vendored
Normal file
5
debian/README.Debian
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
realtek-r8125-dkms for Debian
|
||||||
|
|
||||||
|
This installs a DKMS for Realtek r8125 drivers.
|
||||||
|
|
||||||
|
-- Deokgyu Yang <secugyu@gmail.com> Fri, 12 Jun 2020 12:27:29 +0900
|
6
debian/README.source
vendored
Normal file
6
debian/README.source
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
realtek-r8125-dkms for Debian
|
||||||
|
|
||||||
|
The driver source can be found here:
|
||||||
|
https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software
|
||||||
|
|
||||||
|
-- Deokgyu Yang <secugyu@gmail.com> Fri, 12 Jun 2020 12:27:29 +0900
|
7
debian/changelog
vendored
Normal file
7
debian/changelog
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
realtek-r8168-dkms (8.055.00) UNRELEASED; urgency=low
|
||||||
|
|
||||||
|
* Initial release
|
||||||
|
* This package will be installed but DKMS won't work
|
||||||
|
Do not install this version, otherwise your system will be corrupted
|
||||||
|
|
||||||
|
-- Mario Fetka <mario.fetka@gmail.com> Fri, 12 Jun 2020 12:27:29 +0900
|
1
debian/compat
vendored
Normal file
1
debian/compat
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
11
|
16
debian/control
vendored
Normal file
16
debian/control
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
Source: realtek-r8168-dkms
|
||||||
|
Section: contrib/kernel
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: Mario Fetka <mario.fetka@gmail.com>
|
||||||
|
Build-Depends: debhelper (>=11~), dkms (<< 3.0.3-3~) | dh-sequence-dkms
|
||||||
|
Standards-Version: 4.6.2.1
|
||||||
|
Homepage: https://github.com/awesometic/realtek-r8125-dkms
|
||||||
|
|
||||||
|
Package: realtek-r8168-dkms
|
||||||
|
Architecture: any
|
||||||
|
Multi-Arch: foreign
|
||||||
|
Depends: dkms (>= 1.95), ${misc:Depends}
|
||||||
|
Description: Realtek RTL8168 driver in DKMS format
|
||||||
|
This package provides the source code for RTL8168 Linux driver that may
|
||||||
|
include supporting other Realtek GbE chipsets to be build with dkms.
|
||||||
|
Kernel sources or headers are required to compile this module.
|
50
debian/copyright
vendored
Normal file
50
debian/copyright
vendored
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
Upstream-Name: realtek-r8168-dkms
|
||||||
|
Source: https://gitea.disconnected-by-peer.at/deb/realtek-r8168-dkms
|
||||||
|
|
||||||
|
Files: *
|
||||||
|
Copyright: 2019-2022 Realtek Semiconductor Corp.
|
||||||
|
License: GPL-2
|
||||||
|
This program is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the Free
|
||||||
|
Software Foundation; either version 2 of the License, or (at your option)
|
||||||
|
any later version.
|
||||||
|
.
|
||||||
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
more details.
|
||||||
|
.
|
||||||
|
You should have received a copy of the GNU General Public License along with
|
||||||
|
this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
.
|
||||||
|
Author:
|
||||||
|
Realtek NIC software team <nicfae@realtek.com>
|
||||||
|
No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan
|
||||||
|
.
|
||||||
|
This product is covered by one or more of the following patents:
|
||||||
|
US6,570,884, US6,115,776, and US6,327,625.
|
||||||
|
.
|
||||||
|
On Debian systems, the complete text of the GNU General Public License
|
||||||
|
Version 2 can be found in `/usr/share/common-licenses/GPL-2'.
|
||||||
|
|
||||||
|
Files: debian/*
|
||||||
|
Copyright: 2020-2022 Deokgyu Yang <secugyu@gmail.com>
|
||||||
|
License: GPL-2
|
||||||
|
|
||||||
|
License: GPL-2
|
||||||
|
This program is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of version 2 of the GNU General Public License as
|
||||||
|
published by the Free Software Foundation.
|
||||||
|
.
|
||||||
|
This program is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
.
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc., 51
|
||||||
|
Franklin Street, Fifth Floor, Boston, MA 02110, USA
|
||||||
|
.
|
||||||
|
On Debian systems, the complete text of the GNU General Public License
|
||||||
|
version 2 can be found in "/usr/share/common-licenses/GPL-2"
|
1
debian/dirs
vendored
Normal file
1
debian/dirs
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
usr/src
|
1
debian/docs
vendored
Normal file
1
debian/docs
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
README.md REALTEK_README.txt LICENSE
|
49
debian/postinst
vendored
Normal file
49
debian/postinst
vendored
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Copyright (C) 2002-2005 Flavio Stanchina
|
||||||
|
# Copyright (C) 2005-2006 Aric Cyr
|
||||||
|
# Copyright (C) 2007 Mario Limonciello
|
||||||
|
# Copyright (C) 2009 Alberto Milone
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
NAME=realtek-r8168
|
||||||
|
PACKAGE_NAME=$NAME-dkms
|
||||||
|
DEB_NAME=$(echo $PACKAGE_NAME | sed 's,_,-,')
|
||||||
|
CVERSION=`dpkg-query -W -f='${Version}' $DEB_NAME | awk -F "-" '{print $1}' | cut -d\: -f2`
|
||||||
|
ARCH=`dpkg --print-architecture`
|
||||||
|
|
||||||
|
dkms_configure () {
|
||||||
|
for POSTINST in /usr/lib/dkms/common.postinst "/usr/share/$PACKAGE_NAME/postinst"; do
|
||||||
|
if [ -f "$POSTINST" ]; then
|
||||||
|
"$POSTINST" "$NAME" "$CVERSION" "/usr/share/$PACKAGE_NAME" "$ARCH" "$2"
|
||||||
|
return $?
|
||||||
|
fi
|
||||||
|
echo "WARNING: $POSTINST does not exist." >&2
|
||||||
|
done
|
||||||
|
echo "ERROR: DKMS version is too old and $PACKAGE_NAME was not" >&2
|
||||||
|
echo "built with legacy DKMS support." >&2
|
||||||
|
echo "You must either rebuild $PACKAGE_NAME with legacy postinst" >&2
|
||||||
|
echo "support or upgrade DKMS to a more current version." >&2
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
configure)
|
||||||
|
dkms_configure
|
||||||
|
;;
|
||||||
|
|
||||||
|
abort-upgrade|abort-remove|abort-deconfigure)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "postinst called with unknown argument \`$1'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# dh_installdeb will replace this with shell code automatically
|
||||||
|
# generated by other debhelper scripts.
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
26
debian/prerm
vendored
Normal file
26
debian/prerm
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
NAME=realtek-r8168
|
||||||
|
VERSION=8.055.00
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
remove|upgrade|deconfigure)
|
||||||
|
if [ "`dkms status -m $NAME`" ]; then
|
||||||
|
dkms remove -m $NAME -v $VERSION --all
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
failed-upgrade)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "prerm called with unknown argument \`$1'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
exit 0
|
30
debian/rules
vendored
Executable file
30
debian/rules
vendored
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
#export DH_VERBOSE=1
|
||||||
|
|
||||||
|
#just use base version
|
||||||
|
VERSION := $(shell dpkg-parsechangelog -S Version | sed 's/-.*//' | sed 's/+pristine//')
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh $@ --parallel --with dkms
|
||||||
|
|
||||||
|
override_dh_install:
|
||||||
|
dh_install dkms.conf REALTEK_README.txt Makefile usr/src/realtek-r8168-$(VERSION)
|
||||||
|
dh_install src/* usr/src/realtek-r8168-$(VERSION)/src
|
||||||
|
|
||||||
|
override_dh_dkms:
|
||||||
|
dh_dkms -V $(VERSION)
|
||||||
|
|
||||||
|
override_dh_fixperms:
|
||||||
|
dh_fixperms
|
||||||
|
find debian/realtek-r8125-dkms/usr/src -type f -exec chmod -x {} \;
|
||||||
|
|
||||||
|
override_dh_builddeb:
|
||||||
|
dh_builddeb -- -Zxz
|
||||||
|
|
||||||
|
# Nothing to configure, build or auto-install
|
||||||
|
override_dh_auto_configure:
|
||||||
|
override_dh_auto_build:
|
||||||
|
override_dh_auto_test:
|
||||||
|
override_dh_auto_install:
|
||||||
|
override_dh_auto_clean:
|
1
debian/source/format
vendored
Normal file
1
debian/source/format
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
3.0 (quilt)
|
24
dkms-install.sh
Executable file
24
dkms-install.sh
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
echo "You must run this with superuser privileges. Try \"sudo ./dkms-install.sh\"" 2>&1
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "About to run dkms install steps..."
|
||||||
|
fi
|
||||||
|
|
||||||
|
DRV_DIR="$(pwd)"
|
||||||
|
DRV_NAME=r8168
|
||||||
|
DRV_VERSION=8.055.00
|
||||||
|
KERNEL_VERSION="${KERNEL_VERSION:-$(uname -r)}"
|
||||||
|
|
||||||
|
cp -r ${DRV_DIR} /usr/src/${DRV_NAME}-${DRV_VERSION}
|
||||||
|
|
||||||
|
dkms add -m ${DRV_NAME} -v ${DRV_VERSION} -k ${KERNEL_VERSION}
|
||||||
|
dkms build -m ${DRV_NAME} -v ${DRV_VERSION} -k ${KERNEL_VERSION}
|
||||||
|
dkms install -m ${DRV_NAME} -v ${DRV_VERSION} -k ${KERNEL_VERSION}
|
||||||
|
RESULT=$?
|
||||||
|
|
||||||
|
echo "Finished running dkms install steps."
|
||||||
|
|
||||||
|
exit $RESULT
|
24
dkms-remove.sh
Executable file
24
dkms-remove.sh
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
echo "You must run this with superuser priviliges. Try \"sudo ./dkms-remove.sh\"" 2>&1
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "About to run dkms removal steps..."
|
||||||
|
fi
|
||||||
|
|
||||||
|
DRV_DIR="$(pwd)"
|
||||||
|
DRV_NAME=r8168
|
||||||
|
DRV_VERSION=8.055.00
|
||||||
|
|
||||||
|
dkms remove ${DRV_NAME}/${DRV_VERSION} --all
|
||||||
|
rm -rf /usr/src/${DRV_NAME}-${DRV_VERSION}
|
||||||
|
|
||||||
|
RESULT=$?
|
||||||
|
if [[ "$RESULT" != "0" ]]; then
|
||||||
|
echo "Error occurred while running dkms remove." 2>&1
|
||||||
|
else
|
||||||
|
echo "Finished running dkms removal steps."
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit $RESULT
|
10
dkms.conf
Normal file
10
dkms.conf
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
PACKAGE_NAME="realtek-r8168"
|
||||||
|
PACKAGE_VERSION="8.055.00"
|
||||||
|
PROCS_NUM=`nproc`
|
||||||
|
[ $PROCS_NUM -gt 16 ] && PROCS_NUM=16
|
||||||
|
MAKE="'make' -j$PROCS_NUM KVER=${kernelver} BSRC=/lib/modules/${kernelver} modules"
|
||||||
|
CLEAN="'make' KVER=${kernelver} BSRC=/lib/modules/${kernelver} clean"
|
||||||
|
BUILT_MODULE_NAME[0]="r8168"
|
||||||
|
BUILT_MODULE_LOCATION[0]="src"
|
||||||
|
DEST_MODULE_LOCATION[0]="/updates"
|
||||||
|
AUTOINSTALL="yes"
|
Loading…
x
Reference in New Issue
Block a user