kobject与kset

SYS文件夹:

firmware:系统中的固件

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

power:系统中的电源选项


kobject相关:






makefile改为:

ifneq ($(KERNELRELEASE),)  
obj-m:=kobject.o  
else  
KERNELDIR:=/lib/modules/4.2.0-27-generic
PWD:=$(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
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月光下的麦克

您的犒赏是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值