kobject与kset

来源:互联网 发布:网络准入控制 编辑:程序博客网 时间:2024/06/10 00:02

SYS文件夹:

firmware:系统中的固件

fs:描述系统中的文件系统

power:系统中的电源选项


kobject相关:






makefile改为:

ifneq ($(KERNELRELEASE),)  obj-m:=kobject.o  else  KERNELDIR:=/lib/modules/4.2.0-27-genericPWD:=$(shell pwd)  all:  make -C $(KERNELDIR)/build M=$(PWD) modules clean:  rm -rf *.ko *.o *.mod.c *.mod.o *.symvers  endif

然后make出错,网上查找原因说是现在的内核不支持函数参数为空,就在报错的函数入口参数加上void,然后编译通过

在当前文件下安装 insmod kobject.ko ,然后在 /sys下出现kobject文件夹,查看文件内文件, 有kobj_config文件,可是终端没有打印printk的信息

网上查找,原因是:printk是内核态命令,在ubuntu用户态当然看不到,只能看到printf的结果。
然后输入
dmesg -c   即可得到打印信息:

[15382.059198] kboject test init.
[15477.366784] have show.
[15477.366807] attrname:kobj_config.
[15695.977979] have show.
[15695.978000] attrname:kobj_config.

说明测试成功!


kset相关:





操作同上

fuhang@ubuntu:/sys/kset_p/kset_c$ sudo dmesg -c 
[sudo] password for fuhang: 
[17402.441509] have show.
[17402.441553] attrname:kobj_config.
[18377.065836] kobject test exit.
[18455.381529] kset test init.
[18455.381716] Filter: kobj kset_c.
[18455.381755] Name: kobj kset_c.
[18455.381832] uevent: kobj kset_c.
[18455.381854] ACTION=add.
[18455.381867] DEVPATH=/kset_p/kset_c.
[18455.381869] SUBSYSTEM=kset_name.

fuhang@ubuntu:/sys$ sudo dmesg -c
[18804.489492] kset test exit.
[18804.489560] Filter: kobj kset_c.
[18804.489566] Name: kobj kset_c.
[18804.489572] uevent: kobj kset_c.
[18804.489573] ACTION=remove.
[18804.489575] DEVPATH=/kset_c.
[18804.489576] SUBSYSTEM=kset_name.



0 0
原创粉丝点击