linux logger.c移植问题

1 篇文章 0 订阅
1 篇文章 0 订阅

        andriod的logcat工具很好用,可以将其移植到linux上,方便程序调试。logcat在linux上分为两部分:logcat工具和内核驱动logger。logger驱动在3.x内核中位于/drivers/staging/andriod中,如果使用内核版本是3.x,直接编译即可。如果内核版本使用4.x,会编译报错,主要是4.x内核的部分结构体进行了调整,所以需要修改logger.c。本想直接使用4.x内核中的logger.c,不过很遗憾,从4.0开始logger被移除了staging,所以只能修改3.x中的logger.c。我使用的logger.c是3.14.12中的,其它版本下的应该大同小异吧。主要修改点如下:

  1. 包含头文件:#include <uio.h>   
  2. 修改函数logger_aio_write:

         入参改为struct kiocb *iocb和struct iov_iter *iter;  //根据4.x内核file_operations中write_iter原型定义修改

         iocb->ki_nbytes改为iter->count  //4.0内核无ki_nbytes字段,替换字段为iter->count

         nr_segsiov移到iter结构中,前面加iter->即可

    3. file_operations中异步接口改为write_iter

经过上面三处修改应该就能编译了,生成ko文件insmod试试吧,体验logcat的完美打印控制。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值