tomaspinho / rtl8821ce

Other
1.59k stars 409 forks source link

Maintainership #26

Open tomaspinho opened 5 years ago

tomaspinho commented 5 years ago

As of 28th February 2019, I will no longer have access to a machine with the Wi-Fi chip supported by this module. Therefore, I will no longer be able to maintain this repository from a functionality perspective.

If you are able to continue development, please contact me.

mamoit commented 5 years ago

I don't have the know how to maintain it, it was good while it lasted. Obrigado :)

tomaspinho commented 5 years ago

The laptop I had with this Wi-Fi chip was a work laptop that I've since returned, because I'm in between jobs. However, I will try to keep merging Pull Requests and helping people out until someone more suited to the task comes along.

pawitp commented 5 years ago

RTW88 driver is getting merged into Linux 5.2

https://www.phoronix.com/scan.php?page=news_item&px=Realtek-RTW88-WiFi-Linux-Driver

EDIT: Oops, it's currently only supports 8822, but that's little bit closer to mainline support for this chipset.

tomaspinho commented 5 years ago

Great news! Once that supports rtl8821ce and is merged into the mainline, I will discontinue this project.

ghost commented 5 years ago

New Realtek Official linux driver, include RTL8821CE RTL8822CE https://github.com/alanfox2000/realtek-linux

imakiro commented 5 years ago

New Realtek Official linux driver, include RTL8821CE RTL8822CE https://github.com/alanfox2000/realtek-linux

Wow thanks for the git repo, the RTL8821CE driver package is really nice, the install.sh included compiles everything and now the 5ghz band is recognized and power management works (no more issues with resume from sleep). Maybe @tomaspinho could point to this new resource (or maybe the original manufacturer's FTP URL?). BTW, I'm running a Lenovo 530 ARR on KDE neon (18.04) if it guides anyone.

tomaspinho commented 5 years ago

Thanks for bringing those to my attention. I'd like to update this repo with the latest code and keep the DKMS stuff/Arch AUR package going. Can someone link me to the original Realtek FTP so I can verify their origin?

Bleuzen commented 5 years ago

The people of endlessm also updated the sources in their repo. https://github.com/endlessm/linux/tree/master/drivers/net/wireless/rtl8821ce This source looks safe and you already used it in the past.

Not sure if it's the correct one I found, but the realtek driver ftp seems to be not public. You need username+password for it. As far as I read, only some oems have access. So we are forced to trust alanfox2000 or endlessm.

tomaspinho commented 5 years ago

Hey, can someone help me out testing updated sources (from endlessm)? https://github.com/tomaspinho/rtl8821ce/pull/54

imakiro commented 5 years ago

Hey, can someone help me out testing updated sources (from endlessm)?

54

Which branch should I checkout ?

tomaspinho commented 5 years ago

The one in the PR: v5.5.2

HBartolin commented 5 years ago

If you are able to continue development, please contact me.

Hi,

did you find someone to 'continue development' or not? I have some Java experience and C development 25 years before. Does it helps?

tomaspinho commented 5 years ago

@HBartolin no, I did not. I've just been maintaining this as best as possible without having access to the actual hardware. @harryyoud and @hashlib have been a major help, though.

HBartolin commented 5 years ago

@tomaspinho Well, I have hardware that use RTL8821CE. I have basic knowledge of programming. If you want, I can be from tester to admin. If something doesn't know, Internet is here. :-)

bvkin commented 5 years ago

I wouldn't mind giving some time to help test either. I've written a fair amount of C code, however I don't have much experience writing drivers. I wrote a keyboard driver but that's about it. If there's some tasks I could contribute to please let me know.

Funeoz commented 5 years ago

Just found on LKML the expected release date of the driver for 8821CE with rtw88 : 2020.

tomaspinho commented 5 years ago

Just found on LKML the expected release date of the driver for 8821CE with rtw88 : 2020.

Yeah, not looking good. The upstream maintainers don't like the quality of code Realtek has been putting out, so they may even veto it outright. Only time will tell.

mconger commented 5 years ago

To tomaspinho: Not sure if this helps but it seems the Lenovo S145-IWL that I recently picked up at a Best Buy for about $230 has this particular Realtek card in the M.2 slot. Perhaps get a low cost computer and continue to maintain the driver that way? So far, except for the Realtek card, it's a great little Linux computer. Even has NVMe slot in addition to SATA.

Matty9191 commented 4 years ago

Hey @tomaspinho! Huge thanks for putting this repo together!! The driver works like a charm on Fedora 31!

tomaspinho commented 4 years ago

@Matty9191 good to know! 😄

9Lukas5 commented 4 years ago

Hey @tomaspinho ,

Since @shakna-israel mentioned in #139 the possibility that the kernel handles the wifi, I was curios to test that.

I removed the driver and tested the latest Ubuntu mainline kernel on my Ubuntu 18.04 (5.6.4 atm). Sadly I hadn't any wifi.

After rebooting to the signed hwe kernel used before to remove the 5.6.4 again, I've wifi currently. Can't see any sign of the module in place, but could you confirm that it's not installed?

Is there anything I have to check, or is it handled by Ubuntu's default kernel?

Greetings, Lukas

SatanicRaw commented 4 years ago

What is the output of uname -a and lsmod?

SatanicRaw commented 4 years ago

rtw88 only supports 2 adapters, at the moment, this

vendor: 10ec ("Realtek Semiconductor Co., Ltd."), device: b822 ("RTL8822BE 802.11a / b / g / n / ac WiFi adapter") vendor: 10ec ("Realtek Semiconductor Co., Ltd."), device: c822 ("RTL8822CE 802.11ac PCIe Wireless Network Adapter")

https://cateee.net/lkddb/web-lkddb/RTW88.html

Look at the output of lsusb, if the output is 10ec:b822 or 10ec:c822, then it’s lucky that your adapter is supported by the kernel.

9Lukas5 commented 4 years ago

unam -a:

Linux lukas-lt-hft 5.3.0-46-generic #38~18.04.1-Ubuntu SMP Tue Mar 31 04:17:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
lsmod ``` Module Size Used by uas 24576 0 usb_storage 73728 1 uas md4 16384 0 cmac 16384 1 nls_utf8 16384 3 cifs 995328 2 libarc4 16384 1 cifs fscache 368640 1 cifs rfcomm 81920 16 vboxnetadp 28672 0 vboxnetflt 28672 0 aufs 258048 0 vboxdrv 483328 2 vboxnetadp,vboxnetflt overlay 114688 0 bnep 24576 2 zram 32768 8 binfmt_misc 24576 1 snd_hda_codec_realtek 118784 1 snd_hda_codec_generic 81920 1 snd_hda_codec_realtek ledtrig_audio 16384 2 snd_hda_codec_generic,snd_hda_codec_realtek snd_hda_codec_hdmi 57344 1 snd_hda_intel 53248 7 snd_intel_nhlt 20480 1 snd_hda_intel snd_hda_codec 131072 4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek uvcvideo 94208 0 snd_hda_core 90112 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek edac_mce_amd 32768 0 snd_hwdep 20480 1 snd_hda_codec videobuf2_vmalloc 20480 1 uvcvideo cdc_ether 20480 0 snd_pcm 102400 5 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core videobuf2_memops 20480 1 videobuf2_vmalloc btusb 57344 0 usbnet 45056 1 cdc_ether kvm_amd 94208 0 videobuf2_v4l2 24576 1 uvcvideo btrtl 20480 1 btusb snd_seq_midi 20480 0 r8152 65536 0 videobuf2_common 49152 2 videobuf2_v4l2,uvcvideo btbcm 16384 1 btusb snd_seq_midi_event 16384 1 snd_seq_midi ccp 90112 1 kvm_amd videodev 208896 3 videobuf2_v4l2,uvcvideo,videobuf2_common btintel 24576 1 btusb kvm 655360 1 kvm_amd nls_iso8859_1 16384 1 bluetooth 573440 43 btrtl,btintel,btbcm,bnep,btusb,rfcomm mii 16384 2 usbnet,r8152 mc 53248 4 videodev,videobuf2_v4l2,uvcvideo,videobuf2_common snd_rawmidi 36864 1 snd_seq_midi irqbypass 16384 1 kvm ecdh_generic 16384 1 bluetooth hid_sensor_accel_3d 20480 1 ecc 32768 1 ecdh_generic input_leds 16384 0 8821ce 1806336 0 hid_sensor_trigger 20480 2 hid_sensor_accel_3d industrialio_triggered_buffer 16384 1 hid_sensor_accel_3d snd_seq 69632 2 snd_seq_midi,snd_seq_midi_event wmi_bmof 16384 0 serio_raw 20480 0 hid_multitouch 28672 0 kfifo_buf 16384 1 industrialio_triggered_buffer hid_sensor_iio_common 20480 2 hid_sensor_trigger,hid_sensor_accel_3d snd_seq_device 16384 3 snd_seq,snd_seq_midi,snd_rawmidi industrialio 73728 5 industrialio_triggered_buffer,hid_sensor_trigger,kfifo_buf,hid_sensor_accel_3d joydev 28672 0 snd_timer 36864 2 snd_seq,snd_pcm snd 86016 24 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm,snd_rawmidi k10temp 16384 0 snd_pci_acp3x 16384 0 soundcore 16384 1 snd cfg80211 704512 1 8821ce mac_hid 16384 0 sch_fq_codel 20480 6 vhba 28672 0 msr 16384 0 parport_pc 40960 0 ppdev 24576 0 lp 20480 0 parport 53248 3 parport_pc,lp,ppdev ip_tables 32768 0 x_tables 40960 1 ip_tables autofs4 45056 2 btrfs 1232896 1 xor 24576 1 btrfs zstd_compress 163840 1 btrfs raid6_pq 114688 1 btrfs libcrc32c 16384 1 btrfs algif_skcipher 16384 0 af_alg 24576 1 algif_skcipher dm_crypt 45056 1 hid_logitech_hidpp 40960 0 hid_logitech_dj 24576 0 wacom 114688 0 usbhid 53248 2 wacom,hid_logitech_dj hid_sensor_custom 24576 0 hid_sensor_hub 24576 4 hid_sensor_trigger,hid_sensor_iio_common,hid_sensor_accel_3d,hid_sensor_custom hid_generic 16384 0 crct10dif_pclmul 16384 1 crc32_pclmul 16384 0 ghash_clmulni_intel 16384 0 amdgpu 4112384 42 aesni_intel 372736 3 amd_iommu_v2 20480 1 amdgpu gpu_sched 32768 1 amdgpu i2c_algo_bit 16384 1 amdgpu aes_x86_64 20480 1 aesni_intel ttm 102400 1 amdgpu crypto_simd 16384 1 aesni_intel drm_kms_helper 180224 1 amdgpu cryptd 24576 3 crypto_simd,ghash_clmulni_intel glue_helper 16384 1 aesni_intel syscopyarea 16384 1 drm_kms_helper sysfillrect 16384 1 drm_kms_helper sysimgblt 16384 1 drm_kms_helper fb_sys_fops 16384 1 drm_kms_helper i2c_piix4 28672 0 drm 491520 28 gpu_sched,drm_kms_helper,amdgpu,ttm nvme 45056 3 nvme_core 102400 5 nvme wmi 32768 1 wmi_bmof i2c_hid 28672 0 video 49152 0 i2c_amd_mp2_plat 20480 0 hid 126976 8 i2c_hid,wacom,usbhid,hid_multitouch,hid_sensor_hub,hid_generic,hid_logitech_dj,hid_logitech_hidpp i2c_amd_mp2_pci 20480 1 i2c_amd_mp2_plat ```

dmesg | grep rtl

[   17.210813] Bluetooth: hci0: RTL: rtl: examining hci_ver=08 hci_rev=000c lmp_ver=08 lmp_subver=8821
[   17.213776] Bluetooth: hci0: RTL: rtl: loading rtl_bt/rtl8821c_fw.bin
[   17.216367] Bluetooth: hci0: RTL: rtl: loading rtl_bt/rtl8821c_config.bin

In lspci -nn I was able to find this:

01:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8821CE 802.11ac PCIe Wireless Network Adapter [10ec:c821]

So?

SatanicRaw commented 4 years ago

8821ce 1806336 0 lsmod shows that the 8821ce module is loaded, even though you deleted it via dkms, so wi-fi works. I do not know how dkms works when removing / adding kernel modules. I build them through make && make install.

9Lukas5 commented 4 years ago

Hm, how can I make sure the module is being removed again?

In the past I remember if I run the dkms-remove.sh I didn'thave wifi after reboot 🤔🤷‍♂️

SatanicRaw commented 4 years ago

rmmod 8821ce will unload the module, wi-fi will turn off.

9Lukas5 commented 4 years ago

Yeah I can manually unload it, but how do I completely remove it, that it's not there to be loaded on boot?

SatanicRaw commented 4 years ago

rm /lib/modules/"kernel_version"/kernel/drivers/net/wireless/8821ce.ko

SatanicRaw commented 4 years ago

In "kernel_version" substitute your kernel version

9Lukas5 commented 4 years ago

Ok, so

What now sherlock? :shrug:

SatanicRaw commented 4 years ago

Watson, find / | grep 8821ce, if it is, delete it or add the module to blacklist. How to add a module to the blacklist, google will help you.

9Lukas5 commented 4 years ago

Hoooray, we've found it.

Dumb me, I said I've checked /lib/modules/..., what I actually only checked was /lib/modules/5.3.0-46-generic/kernel/drivers/net/wireless.
It hid under /lib/modules/5.3.0-46-generic/updates/dkms^^

After removing and rebooting, my wifi indeed didn't come up as you expected. Thanks for clearing it up with me :+1: :tada:

lr1729 commented 4 years ago

Is there an official rtl8821ce driver? If so where is it available? The one linked above from alanfox isn't available now.

tomaspinho commented 4 years ago

There is an official rtl8821ce driver available to OEMs in their FTP server. alanfox's repository was a mirror of the zip files they host in that server. You can find those zip files hosted in multiple places at different versions.

lr1729 commented 4 years ago

Actually, I've found that the official driver is in the Ubuntu focal package lists now, and you can install it with sudo apt install rtl8821ce-dkms. Strange that almost nobody mentioned this, and it's working perfectly for me so far.

dallenwilson commented 4 years ago

@ling1729 It's mentioned in the readme of this repo, under the Installation of Driver, Ubuntu & Debian section. It's more up-to-date than it used to be, but still appears to be older than the version available here.

lr1729 commented 4 years ago

Ah, so it's this driver not the official one?

airbornemihir commented 4 years ago

I'm not very skilled with driver development, but I'm basically dependent on this driver for my new laptop's wifi card. I'm wondering - could this code possibly be GPLv2-licensed and submitted to the Linux kernel for merging?

fierevere commented 4 years ago

Linux 5.9 merged rtw88_8821ce driver. It works , but worse than this one and does have firmware issues.

airbornemihir commented 4 years ago

@fierevere good to know.

pawitp commented 4 years ago

I've just tested in Linux 5.9 driver, unfortunately, seems like it's not fully compatible with all hardware yet and I got this error

[    3.541494] rtw_8821ce 0000:03:00.0: Firmware version 24.5.0, H2C version 12
[    3.558760] rtw_8821ce 0000:03:00.0: rfe 2 isn't supported
[    3.558890] rtw_8821ce 0000:03:00.0: failed to setup chip efuse info
[    3.558893] rtw_8821ce 0000:03:00.0: failed to setup chip information
tomaspinho commented 4 years ago

I've sent the following email to one of Realtek's Linux developers, will report back if I get an answer:

Hello,

Apologies if this is not the correct way of getting in touch with rtw88 developers over at Realtek, but I have some questions regarding the support  completeness of rtw88 in regards to the 8821ce chip.

I've been maintaining a fork of rtl8821ce over at https://github.com/tomaspinho/rtl8821ce , keeping it compiling with newer kernels, but the module has been getting less stable over time. Over the last couple of years, a lot of the Linux users who have a 8821ce have been using that driver and that repository has accumulated a bit of a following.

When I got the news that rtw88 was in development and that it was going to support 8821ce, I was relieved. I no longer have hardware in my possession with the chip and have been relying on others to test the changes me and others have committed to the repository. I was aiming to archive the repository once Linux 5.9 was released as stable and that would serve as a stop gap kernel version, supporting both modules, allowing for a smooth transition for users.

In the last few months, however, folks following the repository have reported that rtw88 does not support all rfe versions of the chip and that it isn't as stable for 8821ce as rtl8821ce. My questions are as follows:

- Will support for 8821ce in rtw88 remain as is? Are improvements planned?
- What kernel version are you targeting for the above improvements, if planned?

Thank you a ton in advance for any clarifications.
Cumprimentos | Best regards,
Tomás Pinho
fierevere commented 4 years ago

I've just tested in Linux 5.9 driver, unfortunately, seems like it's not fully compatible with all hardware yet and I got this error

[    3.541494] rtw_8821ce 0000:03:00.0: Firmware version 24.5.0, H2C version 12
[    3.558760] rtw_8821ce 0000:03:00.0: rfe 2 isn't supported
[    3.558890] rtw_8821ce 0000:03:00.0: failed to setup chip efuse info
[    3.558893] rtw_8821ce 0000:03:00.0: failed to setup chip information

I have reported my findings here, but kernel driver worked for me, somehow...

https://bugzilla.kernel.org/show_bug.cgi?id=209623

alium commented 4 years ago

https://lkml.org/lkml/2020/8/5/253

I've just tested in Linux 5.9 driver, unfortunately, seems like it's not fully compatible with all hardware yet and I got this error

[    3.541494] rtw_8821ce 0000:03:00.0: Firmware version 24.5.0, H2C version 12
[    3.558760] rtw_8821ce 0000:03:00.0: rfe 2 isn't supported
[    3.558890] rtw_8821ce 0000:03:00.0: failed to setup chip efuse info
[    3.558893] rtw_8821ce 0000:03:00.0: failed to setup chip information

I have reported my findings here, but kernel driver worked for me, somehow...

https://bugzilla.kernel.org/show_bug.cgi?id=209623

GunpowderGuy commented 3 years ago

So, i gather realtek or whoever is mantaining the official driver hasn't commented on whether they will add support for all rfe versions

tomaspinho commented 3 years ago

It looks like support for 8821ce RFE type 2 will land in Linux 5.12. I will cease maintaining this driver once 5.12 stable is released.

Therefore, 5.12 will be a bridge version where this repository will still compile as users can migrate to using rtw88, which should support a hefty majority of 8821ce cards by then.

alium commented 3 years ago

It looks like support for 8821ce RFE type 2 will land in Linux 5.12. I will cease maintaining this driver once 5.12 stable is released.

A BIG FAT THANK YOU for your maintenance, because ONLY your driver for me works without problem.

tomaspinho commented 3 years ago

Has anyone had the chance to try our Linux 5.12-rc2, especially with a RFE 2 chip? How is it looking?

alium commented 3 years ago

Has anyone had the chance to try our Linux 5.12-rc2, especially with a RFE 2 chip? How is it looking?

I have RFE2 and i test 5.12-rc2 now. [ 31.381238] rtw_8821ce 0000:09:00.0: Firmware version 24.8.0, H2C version 12 [ 31.886486] rtw_8821ce 0000:09:00.0: start vif ac:d5:64:b5:8c:73 on port 0 [ 31.887572] rtw_8821ce 0000:09:00.0: stop vif ac:d5:64:b5:8c:73 on port 0 [ 32.366323] rtw_8821ce 0000:09:00.0: start vif 26:11:50:e2:f6:12 on port 0

it could have been better :\ unfortunately he suffers on "timed out to flush queue 1" which causes the bit rate to be very low (8821ce 4000kB/s vs 520kB/s with rtw_8821ce when i download a file) + the network randomly reconnects

probably bug - same as https://github.com/pop-os/pop/issues/1302

[ 324.301635] rtw_8821ce 0000:09:00.0: timed out to flush queue 1 [ 324.434983] rtw_8821ce 0000:09:00.0: timed out to flush queue 1 [ 326.291613] rtw_8821ce 0000:09:00.0: timed out to flush queue 1 [ 326.428272] rtw_8821ce 0000:09:00.0: timed out to flush queue 1 [ 326.838273] rtw_8821ce 0000:09:00.0: timed out to flush queue 1 [ 328.511578] rtw_8821ce 0000:09:00.0: timed out to flush queue 1 [ 329.041580] rtw_8821ce 0000:09:00.0: timed out to flush queue 1 [ 329.178258] rtw_8821ce 0000:09:00.0: timed out to flush queue 1 [ 330.301567] rtw_8821ce 0000:09:00.0: timed out to flush queue 1 [ 330.438238] rtw_8821ce 0000:09:00.0: timed out to flush queue 1 [ 331.238219] rtw_8821ce 0000:09:00.0: timed out to flush queue 1 [ 331.778214] rtw_8821ce 0000:09:00.0: timed out to flush queue 1 [ 332.288210] rtw_8821ce 0000:09:00.0: timed out to flush queue 1

wlan0 IEEE 802.11 ESSID:"devolo"
Mode:Managed Frequency:2.447 GHz Access Point: F4:06:8D:D8:02:6C
Bit Rate=39 Mb/s Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=19/70 Signal level=-91 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:28 Invalid misc:3205 Missed beacon:0

link quality varies between 19/70 and 62/70

Invalid misc:3205 Tx excessive retries:28 <--- i never had this problem with your driver

for now, I strongly recommend keeping your driver alive :-)