linux蓝牙驱动模块编译问题

linux蓝牙驱动模块编译问题,第1张

linux下编译运行驱动

嵌入式linux下设备驱动的运行和linux x86 pc下运行设备驱动是类似的,由于手头没有嵌入式linux设备,先在vmware上的linux上学习驱动开发。

按照如下方法就可以成功编译出hello world模块驱动。

1、首先确定本机linux版本

怎么查看Linux的内核kernel版本?

'uname'是Linux/unix系统中用来查看系统信息的命令,适用于所有Linux发行版。配合使用'uname'参数可以查看当前服务器内核运行的各个状态。

#uname -a

Linux whh 3.5.0-19-generic #30-Ubuntu SMPTue Nov 13 17:49:53 UTC 2012 i686 i686 i686 GNU/Linux

只打印内核版本,以及主要和次要版本:

#uname -r

3.5.0-19-generic

要打印系统的体系架构类型,即的机器是32位还是64位,使用:

#uname -p

i686

/proc/version 文件也包含系统内核信息:

# cat /proc/version

Linux version 3.5.0-19-generic(buildd@aatxe) (gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) ) #30-UbuntuSMP Tue Nov 13 17:49:53 UTC 2012

蓝牙适配器客户端: 1. 将蓝牙适配器插入电脑USB接口 2. 打开客户端 3. 点击右上角的帮助—>安装驱动 Windows XP: 4. 将蓝牙适配器插入电脑USB接口 5. 出现驱动安装向导,按照如下步骤 *** 作 浏览选择驱动程序所在的目录 Window7: 1. 将蓝牙适配器...

自从安装了Deepin Linux,并 采用自己编译的内核 后,笔者的ThinkPad X200笔记本体验可谓是上升了一个非常重要的层次。后来有一天,笔者想用蓝牙耳机听音乐,然而在使用过程中发现,这台笔记本虽然自带蓝牙,屏幕下的蓝牙指示灯一直点亮着,系统中却看不到与蓝牙有关的设置选项。

出现这样的问题,多半就是因为系统中对蓝牙的支持没有启用,主要包括系统组件和内核两个层面。下面把我的经验总结如下。

默认地,Deepin并没有在系统中装上蓝牙组件,须用户手动安装。在终端中运行:

其中, bluetooth 是Linux蓝牙的核心组件,而 blueman 则是基于GTK+的一个全功能蓝牙管理器。把它们一齐装上,即可为Deepin启用全面的蓝牙支持。

笔者本以为安装了蓝牙组件后,蓝牙功能就能正常使用(因为之前在解决WLAN问题时,WLAN驱动未配置的情况下无线网卡灯是不会亮的,然而蓝牙灯始终会常亮),但是当打开蓝牙管理器时,竟然报错,提示蓝牙服务未启动。这不得不让我想到,内核中的蓝牙支持是否没有启用。

果不其然。在内核源码目录下运行 make menuconfig ,打开内核配置界面,依次对内核进行以下配置。

内核中的蓝牙选项位于【Network Settings】 -->【Bluetooth subsystem support】。先选中【Bluetooth subsystem support】,然后按”Y“,勾选它。

【Bluetooth subsystem support】中有子菜单,按回车进入,如下所示:

其中有几个选项,控制特定类型蓝牙设备协议的支持,一般全部启用。它们包括:

最为重要的一步,就是将蓝牙适配器驱动编译入内核当中。 进入最下方子菜单【Bluetooth device drivers】,如下所示:

菜单中根据接口和特定型号设备,列出了相应的支持选项,有些选项在勾选后还会展开新的选项。典型的接口有USB、SDIO、UART,按需要勾选。

笔者X200笔记本的蓝牙适配器是Broadcom BCM2045B,走的是USB通道,因此先勾选【HCI USB driver】,随后会在该项下面出现三个新的选项,再进一步勾选【Broadcom protocol support】。不过,在得知适配器信息之前,笔者拿捏蓝牙适配器可能也走了UART通道,所以也将【HCI UART driver】勾上,再进一步勾选下面的【Intel AG6XX protocol support】。但实际使用时发现,X200的蓝牙适配器的确走的是USB而非UART。若不能确定自己的蓝牙适配器类型,可以一并选上,也不占用太多空间。

上述配置完成后,按左右方向键选择”Save“,保存内核配置,然后选”Exit“退出。使用下面的命令重新编译内核并安装:

重启后,蓝牙功能即被激活。

在内核中启用蓝牙支持,并在系统中安装蓝牙组件后,Deepin发生了翻天覆地的变化。Deepin下蓝牙的体验非常出色。

Blueman管理器默认开机启动,会在托盘区域出现一个蓝牙图标,在其中可以很方便地管理蓝牙设备。

在Blueman管理器中可以搜索到各种蓝牙设备,包括各种手机、电脑,以及笔者的蓝牙耳机。与蓝牙耳机配对后,Deepin即刻将声音通过蓝牙进行播放,无需再进行进一步的配置,尤其方便。此外,Blueman还有其他有趣的玩法,比如文件传输、浏览设备文件,其中对设备文件的浏览功能与当年的MTK功能机类似。

以X200为代表的ThinkPad早期机型有一项设计非常出彩,就是它屏幕下的灯条,系统运行状态一目了然。其中正包括了蓝牙指示灯,当有数据传输时(如正使用蓝牙音频),指示灯会闪烁,如此就能知道蓝牙设备是否正常工作。可谓匠心。

要想让使用Deepin的笔记本支持蓝牙,需要做两项工作——

由此,Deepin下设备的价值就能被进一步挖掘,体验自会更上一层楼。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8512098.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存