我有一个蓝牙适配器,它在我的 Windows 7 (x64) 上运行良好。但在我的 Fedora 24 (x64) 上,它一直向我显示“蓝牙已关闭“即使当我试图打开它时。
我从昨天开始就试图解决这个问题,并且这是没有用的!我已经安装了这些:bluez-hidhci
、bluez-utils
和gnome-Bluetooth
。他们都不适合我!
有任何想法吗?谢谢!
更新:
$ lsusb
...
Bus 001 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd
$ rfkill list
...
2: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
$ dmesg | grep -i blue
[ 12.067177] Bluetooth: Core ver 2.21
[ 12.067212] Bluetooth: HCI device and connection manager initialized
[ 12.067218] Bluetooth: HCI socket layer initialized
[ 12.067221] Bluetooth: L2CAP socket layer initialized
[ 12.067232] Bluetooth: SCO socket layer initialized
[ 18.619866] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 18.619871] Bluetooth: BNEP filters: protocol multicast
[ 18.619876] Bluetooth: BNEP socket layer initialized
$ hciconfig
hci0: Type: BR/EDR Bus: USB
BD Address: AE:2D:22:00:FF:00 ACL MTU: 344:12 SCO MTU: 180:16
DOWN
RX bytes:461 acl:0 sco:0 events:17 errors:0
TX bytes:296 acl:0 sco:0 commands:17 errors:0
$ uname -a
Linux local.arfed 4.5.5-300.fc24.x86_64 #1 SMP Thu May 19 13:05:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
答案1
回答标题中的问题:是否可以将驱动程序从 Windows 复制到 Linux?
不,不是没有(相当多的)额外工作。
驱动程序挂接到操作系统的内核中,允许它“驱动”某些硬件。
可以理解的是,Linux 内核和 Windows 内核有很大不同(或者它们都被称为“Windows”或“Linux”)。因此,人们不能指望能够简单地从 Windows 获取驱动程序(即使它以源代码形式提供)并将其与 Linux 内核链接,甚至不能在 Linux 系统(或任何系统上)合理干净地编译它这不是它所针对的特定 Windows 版本)。
您甚至无法从表面上相似的操作系统(例如 BSD 系统)获取驱动程序,然后将其导入到另一个 Unix 系统中,而无需进行一些精细的编码。话虽如此,“设备级别”上的代码共享确实在自由 Unix 系统之间时常发生,但并非没有将代码安装到新的内核基础设施中的额外工作。
我确实相信,在某些情况下,人们编写了内核代码来访问驱动程序的反向工程二进制 blob。这显然需要有人坐下来查看二进制驱动程序,弄清楚它在做什么,并编写适当的 Linux 内核代码来挂钩它,所以这仍然不仅仅是一个问题复制驱动程序。