2016-05-19 130 views
0

我正在使用嵌入式Linux系統,我沒有內核源代碼或頭文件。另外我不能簡單地使用另一個內核。爲不同的內核編譯內核模塊

但是,我獲得了另一個內核版本的內核源代碼,並且可以爲該內核編譯該模塊。但我無法在我的目標系統上加載該模塊,因爲dmesg說'版本魔術'

所以,我可以以某種方式使模塊引用另一個內核?關於內核版本的信息在哪裏讀取?

我的目標系統的內核版本「11年3月18日,Tegra的」內核源代碼是19年3月18日..

+0

如果您沒有內核源代碼,請問誰給了您設備的人提供它們。這是他們的法律義務。 (很可能,他們會將你指向github並告訴從那裏下載,你現在可能可以下載)。 –

回答

0

當然,如果該模塊的工作原理與不變兩種內核版本的計劃,才能取得成功,情況往往如此;那麼你可以在你的3.18.19內核源的頂級Makefile中植入SUBLEVEL = 11

0

前段時間在其他系統上做過同樣的事情 您需要下載並使用其配置編譯3.18.11內核。 轉到https://www.kernel.org/pub/linux/kernel/和下載11年3月18日 解壓縮內核到/usr/src/linux-3.18.11,cd到它,然後複製當前配置

make mrproper zcat /proc/config.gz >.config make oldconfig make

您編譯內核後,你需要創建2個符號連接在/ usr/src目錄

ln -s linux-3.18.11 linux-3.18.11-tegra ln -s linux-3.18.11 linux

現在,你應該能夠編譯您的模塊:

make -C /lib/modules/$(uname -r)/build M=$(pwd) module