Linux
為什麼要修改 linux 核心而不是創建核心模組?
我有一塊開發板,上面安裝了舊版本的 Linux。供應商為設備提供了一個經過大量修改的 linux 核心、一些可載入核心模組和一些範例軟體的映像。
我想在設備上安裝較新版本的 linux 核心,但供應商對此不提供支持,因為他們修改後的 linux 核心基於較舊的核心版本。
我不明白的是,當您可以通過將驅動程序編寫為核心模組來使核心與執行它的設備兼容時,為什麼要開始破解 linux 核心。它可以輕鬆地為任何核心版本重新編譯而不會出現問題。這樣,如果供應商只支持某個核心版本,你就會“卡住”:(
但是我錯過了一定有一些原因,因為我看到許多項目使用這種方法來獲取核心的某個版本,並對其進行大量修改以適應他們的開發板。我會感興趣的是:
- 為什麼要修改 linux 核心而不是創建核心模組?
- 如果我需要執行較新的核心,但我沒有得到供應商的支持,該怎麼辦(設備驅動程序應該在較新版本的核心上工作……)
這個問題有很多假設。
這裡有一些原因。
核心介面不穩定,因此一個版本的模組可能無法為不同的版本編譯。
核心可能不會公開所需的工具。
核心可能會公開所需的設施,但不會以可接受的方式公開,例如要求模組具有特定的許可證。
編寫程式碼的人發現以這種方式編寫程式碼更快。
至於你的選擇,如果你需要一個更新的核心。
- 找到已經移植程式碼的其他人
- 自己移植
- 付錢給別人來移植它(可能不需要錢,啤酒,奉承和好奇心可能會起作用)。