网站大量收购独家精品文档,联系QQ:2885784924

《Linux设备节点创建》内核kobject上报uevent过滤规则选读.docx

《Linux设备节点创建》内核kobject上报uevent过滤规则选读.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Linux设备节点创建》内核kobject上报uevent过滤规则/tankaarticle/details明:本文基于Android2.3和Linux2.6,其余版本仅供参考。Android2.3及Linux2.6.29内核模拟器版本编译与调试阅读本文前请阅读:Linux总线、设备、驱动与设备节点创建、用户测试程序?一、netlink监听程序testnet.c[cpp]?view plain?copy?#include?stdio.h??#include?stdlib.h??#include?string.h??#include?errno.h??#include?sys/types.h??#include?asm/types.h??//该头文件需要放在netlink.h前面防止编译出现__kernel_sa_family未定义??#include?sys/socket.h????#include?linux/netlink.h????void?MonitorNetlinkUevent()??{??????int?sockfd;??????struct?sockaddr_nl?sa;??????int?len;??????char?buf[4096];??????struct?iovec?iov;??????struct?msghdr?msg;??????int?i;????????memset(sa,0,sizeof(sa));??????sa.nl_family=AF_NETLINK;??????sa.nl_groups=NETLINK_KOBJECT_UEVENT;??????sa.nl_pid?=?0;//getpid();?both?is?ok??????memset(msg,0,sizeof(msg));??????iov.iov_base=(void?*)buf;??????iov.iov_len=sizeof(buf);??????msg.msg_name=(void?*)sa;??????msg.msg_namelen=sizeof(sa);??????msg.msg_iov=iov;??????msg.msg_iovlen=1;????????sockfd=socket(AF_NETLINK,SOCK_RAW,NETLINK_KOBJECT_UEVENT);??????if(sockfd==-1)??????????printf(socket?creating?failed:%s\n,strerror(errno));??????if(bind(sockfd,(struct?sockaddr?*)sa,sizeof(sa))==-1)??????????printf(bind?error:%s\n,strerror(errno));??????while(1){????????memset(buf,0,sizeof(buf));????????len=recvmsg(sockfd,msg,0);????????if(len0){}??????????//printf(receive?error\n);????????else?if(len32||lensizeof(buf))??????????printf(invalid?message);????????for(i=0;ilen;i++)??????????if(*(buf+i)==\0)??????????????buf[i]=\n;????????printf(received?%d?bytes\n%s\n,len,buf);??????}??}????int?main(int?argc,char?**argv)??{??????MonitorNetlinkUevent();??????return?0;??}??Android.mk[plain]?view plain?copy?LOCAL_PATH:=?$(call?my-dir)??include?$(CLEAR_VARS)????LOCAL_SRC_FILES:=?\??????testnet.c????LOCAL_SHARED_LIBRARIES?:=?\??????libutils?????LOCAL_MODULE:=?testnet????LOCAL_MODULE_TAGS?:=?optional????include?$(BUILD_EXECUTABLE)??二、如下是添加打印后的信息(Android用户空间udev为ueventd,属于init的一个软连接)1.总线驱动root@android:/data/tank # insmod tes

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档