(2)然後在linux核心原始碼目錄/usr/src/linux-source-2.6.32目錄下面用老的方法配置好linux核心:
root@jiq-desktop:/usr/src/linux-source-2.6.32#make oldconfig
(3)然後執行:
root@jiq-desktop:/usr/src/linux-source-2.6.32#make bzimage
這個過程大概需要乙個小時左右。。。執行完成後會在當前目錄下面生成乙個檔案vmlinux.o
(4)然後編譯模組:
root@jiq-desktop:/usr/src/linux-source-2.6.32#make modules
這個過程又是大概乙個小時。。。
(5)然後便可以安裝模組了:
root@jiq-desktop:/usr/src/linux-source-2.6.32#make modules_install
這個過程大概兩分鐘:
以上步驟完成以後,會在/lib/modules目錄下面生成乙個資料夾linux-2.6.32-24-generic,至此你差不多已經成了,因為你已經構造好了核心樹!!!
注意裡面各種變數的顏色額~有興趣的讀者可以自己去研究一下這個檔案,裡面唯一和hello.c相關的部分就是
obj-m := hello.o 那一行了!第5行表明了核心樹build目錄的位置。
下面在當前目錄下面執行
root@jiq-desktop:/usr/jiq/driverproject#make
生成以下檔案
然後利用insmod命令將模組插入到核心樹 中:
root@jiq-desktop:/usr/jiq/driverproject#insmod ./hello.ko
模組裝載觸發hello.c的init()方法,輸出hello world,如果沒有的話,是因為其將輸出放到/var/log/syslog中去了。開啟便可以看見你的結果!
解除安裝目標模組命令是:
root@jiq-desktop:/usr/jiq/driverproject#rmmod ./hello.ko
至此你已經成功邁出了linux驅動開發的第一步~
構造核心原始碼樹
編寫驅動程式時,需要核心原始碼樹的支援。核心原始碼樹時從核心源 編譯得到的。下面開始構造核心源 的步驟。以ubuntu為例子 注意 原始碼樹核心的版本要和驅動程式執行的目標平台的核心版本一致 apt cache search linux source 搜尋核心版本 tar xvf linux sou...
Linux核心原始碼樹目錄
arch 包含和硬體體系結構相關的 每種平台佔乙個相應的目錄。和32位pc相關的 存放在i386目錄下,其中比較重要的包括kernel 核心核心部分 mm 記憶體管理 math emu 浮點單元 lib 硬體相關工具函式 boot 引導程式 pci pci匯流排 和power cpu相關狀態 blo...
構建linux2 6 32核心樹
系統環境 rhel6 核心版本 注意 下乙個和你當前執行版本一樣的核心,這裡可以看到我當前執行的核心版本是2.6.32 279.el6.x86 64,好,那我就下乙個2.6.32.x的版本 必須有和當前執行的版本有同樣的版本號,否則在載入模組時候insmod error inserting o l ...