[英]How to compile a linux kernel module for different linux kernel
[英]Compile Kernel Module for different Kernel
我正在使用嵌入式linux系統,該系統也沒有內核源或標頭。 我也不能簡單地使用另一個內核。
但是我得到了另一個內核版本的內核源代碼,並且可以為該內核編譯該模塊。 但是我無法在目標系統上加載該模塊,因為dmesg在說“版本魔術”
所以,我能以某種方式使模塊引用另一個內核嗎? 在哪里讀取有關內核版本的信息?
我的目標系統的內核版本為“ 3.18.11-tegra”,內核源代碼為3.18.19 ..
當然,只有在兩個內核版本均未更改該模塊的情況下,您的計划才能成功(通常是這種情況)。 那么您可以在3.18.19內核源代碼的頂級Makefile
中植入SUBLEVEL = 11
。
前段時間在不同的系統上做了同樣的事情,您將需要使用其配置下載並編譯3.18.11內核。 轉到https://www.kernel.org/pub/linux/kernel/並下載3.18.11將內核解壓縮到/usr/src/linux-3.18.11,將其cd壓縮到其中,然后復制當前配置
make mrproper zcat /proc/config.gz >.config make oldconfig make
編譯內核后,需要在/ usr / src下創建2個符號鏈接
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.