Ubuntu 14.04上的Ralink RT 3290蓝牙问题

我最近安装了Ubuntu 14.04,除蓝牙外一切正常。

我有Ralink 3290蓝牙。 尝试使用此处描述的方法安装驱动程序。 代码没有编译并给出2个错误。 即使os/linux/pci_main_dev.c的更改也无法正常工作。

更新:现在我按照这个链接 ,稍微修改了一些文件后,我成功编译并安装了这个驱动程序。 我确信Ubuntu终于找到了蓝牙适配器,现在我正在使用蓝牙:

 rfkill list all 0: phy0: Wireless LAN Soft blocked: yes Hard blocked: no 1: hci0: Bluetooth Soft blocked: yes Hard blocked: no 

但现在Bluetooth is disabled错误显示和输出

 dmesg | grep Blue [ 17.378741] Bluetooth: Core ver 2.17 [ 17.378778] Bluetooth: HCI device and connection manager initialized [ 17.378788] Bluetooth: HCI socket layer initialized [ 17.378792] Bluetooth: L2CAP socket layer initialized [ 17.378799] Bluetooth: SCO socket layer initialized [ 17.809313] Bluetooth: hci0 sending frame failed [ 20.507392] Bluetooth: RFCOMM TTY layer initialized [ 20.507420] Bluetooth: RFCOMM socket layer initialized [ 20.507440] Bluetooth: RFCOMM ver 1.11 [ 20.669232] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 20.669237] Bluetooth: BNEP filters: protocol multicast [ 20.669249] Bluetooth: BNEP socket layer initialized 

来了。

我让蓝牙工作了!

  1. 首先从这里下载源代码并将其解压缩到Home

  2. 之后,打开rtbth_core_bluez.c文件,然后转到第86行并将其更改为:

     int rtbt_hci_dev_send(struct sk_buff *skb) { struct hci_dev *hdev = (struct hci_dev *)skb->dev; 

    至:

     int rtbt_hci_dev_send(struct hci_dev *hdev, struct sk_buff *skb) { //struct hci_dev *hdev = (struct hci_dev *)skb->dev; 
  3. 转到第216行并将其更改为:

      status = hci_recv_frame(skb); 

    至:

      status = hci_recv_frame(hdev,skb); 
  4. 然后转到第406行并将其更改为:

     hdev->ioctl = rtbt_hci_dev_ioctl; 

    至:

     //hdev->ioctl = rtbt_hci_dev_ioctl; 
  5. 保存,然后打开rtbth_hlpr_linux.c并转到第575行。将其更改为:

     //daemonize((PSTRING)&pOSTask->taskName[0]); 

     (PSTRING)&pOSTask->taskName[0]; 
  6. 现在你准备好编译了。 在终端编译它:

     cd rtbth-3.9.3 make sudo make install 
  7. 重启。 此外,您可以按照此ZIP中包含的PDF文件,以防蓝牙仍然无法正常工作。

这被报告为LP上的错误:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1189721

截至目前,没有工作的司机。 如果您有LP帐户,我建议您将错误标记为影响您并订阅评论的电子邮件通知。

根据shihiro对错误报告的评论 ,可以为蓝牙驱动程序提供维护良好的PPA:

在终端使用

 sudo add-apt-repository ppa:blaze/rtbth-dkms sudo apt-get update sudo apt-get install rtbth-dkms 

或者从Launchpad加载并安装它。 在第一个链接上有到GitHub页面的源链接。 在README.md您可以阅读:

 # Init sudo modprobe rtbth sudo rfkill unblock bluetooth hcitool dev # check 

我在终端输入它,一切正常。

在Ubuntu 17.10以及可能的早期版本中,该模块可能会自动列入黑名单。 如果你遇到这种情况,

然后你需要将rtbth添加到/etc/modules

然后你需要打开/etc/modprobe.d/dkms-rtbth.conf并注释掉或删除blacklist rtbth然后重启系统的行。

可在我的HP ProBook 455 G1笔记本电脑上运行的DKMS和systemd解决方案:
网络控制器:Ralink corp。 RT3290无线802.11n 1T / 1R PCIe和它的混合。
其中内置蓝牙:Ralink corp。 RT3290蓝牙。

我要求检查这条指令是否适用于Ubuntu。
编写OS和内核Linux版本,例如:

测试:
操作系统:带有gnome shell的Fedora 27。
内核Linux:4.13.12-300.fc27.x86_64

 Copy source from: https://github.com/loimu/rtbth-dkms DKMS Build Instruction: http://xmodulo.com/build-kernel-module-dkms-linux.html 

复制文件:

 cp 49rtbt to /usr/lib64/pm-utils/sleep.d cp rtbt to one of this folder /bin or /usr/local/bin or /usr/bin 

制作新文件名bluetooth-setup.sh并复制:

 #!/bin/bash sudo mknod /dev/rtbth c 192 0 sudo rtbt 

按照此说明自动启动。
将脚本添加到systemd:

 https://linuxconfig.org/how-to-automatically-execute-shell-script-at-startup-boot-on-systemd-linux 

这是一个简单的方法,我也在寻找解决这个问题2年了,最多我能够列出所有蓝牙设备并且无法连接到其中任何一个,但是我今天遇到的解决方案下面它工作了对我来说完美无缺。

它非常容易安装,文件位于github rtbth-dkms上 。

安装,

 sudo add-apt-repository ppa:blaze/rtbth-dkms sudo apt-get update sudo apt-get install rtbth-dkms 

然后按照下面的Init命令,你的BlueTooth现在可以正常工作,万一有任何问题留下评论,我很乐意为你提供帮助。

用法

 # Init sudo modprobe rtbth sudo rfkill unblock bluetooth hcitool dev # check # Switch off sudo rfkill block bluetooth # Switch on sudo rfkill unblock bluetooth # Shutdown sudo pkill -2 rtbt sudo rmmod rtbth