編譯生成ko文件
① 在linux中,.cpp文件可以編譯成.ko文件不是不是只有.c文件可以編譯成.ko文件
只能用c語言,不能用c++, 文件內容跟 cpp 後綴沒什麼關系,c語言寫的也可以用cpp,雖然一般cpp都是表示c++啦
② make moles編譯驅動模塊,只生成.o文件沒有.ko文件...這是怎麼回事
file1.o和file2.o指的是編譯出來的源文件有兩個分別是file1.c和file2.c
③ 編譯時內核怎麼生成的ko文件
從網上找一個編譯模塊的makefile,放到你的模塊的文件夾裡面,然後修改裡面的路徑指定編譯的內核,以及目標名稱。make就可以了。
④ linux驅動開發insmod hello.ko失敗
你好,記得當初也被這個問題困惑了,kernel mole 的insmod 的時候是需要版本驗證的(也可以使用方法繞過版本驗證)。你可以看看他到底是怎麼個版本驗證法,加深你的學習。
現在看看你的問題,你下載的kerne 是2.30.4的,在make的時候kernel_dir 指定也是這個。那編譯出來的mole 肯定也是也是2.30.4的版本了,然後你想把這個mole insmod 到的你pc linux 系統,那就肯定不行了。
1. 你可以用的linux系統內核來編譯你的hello 模塊。
2. 先寫個makefile:
obj-m:= hello.o
3. 然後 make -C /lib/moles/$(shell uname -r )/build M=`pwd` moles
4.編譯好了再insmode. 就能成功了。但是還要看的printk 的等級了,可能你還需要dmesg才能看道你的模塊的操作
5. 然後你可以把上面的過程集成道一個makefile里,直接在當前目錄make 就好了。
提醒下,假如你是用自己的系統作這些實驗,要當心點,有的mole可能會讓你的系統出現oops。
所以建議你安裝個虛擬機玩,或者真正要學的話,直接買個板子最好了。
最後看你下載了linux 2.30.4?是不是應該是2.6.30.4? 然後你的開發板是也是這個kernel?假如你是用板子,你現在可以把剛編好的模塊,push 到板子,在insmod就好了。
⑤ ubuntu codeblocks環境上怎麼設置,編譯出.ko文件
一、安裝過程: 1》安裝基本編譯環境 sudo apt-get install build-essential sudo apt-get install gdb 2》安裝codeblock sudo apt-get install codeblocks sudo apt-get install codeblocks-dbg sudo apt-get install wxformbuilder 還有個code...
⑥ 請人幫忙用linux生成個arm平台的.ko文件
在你的joydev.c同目錄下面創建一個Makefile文件。然後打開編譯,在裡面添加內容
obj-m :=joydev.o
KERNEL=/myfile/linux-3.0.50 #這個是你內核的所在目錄是什麼就填什麼
all:
make -C $(KERNEL) M=$(PWD) moled #這句話要以TAB鍵開頭,不能是空格鍵。
保存退出
然後在終端敲入make
⑦ 內核編譯,重新生成ko文件,需要make clean之後再make嗎
你可以使用自己的內核而不是發行版的內核, 另外也介紹了如何給內核打補丁, 從而方便增加新的功能.下面的工作我都在Ubuntu 6.10 Server ("Edgy Eft")和Ubuntu 6.06 Desktop ("Dapper Drake")上經過了測試.
我想首先要說的是文章中構建自定義內核的方式不是唯一的, 還有許多其它的方式, 這不過是我習慣的方式. 我不能保證使用後不會出現任何問題.
參考地址:http://linux.chinaunix.net/techdoc/system/2007/08/26/966343.shtml
