First, let me state that this driver apparently has been deblobbed and part of the kernel since version 4.14. (also to state I’ve done a lot of research)
However, I’m not able to activate and I’m quite a newbie and quite desperate.
I know you are very busy people but I need some guidance as I spent a bunch of days working on this.
I have Bizantium installed by the way.
Here is the the info I get from lspci
05:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8822BE 802.11a/b/g/n/ac WiFi adapter
DeviceName: WLAN
Subsystem: Hewlett-Packard Company Realtek RTL8822BE 802.11ac 2 × 2 Wi-Fi + Bluetooth 4.2 Combo Adapter (MU-MIMO supported)
Flags: fast devsel, IRQ 19, IOMMU group 18
I/O ports at 3000 [size=256]
Memory at b4200000 (64-bit, non-prefetchable) [size=64K]
Capabilities:
Kernel modules: rtw88_8822be
I’ve noticed there is not a Kernel driver in use…
I’ve also checked for firmware blobs…
[ 35.274607] bluetooth hci0: firmware: failed to load rtl_bt/rtl8822b_fw.bin (-2)
[ 35.274609] bluetooth hci0: Direct firmware load for rtl_bt/rtl8822b_fw.bin failed with error -2
[ 35.274611] Bluetooth: hci0: RTL: firmware file rtl_bt/rtl8822b_fw.bin not found
[ 35.279950] rtw_8822be 0000:05:00.0: firmware: failed to load rtw88/rtw8822b_fw.bin (-2)
[ 35.279952] rtw_8822be 0000:05:00.0: Direct firmware load for rtw88/rtw8822b_fw.bin failed with error -2
[ 35.279954] rtw_8822be 0000:05:00.0: failed to request firmware
[ 35.282358] rtw_8822be 0000:05:00.0: failed to load firmware
So, my current question is… if this is the reason why it doesnt work…
Also, why include a deblob driver that doesnt work…
However, the driver is NOT being loaded…
I believe there is two components to making this device work. The driver and the firmware. As you are experiencing the firmware blob needs to be loaded into the card when booting by the driver, but that blob doesn’t exist on a free software distro.
You can try and find those files it’s looking for elsewhere and put them in the expected directory so the driver can find them.
Thanks for the answer. But I have another question… why include the driver in the first place then?
I thought if a driver was included “deblobed” it was included because it worked deblobed…
Also, I notice the driver isnot being loaded… or is the driver being loaded but it doesnt show beacuse of the missing blobs?
If the driver is deemed safe (open source) then at least in theory there is no harm in including it - and it is then one less hurdle for a customer who actually wants to use a particular device that requires a blob.
In reality also it would be a lot of work going through all the drivers in the whole of Linux to work out which ones can never be used without a blob, which ones can always be used without a blob, and which ones fall into neither of the previous two groups. Bear in mind that PureOS is based on Debian, so the only way something disappears from Debian is if someone actively makes that decision - and that decision would not be made lightly in retrospect in case it breaks something for an existing customer.
Thanks for the response. It is really well explained and now I think I understand…
So, in theory, if i wanted to use the driver, I should manually load the binary blobs, right?
I was able to find the blob, and according to the filename it is the same blob…
but I have NO idea of the directory…
my instincts tell me it should be in sys/firmware but I’m unable to write to it…
That part is easy. That is intentional. You can’t write to it because that helps with security and it helps avoids accidents. Whatever command you were attempting to use to copy the file in, you need to precede the command with sudo and the sudo command will then prompt for your password (the first time you use it and valid for a period of X minutes).
I don’t think that’s correct.
Aside: If the log included above is anything to go by, it will need to be a subdirectory of wherever firmware is going.
Looking on my computer (not running PureOS, but still in the Debian family), those firmware files are in subdirectories of
/usr/lib/firmware
and you would need to create any subdirectories that do not already exist, with a command like: