本來裝完系統後就裝上了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 <class 'blueman.plugins.applet.PulseAudio.PulseAudio'>
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看來還得適應一段時間。