ALSA SoC 新增音效卡節點後音效卡載入失敗

2021-10-08 10:13:06 字數 902 閱讀 2335

alsa soc驅動的snd_soc_dai_link陣列中新增一路stream,所有引數配置正確,但音效卡始終註冊失敗。

關鍵log:

<3>[    1.010918](2)soc-audio soc-audio: asoc: failed to register soundcard -16

error no:-ebusy (-16)

關鍵原因:

音效卡裝置較多,但沒有開啟config_snd_dynamic_minors這個巨集。

分析過程:

1.定位log位置:

跟蹤**實現,追查報錯ebusy的位置,最終定位到如下函式:

在執行snd_register_device時,會在snd_minors陣列中查詢空閒的index,用於儲存音效卡相關資訊,

傳入的引數就是音效卡裝置的幾大關鍵資訊:type、card及device id。

而問題原因就是snd_minors[minor]不為0,也就是說minor對應的id已經被註冊,minor的計算方式如下(card<<5|dev),其中dev = type + device,而從下面的巨集定義就可以發現:c0d0c與c0d8p計算的minor都為24,因此發生了busy。

而通過**我們也可以發現,config_snd_dynamic_minors這個巨集開啟後,使用的是snd_find_free_minor的另一種實現,這種實現則不會存在這種問題,因此解決方式選擇開啟這個巨集。

Etcd 新增節點

參考部落格 測試系統 centos 6.5 測試etcd版本 3.1.6 測試分布式etcd 節點個數 3 etcd 新增節點測試 資源有限。我們先刪除乙個節點,再新增節點 新增節點 1.已處於健康狀態的節點終端傳送指令 etcdctl member add infra3 終端會返回 新增節點下次啟...

greenplum節點新增

1.修改記憶體引數,修改io排程,參考gp官方文件 2.掛載新磁碟,新增fstab 3.root使用者配置互信 1 su 2 source usr local greenplum db greenplum path.sh 3 gpssh exkeys e home gpadmin existing ...

quantumult x 新增節點

相較shadowrocket傻瓜式即裝即用,qx的操作比較隱晦,頗有一副沒事找事的欠扁樣,比如最基本的節點新增可能就讓新司機一臉懵比。qx可以通過 節點 選單新增,四個選項分別為 新增 新增單一節點 引用 訂閱 新增訂閱鏈結 ss url 通過ss 鏈結新增 掃碼 掃碼新增 13只能新增ss節點,方...