Bug 282037 - rtw89 does not work on HP14 i3
Summary: rtw89 does not work on HP14 i3
Status: Closed Works As Intended
Alias: None
Product: Base System
Classification: Unclassified
Component: wireless (show other bugs)
Version: 14.1-STABLE
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-wireless (Nobody)
URL:
Keywords:
Depends on:
Blocks: 273621
  Show dependency treegraph
 
Reported: 2024-10-12 17:31 UTC by Phil Vuchetich
Modified: 2024-10-28 17:49 UTC (History)
3 users (show)

See Also:


Attachments
dmesg after the above steps (32.48 KB, text/plain)
2024-10-12 17:31 UTC, Phil Vuchetich
no flags Details
dmesg after new steps (9.52 KB, text/plain)
2024-10-19 02:54 UTC, Phil Vuchetich
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Phil Vuchetich 2024-10-12 17:31:05 UTC
Created attachment 254186 [details]
dmesg after the above steps

The work in progress version of the rtw89 rtl8852be driver/firmware does not yet work on my PC. This should be filed under the 273621 rtw89 meta-bug per Bjoern Zeeb to validate the work in progress. It is possible (likely) that I am missing a step.

The notebook PC is an HP14 i3 with the rtl8852be wifi chipset. An initial test with a recent version of Linux showed the chipset is supported by the Linux kernel (likely only with kernel >=6.2).

The current process was:

download FreeBSD-14.1-STABLE-amd64-20241003-ed03c3099086-268968-disc1.iso, install via Ventoy USB, only use defaults, only create root user. USB wired ethernet is automatically detected and supported for internet access for the following steps:


# git clone https://github.com/freebsd/wireless/tree/bz_drv_update_v6.11 /usr/src
# cd /usr/src
# git checkout bz_drv_update_v6.11
# make buildkernel installkernel
# reboot
# cd /usr/src/sys/modules/rtw89
# make && make install
# reboot
# fwget

Needed firmware packages: 'gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake wifi-firmware-rtw89-kmod-rtw8852b'
The most recent versions of packages are already installed

--I didn't capture the fwget output the first time running it, but it did download firmware-the output above is after running a second time.

# reboot
# dmesg > dmesg20241012-rtw89 
(see attachment for full dmesg)

...
rtw890: <rtw89_8852be> port 0x3000-0x30ff mem 0x80500000-0x805fffff at device 0.0 on pci1
rtw8852b_fw-1.bin: could not load binary firmware /boot/firmware/rtw8852b_fw-1.bin either
rtw89/rtw8852b_fw-1.bin: could not load binary firmware /boot/firmware/rtw89/rtw8852b_fw-1.bin either
rtw89_rtw8852b_fw-1.bin: could not load binary firmware /boot/firmware/rtw89_rtw8852b_fw-1.bin either
rtw89_rtw8852b_fw-1_bin: could not load binary firmware /boot/firmware/rtw89_rtw8852b_fw-1_bin either
KLD rtw89_rtw8852b_fw_1_bin.ko: depends on kernel - not available or version mismatch
...

#find / -name rtw8852b*
--27 files found are under /usr/src and usr/obj - none under /boot

#find / -name rtw89_rtw8852b*
/boot/modules/rtw89_rtw8852b_fw_1_bin.ko

Notes: retesting will use a clean install from the most recent snapshot. Let me know if there are other steps I should try.
Comment 1 Bjoern A. Zeeb freebsd_committer freebsd_triage 2024-10-16 14:40:46 UTC
(In reply to Phil Vuchetich from comment #0)

If using my branch you do not need to rebuild and re-install rtw89; it is there already by default now.

Did you reboot again after running fwget?

Also the github branch is "main" not stable/14 so beware that world may also need to be updated.
Comment 2 Phil Vuchetich 2024-10-19 02:54:31 UTC
Created attachment 254347 [details]
dmesg after new steps

(In reply to Bjoern A. Zeeb from comment #1)

Reloaded HP14 i3 notebook with 14.1-STABLE snapshot from 20241017

I tried again with your updated notes, it is getting further:

# pkg install git
# git clone https://github.com/freebsd/wireless.git /usr/src
(this is because the previous link to the specific branch failed - not sure why, but github website showed this repository as the source to clone when viewing your branch)

# cd /usr/src
# git checkout bz_drv_update_v6.11
# make -j4 buildworld
# make -j4 buildkernel
# make installkernel
# shutdown -r now

# cd /usr/src
# make installworld
# fwget
Message: major upgrade detected, run pkg bootstrap -f
# pkg bootstrap -f
# fwget
# shutdown -r now

# dmesg
Entire dmesg is attached.

rtw-specific dmesg items:

rtw890: <rtw89_8852be> port 0x3000-0x30ff mem 0x80500000-0x805fffff at device 0.0 on pci1
rtw8852b_fw-1.bin: could not load binary firmware /boot/firmware/rtw8852b_fw-1.bin either
rtw89/rtw8852b_fw-1.bin: could not load binary firmware /boot/firmware/rtw89/rtw8852b_fw-1.bin either
rtw89_rtw8852b_fw-1.bin: could not load binary firmware /boot/firmware/rtw89_rtw8852b_fw-1.bin either
rtw89_rtw8852b_fw-1_bin: could not load binary firmware /boot/firmware/rtw89_rtw8852b_fw-1_bin either
rtw890: successfully loaded firmware image 'rtw89/rtw8852b_fw-1.bin'
rtw890: loaded firmware rtw89/rtw8852b_fw-1.bin
rtw890: Firmware version 0.29.29.5 (da87cccd), cmd version 0, type 5
rtw890: Firmware version 0.29.29.5 (da87cccd), cmd version 0, type 3
rtw890: chip rfe_type is 41

Notes - I did NOT manually build the rtw89 or rtw89fw ports per the previous note that they should not need to be manually rebuilt after buildworld/buildkernel.
rtw890: "loaded firmware", "Firmware version..." and "chip rfe_type" lines are new.
However. 'ifconfig' does not show any new devices, and I am not sure where else to check.
---

note - if the steps are incorrect, let me know and I'll restart them.
Comment 3 Bjoern A. Zeeb freebsd_committer freebsd_triage 2024-10-20 00:00:36 UTC
(In reply to Phil Vuchetich from comment #2)

It seems the interface was created;  does

    sysctl net.wlan.devices

show anything?

Do you still have configuration fro rtw890 in rc.conf?

Something like this or similar adjusted for your situation?

wlans_rtw890="wlan0"
create_args_wlan0="regdomain FCC country US"
ifconfig_wlan0="up WPA SYNCDHCP"
ifconfig_wlan0_ipv6="inet6 accept_rtadv"
Comment 4 Phil Vuchetich 2024-10-20 16:49:03 UTC
(In reply to Bjoern A. Zeeb from comment #3)

It works!  Thanks!  With this current test I had not edited rc.conf, thinking that the patch was intended to detect it and automatically add it to devices shown in ifconfig. The config below works:

# sysctl net.wlan.devices
net.wlan.devices: rtw890

/etc/rc.conf
...
wlans_rtw890="wlan0"
create_args_wlan0="regdomain FCC country US"
ifconfig_wlan0="up WPA SYNCDHCP"
ifconfig_wlan0_ipv6="inet6 accept_rtadv"


/etc/wpa_supplicant.conf
network={
 ssid="[my SSID]"
 psk="[My PSK]"
}


Additional testing:

After rebooting without a USB-wired network, I tested by pinging some internet sites and checking iperf3 against a LAN server. iperf3 showed a rate of 8.94 Mbps after 60 seconds, and was very consistent over that time.  ifconfig shows a 2.4 GHz connection and 'media: IEEE 802.11 Wireless Ethernet 0FDM/54Mbps mode 11g', so it isn't immediately obvious to me why the iperf3 is relatively slow. I anticipated that iperf3 would be ~54 Mbps, so I am not sure if there is additional configuration needed or if this is a known limitation of the current driver.

If this is working as well as expected, this issue can be closed. If there is additional testing/configuration to get faster performance or to test other configuration options, I would be happy to continue testing.
Comment 5 Bjoern A. Zeeb freebsd_committer freebsd_triage 2024-10-28 17:49:08 UTC
Thanks a lot for testing!

If you want you can also give 14.2-BETA1 a try once it'll be out next week (it has the old version of rtw89 which likely will ship with 14.2-R).