Gentoo 历程(4):搞定蓝牙耳机,暴力解决pulseaudio版本低的问题

    本来装完系统后就装上了bluez和blueman,根据官方文档配置了内核和相关软件,用手机测试了下,收发文件都正常,就没再管,今天看电影想用蓝牙耳机,没想到居然连接不上,一连接就报错:

Device added successfuly,but failed to connect

    根据惯例,去gentoo文档看看,跟着headset文档一路做下来,问题依旧。


    想到上一篇提到的apache那个坑爹的经历,这次首先检查了下bluez和blueman的use,果不其然呐,blueman里有个-pulseaudio,这玩意都没了能用才见鬼了。

    全局启动pulseaudio这个use flag,然后重新编译blueman(又不低碳了,罪过,罪过),最后提示每次启动的时候要插入我的蓝牙设备……我倒是想拔了,内置的蓝牙哪有那么好拔,好了,正好刚刚新编译了内核(费电啊……罪过……),一起重启吧,重启后,再次试着连蓝牙耳机,又失败了……怎么个情况呢?pkill blueman,然后终端里启动,看看报错信息:

__load_plugin (/usr/bin/blueman-applet:182)
loading  
Using file config backend
_________
pa_context_event (/usr/lib64/python2.7/site-packages/blueman/main/PulseAudioUtils.py:115)
1 
_________
on_load (/usr/lib64/python2.7/site-packages/blueman/plugins/applet/PulseAudio.py:96)
PulseAudio version: 1.1.0 
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/blueman/plugins/AppletPlugin.py", line 105, in _load
    self.on_load(applet)
  File "/usr/lib64/python2.7/site-packages/blueman/plugins/applet/PulseAudio.py", line 116, in on_load
    raise Exception("PulseAudio too old, required 0.9.15 or higher")
Exception: PulseAudio too old, required 0.9.15 or higher
_________

    我靠……版本太低?还需要0.9.15以上的?我的可是1.1啊喂!嗯……找到那个PulseAudio.py,看看判断版本的语句怎么个情况:

	if int(version.split(".")[2]) < 15:
			raise Exception("PulseAudio too old, required 0.9.15 or higher")

    好嘛,原来是blueman版本太低,不知道pulseaudio已经到了1.X时代,直接注释掉这个语句块好了,继续搜索下还有没有,又找到一个:

	if int(self.pulse_utils.GetVersion().split(".")[2]) >= 18:
			args = "address=%s profile=%s sink_properties=device.icon_name=blueman card_properties=device.icon_name=blueman"
		else:
			args = "address=%s profile=%s"

    这次这个注释掉1、3、4行,由于python里缩进很重要,第二行要往前提,提到和第一行的if齐平的位置,我的修改后是这个样子的:

		args = "address=%s profile=%s sink_properties=device.icon_name=blueman card_properties=device.icon_name=blueman"
		#if int(self.pulse_utils.GetVersion().split(".")[2]) >= 18:
			#args = "address=%s profile=%s sink_properties=device.icon_name=blueman card_properties=device.icon_name=blueman"
		#else:
			#args = "address=%s profile=%s“

    改完这里后面应该没了,至少我没再发现,再试试,这次pulseaudio这个plugin载入正常了,再次试着连接……我擦,还不行!彻底没辙了,去google搜搜吧,经过一番搜索,找到了这个博客,看了看他的过程和我差不多啊,怎么人家就成功了呢……等等!alsa-plugins?安装alsa的时候似乎没看到它?难道又是依赖没自动安装上?emerge -av alsa-plugins,再试着连接……居然就这么好了,gentoo果然是个适合折腾的发行版啊,从arch换到gentoo看来还得适应一段时间。




你可能感兴趣的:(gentoo,bluetooth,properties,exception,文档,applet,file,python)