我正在尝试让 Linux 与我的联想 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 的评论,我尝试了这。它最终成功了,但我遇到了几个问题,我想在答案中指出。见下文。
答案1
按照以下步骤操作时出现的问题及解决方案这个答案:
- 来自 Windows PC,所有脚本文件的格式都错误,导致尝试时出现“没有这样的文件或目录”错误
sudo ./dkms-install.sh
。我必须dos2unix
全部执行。 - 我必须手动
sudo
运行一些dkms
命令,dkms-install.sh
因为sudo ./dkms-install.sh
报告的错误最终被我解释为缺乏权限。不知道为什么。
sudo dkms build -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
wifi 模块仍然被硬阻塞,如和的输出所示rfkill list
。我必须添加一个条目,/etc/modprobe.d/blacklist.conf
如中所述这:附加到blacklist ideapad_laptop
文件末尾,然后重新启动。
wifi模块现已正常工作。