2-Linux驱动和内核模块编程.pptVIP

  • 2
  • 0
  • 约7.88千字
  • 约 39页
  • 2017-02-27 发布于湖北
  • 举报
Makefile 第一次进入Makefile,KERNELRELEASE没有被定义 执行else后面的语句,给KERNEL, PWD赋值 执行default,编译 Make -C选项进入内核源代码目录,找到顶层的Makefile M=PWD,返回当前目录执行Makefile文件 这就是第二次进入这个Makefile,在这次,由于KERNELRELEASE变量已经定义,因此不需要进入else语言,在这里,obj-m:=hello.o,在这里内核会帮你处理一切,这句话是告诉内核,需要从hello.o创建一个驱动模型(module) 装载驱动模块 装载模块 Insmod和modprobe可以用来装载模块 查看已加载模块 lsmod cat /proc/modules. Insmod和modprobe主要区别 modprobe会考虑要装载的模块是否引用了一些当前内核不存在的符号。如果有这类引用,modprobe会在当前模块路径中搜索定义了这些符号的其他模块,并同时将这些模块也装载到内核。如果在这种情况下使用insmod,该命令则会失败,并在系统日志文件中记录“unresolved symbols(未解析的符号)”消息。 卸载驱动模块 卸载模块 从内核中卸载模块可以用rmmod工具. 注意,如果内核认为该模块任然在使用状态,或者内核被禁止移除该模块,则无法移除该模块。 内核打印

文档评论(0)

1亿VIP精品文档

相关文档