Не может скомпилировать rtl8821ce драйвер Wi-Fi на Lubuntu 18.10

Я пытаюсь получить Linux, работающий с моей Lenovo Yoga 530-14ARR ноутбук. Это имеет беспроводную карту Realtek "rtl8821ce", которая не распознана из поля моей совершенно новой установкой Lubuntu 18.10 (я попробовал другие легкие дистрибутивы прежде без успеха). Согласно главному ответу этого вопроса, компилируя это и modprobe получающийся модуль должен добиться цели.

К сожалению, я не могу заставить это компилировать на моей машине:

liloboot@lubuntu:~/rtl8821ce$ make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.18.0-10-generic/build M=/home/liloboot/rtl8821ce  modules
make[1]: Entering directory '/usr/src/linux-headers-4.18.0-10-generic'
Makefile:982: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel"
  CC [M]  /home/liloboot/rtl8821ce/os_dep/linux/os_intfs.o
    /home/liloboot/rtl8821ce/os_dep/linux/os_intfs.c:1325:22: error: initialization of ‘u16 (*)(struct net_device *, struct sk_buff *, void *, u16 (*)(struct net_device *, struct sk_buff *))’ {aka ‘short unsigned int (*)(struct net_device *, struct sk_buff *, void *, short unsigned int (*)(struct net_device *, struct sk_buff *))’} from incompatible pointer type ‘u16 (*)(struct net_device *, struct sk_buff *, struct net_device *, u16 (*)(struct net_device *, struct sk_buff *))’ {aka ‘short unsigned int (*)(struct net_device *, struct sk_buff *, struct net_device *, short unsigned int (*)(struct net_device *, struct sk_buff *))’} [-Werror=incompatible-pointer-types]
  .ndo_select_queue = rtw_select_queue,
                      ^~~~~~~~~~~~~~~~
/home/liloboot/rtl8821ce/os_dep/linux/os_intfs.c:1325:22: note: (near initialization for ‘rtw_netdev_ops.ndo_select_queue’)
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:327: /home/liloboot/rtl8821ce/os_dep/linux/os_intfs.o] Error 1
make[1]: *** [Makefile:1546: _module_/home/liloboot/rtl8821ce] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.18.0-10-generic'
make: *** [Makefile:1902: modules] Error 2

Править: После комментария chili555 я попробовал это. Это наконец работало, но у меня было несколько проблем, на которые я хочу указать в ответе. Посмотрите ниже.

0
задан 6 February 2019 в 15:45

1 ответ

Проблемы и решения при выполнении шагов этого ответа:

  • Прибывая из Windows PC, все файлы сценария, где в неправильном формате, приводящем к 'никакому такому файлу или каталогу' ошибка при попытке к sudo ./dkms-install.sh. Я имел к dos2unix все они.
  • Я имел к вручную sudo- выполните часть из dkms команды в dkms-install.sh потому что sudo ./dkms-install.sh сообщали ошибки, которые я наконец интерпретировал как отсутствие полномочий. Не знайте почему.

sudo dkms создают-m rtl8821ce-v v5.2.5_1.26055.20180108

sudo dkms устанавливают-m rtl8821ce-v v5.2.5_1.26055.20180108

  • Затем я перезагрузил и ip a показал новое wlp1s0 сетевой интерфейс. Но я еще не был вне опасности.
  • Модуль Wi-Fi был все еще трудно заблокирован, как показано выводами nmcli radio и rfkill list. Я должен был добавить запись в /etc/modprobe.d/blacklist.conf как объяснено в этом: добавить blacklist ideapad_laptop в конце файла, затем перезагрузка.

И модуль Wi-Fi теперь работает правильно.

1
ответ дан 26 October 2019 в 08:43

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

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