Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1853091
  • 博文数量: 274
  • 博客积分: 2366
  • 博客等级: 大尉
  • 技术积分: 1880
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-22 09:37
文章分类

全部博文(274)

文章存档

2022年(1)

2020年(10)

2019年(7)

2018年(18)

2017年(26)

2016年(32)

2015年(43)

2014年(30)

2013年(44)

2012年(36)

2011年(17)

2010年(10)

分类: LINUX

2010-05-04 17:54:10

Debian下编译内核模块的方法
  改用Debian之后发现用之前在Red Hat下编译内核模块的Makefile不好使了,原因是在/lib/modules/`uname -r`/下没有了build目录,也没有内核的源代码。上网查了一些资料,说在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中的有什么区别,反正肯定是不一样,再研究。

阅读(2159) | 评论(0) | 转发(0) |
0

上一篇:debian源

下一篇:gdb

给主人留下些什么吧!~~