如果驅動模塊之間有依賴,需要更改模塊掛載順序,有三種方式:
1、增加一個優先級,比如 8。或者把自己的驅動模塊聲明成其他優先級,也就是不用 module_init 去聲明,可以用 fs_initcall
去聲明。
2、對于同一優先級的驅動模塊,可以在 Makefile 中更改其編譯和鏈接的順序,就會切換其掛載的順序。(靜態編譯)
3、動態加載驅動模塊:等 Linux 系統起來以后,手動執行 insmod 和 rmmod
即可掛載和卸載驅動,順序自己決定。測試成功后,再搞到內核中靜態編譯。
雖然可以更改掛載順序,但還是希望大家寫驅動模塊的時候,能夠做到高內聚、低耦合,自己的模塊最好不要依賴其他模塊,防止其他模塊加載失敗導致自己的模塊不可用。
如何看驅動掛載順序?有兩種方式:
1、找到編譯后的 Linux 內核源碼,根目錄下面有個 System.map 文件,這里記載了 Linux
內核所做的所有的事情,是按順序記載的(也有可能在其他輸出目錄)。
一共有三列:地址、區域、操作。在操作中我們可以看到我們聲明的驅動的名字。
2、如果你驅動模塊有加一些打印,可以直接看 log。
-
模塊
+關注
關注
7文章
2733瀏覽量
47747 -
驅動
+關注
關注
12文章
1851瀏覽量
85637 -
Linux
+關注
關注
87文章
11345瀏覽量
210391
發布評論請先 登錄
相關推薦
![](https://file1.elecfans.com/web2/M00/AC/1C/wKgaomVDV96AVLUfAAkHie-dcbI804.png)
DM368板子DDR大小更改后模塊掛載失敗
單模光模塊和多模光模塊之間的區別
一文帶你了解電機驅動芯片和電機驅動模塊
博途案例:模塊更新與接口更改的實現方法
![博途案例:<b class='flag-5'>模塊</b>更新與接口<b class='flag-5'>更改</b>的實現方法](https://file1.elecfans.com/web2/M00/AA/6E/wKgaomU51L6AM47PAABLCZ73WVU971.png)
評論