ubuntu12.04->mini2440移植內核模塊

準備移植驅動【內核模塊】,從hello開始,

摘:Linux設備驅動屬於內核的一部分,Linux內核的一個模塊可以以兩種方式被編譯和加載:

  (1)直接編譯進Linux內核,隨同Linux啓動時加載;

  (2)編譯成一個可加載和刪除的模塊,使用insmod加載(modprobe和insmod命令類似,但依賴於相關的配置文件),rmmod刪除。這種方式控制了內核的大小,而模塊一旦被插入內核,它就和內核其他部分一樣。

摘:最近開始搞內核模塊的交叉編譯,意思是在pc機上面編寫能在arm上面insmod的模塊,以下是注意點:

1)打開2440開發板自帶的光盤,把開發板操作系統的內核拷貝到電腦linux系統下面,名稱爲linux-2.6.32.2-mini2440-20110413.tar,解壓,發現裏面有config_mini2440_w35將這個文件重命名爲.config

2)轉到交叉編譯鏈目錄下,創建硬鏈接ln arm—angstrom——gnueabi-objdump arm-linux-objdump

ln arm—angstrom——gnueabi-objcopy arm-linux-objcopy ln arm—angstrom——gnueabi-nm arm-linux-nm

下一步make要用到這個

3)轉回mini2440的內核目錄,make

這個時候應該就沒有問題了,必須要編譯這個內核,因爲編譯內核模塊代碼的時候,需要用到此編譯過程中的.o文件,如果不編譯,會出現很多找不到文件的錯誤,及其鬱悶!!

現在就可以寫arm內核模塊了。

Kconfig產生menuconfig上面的選項

make menuconfig產生./config文件,make 產生vmlinuz文件。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章