如果驅(qū)動(dòng)模塊之間有依賴,需要更改模塊掛載順序,有三種方式:
1、增加一個(gè)優(yōu)先級(jí),比如 8?;蛘甙炎约旱尿?qū)動(dòng)模塊聲明成其他優(yōu)先級(jí),也就是不用 module_init 去聲明,可以用 fs_initcall
去聲明。
2、對(duì)于同一優(yōu)先級(jí)的驅(qū)動(dòng)模塊,可以在 Makefile 中更改其編譯和鏈接的順序,就會(huì)切換其掛載的順序。(靜態(tài)編譯)
3、動(dòng)態(tài)加載驅(qū)動(dòng)模塊:等 Linux 系統(tǒng)起來(lái)以后,手動(dòng)執(zhí)行 insmod 和 rmmod
即可掛載和卸載驅(qū)動(dòng),順序自己決定。測(cè)試成功后,再搞到內(nèi)核中靜態(tài)編譯。
雖然可以更改掛載順序,但還是希望大家寫驅(qū)動(dòng)模塊的時(shí)候,能夠做到高內(nèi)聚、低耦合,自己的模塊最好不要依賴其他模塊,防止其他模塊加載失敗導(dǎo)致自己的模塊不可用。
如何看驅(qū)動(dòng)掛載順序?有兩種方式:
1、找到編譯后的 Linux 內(nèi)核源碼,根目錄下面有個(gè) System.map 文件,這里記載了 Linux
內(nèi)核所做的所有的事情,是按順序記載的(也有可能在其他輸出目錄)。
一共有三列:地址、區(qū)域、操作。在操作中我們可以看到我們聲明的驅(qū)動(dòng)的名字。
2、如果你驅(qū)動(dòng)模塊有加一些打印,可以直接看 log。
-
模塊
+關(guān)注
關(guān)注
7文章
2788瀏覽量
50399 -
驅(qū)動(dòng)
+關(guān)注
關(guān)注
12文章
1918瀏覽量
86942 -
Linux
+關(guān)注
關(guān)注
87文章
11511瀏覽量
213833
發(fā)布評(píng)論請(qǐng)先 登錄
Linux模塊相關(guān)命令 Linux驅(qū)動(dòng)模塊的編寫與掛載


電光調(diào)Q模塊調(diào)Q驅(qū)動(dòng)模塊電光模塊
DM368板子DDR大小更改后模塊掛載失敗
高亮度LED驅(qū)動(dòng)動(dòng)態(tài)及電路集錦
單模光模塊和多模光模塊之間的區(qū)別
智能功率模塊(IPM)的驅(qū)動(dòng)

如何實(shí)現(xiàn)模塊與模塊之間點(diǎn)對(duì)點(diǎn)的通信
如何使用Arduino輕松更改藍(lán)牙模塊名稱

更改HC 05藍(lán)牙模塊的名稱和密碼

電機(jī)驅(qū)動(dòng)模塊有哪些
如何使用M5StickC ESP32模塊通過(guò)按鈕更改LED亮度

驅(qū)動(dòng)模塊的作用
博途案例:模塊更新與接口更改的實(shí)現(xiàn)方法

評(píng)論