linux下編譯驅動需要系統原始碼,版本不一致可以編譯但是會導致編譯失敗。
例如我的系統版本號
3.17.4-301.fc21.x86_64
你得確定你的原始碼版本與這裡面乙個字元都不能錯才能編譯成功,比較坑的是一般linux再發布版本全都不帶原始碼。
原始碼的路徑是:
/lib/modules//lib/modules/3.17.4-301.fc21.x86_64/build
在我的fedora21 系統下這個build 是乙個軟連線,連線到
3.17.4-301.fc21.x86_64+debug
坑就坑在最後那幾個字,編譯後掛載驅動版本報錯。
解決辦法:
yum install kernel-devel
他會在
/usr/share/kernels/
建立乙個資料夾與系統版本號同名
0x002 連線到系統原始碼目錄
一般情況下不用執行這步,系統已經做好了軟連線。如果沒有的話就製作個連線連過去就行
ln -s /usr/src/kernels/3.17.4-301.fc21.x86_64 /lib/modules/3.17.4-301.fc21.x86_64/build
編譯Linux驅動模組
xz d linux 5.7.8.tar.xz tar xf linux 5.7.8.tar cd linux 5.7.8 make menuconfig 執行make menuconfig 報錯 error 1 unable to find the ncurses package.install ...
Linux驅動模組編譯模板
hello.c檔案 include include static int hello init void static void hello exit void module init hello init module exit hello exit module author vedic mod...
Linux核心驅動 模組編譯技巧
export arch arm export cross compile usr arm arm linux export subdirs dir 有時候我們無法獲取裝置的核心原始碼或者獲得的原始碼與裝置中的核心版本不同,此時如果安裝核心模組會提示exec format error錯誤,同時會在dm...