hciconfig hci0 위로

hciconfig hci0 위로

이것은 Realtek RTL8723DE 무선/블루투스 모듈과 함께 제공되는 HP 15-BS576TX 노트북입니다. 펌웨어가 모두 사용 가능함에도 불구하고 솔직히 Bluetooth를 활성화하는 방법을 찾을 수 없습니다. RTL8723DE 펌웨어는 최근 커널 linux-firmware.git 트리에서 사용할 수 있으며 /lib/firmware/rtl_bt 디렉토리에도 복사했습니다.

오류는 사용할 수 없는 rtl8723b_config.bin 파일을 요청하는 것입니다. 또한 이 노트북의 블루투스 부분은 커널 로그에 따라 RTL8723B로 감지됩니다. 펌웨어 관리자의 답변은 다음과 같습니다. "모든 장치에 구성 파일이 필요한 것은 아닙니다. rtl8723be는 그렇지 않습니다."

# dmesg  |grep -i bluetooth
[   11.325095] Bluetooth: Core ver 2.22
[   11.325111] Bluetooth: HCI device and connection manager initialized
[   11.325113] Bluetooth: HCI socket layer initialized
[   11.325115] Bluetooth: L2CAP socket layer initialized
[   11.325118] Bluetooth: SCO socket layer initialized
[   11.414774] Bluetooth: hci0: rtl: examining hci_ver=08 hci_rev=000d lmp_ver=08 lmp_subver=8723
[   11.414775] Bluetooth: hci0: rtl: loading rtl_bt/rtl8723b_config.bin
[   11.466838] bluetooth hci0: Direct firmware load for rtl_bt/rtl8723b_config.bin failed with error -2
[   11.466840] Bluetooth: hci0: rtl: loading rtl_bt/rtl8723b_fw.bin
[   11.478765] Bluetooth: hci0: rom_version status=0 version=2
[   11.478767] Bluetooth: hci0: didn't find patch for chip id 2
[   21.410553] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   21.410555] Bluetooth: BNEP filters: protocol multicast
[   21.410557] Bluetooth: BNEP socket layer initialized

디렉토리에 rtl8723D 펌웨어가 있는데 여전히 커널이 장치를 RTL8723B로 감지하고 있으며 이를 불러올 수 없습니다.

hci0:   Type: Primary  Bus: USB
    BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
    DOWN 
    RX bytes:63 acl:0 sco:0 events:6 errors:0
    TX bytes:18 acl:0 sco:0 commands:6 errors:0
    Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    Packet type: DM1 DH1 HV1 
    Link policy: 
    Link mode: SLAVE ACCEPT

내가 시도했을 때,

hciconfig hci0 위로

장치 hci0을 초기화할 수 없습니다: 잘못된 인수 (22)

tail -f /var/log/kern.log는 다음을 보여줍니다.

Mar  8 01:51:21 HP-LAPTOP-15-BS00X kernel: [ 3116.853960] Bluetooth: hci0: rtl: examining hci_ver=08 hci_rev=000d lmp_ver=08 lmp_subver=8723
Mar  8 01:51:21 HP-LAPTOP-15-BS00X kernel: [ 3116.853970] Bluetooth: hci0: rtl: loading rtl_bt/rtl8723b_config.bin
Mar  8 01:51:21 HP-LAPTOP-15-BS00X kernel: [ 3116.854019] bluetooth hci0: Direct firmware load for rtl_bt/rtl8723b_config.bin failed with error -2
Mar  8 01:51:21 HP-LAPTOP-15-BS00X kernel: [ 3116.854024] Bluetooth: hci0: rtl: loading rtl_bt/rtl8723b_fw.bin
Mar  8 01:51:21 HP-LAPTOP-15-BS00X kernel: [ 3116.855913] Bluetooth: hci0: rom_version status=0 version=2
Mar  8 01:51:21 HP-LAPTOP-15-BS00X kernel: [ 3116.855920] Bluetooth: hci0: didn't find patch for chip id 2

이것이 /lib/firmware/rtl_bt의 모습입니다. RTL8723D용 최신 펌웨어도 다음 디렉토리에 복사되어 있습니다.

rtl8192ee_fw.bin
rtl8192eu_fw.bin
rtl8723a_fw.bin
rtl8723b_fw.bin
rtl8723d_config.bin
rtl8723d_fw.bin
rtl8761a_fw.bin
rtl8812ae_fw.bin
rtl8821a_fw.bin
rtl8821c_config.bin
rtl8821c_fw.bin
rtl8822b_config.bin
rtl8822b_fw.bin

무엇이 문제인지 알 수 없습니다. 시스템은 Bluetooth 하드웨어를 RTL8723B로 감지하는 반면, 무선 모듈은 노트북 뒷면에 표시된 대로 확실히 RTL8723DE입니다. 드라이버 관리자는 RTL8723B와 RTL8723D의 Bluetooth 부분이 유사하다고 언급했습니다. 그렇다면 시도하는 것이 옳은 것은 무엇입니까? rtl8723b 펌웨어 대신 rtl8723d 펌웨어 및 구성 파일을 로드하는 방법이 있습니까? 문제가 해결됩니까?

답변1

솔루션에는 약간의 수작업이 필요합니다. 먼저, linux-firmware git 저장소에서 최신 RTL8723D 펌웨어를 다운로드해야 합니다. 펌웨어는 rtlwifi-new git의 Larry Fingers에 의해 푸시됩니다. https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=6d5131107f2ba67a13f469ac770a55f101ba654d

  1. 터미널의 git 도구를 사용하여 원하는 디렉터리(~/Downloads)에 linux-firmware 디렉터리를 복제합니다. ~/Downloads 디렉토리에 다운로드한다고 가정합니다.

    자식 클론 자식://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

펌웨어는 다음 위치에 있습니다: ~/Downloads/linux-firmware/rtlwifi/rtl8723defw.bin ~/Downloads/linux-firmware/rtl_bt/rtl8723d_config.bin ~/Downloads/linux-firmware/rtl_bt/rtl8723d_fw.bin

1번은 WiFi 펌웨어이고 2,3번은 블루투스 펌웨어입니다.

이러한 펌웨어는 각각 아래 디렉터리에 복사해야 합니다: /lib/firmware/rtlwifi/rtl8723defw.bin /lib/firmware/rtl_bt/rtl8723d_fw.bin /lib/firmware/rtl_bt/rtl8723d_config.bin

터미널을 열고 다음을 사용할 수 있습니다(sudo: 비밀번호 제공).

sudo cp ~/Downloads/linux-firmware/rtlwifi/rtl8723defw.bin /lib/firmware/rtlwifi/

sudo cp ~/Downloads/linux-firmware/rtl_bt/rtl8723d_fw.bin /lib/firmware/rtl_bt/

sudo cp ~/Downloads/linux-firmware/rtl_bt/rtl8723d_config.bin /lib/firmware/rtl_bt/
  1. 이제 최신 Linux 커널(>= 4.17), 커널 헤더를 Linux 시스템에 설치해야 합니다. Ubuntu의 경우 다음에서 다운로드할 수 있습니다.http://kernel.ubuntu.com/~kernel-ppa/mainline/. amd64(관련 아키텍처) 헤더가 포함된 일반 커널을 다운로드합니다. "dpkg -i *.deb" 명령으로 해당 디렉터리에 다운로드하여 설치할 수 있습니다. 다시 시작하면 블루투스가 작동합니다.

답변2

이 블루투스 장치 rtl8723de에 대한 지원이 4.17rc 커널에 추가되었습니다.

코드는 커널 4.4 - 4.15로 쉽게 백포트될 수 있습니다. 업데이트된 btrtl 모듈이 포함된 Bionic 및 Xenial용 DKMS 패키지가 포함된 PPA가 있습니다.

그것은에 의해 설치될 수 있습니다

sudo add-apt-repository ppa:hanipouspilot/bluetooth sudo apt update sudo apt install btrtl-rtl8723de-dkms

재부팅

그때부터 블루투스가 정상적으로 작동합니다.

관련 정보