网上高人说学习内核 通过写module开始 那是一个捷径
今天就初步的学习了下 module 就写篇以防以后查询吧
主要是参考下面得网页 来写的 还是挺好的
但是按照他第二章步骤来出现了很多问题 不得不依从从网上查找资料 慢慢解决
如下
首先得把 hello module编译成功吧
首先得明白一个问题 这个hello module是用运行的内核来编译的 具体
说就是 如果你电脑运行的内核是2.6.24 而你自己做arm开发用的内核是2.6.12
你做的hello module 实验是跟2.6.12 是没相关的 除非你吧 .ko文件下载到
arm板子上 在运行 不知道我说明白了没有??
然后在写Makefile 文件的时候,你不能跟他写了 要换成下面的
ifneq ($(KERNELRELEASE),) obj-m := hello.o else KERNELDIR ?= /lib/modules/$(shell uname -r)/build PWD :=$(shell pwd) default: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules endif
|
然后输make 的时候 你就不这样写了make -C /usr/src/linux-`uname -r` SUBDIRS=$PWD modules (如果你直接复制黏贴的 话 是有问题的 在你黏贴后要吧 命令行的开头的空格删了 再加TAB 建 这是makfile规定的 命令前只能是TAB)
直接make就行了
就能生成.ko文件了
然后一个问题就是 在你insmod 的时候 你的终端上不显示printk要输出的东西
解决办法就是 你另外打开一个一个终端 输命令 sudo su - 在输 cat /proc/kmsg
就可以 至于说直接在一个终端上显示 好像要修改什么syslogd和klogd 具体我要不知道 我晚上试试吧 到此为止吧
阅读(1339) | 评论(0) | 转发(0) |