Bluetooth 펌웨어 rtl8821a_fw.bin이 Debian에서 로드되지 않습니다.

Bluetooth 펌웨어 rtl8821a_fw.bin이 Debian에서 로드되지 않습니다.

저는 Lenovo IdeaPad 110에서 Debian 9.4를 사용하고 있습니다. 열리는 화면에 다음 메시지가 나타납니다.

[12...] rt18821ae 0000:02:00.0: firmware: failed to load rtlwifi/rt18821aefw.bin (-2)
[12...] rt18821ae 0000:02:00.0: firmware: failed to load rtlwifi/rt18821aefw.wowlan.bin
[12...] bluetooth hci0: firmware: failed to load rtl_bt/rtl18821a_config.bin (-2)
[12...] Bluetooth: hci0: Failed to load rtl_bt/rt18821a_config.bin
[12...] bluetooth hci0: firmware: failed to load rtl_bt/rtl18821a_fw.bin (-2)
[12...] Bluetooth: hci0: Failed to load rtl_bt/rt18821a_fw.bin
[23...] r8169 0000:03:00.0: firmware: failed to load rtl_nic/rtl8106e-1.fw (-2)

글을 썼을 때 dmesg | grep firmware다음과 같은 메시지를 받았습니다.

[   11.605280] rtl8821ae: Using firmware rtlwifi/rtl8821aefw.bin
[   11.605290] rtl8821ae: Using firmware rtlwifi/rtl8821aefw_wowlan.bin
[   11.630704] rtl8821ae 0000:02:00.0: firmware: failed to load
rtlwifi/rtl8821aefw_wowlan.bin (-2)
[   11.630712] rtl8821ae 0000:02:00.0: Direct firmware load for
rtlwifi/rtl8821aefw_wowlan.bin failed with error -2
[   11.642658] rtl8821ae 0000:02:00.0: firmware: direct-loading firmware
rtlwifi/rtl8821aefw.bin
[   12.685508] bluetooth hci0: firmware: failed to load
rtl_bt/rtl8821a_config.bin (-2)
[   12.685511] bluetooth hci0: Direct firmware load for
rtl_bt/rtl8821a_config.bin failed with error -2
[   12.685526] bluetooth hci0: firmware: failed to load
rtl_bt/rtl8821a_fw.bin (-2)
[   12.685527] bluetooth hci0: Direct firmware load for
rtl_bt/rtl8821a_fw.bin failed with error -2
[   23.375275] r8169 0000:03:00.0: firmware: direct-loading firmware
rtl_nic/rtl8106e-1.fw

따라서 기본적으로 내 컴퓨터는 세 개의 파일을 로드할 수 없습니다.

  • rtlwifi/rtl8821aefw_wowlan.bin

  • rtl_bt/rtl8821a_config.bin

  • rtl_bt/rtl8821a_fw.bin

무료가 아닌 소스를 추가 /etc/apt/sources.list하고 펌웨어-realtek을 설치했습니다.

sudo apt update
sudo apt-get install firmware-realtek

rtl_bt/rtl8821a_fw.bincan located /lib/firmware/rtl_bt/rtlwifi/rtl8821aefw_wowlan.bincan be located /lib/firmware/rtlwifi/. 하지만 여전히 이러한 오류가 발생하고 Bluetooth는 작동하지 않지만 Wi-Fi는 작동합니다. 누구든지 이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

편집: 커널 버전: 4.9.0-6-amd64출력은 다음과 apt-cache policy firmware-realtek같습니다.

firmware-realtek:
  Installed: 20161130-3
  Candidate: 20161130-3
  Version table:
 *** 20161130-3 500
        500 http://httpredir.debian.org/debian stretch/non-free amd64 Packages
        500 http://httpredir.debian.org/debian stretch/non-free i386 Packages
        100 /var/lib/dpkg/status
     0.43 500
        500 http://httpredir.debian.org/debian jessie/non-free amd64 Packages
        500 http://httpredir.debian.org/debian jessie/non-free i386 Packages

그러나 여러 번 재부팅한 후에는 이제 블루투스가 제대로 작동합니다. 파일이 여전히 누락되었음에도 불구하고 config처음에는 오류가 발생합니다. 블루투스의 주요 용도는 소리인데 블루투스 스피커를 연결하면 소리가 매우 왜곡되어 깊은 곳에서 나옵니다. 이것이 누락된 파일과 관련이 있는지는 아직 모르겠습니다 config. 그렇지 않기를 바랍니다. 어쨌든 모든 과정을 잘 이해하지는 못하더라도 문제가 해결되었는지 확인하겠습니다.

답변1

Wi-Fi가 작동하는 이유는 Wi-Fi가 rtlwifi/rtl8821aefw.bin올바르게 로드되기 때문입니다. IIRC도 있어요임의로 선택할 수 있는펌웨어 파일이 누락된 경우 오류 메시지는 입니다 Direct firmware load for {name} failed with error %d. 이는 오해의 소지가 있으므로 커널 개발자는 2018년 5월에 firmware_request_nowarn()이러한 메시지를 표시하지 않는 새 호출을 추가해야 한다는 데 동의했습니다.

이 패키지에는 firmware-realtek누락된 파일이 포함되어 있습니다. apt-cache policy firmware-realtek귀하의 질문에 이것의 결과를 추가하십시오 .

답변2

다음 오류가 표시되면 rtl8821a 펌웨어가 Linux 배포판과 함께 제공되지 않은 것입니다.

Direct firmware load for rtl_bt/rtl8821a_fw.bin failed with error -2
firmware file rtl_bt/rtl8821a_fw.bin not found

다음 명령을 실행하여 펌웨어를 설치합니다.

cd /tmp
# Download rtl8821a_config and rtl8821a_fw from https://github.com/Realtek-OpenSource/android_hardware_realtek
wget https://raw.githubusercontent.com/Realtek-OpenSource/android_hardware_realtek/rtk1395/bt/rtkbt/Firmware/BT/rtl8821a_config
wget https://raw.githubusercontent.com/Realtek-OpenSource/android_hardware_realtek/rtk1395/bt/rtkbt/Firmware/BT/rtl8821a_fw
mv rtl8821a_config /lib/firmware/rtl_bt/rtl8821a_config.bin
mv rtl8821a_fw /lib/firmware/rtl_bt/rtl8821a_fw
sudo modprobe btusb
sudo systemctl start bluetooth.service
hciconfig -a # will show that Bluetooth is up now

답변3

실수:

> bluetooth hci0: Direct firmware load for rtl_bt/rtl8821a_config.bin failed with error -2

Realtek은 "rtl8821a_config"에 대한 구성을 제공하지 않으므로 rtl8723d_config를 사용하여 심볼릭 링크를 만들 수 있습니다.

실패한 파일이 여기에 나열되어 있는지 확인하십시오.

> ls /lib/firmware/rtl_bt/

그렇지 않은 경우 누락된 파일과 동일한 이름을 사용하여 다른 펌웨어 구성에 대한 심볼릭 링크를 만듭니다.

> sudo ln -s /lib/firmware/rtl_bt/rtl8723d_config.bin.xz /lib/firmware/rtl_bt/rtl8821a_config.bin.xz

다시 시작하고 해결되었는지 확인하세요.

> dmesg | grep Bluetooth
[    3.604451] usb 1-1.2: Product: Bluetooth Radio 
[    9.455922] Bluetooth: Core ver 2.22
[    9.455991] Bluetooth: HCI device and connection manager initialized
[    9.455998] Bluetooth: HCI socket layer initialized
[    9.456001] Bluetooth: L2CAP socket layer initialized
[    9.456016] Bluetooth: SCO socket layer initialized
[    9.673364] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    9.673366] Bluetooth: BNEP filters: protocol multicast
[    9.673370] Bluetooth: BNEP socket layer initialized
[    9.820652] Bluetooth: hci0: RTL: examining hci_ver=06 hci_rev=000a lmp_ver=06 lmp_subver=8821
[    9.821622] Bluetooth: hci0: RTL: rom_version status=0 version=1
[    9.821623] Bluetooth: hci0: RTL: loading rtl_bt/rtl8821a_fw.bin
[    9.828456] Bluetooth: hci0: RTL: loading rtl_bt/rtl8821a_config.bin
[    9.830156] Bluetooth: hci0: RTL: cfg_sz 10, total sz 17438
[   10.263579] Bluetooth: hci0: RTL: fw version 0x0e2fa041
[   39.206147] Bluetooth: RFCOMM TTY layer initialized
[   39.206155] Bluetooth: RFCOMM socket layer initialized
[   39.206162] Bluetooth: RFCOMM ver 1.11

모든 것이 정상입니다! (오픈수세 회전초)

관련 정보