Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Apr 2024 16:48:06 +0200
From:      Milan Obuch <freebsd-wireless@dino.sk>
To:        freebsd-wireless@freebsd.org
Subject:   Wireless on Yoga Book
Message-ID:  <20240407164806.29c8a099@zeta.dino.sk>

next in thread | raw e-mail | index | archive | help
Hi,

I am playing with FreeBSD on a new box, dual screen Yoga Book - see
following URL for some info and pictures:

https://www.aliexpress.com/item/1005006582938099.html

After installing FreeBSD, I tried to configure wireless. With 14.0
release, it was possible to create wlan interface and gain network
connectivity, but it worked just for some short time. With 15.0
current, it does not work at all.

So, now the details:

- excerpt from 'pciconf -lvb':

none10@pci0:1:0:0:      class=0x028000 rev=0x00 hdr=0x00 vendor=0x10ec device=0xc821 subvendor=0x10ec subdevice=0xc821
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'RTL8821CE 802.11ac PCIe Wireless Network Adapter'
    class      = network
    bar   [10] = type I/O Port, range 32, base 0x3000, size 256, enabled
    bar   [18] = type Memory, range 64, base 0x80400000, size 65536, enabled

- excerpt from 'dmesg':

rtw880: <rtw_8821ce> port 0x3000-0x30ff mem 0x80400000-0x8040ffff at device 0.0 on pci1
rtw8821c_fw.bin: could not load binary firmware /boot/firmware/rtw8821c_fw.bin either
rtw88/rtw8821c_fw.bin: could not load binary firmware /boot/firmware/rtw88/rtw8821c_fw.bin either
rtw88_rtw8821c_fw.bin: could not load binary firmware /boot/firmware/rtw88_rtw8821c_fw.bin either
rtw88_rtw8821c_fw_bin: could not load binary firmware /boot/firmware/rtw88_rtw8821c_fw_bin either
rtw88_rtw8821c_fw_bin: could not load binary firmware /boot/firmware/rtw88_rtw8821c_fw_bin either
rtw880: could not load firmware image 'rtw88/rtw8821c_fw.bin'
rtw880: failed to request firmware
rtw880: failed to load firmware
rtw880: failed to setup chip efuse info
rtw880: failed to setup chip information
device_attach: rtw880 attach returned 22

So, now the question is, what changed when moving from 14.0 to 15.0 - I
see firmware file missing in the later, was it not necessary for the
former, or it was just part of default install?

Anyway, I found wifi-firmware-rtw88-kmod and installed it. Next,
kldunload if_rtw88 & kldload if_rtw88 and picture changed a bit:

rtw880: <rtw_8821ce> port 0x3000-0x30ff mem 0x80400000-0x8040ffff at device 0.0 on pci1
rtw8821c_fw.bin: could not load binary firmware /boot/firmware/rtw8821c_fw.bin either
rtw88/rtw8821c_fw.bin: could not load binary firmware /boot/firmware/rtw88/rtw8821c_fw.bin either
rtw88_rtw8821c_fw.bin: could not load binary firmware /boot/firmware/rtw88_rtw8821c_fw.bin either
rtw880: successfully loaded firmware image 'rtw88/rtw8821c_fw.bin'
rtw880: Firmware version 24.11.0, H2C version 12
rtw880: failed to init rx buffer
rtw880: failed to allocate pci resources
rtw880: failed to setup pci resources
device_attach: rtw880 attach returned 16

Trying reboot...

- excerpt from 'dmesg':

rtw880: <rtw_8821ce> port 0x3000-0x30ff mem 0x80400000-0x8040ffff at device 0.0 on pci1
rtw8821c_fw.bin: could not load binary firmware /boot/firmware/rtw8821c_fw.bin either
rtw88/rtw8821c_fw.bin: could not load binary firmware /boot/firmware/rtw88/rtw8821c_fw.bin either
rtw88_rtw8821c_fw.bin: could not load binary firmware /boot/firmware/rtw88_rtw8821c_fw.bin either
rtw880: successfully loaded firmware image 'rtw88/rtw8821c_fw.bin'
rtw880: Firmware version 24.11.0, H2C version 12

- excerpt from 'pciconf -lvb':

rtw880@pci0:1:0:0:	class=0x028000 rev=0x00 hdr=0x00 vendor=0x10ec device=0xc821 subvendor=0x10ec subdevice=0xc821
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'RTL8821CE 802.11ac PCIe Wireless Network Adapter'
    class      = network
    bar   [10] = type I/O Port, range 32, base 0x3000, size 256, enabled
    bar   [18] = type Memory, range 64, base 0x80400000, size 65536, enabled

So it looks a bit better now. Maybe it's time to try create wlan and
start it... so I put relevant lines into /etc/rc.conf and created
/etc/wpa_supplicant with SSID, PSK, etc. and them tried
'/etc/rc.d/netif restart wlan0', and here is the problem:

rtw880: invalid fw checksum
rtw880: failed to download firmware
rtw880: lkpi_ic_vap_create: failed to start hw: -22

Maybe reboot, again? But it does not help, as soon as wlan0 is created
and communication should start, error message

rtw880: rtw_tx: failed to write TX skb to HCI: -28

is repeated on console (and in dmesg).

Now I am really out of ideas. So the question - is there anything I
should have done differently? Is there any info I should add here to
get some help? Should I do some debugging? Anything to try?

Oh, and just for completeness, I installed newest snapshot, 'uname -a'
tells

FreeBSD yoga.dino.sk 15.0-CURRENT FreeBSD 15.0-CURRENT #0 main-n269103-112783ebbc31: Thu Apr  4 03:36:01 UTC 2024     root@releng3.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64

Regards,
Milan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20240407164806.29c8a099>