debian 编译linux内核源码,Debian下为本机编译内核模块的方法
改用Debian之后發現用之前在Red Hat下編譯內核模塊的Makefile不好使了,原因是在/lib/modules/`uname -r`/下沒有了build目錄,也沒有內核的源代碼。上網查了一些資料,說在Debian下編譯內核需要安裝內核頭文件。
apt-get install linux-headers-`uname -r`
把目前所使用的內核的頭文件安裝上,也同樣會安裝上build-essential, linux-kbuild等包,如果之前沒安裝過的話。然后在/usr/src下會出現一個linux-header-xxxxx的目錄,這個目錄里就是當前使用的內核的頭文件以及build模塊的時候所需要用到的scrīpts和Makefile,這些scrīpts是linux-kbuild中提供的。
然后在/usr/src下會出現一個linux的連接,指向linux-headers-xxxxx,寫Makefile的時候使用這個/usr/src/linux的連接就可以了。如下:
Makefile中
obj-m += xxxx.o
make -C /usr/src/linux M=$(PWD) modules
如果想使用Red Hat那種的Makefile不進行改動,那就在/lib/modules/`uname -r`下建立一個build連接,然后指向/usr/src/linux就可以了。
如果不想修改/查看內核源代碼的話,以上就能進行內核模塊的編譯了,如果想使用內核源碼的話,還需要安裝內核源代碼
apt-get install linux-sourcxxxxx
安裝之后會在/usr/src下出現一個linux-source-xxxx..bz2的包,解開里面就是內核源碼了。
另外,4.0的Debian中上面說的這些包都是以linux開頭,比如linux-source, linux-kbuild等,之前的版本好像是以開頭的,如kernel-source,kernel-headers之類的
還有一個東西沒太弄明白,就是linux-kernel-headers這個包,不知道是做什么用的,而且也不太明白/usr/include下的那個 linux目錄中的頭文件和/usr/src/linux-headers-xxxxx中的有什么區別,反正肯定是不一樣,再研究。
總結
以上是生活随笔為你收集整理的debian 编译linux内核源码,Debian下为本机编译内核模块的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: label里面的文字换行_批量识别图中文
- 下一篇: 日文转换为罗马音_手把手教你掌握韩语40