Я пытаюсь получить 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 я попробовал это. Это наконец работало, но у меня было несколько проблем, на которые я хочу указать в ответе. Посмотрите ниже.
Проблемы и решения при выполнении шагов этого ответа:
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
сетевой интерфейс. Но я еще не был вне опасности.nmcli radio
и rfkill list
. Я должен был добавить запись в /etc/modprobe.d/blacklist.conf
как объяснено в этом: добавить blacklist ideapad_laptop
в конце файла, затем перезагрузка.И модуль Wi-Fi теперь работает правильно.