低內核編譯的高內核可以用嗎
『壹』 在高版本內核上編譯的程序在低版本內核運行會崩潰
glibc主版本號。
而且編譯的時候如果CGFLAGS和CXXFLAGS如果沒有-g選項的話用gdb調試無法看到變數名,默認是提示有問題。
『貳』 linux內核可從高版本往低版本編譯不例如現在我內核是3.2,想編譯為2.6,按照常規內核編譯方法可行么
應該可以。
唯一可能有問題的是,gcc的版本,如果有問題的話,建議安裝低版本的gcc
『叄』 linux編譯模塊的內核版本和現在使用的內核版本不一致的話,怎麼將現在使用的內核版本配成編譯所要的
修改Makefile中的KDIR參數,你現在的Makefile是怎樣寫的?
參考Makefile:
obj-m := moles.o
moles-objs := mymod.o
KDIR=/lib/moles/`uname -r`/build
PWD =$(shell pwd)
default:
make -C $(KDIR) M=$(PWD) moles
clean:
rm -rf *.o .* .cmd *.ko *.mod.c .tmp_version
『肆』 linux內核編譯問題
根據你的警告是提示,找不到這些驅動模塊,應該是沒有編譯驅動模塊或者沒有安裝驅動模塊造成的。
1、要確保你的內核包是完整的,而且是centos配套版本(因為各大發行版都會針對自己的情況對內核進行配置和改動,直接用kernel.org的原版內核可能會有些故障)
2、編譯前要 先make clean一下,把以前編譯剩下的東西清掉,重頭再來。
3、編譯時順序執行如下命令
make bzImage 生成內核映像
make moles 生成驅動模塊
make moles_install 安裝驅動模塊
make install 安裝內核
『伍』 在內核版本為高版本的linux系統中編譯的軟體能否在內核版本為低版本的linux系統中運行
不能吧!軟體都是向前兼容的。新的兼容舊的,但舊的一般不兼容新的
『陸』 ARM linux設備驅動,寫的驅動必須在編譯內核的時候添加到內核才能用嗎比如led驅動,我生成
linux2.6以後的內核在載入驅動的時候是可以動態添加的,不用每次添加之後都make zImage,
你只用先編譯一邊,然後就可以一直用這個做驅動的開發嘍,
只要生成了led.ko,然後insmod led.ko,就可以了,至於是不是用應用層,我覺得你還是先學一下應用層的東西吧,比如nuix系統高級編程之內的書,
『柒』 linux內核編譯問題:我用redhat9.0 編譯過2.6.2的內核現在想編譯2.6.28的內核 可以直接編譯嗎
可以!!!
http://..com/question/308930641.html
『捌』 其它Linux版本的內核,可以拿來就用嗎
我已經把這個專門的Linux版本的內核提取出來,想把它直接放到移動硬碟上的那個Linux里用,不知是否可行?
這個肯定不行的,你可以試試
怎麼裝,難度較大,我真幫不了
『玖』 linux內核模塊設計時,選用的內核版本需要與現在用的linux系統版本相同嗎
看你開發目標是什麼版本,這個版本要對應。
假設你學習開發 2.4.2 的內核模塊,你卻用 3.2.2 的內核源代碼肯定是不通用的。再假設你未來要給一個運行著 2.6.18 內核的設備開發一個驅動,你卻用 3.2.11 內核,開發出來的東西肯定也不行。
不過這個也兩說,有的地方其實還是有通用可能的。但有的地方輕微的版本不同就有兼容問題。
這主要看內核介面的變化情況了。有一段時間 ATI 的顯卡驅動就比較坑。因為總是跟不上內核的開發進度,老是不能兼容最新的內核……現在內核介面好很多,不需要每個版本都有變化了,但這個也很難說什麼時候又變了。所以最好還是你的目標是什麼版本,你就用什麼版本。一點都不差最好。
這里主要牽扯著測試的問題。你如果熟練了,那麼目標是什麼你就直接寫好了不用測試直接就能用也行。
『拾』 linux不同內核版本驅動編譯的問題
樓主你好。
首先你把你的***.ko的包放到/proc/sys/對應目錄
然後執行insmod 輸入絕對路徑 載入內核驅動
然後lsmod 查看一下有沒有這個內核模塊!如果能用的話 放到/etc/rc.local/配置文件即可!!!