问题
我构建/编译的内核在加载蓝牙和 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
,新内核可以正确、顺利地加载固件,现在我正在运行一个没有错误的紧凑内核