免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1791 | 回复: 2
打印 上一主题 下一主题

[内核入门] 内核编译错误 [复制链接]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:03
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-07-24 20:33 |只看该作者 |倒序浏览
本帖最后由 shihyu 于 2015-07-24 20:36 编辑

我是做安卓开发, 最近使用 ftrace   想cat  available_filter_functions

android kernel 是 3.10.49 ,  cat available_filter_functions 会出现下面错误 , 但是我另外版本 android kernel 3.10.69  可以正常使用

adb shell cat /sys/kernel/debug/tracing/available_filter_functions
/system/bin/sh: cat: /sys/kernel/debug/tracing/available_filter_functions: No such device



于是我把 android kernel 3.10.69  ftrace 代码 porting 到 android kernel 3.10.49
  1. kernel/kernel/trace/trace_sched_wakeup.c: In function 'start_wakeup_tracer':                                                                                
  2. kernel/kernel/trace/trace_sched_wakeup.c:546:2: warning: passing argument 1 of 'register_trace_sched_migrate_task' from incompatible pointer type [enabled by default]
  3. error, forbidden warning: trace_sched_wakeup.c:546
  4. make[3]: *** [kernel/trace/trace_sched_wakeup.o] Error 1
  5. make[2]: *** [kernel/trace] Error 2
  6. make[2]: *** Waiting for unfinished jobs....
复制代码
可是从上面讯息看不出是哪trace_sched_wakeup.c 造成 build error,
实在搞不明白是什么原因 , 我目前疑惑点有两个地方 , 还有个问题

1.  build error 为什么还是可以编译出 trace_sched_wakeup.o
2.  register_trace_sched_migrate_task 再整个内核代码中根本没有实现这函数 , 为什么3.10.6也可以编译过?
3. 我现在被指派弄android kernel 部份我发现很多时候搞不懂 Makefile Kconfig  之类 , 初学kernel 要去研究内核编译结构嘛?
还是应该专注再代码学习?

trace_sched_wakeup.c
  1. static void start_wakeup_tracer(struct trace_array *tr)
  2. {
  3.         int ret;

  4.         ret = register_trace_sched_wakeup(probe_wakeup, NULL);
  5.         if (ret) {
  6.                 pr_info("wakeup trace: Couldn't activate tracepoint"
  7.                         " probe to kernel_sched_wakeup\n");
  8.                 return;
  9.         }

  10.         ret = register_trace_sched_wakeup_new(probe_wakeup, NULL);
  11.         if (ret) {
  12.                 pr_info("wakeup trace: Couldn't activate tracepoint"
  13.                         " probe to kernel_sched_wakeup_new\n");
  14.                 goto fail_deprobe;
  15.         }

  16.         ret = register_trace_sched_switch(probe_wakeup_sched_switch, NULL);
  17.         if (ret) {
  18.                 pr_info("sched trace: Couldn't activate tracepoint"
  19.                         " probe to kernel_sched_switch\n");
  20.                 goto fail_deprobe_wake_new;
  21.         }

  22.         ret = register_trace_sched_migrate_task(probe_wakeup_migrate_task, NULL);
  23.         if (ret) {
  24.                 pr_info("wakeup trace: Couldn't activate tracepoint"
  25.                         " probe to kernel_sched_migrate_task\n");
  26.                 return;
  27.         }

  28.         wakeup_reset(tr);

  29.         /*
  30.          * Don't let the tracer_enabled = 1 show up before
  31.          * the wakeup_task is reset. This may be overkill since
  32.          * wakeup_reset does a spin_unlock after setting the
  33.          * wakeup_task to NULL, but I want to be safe.
  34.          * This is a slow path anyway.
  35.          */
  36.         smp_wmb();

  37.         if (start_func_tracer(is_graph()))
  38.                 printk(KERN_ERR "failed to start wakeup tracer\n");

  39.         return;
  40. fail_deprobe_wake_new:
  41.         unregister_trace_sched_wakeup_new(probe_wakeup, NULL);
  42. fail_deprobe:
  43.         unregister_trace_sched_wakeup(probe_wakeup, NULL);
  44. }
复制代码

论坛徽章:
0
2 [报告]
发表于 2015-10-28 10:51 |只看该作者
我也遇到了相同的问题。我的测试机是nexus4  kernel版本是msm.git-android-msm-mako-3.4-kitkat-mr2

论坛徽章:
0
3 [报告]
发表于 2015-11-02 12:17 |只看该作者
哪里能下到到 android kernel 3.10.49和android kernel 3.10.69 ?我想对比分析一下产生这个问题的原因。由于我的设备是nexus4,官方提供的最高内核版本是3.4.0,我只能想办法找到原因,然后修改内核。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP