如何将 rtl8723be 固件内置编译到自定义 Linux 内核中?

如何将 rtl8723be 固件内置编译到自定义 Linux 内核中?

问题

我构建/编译的内核在加载蓝牙和 wifi 固件时出现错误,因为全部模块内置

我跑了

布雷特@华硕~$ sudo dmesg

Wifi 错误

[2.428254]rtl8723be:使用固件rtlwifi/rtl8723befw_36.bin
[2.428546]rtl8723be 0000:03:00.0:rtlwifi/rtl8723befw_36.bin 的直接固件加载失败,错误为 -2
[2.428596]rtl8723be 0000:03:00.0:rtlwifi/rtl8723befw.bin 的直接固件加载失败,错误为 -2
[2.428599]rtlwifi:加载替代固件rtlwifi/rtl8723befw.bin
[2.428601]rtlwifi:所选固件不可用

蓝牙错误

[3.273984]蓝牙:hci0:rtl:检查hci_ver=06 hci_rev=000b lmp_ver=06 lmp_subver=8723
[3.273991]蓝牙:hci0:rtl:加载rtl_bt/rtl8723b_config.bin
[3.274046]蓝牙hci0:rtl_bt/rtl8723b_config.bin 的直接固件加载失败,错误为 -2
[3.274049]蓝牙:hci0:rtl:加载rtl_bt/rtl8723b_fw.bin
[3.274076]蓝牙hci0:rtl_bt/rtl8723b_fw.bin 的直接固件加载失败,错误为 -2
[3.274078]蓝牙:hci0:无法加载rtl_bt/rtl8723b_fw.bin

我不想编译可加载模块,因为它不符合目的,就像给出的解决方案一样这里

因此,我怎样才能将 wifi 的固件文件编译到内核中,或者更好地让内核识别它们?

/lib/固件/rtlwifi

答案1

生成内核配置

使用以下方式生成配置后

make localmodconfig
# then with a text editor find and replace =m with =y
gedit .config # find and replace =m with =y

或者

make localyesconfig

我没有尝试过,但我认为它确实做到了上述情况。我还没有尝试过。

编辑配置

gedit .config

找到包含以下内容的行:# Firmware loader My new config was edited to reflect

CONFIG_FW_LOADER=y
CONFIG_EXTRA_FIRMWARE="rtlwifi/rtl8723befw_36.bin rtl_bt/rtl8723b_fw.bin"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"

make和之后make install,新内核可以正确、顺利地加载固件,现在我正在运行一个没有错误的紧凑内核

相关内容