블루투스가 작동하지 않습니다. MPOW BH519A

블루투스가 작동하지 않습니다. MPOW BH519A

MPOW BH519A Bluetooth 어댑터를 작동시키려고 합니다. 비슷한 게시물이 있는데 그 중 하나가 이 어댑터에 관한 것입니다. 불행히도, 나는 모든 것을 시도했지만 아무것도 도움이 되지 않았습니다. 다음과 같은 몇 가지 명령을 테스트했습니다.
  • sudo apt 설치 블루맨
  • sudo make install INTERFACE=all (MPOW Linux 드라이버 다운로드, 폴더에서 이 명령 실행)
  • sudo mv -v ~/Download/rtl8761b_config /usr/lib/firmware/rtl_bt/rtl8761b_config.bin
  • bluez4를 빠르게 설치하세요
  • bluez를 빠르게 설치하세요
  • sudo apt 설치 bluez bluez-obexd
  • sudo apt-get 설치 bluez-utils libopemnobex1
  • sudo apt 재설치 bluez
  • sudo blueman-관리자

리더를 달릴 수도 없었습니다. 컨트롤을 켜기로 설정했지만 "블루투스 어댑터를 찾을 수 없습니다"라는 메시지가 나타납니다. 여러 가지 명령을 시도한 후에도 컨트롤을 열도록 설정할 수 없습니다.


나는 완전한 우분투 초보자이기 때문에 중요한 것을 복제했거나 간과했을 수도 있다고 생각합니다.

다음은 몇 가지 결과입니다. 안타깝게도 어떤 정보가 귀하에게 도움이 될지 모르겠습니다.

lsb_release-a
사용 가능한 LSB 모듈이 없습니다.
게시자 ID: Ubuntu
설명: Ubuntu 20.04.2 LTS
버전: 20.04
코드명: focus

~$ dmesg |
[2.308927] USB 3-2: 제품: Bluetooth Radio
[18.340266] Bluetooth: Core Version 2.22
[18.340297] Bluetooth: HCI 장치 및 연결 관리자 초기화
[18.340301] Bluetooth: HCI 소켓 계층 초기화
[18.340303] Bluetooth: L2CAP 슬리브 소켓 계층 초기화
[18.340306] Bluetooth: SCO 소켓 계층 초기화
[55.439177] audit: type=1400 audit (1627551927.132:64): apparmor="deny" action="create" profile="snap.bluetooth-autostart. autostart-bluetooth" pid = 883 comm ="hciconfig" family="bluetooth" sock_type="raw" 프로토콜=1 request_mask="create" Denied_mask="create"

[ 65.993297] Bluetooth: BNEP(이더넷 에뮬레이션) 버전 1.3
[ 65.993300 ] Bluetooth: BNEP 필터: 프로토콜 멀티캐스트
[65.993305] 블루투스: BNEP 소켓 계층 초기화

~$ echo "옵션 btusb_autostop=0" sudo tee -a /etc/modprobe.d/btusb.conf
OPTION btusbENABLE_AUTOSUSPEND=0

~$ systemctl grep -i 블루 |
run-snapd-ns-bluetooth\x2dautostart.mnt.mount 로드됨 활성 마운트 /run/snapd/ns/bluetooth-autostart.mnt

snap-bluetooth\x2dautostart-10.mount 로드됨 활성 마운트 Bluetooth 자동 시작 마운트 장치, 개정판 버전 10

Bluetooth. 서비스 로드됨 활성 Bluetooth 서비스 실행 중

● snap.bluetooth-autostart.autostart-bluetooth.service 로드 실패 실패 Snap 애플리케이션 bluetooth-autostart.autostart-bluetooth의 서비스

~$lsusb
버스 002 장치 001: ID 1d6b:0002 Linux Foundation 2.0 루트 허브 버스
004 장치 001: ID 1d6b:0001 Linux Foundation 1.1 루트 허브
버스 001 장치 004: ID 2357:0109 TP-Link TL WN823N RTL8192EU
버스 001 장치 001: ID 1d 6b :0002 Linux Foundation 2.0 루트 허브 버스
003 장치 004: ID 093a:2510 Pixart Imaging, Inc. 광학 마우스
버스 003 장치 003: ID 0bda:2550 Realtek Semiconductor Corp. Bluetooth 라디오 버스
003 장치 002: ID 046d:c52b Logitech, Inc. Unifying 수신기
버스 003 장치 001: ID 1d6b:0001 Linux Foundation 1.1 루트
허브 버스 008 장치 001: ID 1d6b:0003 Linux Foundation 3.0 루트 허브 버스
007 장치 001: ID 1d6b:0002 Linux Foundation 2.0 루트 허브 버스
006 장치 001 :ID 1d6b:0003 Linux Foundation 3.0 루트 허브 버스
005 장치 001 :ID 1d6b:0002 Linux Foundation 2.0 루트 허브

rfkill은 모두 나열합니다.
0:phy0:무선 LAN
소프트 차단: 없음
하드 차단: 없음

모든 답변에 감사드립니다.

[편집하다]

20200610_LINUX_BT_DRIVER/20200610_LINUX_BT_DRIVER/uart/bluetooth_uart_driver/hci_ldisc.c:1086:22: 오류: 'ssize_t(*)(struct tty_struct *, struct file *, unsigned char에 할당), size_t, void **, long unsigned int)' {일명 'long int()(struct tty_struct *, struct file *, unsigned char, long unsigned int, void **, long unsigned int)'} 호환되지 않는 포인터 유형 'ssize_t()(struct tty_struct *, struct file *, unsigned char, size_t)' {일명 'long int(1086 | struct tty_struct *, struct file *, unsigned char *, long unsigned int)'} hci_uart_ldisc.read = hci_uart_tty_read;

이것은 hci_ldisc.c 파일의 코드입니다:

/*
 * We don't provide read/write/poll interface for user space.
 */
static ssize_t hci_uart_tty_read(struct tty_struct *tty, struct file *file,
                 unsigned char __user * buf, size_t nr)
{
    return 0;
}

static ssize_t hci_uart_tty_write(struct tty_struct *tty, struct file *file,
                  const unsigned char *data, size_t count)
{
    return 0;
}

static unsigned int hci_uart_tty_poll(struct tty_struct *tty,
                      struct file *filp, poll_table * wait)
{
    return 0;
}

static int __init hci_uart_init(void)
{
    static struct tty_ldisc_ops hci_uart_ldisc;
    int err;

    BT_INFO("HCI UART driver ver %s", VERSION);

    /* Register the tty discipline */

    memset(&hci_uart_ldisc, 0, sizeof(hci_uart_ldisc));
    hci_uart_ldisc.magic = TTY_LDISC_MAGIC;
    hci_uart_ldisc.name = "n_hci";
    hci_uart_ldisc.open = hci_uart_tty_open;
    hci_uart_ldisc.close = hci_uart_tty_close;
    hci_uart_ldisc.read = hci_uart_tty_read;
    hci_uart_ldisc.write = hci_uart_tty_write;
    hci_uart_ldisc.ioctl = hci_uart_tty_ioctl;
    hci_uart_ldisc.poll = hci_uart_tty_poll;
    hci_uart_ldisc.receive_buf = hci_uart_tty_receive;
    hci_uart_ldisc.write_wakeup = hci_uart_tty_wakeup;
    hci_uart_ldisc.owner = THIS_MODULE;

[편집] 런타임"sudo make 설치 인터페이스=usb"

mkdir -p /lib/modules/5.11.0-27-generic/kernel/drivers/bluetooth
Start Realtek Bluetooth USB driver installation
mkdir -p /lib/firmware
Copy rtkbt-firmware/lib/firmware/rtl*_fw to /lib/firmware
cp -a rtkbt-firmware/lib/firmware/rtl*_fw /lib/firmware
Copy rtkbt-firmware/lib/firmware/rtl*_config /lib/firmware
cp -a rtkbt-firmware/lib/firmware/rtl*_config /lib/firmware
make -C usb install
make[1]: Verzeichnis „/home/ubuntu/Schreibtisch/20200610_LINUX_BT_DRIVER/20200610_LINUX_BT_DRIVER/usb“ wird betreten
rmmod btusb
rmmod: ERROR: Module btusb is not currently loaded
make[1]: [Makefile:7: install] Fehler 1 (ignoriert)
mv /lib/modules/5.11.0-27-generic/kernel/drivers/bluetooth/btusb.ko /lib/modules/5.11.0-27-generic/kernel/drivers/bluetooth/btusb_bak
mv: Aufruf von stat für '/lib/modules/5.11.0-27-generic/kernel/drivers/bluetooth/btusb.ko' nicht möglich: Datei oder Verzeichnis nicht gefunden
make[1]: [Makefile:8: install] Fehler 1 (ignoriert)
rmmod rtk_btusb
rmmod: ERROR: Module rtk_btusb is not currently loaded
make[1]: [Makefile:9: install] Fehler 1 (ignoriert)
make -C ./bluetooth_usb_driver
make[2]: Verzeichnis „/home/ubuntu/Schreibtisch/20200610_LINUX_BT_DRIVER/20200610_LINUX_BT_DRIVER/usb/bluetooth_usb_driver“ wird betreten
make -C /lib/modules/5.11.0-27-generic/build M=/home/ubuntu/Schreibtisch/20200610_LINUX_BT_DRIVER/20200610_LINUX_BT_DRIVER/usb/bluetooth_usb_driver modules
make[3]: Verzeichnis „/usr/src/linux-headers-5.11.0-27-generic“ wird betreten
make[3]: Verzeichnis „/usr/src/linux-headers-5.11.0-27-generic“ wird verlassen
make[2]: Verzeichnis „/home/ubuntu/Schreibtisch/20200610_LINUX_BT_DRIVER/20200610_LINUX_BT_DRIVER/usb/bluetooth_usb_driver“ wird verlassen
cp -f ./bluetooth_usb_driver/rtk_btusb.ko /lib/modules/5.11.0-27-generic/kernel/drivers/bluetooth/rtk_btusb.ko
depmod -a 5.11.0-27-generic
make -C ./bluetooth_usb_driver clean
make[2]: Verzeichnis „/home/ubuntu/Schreibtisch/20200610_LINUX_BT_DRIVER/20200610_LINUX_BT_DRIVER/usb/bluetooth_usb_driver“ wird betreten
rm -rf *.o *.mod.c *.mod.o *.ko *.symvers *.order *.a
make[2]: Verzeichnis „/home/ubuntu/Schreibtisch/20200610_LINUX_BT_DRIVER/20200610_LINUX_BT_DRIVER/usb/bluetooth_usb_driver“ wird verlassen
echo "install rtk_btusb success!"
install rtk_btusb success!
make[1]: Verzeichnis „/home/ubuntu/Schreibtisch/20200610_LINUX_BT_DRIVER/20200610_LINUX_BT_DRIVER/usb“ wird verlassen

[편집하다]LSSB

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 2357:0109 TP-Link TL WN823N RTL8192EU
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 004: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 003 Device 005: ID 0bda:2550 Realtek Semiconductor Corp. Bluetooth Radio
Bus 003 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

[편집하다]dmesg | grep -i 블루투스

[    2.334631] usb 3-2: Product: Bluetooth Radio
[   10.740679] Bluetooth: Core ver 2.22
[   10.740735] Bluetooth: HCI device and connection manager initialized
[   10.740743] Bluetooth: HCI socket layer initialized
[   10.740748] Bluetooth: L2CAP socket layer initialized
[   10.740758] Bluetooth: SCO socket layer initialized
[   10.989363] Bluetooth: HCI UART driver ver 2.3
[   10.989373] Bluetooth: HCI UART protocol H4 registered
[   10.989376] Bluetooth: HCI UART protocol BCSP registered
[   10.989416] Bluetooth: HCI UART protocol LL registered
[   10.989419] Bluetooth: HCI UART protocol ATH3K registered
[   10.989439] Bluetooth: HCI UART protocol Three-wire (H5) registered
[   10.989480] Bluetooth: HCI UART protocol Intel registered
[   10.989537] Bluetooth: HCI UART protocol Broadcom registered
[   10.989557] Bluetooth: HCI UART protocol QCA registered
[   10.989560] Bluetooth: HCI UART protocol AG6XX registered
[   10.989581] Bluetooth: HCI UART protocol Marvell registered
[   65.224399] audit: type=1400 audit(1630557966.917:64): apparmor="DENIED" operation="create" profile="snap.bluetooth-autostart.autostart-bluetooth" pid=902 comm="hciconfig" family="bluetooth" sock_type="raw" protocol=1 requested_mask="create" denied_mask="create"
[  786.789070] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[  786.789077] Bluetooth: BNEP filters: protocol multicast
[  786.789084] Bluetooth: BNEP socket layer initialized
[ 1005.431927] usb 3-2: Product: Bluetooth Radio

답변1

동일한 어댑터를 사용하여 비슷한 문제가 발생했습니다. 인식되지 않았습니다. 분명히 USB PID가rtk_misc.cMPOW에서 다운로드한 드라이버 소스 코드 패키지.

나를 위해 일한 수정 사항은 다음과 같습니다.

  1. MPOW 다운로드 드라이버 패키지에서 추출된 rtk_misc.c폴더의 파일을 편집합니다. usb/bluetooth_usb_driver내 이름은20201202_LINUX_BT_DRIVER
  2. 누락된 PID를 추가하려면 311행을 복사하여 붙여넣으세요.
    {0x2550, 0x8761, "mp_rtl8761b_fw", "rtl8761bu_fw", "rtl8761bu_config", NULL, 0}, /* MPOW BH519AB RTL8761BU only */
    
  3. 검색 라인 읽기(초기 939 라인):
    patch->chip_type = RTL8761BU;
    
  4. 그 위에 강조 표시된 사례 설명을 추가하세요.
    케이스 0x8771:  
     케이스 0xa725:  
     케이스 0xa72A:  
     케이스 0x2550:
     
  5. 저장하고 make install을 반복하여 드라이버를 빌드 및 설치하고 어댑터를 사용해 보세요.

관련 정보