提問:我想要知道Linux系統中內核內置的模塊,以及每個模塊有哪些參數。有什麼方法可以得到內置模塊和設備驅動的列表,以及它們的詳細信息呢?
現代Linux內核正在隨著時間變化而迅速增長,以支持大量的硬件、文件系統和網絡功能。在此期間,“可加載模塊(loadable kernel modules,[LKM])”的引入防止內核變得越來越臃腫,以及在不同的環境中靈活地擴展功能及硬件支持,而不必重新構建內核。
最新的Linux發行版的內核只帶了相對較小的“內置模塊(built-in modules)”,其余的特定硬件驅動或者自定義功能作為“可加載模塊”來讓你有選擇地加載或卸載。
內置模塊被靜態地編譯進了內核。不像可加載內核模塊可以動態地使用modprobe、insmod、rmmod、modinfo或者lsmod等命令地加載、卸載、查詢模塊,內置的模塊總是在啟動時就加載進了內核,不會被這些命令管理。
找出內置模塊列表
要得到內置模塊列表,運行下面的命令。
復制代碼代碼如下:$ cat /lib/modules/$(uname -r)/modules.builtin
你也可以用下面的命令來查看有哪些內置模塊:
找出內置模塊參數
每個內核模塊無論是內置的還是可加載的都有一系列的參數。對於可加載模塊,modinfo命令可以顯示它們的參數信息。然而這個命令對內置模塊沒有用。你會得到下面的錯誤。
復制代碼代碼如下:modinfo: ERROR: Module XXXXXX not found.
如果你想要查看內置模塊的參數,以及它們的值,你可以在 /sys/module 下檢查它們的內容。
在 /sys/module目錄下,你可以找到內核模塊(包含內置和可加載的)命名的子目錄。進入每個模塊目錄,這裡有個“parameters”目錄,列出了這個模塊所有的參數。
比如你要找出tcp_cubic(內核默認的TCP實現)模塊的參數。你可以這麼做:
復制代碼代碼如下:$ ls /sys/module/tcp_cubic/parameters
接著閱讀這個文件查看每個參數的值。
復制代碼代碼如下:$ cat /sys/module/tcp_cubic/parameters/tcp_friendliness
這篇文章就為大家介紹到這,相信大家現在一定知道如何獲得Linux系統的內置模塊和設備驅動列表了,希望大家喜歡這篇文章。