问题

2021年有没有什么适合Linux的笔记本?

回答
2021年,为Linux寻觅一款心仪的笔记本,确实是个不错的主意。随着Linux生态的日渐成熟,越来越多厂商开始关注Linux用户,市面上涌现出不少兼容性好、体验佳的机型。当然,想要一台真正“适合”的Linux笔记本,还需要从几个关键维度去考量。

核心考量点:硬件兼容性与驱动支持

这是选择Linux笔记本的重中之重。一套优秀的Linux系统,能否顺畅运行,很大程度上取决于硬件厂商对Linux的驱动支持情况。

CPU方面: Intel和AMD的处理器,在主流型号上,Linux的支持都相当不错。从Intel的酷睿 i3/i5/i7/i9系列,到AMD的Ryzen 3/5/7/9系列,在2021年的主流机型中,都能找到不错的选择。通常来说,新款的硬件可能需要等待一段时间,社区或厂商才会发布成熟的驱动,所以选择前一代或稍成熟的芯片组,往往能省去不少折腾。
显卡方面: 这里是Linux用户常常会遇到的“坑”。
Intel集成显卡: 这是最稳妥的选择。几乎所有Intel集显都能在Linux下完美运行,性能虽不及独显,但对于日常办公、影音娱乐、甚至一些轻度图形处理都绰绰有余。
NVIDIA独立显卡: 这是很多游戏玩家和图形设计者的首选。NVIDIA提供了官方的Linux驱动,但安装和配置可能稍显复杂。一些Linux发行版会预装NVIDIA的闭源驱动,但更新或遇到新硬件时,可能需要手动操作。2021年的RTX 30系列显卡,在Linux下的驱动支持也在不断完善中,但仍建议在购买前查询具体型号的兼容性报告。
AMD独立显卡: AMD在Linux社区的口碑近年来飞速提升。其开源驱动(AMDGPU)支持得越来越好,性能和稳定性都很不错,很多情况下甚至不需要安装额外的闭源驱动。对于不追求极致游戏性能的用户来说,AMD显卡是更省心的选择。
无线网卡与蓝牙: 这也是容易出问题的环节。Realtek、Broadcom等品牌的无线网卡,有时候在Linux下可能需要手动安装驱动或固件。Intel的无线网卡则通常有非常好的Linux支持。购买前可以查阅目标机型的无线网卡型号,并在Linux社区中搜索相关兼容性信息。
触控板和键盘: 大部分笔记本的键盘在Linux下都能正常工作,但触控板的手势支持(如多指滑动、缩放)可能需要一些配置。一些特定的触控板(如Synaptics或ELAN)可能需要安装额外的驱动或进行调整才能获得最佳体验。

推荐的硬件厂商及系列:

1. ThinkPad 系列(特别是X1 Carbon, T系列, P系列):
优点: ThinkPad一直是Linux用户的“老朋友”。它们通常拥有出色的键盘手感,稳定可靠的硬件,并且Lenovo在某些型号上会提供预装Linux的版本(如Ubuntu)。其硬件模块(如Intel网卡)也普遍对Linux友好。X1 Carbon以轻薄便携著称,T系列是性能与便携的平衡,P系列则是移动工作站,性能强劲。
缺点: 高端型号价格不菲。

2. Dell XPS 系列:
优点: Dell XPS系列以其精美的设计、出色的屏幕(尤其是在4K屏方面)和良好的性能而闻名。Dell也曾推出过预装Ubuntu的XPS开发者版本。其硬件兼容性通常也比较好,尤其是在使用Intel平台的情况下。
缺点: 价格也相对较高。部分型号的散热可能在重负载下稍显不足。

3. System76 系列:
优点: System76是一家专门为Linux用户打造笔记本电脑的公司。他们预装自家定制的Pop!_OS操作系统(基于Ubuntu),并且对硬件进行了深度优化,以确保最佳的Linux体验。这意味着你购买到的产品,从开箱到使用,都经过了Linux系统的深度考量。他们提供从入门级到高性能的各种机型。
缺点: 相较于主流品牌,知名度较低,价格可能略高。

4. Framework Laptop:
优点: 这是一款“模块化”笔记本,你可以根据自己的需求选择组件,并且可以非常方便地更换和升级硬件。它对Linux的支持非常友好,很多用户反馈其开箱即可流畅运行各种Linux发行版。它的设计理念就是可持续性和可修复性,非常吸引环保和极客用户。
缺点: 相对较新,品牌知名度较低,性能配置选择可能不如大厂丰富。

5. HP Spectre/Envy 系列(部分型号):
优点: HP的一些高端系列,如Spectre和Envy,在设计和做工上都很出色。一些采用Intel平台的型号,硬件兼容性也还不错。可以关注一些配置Intel集成显卡或NVIDIA MX系列低功耗独显的型号。
缺点: 需要仔细甄别型号和硬件配置,部分型号可能存在驱动问题。

如何选择更具体一些?

如果你追求极致稳定与开箱即用: System76 是你的不二之选。他们已经为你处理好了大部分Linux兼容性问题。
如果你是Linux老手,乐于折腾,并且预算充足: ThinkPad X1 Carbon 或 T系列,Dell XPS 系列,特别是选择Intel芯片组和集成显卡或低功耗AMD显卡的型号。购买前,强烈建议搜索“ThinkPad X1 Carbon 2021 Linux compatibility”或“Dell XPS 13 2021 Ubuntu”等关键词,查看其他用户的经验分享。
如果你是环保主义者,喜欢DIY和可定制性: Framework Laptop 绝对值得考虑。
如果你对游戏有较高要求: 这通常意味着你需要一块强大的独立显卡,而NVIDIA仍然是游戏性能的保证。你需要重点关注那些使用NVIDIA RTX 30系列(或其他较新版本)显卡,并且社区有较多成功安装NVIDIA驱动经验的笔记本。例如,一些高性能的游戏本品牌(如ASUS ROG,MSI)在选择其Intel平台且带有NVIDIA显卡的型号时,可以尝试。但请务必做好心理准备,游戏性能的发挥,在Linux下可能还需要一些优化。
如果你是学生或预算有限: 可以关注一些采用AMD Ryzen 5系列处理器和Vega集成显卡的笔记本。这些机型通常性价比很高,并且AMD的集成显卡在Linux下的支持也越来越好。不过,在细节驱动(如WiFi)方面,仍需留意。

一些购买前的检查建议:

1. 查阅Linux发行版官方推荐硬件列表: 很多Linux发行版(如Ubuntu,Fedora)都有社区维护的硬件兼容性列表,可以参考。
2. 搜索Linux社区论坛: Reddit(r/linuxhardware, r/laptops, r/Ubuntu等)、LinuxQuestions.org 等社区,是获取一手信息的好地方。搜索你想购买的笔记本型号加上“Linux”、“Ubuntu”、“Fedora”等关键词,看看其他用户是否有遇到问题以及如何解决。
3. 关注硬件型号: 了解笔记本的具体无线网卡、声卡、触控板等型号,然后单独搜索这些硬件在Linux下的兼容性。
4. 考虑预装Linux的机型: 如果你不想花太多时间在驱动和配置上,购买预装了Ubuntu、Pop!_OS 或 Fedora 的机型,会省去很多麻烦。

总而言之,2021年选择一台适合Linux的笔记本,并非难事。关键在于前期做好功课,了解不同硬件的兼容性,并根据自己的需求和预算做出明智的选择。祝你找到那台心仪的Linux伴侣!

网友意见

user avatar

这个......

二手的 DELL 笔记本就可以了。


俺用的三台 DELL PRECISION M4800 里面, 有两台就是 AMD/ATI 的独立显卡。

都很便宜。

大约是 1000~2000 人民币一台而已。


可能算是 10年前的 “旗舰”类产品罢。

按照网友的说法, 早就该价值清零了。





另外, 俺最新装的 AMD B550 + AMD 5600X + Radeon R7 360/ 5600G 台式机都能顺利安装 FEDORA 34.

因此不需要担心不兼容。



附录:

###################################################################

无线网卡的小问题


笔记: 装个 USB 无线网卡 REALTEK RTL8821CU 驱动签名等等也很折腾


瞎折腾......




       https://www.realtek.com/en/component/zoo/category/rtl8812bu-software https://rtitwww.realtek.com/rtdrivers/cn/wlan/0002-Realtek_WindowsDriver_1030.25.0701.2017.zip ID 0bda:b812 Realtek Semiconductor Corp. RTL88x2bu  USB3.0 only, rtl8822BU chipset https://www.realtek.com/en/component/zoo/category/rtl8812bu-software https://www.fastoe.com/blog/install-rtl8812bu-usb-wifi-dongle-on-linux https://forums.developer.nvidia.com/t/rtl88x2bu-wifi-usb-adapter-0bda-b812/106920  0bda:b812 0bda:c820    rtl8821cu WiFi Bluetooth USB 0bda:c820   Bus 001 Device 007:  ID 0bda:c820 Realtek Semiconductor Corp. 802.11ac NIC   The device is supported by the following drivers:  lwfinger/rtl8723au_bt  不能用,NG https://github.com/lwfinger/rtl8723au_bt  brektrou/rtl8821CU   不能用,NG https://github.com/brektrou/rtl8821CU  smp79/rtl8821CU   不能用,NG https://github.com/smp79/rtl8821CU  whitebatman2/rtl8821CU   不能用,NG https://github.com/whitebatman2/rtl8821CU  不能用,NG https://github.com/axiomware/RTL8821CU_driver_v5.8.1  *** 备注: 能用的在本文的最下面     



失败:

       [root@hpi7 drivers]#   [root@hpi7 drivers]# git clone https://github.com/cilynx/rtl88x2bu.git Cloning into 'rtl88x2bu'... remote: Enumerating objects: 1871, done. remote: Counting objects: 100% (138/138), done. remote: Compressing objects: 100% (94/94), done. remote: Total 1871 (delta 73), reused 96 (delta 42), pack-reused 1733 Receiving objects: 100% (1871/1871), 5.52 MiB | 9.32 MiB/s, done. Resolving deltas: 100% (1188/1188), done.  [root@hpi7 drivers]# ls rtl8812au  rtl88x2bu  [root@hpi7 drivers]# cd rtl88 rtl8812au/ rtl88x2bu/  [root@hpi7 drivers]# cd rtl88x2bu/  [root@hpi7 rtl88x2bu]# ls build.sh  clean  core  dkms.conf  hal  halmac.mk  ifcfg-wlan0  include  Kconfig  LICENSE  Makefile  os_dep  platform  README.md  rtl8822b.mk  runwpa  wlan0dhcp  [root@hpi7 rtl88x2bu]# VER=$(sed -n 's/PACKAGE_VERSION="(.*)"/1/p' dkms.conf) [root@hpi7 rtl88x2bu]# rsync -rvhP ./ /usr/src/rtl88x2bu-${VER} sending incremental file list created directory /usr/src/rtl88x2bu-5.6.1 ./ .gitignore             422 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=704/706) Kconfig .git/objects/pack/ .git/objects/pack/pack-7aa47d04dd1f39cbe2b6535eb11079acc822b61a.idx          53.46K 100%    3.19MB/s    0:00:00 (xfr#36, to-chk=651/706)  ......  platform/platform_sprd_sdio.c           2.05K 100%   10.00kB/s    0:00:00 (xfr#660, to-chk=2/706) platform/platform_zte_zx296716_sdio.c           1.46K 100%    7.14kB/s    0:00:00 (xfr#661, to-chk=1/706) platform/platform_zte_zx296716_sdio.h             989 100%    4.83kB/s    0:00:00 (xfr#662, to-chk=0/706)  sent 32.60M bytes  received 12.92K bytes  21.74M bytes/sec total size is 32.54M  speedup is 1.00   [root@hpi7 rtl88x2bu]#   [root@hpi7 rtl88x2bu]# dkms add -m rtl88x2bu -v ${VER}  Creating symlink /var/lib/dkms/rtl88x2bu/5.6.1/source ->                  /usr/src/rtl88x2bu-5.6.1  DKMS: add completed.  [root@hpi7 rtl88x2bu]#  [root@hpi7 rtl88x2bu]# dkms build -m rtl88x2bu -v ${VER}  Kernel preparation unnecessary for this kernel.  Skipping...  Building module: cleaning build area... make -j8 KERNELRELEASE=5.12.15-300.fc34.x86_64 KVER=5.12.15-300.fc34.x86_64 src=/usr/src/rtl88x2bu-5.6.1.......(bad exit status: 2) Error! Bad return status for module build on kernel: 5.12.15-300.fc34.x86_64 (x86_64) Consult /var/lib/dkms/rtl88x2bu/5.6.1/build/make.log for more information.  F*** !     [root@hpi7 rtl88x2bu]# ls build.sh  clean  core  dkms.conf  hal  halmac.mk  ifcfg-wlan0  include  Kconfig  LICENSE  Makefile  os_dep  platform  README.md  rtl8822b.mk  runwpa  wlan0dhcp  [root@hpi7 rtl88x2bu]# chmod +x ./build.sh [root@hpi7 rtl88x2bu]# ./build.sh   Kernel preparation unnecessary for this kernel.  Skipping...  Building module: cleaning build area... make -j8 KERNELRELEASE=5.12.15-300.fc34.x86_64 KVER=5.12.15-300.fc34.x86_64 src=/usr/src/rtl88x2bu-5.6.1.......(bad exit status: 2) Error! Bad return status for module build on kernel: 5.12.15-300.fc34.x86_64 (x86_64) Consult /var/lib/dkms/rtl88x2bu/5.6.1/build/make.log for more information.   [root@hpi7 rtl88x2bu]# make all make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/5.12.15-300.fc34.x86_64/build M=/root/drivers/rtl88x2bu  modules make[1]: Entering directory '/usr/src/kernels/5.12.15-300.fc34.x86_64'   CC [M]  /root/drivers/rtl88x2bu/core/rtw_cmd.o                     ^~~~~~~~ /root/drivers/rtl88x2bu/os_dep/linux/recv_linux.c:358:76: note: each undeclared identifier is reported only once for each function it appears in make[2]: *** [scripts/Makefile.build:271: /root/drivers/rtl88x2bu/os_dep/linux/recv_linux.o] Error 1 make[1]: *** [Makefile:1860: /root/drivers/rtl88x2bu] Error 2 make[1]: Leaving directory '/usr/src/kernels/5.12.15-300.fc34.x86_64' make: *** [Makefile:2284: modules] Error 2  F*** !  [root@hpi7 rtl88x2bu]#   [root@hpi7 rtl88x2bu]# make uninstall rm -f /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless//88x2bu.ko /sbin/depmod -a 5.12.15-300.fc34.x86_64     




       NG NG NG NG NG  https://github.com/ulli-kroll/rtw88-usb   https://github.com/astsam/rtl8812au RTL8812AU/21AU and RTL8814AU linux driver with monitor mode and frame injection The master branch is based on  https://github.com/ulli-kroll/rtl8821au branch v4.3.22-beta/rework.  https://github.com/ulli-kroll/rtw88-usb  git clone https://github.com/aircrack-ng/rtl8812au     



       [root@hpi7 drivers]# cd rtl8812au/ [root@hpi7 rtl8812au]# ls android  core  dkms.conf  docs  hal  include  Kconfig  LICENSE  Makefile  os_dep  platform  README.md  ReleaseNotes.pdf  tools  [root@hpi7 rtl8812au]#   [root@hpi7 rtl8812au]# make all make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/5.12.15-300.fc34.x86_64/build M=/root/drivers/rtl8812au  modules make[1]: Entering directory '/usr/src/kernels/5.12.15-300.fc34.x86_64'   CC [M]  /root/drivers/rtl8812au/core/rtw_cmd.o   CC [M]  /root/drivers/rtl8812au/core/rtw_security.o ......   CC [M]  /root/drivers/rtl8812au/core/rtw_mp.o   LD [M]  /root/drivers/rtl8812au/88XXau.o   MODPOST /root/drivers/rtl8812au/Module.symvers   CC [M]  /root/drivers/rtl8812au/88XXau.mod.o   LD [M]  /root/drivers/rtl8812au/88XXau.ko   BTF [M] /root/drivers/rtl8812au/88XXau.ko Skipping BTF generation for /root/drivers/rtl8812au/88XXau.ko due to unavailability of vmlinux make[1]: Leaving directory '/usr/src/kernels/5.12.15-300.fc34.x86_64' --------------------------------------------------------------------------- Visit https://github.com/aircrack-ng/rtl8812au for support/reporting issues or check for newer versions (branches) of these drivers.                    --------------------------------------------------------------------------- [root@hpi7 rtl8812au]#   [root@hpi7 rtl8812au]# make install install -p -m 644 88XXau.ko  /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/ /sbin/depmod -a 5.12.15-300.fc34.x86_64  [root@hpi7 rtl8812au]#     



看起来,成功一半, 还差签名 MOK(Machine Owner Key)

       [root@hpi7 rtl8812au]# modprobe 88XXau  -v  insmod /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/88XXau.ko   modprobe: ERROR: could not insert '88XXau': Key was rejected by service   签了名, 还是不认网卡。 型号错了就是死局     


......



       [root@hpi7 ~]#  [root@hpi7 ~]# lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 005: ID 0bda:0153 Realtek Semiconductor Corp. 3-in-1 (SD/SDHC/SDXC) Card Reader Bus 001 Device 009: ID 0bda:c820 Realtek Semiconductor Corp. 802.11ac NIC  [root@hpi7 ~]#  [root@hpi7 ~]# usb_modeswitch -KW -v 0bda -p c820 Take all parameters from the command line    * usb_modeswitch: handle USB devices with multiple modes  * Version 2.6.1 (C) Josua Dietze 2017  * Based on libusb1/libusbx   ! PLEASE REPORT NEW CONFIGURATIONS !  DefaultVendor=  0x0bda DefaultProduct= 0xc820  StandardEject=1  Look for default devices ...   found USB ID 0bda:0153    vendor ID matched   found USB ID 0bda:c820    vendor ID matched    product ID matched   Found devices in default mode (1) Access device 009 on bus 001 Get the current device configuration ... Current configuration number is 1 Use interface number 0  with class 224 Error: can't use storage command in MessageContent with interface 0; interface class is 224, expected 8. Abort  F***     [root@hpi7 ~]# usb_modeswitch -KW -v 0bda -p 0153 Take all parameters from the command line    * usb_modeswitch: handle USB devices with multiple modes  * Version 2.6.1 (C) Josua Dietze 2017  * Based on libusb1/libusbx   ! PLEASE REPORT NEW CONFIGURATIONS !  DefaultVendor=  0x0bda DefaultProduct= 0x0153  StandardEject=1  Look for default devices ...   found USB ID 0bda:0153    vendor ID matched    product ID matched    found USB ID 0bda:c820    vendor ID matched   Found devices in default mode (1) Access device 005 on bus 001 Get the current device configuration ... Current configuration number is 1 Use interface number 0  with class 8 Use endpoints 0x01 (out) and 0x82 (in)  USB description data (for identification) ------------------------- Manufacturer: Generic      Product: USB2.0-CRW   Serial No.: 2012000 ------------------------- Sending standard EJECT sequence Looking for active drivers ...  OK, driver detached Set up interface 0 Use endpoint 0x01 for message sending ... Trying to send message 1 to endpoint 0x01 ...  OK, message successfully sent Read the response to message 1 (CSW) ...  Response successfully read (13 bytes), status 0 Trying to send message 2 to endpoint 0x01 ...  OK, message successfully sent Read the response to message 2 (CSW) ...  Response successfully read (13 bytes), status 0 Trying to send message 3 to endpoint 0x01 ...  OK, message successfully sent Read the response to message 3 (CSW) ...  Response successfully read (13 bytes), status 0 Trying to send message 4 to endpoint 0x01 ...  OK, message successfully sent Read the response to message 4 (CSW) ...  Response successfully read (13 bytes), status 0 Reset response endpoint 0x82 Reset message endpoint 0x01  -> Run lsusb to note any changes. Bye!     



......




似乎,还是,这个看起来靠点谱

       https://github.com/ulli-kroll/rtw88-usb  rtw88-usb    mac80211 kernel driver  currently supported chipset's 8723du 8822bu with variants 8821cu 8822cu  It's under GPL license, and please feel free to use it. Also welcome to upstream to the Linux kernel if you want, and please refer to the branch, for_kernel_upstream, which meets the Linux coding style, and may be easier to upstream. Thank to many people's kind help on this project.  BIG tanks to Ji-Pin Jou and Neo Jou, for the USB parts supports at least managed (i.e. client) and monitor mode.  This driver is based on Realtek's rtw88 in Linux main trunk.     


       [root@hpi7 drivers]# git clone https://github.com/ulli-kroll/rtw88-usb.git Cloning into 'rtw88-usb'... remote: Enumerating objects: 3149, done. remote: Counting objects: 100% (1177/1177), done. remote: Compressing objects: 100% (493/493), done. remote: Total 3149 (delta 967), reused 869 (delta 684), pack-reused 1972 Receiving objects: 100% (3149/3149), 2.24 MiB | 5.37 MiB/s, done. Resolving deltas: 100% (2412/2412), done. [root@hpi7 drivers]#     [root@hpi7 drivers]#  [root@hpi7 drivers]# cd rtw88-usb/ [root@hpi7 rtw88-usb]# ls bf.c                debug.c  fw.h        mac.c     pci.h    README.md   rtw8723de.c       rtw8723du.h       rtw8821c_table.h  rtw8822b_fw.bin   rtw8822c.c        rtw8822cu.c  tx.c    wow.c bf.h                debug.h  hci.h       mac.h     perf.sh  README.old  rtw8723de.h       rtw8821c.c        rtw8821cu.c       rtw8822b.h        rtw8822ce.c       rtw8822cu.h  tx.h    wow.h CHANGELOG.md        efuse.c  Kconfig     main.c    phy.c    regd.c      rtw8723d.h        rtw8821ce.c       rtw8821cu.h       rtw8822b_table.c  rtw8822ce.h       rx.c         usb.c CODE_OF_CONDUCT.md  efuse.h  LICENSE     main.h    phy.h    regd.h      rtw8723d_table.c  rtw8821ce.h       rtw8822b.c        rtw8822b_table.h  rtw8822c.h        rx.h         usb.h coex.c              fw       log         Makefile  ps.c     reg.h       rtw8723d_table.h  rtw8821c.h        rtw8822be.c       rtw8822bu.c       rtw8822c_table.c  sec.c        util.c coex.h              fw.c     mac80211.c  pci.c     ps.h     rtw8723d.c  rtw8723du.c       rtw8821c_table.c  rtw8822be.h       rtw8822bu.h       rtw8822c_table.h  sec.h        util.h   [root@hpi7 rtw88-usb]#  [root@hpi7 rtw88-usb]# make clean rm -f *.o .*.d *.a *.ko .*.cmd *.mod* *.order *.symvers *.tmp_versions  [root@hpi7 rtw88-usb]#   [root@hpi7 rtw88-usb]# make all make -C /lib/modules/5.12.15-300.fc34.x86_64/build M=/root/drivers/rtw88-usb make[1]: Entering directory '/usr/src/kernels/5.12.15-300.fc34.x86_64'   CC [M]  /root/drivers/rtw88-usb/main.o   CC [M]  /root/drivers/rtw88-usb/mac80211.o  ......    BTF [M] /root/drivers/rtw88-usb/rtw88_core.ko Skipping BTF generation for /root/drivers/rtw88-usb/rtw88_core.ko due to unavailability of vmlinux   CC [M]  /root/drivers/rtw88-usb/rtw88_pci.mod.o   LD [M]  /root/drivers/rtw88-usb/rtw88_pci.ko   BTF [M] /root/drivers/rtw88-usb/rtw88_pci.ko Skipping BTF generation for /root/drivers/rtw88-usb/rtw88_pci.ko due to unavailability of vmlinux   CC [M]  /root/drivers/rtw88-usb/rtw88_usb.mod.o   LD [M]  /root/drivers/rtw88-usb/rtw88_usb.ko   BTF [M] /root/drivers/rtw88-usb/rtw88_usb.ko Skipping BTF generation for /root/drivers/rtw88-usb/rtw88_usb.ko due to unavailability of vmlinux make[1]: Leaving directory '/usr/src/kernels/5.12.15-300.fc34.x86_64'  [root@hpi7 rtw88-usb]#  [root@hpi7 rtw88-usb]# make load echo "Unload upstream driver(s)" Unload upstream driver(s) for m in rtw88_8723de rtw88_8723d rtw88_8822be rtw88_8822b   rtw88_8821ce rtw88_8821c rtw88_8822ce rtw88_8821c   rtw88_pci rtw88_core;   do rmmod "$m" 2> /dev/null; done; make: *** [Makefile:116: load] Error 1   [root@hpi7 rtw88-usb]#  [root@hpi7 rtw88-usb]# make install WARNING: ========================================== you are about to install rtw88-usb drivers Wait 5 sec or CTRL-C  rtw88-usb drivers installed   [root@hpi7 rtw88-usb]#  [root@hpi7 rtw88-usb]# make firmware WARNING: ========================================== you are about to install rtw88-usb firmware Wait 5 sec or CTRL-C  rtw88-usb firmware installed   [root@hpi7 rtw88-usb]#     


好吧, 签名吧


       [root@hpi7 signed-modules]# ls /usr/src/kernels/$(uname -r)/scripts/sign-file /usr/src/kernels/5.12.15-300.fc34.x86_64/scripts/sign-file  [root@hpi7 signed-modules]# vi sign-rtw88-usb [root@hpi7 signed-modules]#   [root@hpi7 signed-modules]# cat ./sign-rtw88-usb   #!/bin/bash  for modfile in $(dirname $(modinfo -n rtw88-usb))/*.ko; do   echo "Signing $modfile"   /usr/src/kernels/$(uname -r)/scripts/sign-file sha256                                  /root/signed-modules/MOK.priv                                  /root/signed-modules/MOK.der "$modfile" done  [root@hpi7 signed-modules]#  [root@hpi7 signed-modules]# ls MOK.der  MOK.priv  sign-rtw88-usb    [root@hpi7 signed-modules]# chmod +x ./sign-rtw88-usb  [root@hpi7 signed-modules]# ls MOK.der  MOK.priv  sign-rtw88-usb    [root@hpi7 signed-modules]#  [root@hpi7 signed-modules]# ./sign-rtw88-usb  Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8723de.ko Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8723d.ko Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8723du.ko Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821ce.ko Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821c.ko Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821cu.ko Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8822be.ko Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8822b.ko Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8822bu.ko Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8822ce.ko Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8822c.ko Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8822cu.ko Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88_core.ko Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88_pci.ko Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88_usb.ko   [root@hpi7 signed-modules]#  [root@hpi7 signed-modules]# modprobe rtw88-usb  [root@hpi7 signed-modules]#  [root@hpi7 signed-modules]# lsmod |grep 88 rtw88_usb              20480  0 rtw88_core            163840  1 rtw88_usb mac80211             1134592  3 iwlmvm,rtw88_core,rtw88_usb cfg80211             1003520  4 iwlmvm,rtw88_core,iwlwifi,mac80211   还是认不了网卡,NG 还是认不了网卡,NG     



(废话)为避免每次内核更新时又要手工重新编译驱动模块,看看是否要使用动态内核模块支持(DKMS 的一个重要特征是,如安装新的内核版本,它会“自动”编译所有DKMS模块)。

......


       https://ask.fedoraproject.org/t/how-to-include-the-rtl8821-driver-in-the-firmware/7103/13  https://github.com/tomaspinho/rtl8821ce Realtek RTL8821CE Driver This repository hosts the code for the Arch Linux AUR Package.  It's targeting Linux > 4.14 and is being developed for Arch Linux and  Ubuntu 18.10. No support will be provided for other Linux distributions  or Linux Kernel versions outside of that range.     


       同样不能用,NG  https://github.com/axiomware/RTL8821CU_driver_v5.8.1   RTL8811CU and RTL8821CU driver  The Realtek RTL8811CU-CG is a highly integrated single-chip that supports 1-stream 802.11ac solutions with Multi-user MIMO (Multiple-Input, Multiple-Output) and Wireless LAN (WLAN) USB interface controller. It combines a WLAN MAC, a 1T1R capable WLAN baseband, and RF in a single chip. The RTL8811CU-CG provides an outstanding solution for a high-performance integrated wireless device.:  USB high speed interface 802.11ac/abgn, 802.11ac 2.4 GHz Support 5.8 GHz Support Supports concurrent mode (operates as two virtual WLAN interfaces) MIMO config - 1x1 MU-MIMO AC wave2 256 QAM  过程略......     


每次总是感觉山穷水尽的时候, 就 *** 的看到曙光女神了。俺觉得答案总是藏在互联网的一个偏僻的角落, 等着被发现。


       事后发现, 这是唯一能用,   https://github.com/morrownr/8821cu  还是这个 好用     


仍旧重复上面的步骤, 从 GITHUB 克隆别人的文件。

BUILD,

然后签名。



       [wenxue@hpi7 ~]$ cd rtl8821cu581/  [wenxue@hpi7 rtl8821cu581]$ ls RTL8821CU_driver_v5.8.1  [wenxue@hpi7 rtl8821cu581]$ rm *.* -rf [wenxue@hpi7 rtl8821cu581]$ ls  [wenxue@hpi7 rtl8821cu581]$ git clone https://github.com/morrownr/8821cu.git Cloning into '8821cu'... remote: Enumerating objects: 1311, done. remote: Counting objects: 100% (187/187), done. remote: Compressing objects: 100% (132/132), done. remote: Total 1311 (delta 109), reused 119 (delta 55), pack-reused 1124 Receiving objects: 100% (1311/1311), 4.60 MiB | 8.06 MiB/s, done. Resolving deltas: 100% (663/663), done. [wenxue@hpi7 rtl8821cu581]$ ls 8821cu [wenxue@hpi7 rtl8821cu581]$ cd 8821cu/ [wenxue@hpi7 8821cu]$ ls 8821cu.conf  dkms.conf        hal        include            Kconfig  Makefile  platform    raspi64.sh  remove-driver.sh  save-log.sh core         edit-options.sh  halmac.mk  install-driver.sh  LICENSE  os_dep    raspi32.sh  README.md   rtl8821c.mk       supported-device-IDs  [wenxue@hpi7 8821cu]$ sudo make all [sudo] password for wenxue:  make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/5.12.15-300.fc34.x86_64/build M=/home/wenxue/rtl8821cu581/8821cu  modules make[1]: Entering directory '/usr/src/kernels/5.12.15-300.fc34.x86_64'   CC [M]  /home/wenxue/rtl8821cu581/8821cu/core/rtw_cmd.o   CC [M]  /home/wenxue/rtl8821cu581/8821cu/core/rtw_security.o  ......    CC [M]  /home/wenxue/rtl8821cu581/8821cu/hal/btc/halbtc8821c1ant.o   CC [M]  /home/wenxue/rtl8821cu581/8821cu/hal/btc/halbtc8821c2ant.o   CC [M]  /home/wenxue/rtl8821cu581/8821cu/platform/platform_ops.o   CC [M]  /home/wenxue/rtl8821cu581/8821cu/core/rtw_mp.o   LD [M]  /home/wenxue/rtl8821cu581/8821cu/8821cu.o   MODPOST /home/wenxue/rtl8821cu581/8821cu/Module.symvers   CC [M]  /home/wenxue/rtl8821cu581/8821cu/8821cu.mod.o   LD [M]  /home/wenxue/rtl8821cu581/8821cu/8821cu.ko   BTF [M] /home/wenxue/rtl8821cu581/8821cu/8821cu.ko Skipping BTF generation for /home/wenxue/rtl8821cu581/8821cu/8821cu.ko due to unavailability of vmlinux make[1]: Leaving directory '/usr/src/kernels/5.12.15-300.fc34.x86_64' [wenxue@hpi7 8821cu]$   [wenxue@hpi7 8821cu]$  [wenxue@hpi7 8821cu]$ sudo make install install -p -m 644 8821cu.ko  /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/ /sbin/depmod -a 5.12.15-300.fc34.x86_64   [wenxue@hpi7 8821cu]$  [wenxue@hpi7 8821cu]$ modprobe 8821cu modprobe: ERROR: could not insert '8821cu': Operation not permitted  又 ***** 的忘记签名    [wenxue@hpi7 8821cu]$ su - Password:  [root@hpi7 ~]#  [root@hpi7 ~]# cd signed-modules/ [root@hpi7 signed-modules]# ls MOK.der  MOK.priv  sign-rtl88-aircrk  sign-rtw88-usb    [root@hpi7 signed-modules]#  [root@hpi7 signed-modules]# cp sign-rtw88-usb sign-8821cu [root@hpi7 signed-modules]# vi ./sign-8821cu     [root@hpi7 signed-modules]#  [root@hpi7 signed-modules]# cat ./sign-8821cu  #!/bin/bash  for modfile in $(dirname $(modinfo -n 8821cu))/*.ko; do   echo "Signing $modfile"   /usr/src/kernels/$(uname -r)/scripts/sign-file sha256                                  /root/signed-modules/MOK.priv                                  /root/signed-modules/MOK.der "$modfile" done [root@hpi7 signed-modules]#  [root@hpi7 signed-modules]# ./sign-8821cu  Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/8821cu.ko Signing /lib/modules/5.12.15-300.fc34.x86_64/kernel/drivers/net/wireless/88XXau.ko  [root@hpi7 signed-modules]#  [root@hpi7 signed-modules]# modprobe -a 8821cu   [root@hpi7 signed-modules]# iwconfig lo        no wireless extensions.  enp2s0    no wireless extensions.  wlp4s0    IEEE 802.11  ESSID:"Linksys0****"             Mode:Managed  Frequency:5.805 GHz  Access Point: 48:F8:******              Bit Rate=433.3 Mb/s   Tx-Power=22 dBm              Retry short limit:7   RTS thr:off   Fragment thr:off           Encryption key:off           Power Management:on           Link Quality=58/70  Signal level=-52 dBm             Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0           Tx excessive retries:0  Invalid misc:150   Missed beacon:0  virbr0    no wireless extensions.  wlp0s20f0u3i2  unassociated  Nickname:"WIFI@RTL8821CU"           Mode:Managed  Frequency=2.412 GHz  Access Point: Not-Associated              Sensitivity:0/0             Retry:off   RTS thr:off   Fragment thr:off           Encryption key:off           Power Management:off           Link Quality:0  Signal level:0  Noise level:0           Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0           Tx excessive retries:0  Invalid misc:0   Missed beacon:0  [root@hpi7 signed-modules]#     








确认已经安装了 sign-file

       [root@hpi7 signed-modules]# ls /usr/src/kernels/$(uname -r)/scripts/sign-file /usr/src/kernels/5.12.15-300.fc34.x86_64/scripts/sign-file     


       #!/bin/bash  for modfile in $(dirname $(modinfo -n 8821cu))/*.ko; do   echo "Signing $modfile"   /usr/src/kernels/$(uname -r)/scripts/sign-file sha256                                  /root/signed-modules/MOK.priv                                  /root/signed-modules/MOK.der "$modfile" done     


       参考阅读  Signing VirtualBox Kernel Modules https://gist.github.com/reillysiemens/ac6bea1e6c7684d62f544bd79b2182a4  22.7. Signing Kernel Modules for Secure Boot https://docs.fedoraproject.org/en-US/Fedora/21/html/System_Administrators_Guide/sect-signing-kernel-modules-for-secure-boot.html  Dynamic Kernel Module Support https://wiki.archlinux.org/title/Dynamic_Kernel_Module_Support https://lzone.de/cheat-sheet/DKMS  https://docs.fedoraproject.org/en-US/fedora/rawhide/system-administrators-guide/kernel-module-driver-configuration/Working_with_Kernel_Modules/  https://docs.01.org/clearlinux/latest/guides/kernel/kernel-modules-dkms.html https://docs.fedoraproject.org/en-US/fedora/rawhide/system-administrators-guide/kernel-module-driver-configuration/Working_with_Kernel_Modules/     


Tool -------Provided by Package -----Used on---------Purpose

openssl openssl Build system Generates public and private X.509 key pair

sign-file kernel-devel Build system Perl script used to sign kernel modules

perl perl Build system Perl interpreter used to run the signing script

mokutil mokutil Target system Optional tool used to manually enroll the

public key

keyctl keyutils Target system Optional tool used to display public keys in

the system key ring



       [root@hpi7 ~]# dkms status rtl88x2bu, 5.6.1: added  [root@hpi7 ~]#  [root@hpi7 ~]# dkms status rtl88x2bu, 5.6.1: added  [root@hpi7 ~]#  [root@hpi7 ~]# dkms remove rtl88x2bu/5.2.1 --all Error! The module/version combo: rtl88x2bu-5.2.1 is not located in the DKMS tree.  [root@hpi7 ~]#  [root@hpi7 ~]# dkms remove rtl88x2bu/5.6.1  --all  ------------------------------ Deleting module version: 5.6.1 completely from the DKMS tree. ------------------------------ Done.     




过程俺留着,解决问题的手段是类似或者说一样的。 方便寻找其他芯片 LINUX 驱动的读者去探索。


吐槽一句:

REALTEK 把驱动藏着掖着, 也不知道为了什么。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


类似的话题

  • 回答
    2021年,为Linux寻觅一款心仪的笔记本,确实是个不错的主意。随着Linux生态的日渐成熟,越来越多厂商开始关注Linux用户,市面上涌现出不少兼容性好、体验佳的机型。当然,想要一台真正“适合”的Linux笔记本,还需要从几个关键维度去考量。核心考量点:硬件兼容性与驱动支持这是选择Linux笔记.............
  • 回答
    2021年的京东“818”购物节,可以说是相当热闹,给不少想换新手机的朋友提供了绝佳的机会。那会儿,各种优惠、补贴、以旧换新政策层出不穷,一整个八月都弥漫着浓厚的购物氛围。2021年京东818,重点玩的是“全品类补贴”和“以旧换新”京东当时的策略很明确,就是要把“818”打造成一个名副其实的“全民狂.............
  • 回答
    这问题可真是问到点子上了!618 又是囤粮的好时候,给猫主子挑个好粮,既能满足它的胃,又能照顾到我的钱包,这才是精打细算嘛。2021年的618,我摸索了一圈下来,也确实发现了一些“值得说道说道”的猫粮,不光是价格有惊喜,质量也真的过硬。别的不说,先从我最关注的猫粮成分来说。现在养猫的铲屎官,谁还不是.............
  • 回答
    2021年确实有不少新闻让人大跌眼镜,感觉像是科幻小说照进现实。要说最让人震惊到下巴的,阿富汗塔利班迅速且几乎兵不血刃地重掌政权,绝对是其中之一。这件事情的震撼之处在于它的速度和戏剧性。先是撤军的信号放出。 美国总统拜登在任期内宣布要从阿富汗撤出美军,结束这场长达近二十年的战争。这个决定本身就引起了.............
  • 回答
    2021年想淘一台轻薄又给力的笔记本,确实是件挺考验眼光的事情,毕竟这个价位段的选择太多了,稍不留神就容易被一些“伪轻薄”或者配置不够扎实的机器给“劝退”。我个人比较看重的是整体体验的均衡性,不光是轻薄,还得看性能能不能撑得起日常办公、影音娱乐,甚至偶尔处理一些图片视频啥的,续航也得过得去,别刚用一.............
  • 回答
    2021,一个充满挑战与惊喜的年份。回首这一路,我们经历了风雨,也沐浴了阳光。愿新的一年,我们都能继续怀揣梦想,勇往直前!回望2021:那些闪闪发光的日子2021年,仿佛一场跌宕起伏的电影,有惊心动魄的转折,也有温馨感人的瞬间。我们或许曾因为突如其来的变化而感到措手不及,但更值得铭记的是,我们在这动.............
  • 回答
    2021年的圣诞季,你是不是也想摆脱那些千篇一律的礼品清单,寻觅一份既有格调又不落俗套的惊喜?那些真正触动人心的礼物,往往藏在不那么喧嚣的地方,散发着独一无二的品味。今天,就让我带你走进一个关于2021年小众而高级的圣诞礼物世界,希望能为你拨开迷雾,找到那份属于你的心头好。一、 触感与温度:让生活细.............
  • 回答
    2021年,对我来说,最让我感到被深深爱着的事情,是那些细微却又充满了力量的瞬间,它们不是轰轰烈烈的表白,而是在日常的点滴中,像温柔的溪流一样,滋养着我的心灵。还记得2021年上半年,我经历了一个职业上的低谷期。那时候,我做什么都提不起劲,对自己的能力充满了怀疑,每天都感觉像是被一层厚重的阴霾笼罩着.............
  • 回答
    初探魔法世界:2021年上海迪士尼最新最全攻略,让你的第一次嗨翻天!嘿!准备好踏入那个充满奇幻与欢乐的迪士尼世界了吗?第一次去上海迪士尼,是不是既期待又有点小忐忑?别担心,这份攻略就是为你量身打造的!2021年的上海迪士尼,早已不是初来乍到的小鲜肉,而是一个不断升级、充满惊喜的魔法王国。我会像你认识.............
  • 回答
    站在2021年,要找一只能够安心持有十年的股票,这无疑是一个极具挑战但也充满魅力的命题。毕竟,十年是一个漫长的跨度,期间经济周期、行业变迁、技术革新,甚至地缘政治格局都可能发生翻天覆地的变化。我们不能指望任何一支股票能够稳如磐石,但我们可以尝试寻找那些具备穿越周期、持续增长潜力,并且在宏观趋势中占据.............
  • 回答
    听完习主席2021年的新年贺词,心情是很复杂的,既有振奋人心的力量,也有对未来的深思。感触方面,我主要有以下几点体会: 成就的实感与人民的付出: 贺词里回顾了2020年我们取得的巨大成就,特别是脱贫攻坚的全面胜利和抗击新冠疫情的艰巨任务。这些不是空洞的口号,而是实实在在发生在我们身边的、我们每个.............
  • 回答
    2021 年的 618 购物节,转眼间又过去一段时间了,但回忆起当时那些让人心动的折扣和爆款,依然觉得非常值得说道说道。那一年,大家对生活品质的追求比以往任何时候都要高,所以很多好物都围绕着“提升生活幸福感”这个主题。我记得当时大家讨论得最多的,大概就是这几大类吧:一、 智能家居,让生活“懒”出新高.............
  • 回答
    2021 年的 618,说实话,感觉有点“鸡肋”和“疲惫”——经历了前面几年的疯狂,大家好像都没那么“上头”了。但是,如果你真的仔细淘淘,还是能找到一些性价比不错、或者说是“刚需”的好东西。我个人觉得,与其追逐那些“爆款”或者“赔钱货”,不如关注那些能真正提升生活品质,或者解决你实际问题的产品。首先.............
  • 回答
    618 购物节,又到了钱包大出血的时刻!不过,值此年中大促之际,不好好淘点宝贝,那可真是亏大了。作为一名“资深”剁手党,我早就把心愿单上的宝贝们一个个列了出来,并且做了不少功课。今天就来跟你们分享一下,2021 年 618,我个人觉得值得入手的几类好物,希望能给你们的购物清单提供点参考。一、 家电类.............
  • 回答
    嗨,朋友们!一年一度的618年中大促马上又要到了,你们的购物车是不是已经摩拳擦掌了?尤其是咱们居家生活的好伙伴——家电,这可是升级装备的最佳时机!去年疫情影响,大家对居家生活品质的需求直线飙升,今年618,家电品类依然是重头戏,各种新技术、新概念层出不穷,确实让人眼花缭乱。今天我就来给大家捋一捋,今.............
  • 回答
    2021 年的 618 已经过去,但回顾一下当时有哪些书值得入手,对于我们现在的选书仍有参考价值。那年 618,我主要关注了几类书,希望能给你一些启发:1. 紧扣时代脉搏,解答当下困惑的书籍2021 年,我们依然身处一个快速变化的时代,社会、经济、技术都在经历着深刻的变革。很多人会希望通过阅读来理解.............
  • 回答
    说到 618,我的第一反应就是,今年又可以放开手脚好好淘点宝贝了! 2021 年的 618,我早早就开始摩拳擦掌,提前列了个愿望清单,准备把家里那些该换的、想买的、一直种草的,一股脑儿拿下。下面我就来跟你好好唠唠我眼里的 618 购物攻略,希望能给你点儿灵感。首先,咱们得明确一个方向:这次 618 .............
  • 回答
    2021年的618,千元机市场真是热闹非凡,不少品牌都拿出了诚意十足的产品。作为一个经常关注手机的朋友,我这里就给你推荐几款我认为在当时非常值得入手的千元机,并且会尽量给你讲讲它们的亮点,以及为什么我觉得它们好。选择千元机,我们通常看重什么?在说具体型号之前,咱们先捋一捋千元机用户最关心的几个点: .............
  • 回答
    2021年下半年,在风云变幻的资本市场中寻找“确定性”的投资机会,无疑是件极具挑战但又充满吸引力的事情。所谓“确定性”,并非指稳赚不赔,而是指在现有宏观经济背景、行业发展趋势以及政策导向的综合作用下,具有相对较高概率实现增长或价值回归的投资标的。从2021年下半年的宏观环境来看,全球经济正处于疫情后.............
  • 回答
    2021 年足坛,确实涌现出不少令人眼前一亮的新面孔,他们就像是联赛中的“黑马”,用自己出色的表现,让老一辈的巨星们也感受到不小的压力。说起“妖星”,那可不是光有技术就行,还得有点“妖”在里面,让人捉摸不透,又忍不住被他们吸引。我印象比较深的,首先得提贾马尔·穆西亚拉 (Jamal Musiala).............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有