Ошибки компиляции драйвера realtek r8168 в ядре 5.8.0-50 (20.04.1 LTS)

Я пытаюсь установить r8168-dkms на новую установку 20.04.1 на мой новый компьютер AMD Ryzen, но при компиляции возникает ошибка.

uname -a output: Linux terry-pc 5.8.0-50-generic # 56 ~ 20.04.1-Ubuntu SMP Mon Apr 12 21:46:35 UTC 2021 x86_64 x86_64 x86_64 GNU / Linux

dpkg -i r8168-dkms_8.048.00-1_all.deb

make.log:

DKMS make.log для r8168-8.048.00 для ядра 5.8.0-50-generic (x86_64) {{1} } Пт, 23 апреля 2021 г., 12:09:08 PDT make: вход в каталог '/ usr / src / linux-headers-5.8.0-50-generic' AR / var / lib / dkms / r8168 / 8.048.00 / build / built-in.a CC [M] / var / lib / dkms / r8168 / 8.048.00 / build / r8168_n.o CC [M] {{1} } /var/lib/dkms/r8168/8.048.00/build/r8168_asf.o CC [M] / var / lib / dkms / r8168 / 8.048.00 / build / rtl_eeprom.o CC [M] / var / lib / dkms / r8168 / 8.048.00 / build / rtltool.o / var / lib / dkms / r8168 / 8.048.00 / build / r8168_n.c: в функции { {1}} 'rtl8168_proc_init': / var / lib / dkms / r8168 / 8.048.00 / build / r8168_n.c: 1670: 47: ошибка: передача аргумента 4 из 'proc_create_data' из несовместимого типа указателя [- Ошибка = несовместимые типы-указатели] 1670 | & rtl8168_proc_fops, f-> показать)) {| ^ ~~~~~~~~~~~~~~~~~ | | | const struct file_operations * В файле, включенном из /var/lib/dkms/r8168/8.048.00/build/r8168_n.c:92: ./include/linux/proc_fs.h: 103: 31: примечание: ожидается ‘const struct proc_ops *’, но аргумент имеет тип ‘const struct file_operations *’ 103 | extern struct proc_dir_entry * proc_create_data (const char, umode_t, | ^ ~~~~~~~~~~~~~~~ / var / lib / dkms / r8168 / 8.048.00 /build/r8168_n.c: На верхнем уровне: / var / lib / dkms / r8168 / 8.048.00 / build / r8168_n.c: 25825: 31: ошибка: инициализация 'void () (struct net_device, unsigned int) 'from несовместимый тип указателя' void () (struct net_device *) ' [- Werror = несовместимые-указатели-типы] 25825 | .ndo_tx_timeout {{ 1}} = rtl8168_tx_timeout, | ^ ~~~~~~~~~~~~~~~~~ /var/lib/dkms/r8168/8.048.00/build/r8168_n.c:25825:31: примечание: (рядом с инициализацией для 'rtl8168_netdev_ops.ndo_tx_timeout') cc1: некоторые предупреждения обрабатываются как ошибки make [1]: *** [scripts / Makefile.build: 284: / var / lib / dkms / r8168 / 8.048.00 / build / r8168_n.o] Ошибка 1 make: *** [Makefile: 1783: / var / lib / dkms / r8168 / 8.048.00 / build] Ошибка 2 make: Выход из каталога '/usr/src/linux-headers-5.8.0-50-generic'

. Кто-нибудь исправил это и исправил?

0
задан 24 April 2021 в 05:25

1 ответ

Теперь, когда у вас установлен драйвер r8168-8.048.03 от Realtek, он, к сожалению, не содержит информации DKMS для драйвера, который будет использоваться в новых обновлениях ядра.

Чтобы решить эту проблему, мы собираемся создать файл dkms.conf для этого драйвера.

Создайте папку для нового драйвера:

sudo mkdir /usr/src/r8168-8.048.03

Затем перейдите в папку с драйвером r8168 (или загрузите и извлеките драйвер отсюда ), который был извлечен, и скопируйте все его содержимое в папку вновь созданная папка:

sudo cp * /usr/src/r8168-8.048.03/

Затем создайте новый файл dkms.conf в новой исходной папке:

sudo nano /usr/src/r8168-8.048.03/dkms.conf

и добавьте в файл следующие строки:

PACKAGE_NAME="r8168"
PACKAGE_VERSION="8.048.03"
BUILT_MODULE_NAME[0]="$PACKAGE_NAME"
DEST_MODULE_LOCATION[0]="/updates/dkms"
AUTOINSTALL="YES"
REMAKE_INITRD="YES"

Затем сохраните и закройте файл.

Теперь мы собираемся добавить драйвер dkms в ядро:

sudo dkms add -m r8168 -v 8.048.03
sudo dkms build -m r8168 -v 8.048.03
sudo dkms install -m r8168 -v 8.048.03

Затем проверьте драйвер с статусом dkms . Если вы видите что-то в созданном драйвере, отличном от установленного в данный момент драйвера, запустите следующую строку, чтобы исправить это:

sudo dkms uninstall -m r8168 -v 8.048.03 -k 5.8.0-50-generic && sudo dkms install -m r8168 -v 8.048.03 -k 5.8.0-50-generic --force

С этого момента с новыми обновлениями ядра и обновлениями драйвер должен теперь автоматически устанавливаться в новое ядро.

Надеюсь, это поможет!

0
ответ дан 26 April 2021 в 23:07

Другие вопросы по тегам:

Похожие вопросы: