我正在使用 EP-AC1661 WiFi 和蓝牙适配器。根据他们的网站,该驱动程序仅支持内核版本 2.6。我正尝试在内核版本为 5.0.0.29-generic 的 ubuntu 18.04 上安装驱动程序
当我运行命令时
sudo make install -s
我收到错误
rtk_coex.c:2532:2 :error: implicit declaration of function 'init_timer'; did you mean 'init_timers'? [-Werror=implicit-function-declaration]
init_timer(&btrtl_coex.polling_timer)
关于如何解决这个问题,有什么指示吗?
编辑1: lsusb 的结果
:~$ lsusb
Bus 002 Device 007: ID 0bda:c820 Realtek Semiconductor Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 04f3:0b23 Elan Microelectronics Corp.
Bus 001 Device 003: ID 0424:2137 Standard Microsystems Corp.
Bus 001 Device 002: ID 1307:0330 Transcend Information, Inc. 63-in-1 Multi-Card Reader/Writer
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 009 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 010 Device 002: ID 0424:5537 Standard Microsystems Corp.
Bus 010 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
tail -f /var/log/syslog 的结果
tail -f /var/log/syslog
Sep 23 16:17:42 blue kernel: [ 5578.720943] usb 2-6: new high-speed USB device number 8 using ehci-pci
Sep 23 16:17:43 blue kernel: [ 5578.877878] usb 2-6: New USB device found, idVendor=0bda, idProduct=c820, bcdDevice= 2.00
Sep 23 16:17:43 blue kernel: [ 5578.877881] usb 2-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Sep 23 16:17:43 blue kernel: [ 5578.877883] usb 2-6: Product: 802.11ac NIC
Sep 23 16:17:43 blue kernel: [ 5578.877885] usb 2-6: Manufacturer: Realtek
Sep 23 16:17:43 blue kernel: [ 5578.877887] usb 2-6: SerialNumber: FF
Sep 23 16:17:43 blue mtp-probe: checking bus 2, device 8: "/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-6"
Sep 23 16:17:43 blue mtp-probe: bus: 2, device: 8 was not an MTP device
Sep 23 16:17:43 blue upowerd[1164]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:1d.7/usb2/2-6
Sep 23 16:17:43 blue kernel: [ 5578.981975] [UFW BLOCK] IN=enp5s0 OUT= MAC=bc:ae:c5:1a:0e:f1:00:bb:c1:75:7a:46:08:00 SRC=10.1.10.68 DST=10.1.10.121 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=49755 PROTO=UDP SPT=8610 DPT=8612 LEN=40
Sep 23 16:17:43 blue kernel: [ 5578.992093] [UFW BLOCK] IN=enp5s0 OUT= MAC=bc:ae:c5:1a:0e:f1:00:bb:c1:75:7a:46:08:00 SRC=10.1.10.68 DST=10.1.10.121 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=56262 PROTO=UDP SPT=8610 DPT=8612 LEN=40
编辑2:usb设备的结果
usb-devices
T: Bus=02 Lev=01 Prnt=01 Port=05 Cnt=01 Dev#= 3 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0bda ProdID=c820 Rev=02.00
S: Manufacturer=Realtek
S: Product=802.11ac NIC
S: SerialNumber=FF
C: #Ifs= 3 Cfg#= 1 Atr=a0 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
I: If#= 2 Alt= 0 #EPs= 6 Cls=ff(vend.) Sub=ff Prot=ff Driver=rtl8821cu
答案1
正如您所见,此蓝牙设备受 Linux 内核支持drivers/bluetooth/btusb.c
。
/* Realtek Bluetooth devices */
{ USB_VENDOR_AND_INTERFACE_INFO(0x0bda, 0xe0, 0x01, 0x01),
.driver_info = BTUSB_REALTEK },
的意思(0x0bda, 0xe0, 0x01, 0x01)
正是你在
Vendor=0bda Cls=e0(wlcon) Sub=01 Prot=01
您有一个 Wi-Fi + 蓝牙组合设备,两个部分都可见usb-devices
I: If#= 2 Alt= 0 #EPs= 6 Cls=ff(vend.) Sub=ff Prot=ff Driver=rtl8821cu
是 Wi-Fi 设备。它已rtl8821cu
成功加载驱动程序。
I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
btusb
是 BT 设备。由于某种原因,它没有加载驱动程序。
原因可能如下:
内核无法正确处理组合设备。可以通过将 列入黑名单 来测试
rtl8821cu
。它应该可以加载btusb
。如果是这种情况,则这是一个内核错误,应该报告。您已经安装了一些黑名单驱动程序
btusb
,但是不起作用。
如果正在btusb
加载,则需要确保 中有固件lib/firmware/rtl_bt
。该文件名为rtl8821a_config.bin
。
该文件尚未添加linux-firmware
,但您可以在之前下载的未安装的旧驱动程序中找到它。
我看到那里有一个文件linux/2017.../BT/2017...BT_ANDROID/rtkbt/system/etc/firmware/rtl8821a_config
尝试将其重命名为rtl8821a_config.bin
并复制到/lib/firmware/rtl_bt
。
如果此文件有效,我会将其发送给上游。