環(huán)境是什么呢打厘?debian 10也就是最新的debian 穩(wěn)定版本。首先呢贺辰,這是一個臺式機(jī)婚惫,臺式機(jī)上不自帶藍(lán)牙設(shè)備,需要到網(wǎng)上購買一個藍(lán)牙棒魂爪。這個藍(lán)牙榜我買回來以后,就插上電腦艰管,結(jié)果發(fā)現(xiàn)操作系統(tǒng)居然不識別這個藍(lán)牙棒滓侍。唉,心里面有1萬個cnm奔騰而過牲芋。然后去Google搜索撩笆,找到了原因。主要就是因?yàn)檫@個藍(lán)牙棒用的是CSR的芯片缸浦,然后啊夕冲,這個芯片呢,在linux發(fā)現(xiàn)他的時候做一些握手會有一個東西不支持裂逐,然后操作系統(tǒng)就會直接判定此藍(lán)牙設(shè)備不可用歹鱼。其實(shí)啊,這是一個老問題了卜高,然后在linux內(nèi)核這個bug系統(tǒng)中弥姻,2014年大概就出現(xiàn)過南片。問題是什么呢?唉庭敦,其實(shí)啊疼进,還是硬件這個設(shè)備沒做好,就是做了一個功能秧廉,但是呢伞广,不完全的遵守藍(lán)牙的這個交互的規(guī)范。然后這個Linux內(nèi)核驅(qū)動呢會按照這個藍(lán)牙的這個規(guī)范啊疼电,去識別外設(shè)嚼锄,和它握手,結(jié)果呢就會發(fā)現(xiàn)澜沟,哎你不符合規(guī)范灾票,對不起,我不能用茫虽。不過不符合規(guī)范的問題刊苍,只是一個很小很小的問題,舉個例子濒析,規(guī)范可能有100條正什,我99條都符合你規(guī)范,只有那一點(diǎn)我沒做好号杏,就和你的規(guī)范有些出入婴氮,結(jié)果呢內(nèi)核的這個檢查比較嚴(yán)格,因?yàn)檫@一點(diǎn)跟這個規(guī)范不符合盾致,就判定是壞的就不讓用主经。當(dāng)時的解決方案是什么?繞庭惜。也就是說啊罩驻,這種CSR的藍(lán)牙棒太多了,你的市場占有量這么大护赊,我沒法解決你這個問題惠遏,我就做個標(biāo)記,好發(fā)現(xiàn)你有這個問題骏啰,我就把這個東西繞過去讓你正常工作节吮,因?yàn)閯偛耪f了,99%的情況下都是可以正常工作的判耕,1%的情況你不符合規(guī)范透绩,可能平常也用不著,所以那就讓你用好了∶煜停可是歲月在變化雏胃,內(nèi)核在發(fā)展,藍(lán)牙棒也在更新志鞍。2019年的時候突然發(fā)現(xiàn)內(nèi)核又出現(xiàn)了這個問題瞭亮,有些不兼容的藍(lán)牙沒法識別出來了。然后這個bug在系統(tǒng)中就被標(biāo)記為重新打開固棚,2019年重新打開的统翩。到現(xiàn)在是2020年3月1號,這個bug還沒有得到解決此洲。但是也有好消息了厂汗,也就是說,有內(nèi)核開發(fā)者已經(jīng)上傳了可以測試的補(bǔ)丁呜师。去年10月份也就是2019年10月份的時候娶桦,我嘗試用那個補(bǔ)丁,在debian 10系統(tǒng)中直接打他當(dāng)時的內(nèi)核汁汗。結(jié)果發(fā)現(xiàn)補(bǔ)丁根本不兼容衷畦,沒法打,要需要改的工作比較多啊知牌,因此就是一聲嘆息祈争,買了個藍(lán)牙棒呀,在自己的電腦上居然用不起來角寸,可是還不能說人家賣家的什么問題菩混,因?yàn)榘∥野次也孪朐趙indows上和麥克電腦上用起來肯定是杠杠的,沒問題扁藕。心里就一直有小小的不甘啊沮峡,唉,怎么會這樣呢亿柑?但是總會想起來帖烘,總想去折騰這么一把。這不趁著疫情期間在家里閑著沒事兒橄杨,終于逮到機(jī)會,發(fā)現(xiàn)補(bǔ)丁也更新了照卦,然后我發(fā)現(xiàn)在debian系統(tǒng)中還有那個backports可以去下載最新的那個內(nèi)核源代碼式矫,也就是5.4版本的內(nèi)核源代碼,這樣編譯之前役耕,那個補(bǔ)丁打起來還是比較容易的采转。打完補(bǔ)丁,編譯了好幾個小時(啥也別說了,電腦看來是該升級了故慈,編一個內(nèi)核就花好幾個小時)板熊,然后一折騰,重啟了好幾把電腦察绷,把那個模塊加載的參數(shù)也改了干签,結(jié)果終于藍(lán)牙棒可以用啦,此處應(yīng)該有掌聲和鮮花拆撼。
不過這個藍(lán)牙設(shè)備可以用還是第1步容劳,我需要的是和蘋果的airpods配對,能聽能說闸度。桌面系統(tǒng)的這個藍(lán)牙配置呀竭贩,這些天好像還給我搞得有點(diǎn)不太對,嗯莺禁,也折騰了半天留量,終于把它搞出來了,把那個系統(tǒng)設(shè)置打開了哟冬,就把藍(lán)牙的那個界面打開楼熄,去發(fā)現(xiàn)airpods,然后發(fā)現(xiàn)了了嗎柒傻?發(fā)現(xiàn)了孝赫。發(fā)現(xiàn)了之后和它連接,然后在那個聲音輸出的和輸入的這個配置中红符,找到了這個airpods青柄,可以把它設(shè)為默認(rèn)輸出設(shè)備。設(shè)置過去呢预侯,有一個默認(rèn)模式致开,嗯,這個模式是A2DP萎馅,是一個Linux的一個聲音的驅(qū)動模式双戳,然后居然可以聽!但是效果不太好糜芳,就是頓頓的飒货,聲音不大,另外一個問題就是不支持麥克輸入峭竣。其實(shí)呢塘辅,還有另外一個模式,在設(shè)置界面上可以設(shè)置的叫headset 模式皆撩,也就是hsp模式扣墩,還有一個是hands Free模式哲银,也就是hfp模式。在設(shè)置界面中呻惕,hsp和hfp這兩種模式是一種荆责,就是除了A2DP這個模式之外,那么還可以選擇這種亚脆。因?yàn)樾Ч缓米鲈海晕揖拖朐囉眠@種模式,結(jié)果發(fā)現(xiàn)我選了這種模式之后型酥,你當(dāng)時界面上選的是這種模式山憨,但是我把設(shè)置界面切到另外一個選項(xiàng)再切回這個語音的輸入輸出時我看到的是锌半,又返回到A2DP模式了请祖。所以這個模式是不可以被設(shè)置的。于是藍(lán)牙棒的問題剛剛解決狡逢,又碰到了新的問題由境,雖然那個耳機(jī)的聲音可以被聽見棚亩,但是效果真是不盡如人意,又遇到了這么個模式問題虏杰,只好再次去查找〖ン。現(xiàn)在這個問題還沒有解決呢,嗯纺阔,但是呢瘸彤,我知道大概在什么方向,是一個linux系統(tǒng)的開源軟件里面有個叫pulseaudio這個模塊笛钝,然后它的藍(lán)牙插件和hfp這種模式的兼容性本身是不盡如人意的质况,好像有個其他的(不是AirPods)耳機(jī)有可以在hfp模式下支持的比較好,而airpods有不少用戶報告都有兼容性問題玻靡。反正這個事情就是說還是在發(fā)展结榄。
好了,故事講完了囤捻,也許以后還有續(xù)集臼朗,但是我想說的是,折騰這玩意兒挺好玩的蝎土,這個東西啊總是不完美视哑,就是軟件總是不完美,然后開源軟件呢誊涯,對這個消費(fèi)品的支持總是正在進(jìn)行中黎炉,所以常常需要用戶自己折騰,才有可能得到一個好的結(jié)果(也有可能折騰不出啥結(jié)果醋拧,也有可能折騰出一個半吊的結(jié)果,像這次)。但是折騰這玩意的過程就是一個享受的過程丹壕,因?yàn)槟阋鉀Q問題庆械,首先呢,你得去Google搜索菌赖,你就得用正確的關(guān)鍵字去搜索缭乘,你第1次搜索不對,還得換關(guān)鍵詞去搜索琉用,多搜幾次堕绩,你終于找到一個相關(guān)的頁面,然后找到了發(fā)現(xiàn)其實(shí)人家也是在進(jìn)行中邑时,于是你還要去做一些測試奴紧,自己完成這個測試。在整個折騰的過程中晶丘,你的知識更新了黍氮,你的技能成長了。有人說是自虐嘛浅浮,也也是一種可能吧沫浆,但是挺開心的,所以寫篇文章分享給大家滚秩。