I.MX6 Android can-utils 移植

简介: /******************************************************************* * I.MX6 Android can-utils 移植 * 说明: * 由于最近要用到CAN,于是先移植一下can-tuils来看一下情况。
/*******************************************************************
 *                  I.MX6 Android can-utils 移植
 * 说明:
 *     由于最近要用到CAN,于是先移植一下can-tuils来看一下情况。
 *
 *                                  2016-8-1 深圳 南山平山村 曾剑锋
 ******************************************************************/


一、获取源码:
    https://github.com/linux-can/can-utils

二、错误现象:
    target thumb C: slcan_attach <= /home/myzr/myandroid/packages/apps/can-utils/slcan_attach.c
    /home/myzr/myandroid/packages/apps/can-utils/slcan_attach.c: In function 'main':
    /home/myzr/myandroid/packages/apps/can-utils/slcan_attach.c:81:14: error: 'N_SLCAN' undeclared (first use in this function)
    /home/myzr/myandroid/packages/apps/can-utils/slcan_attach.c:81:14: note: each undeclared identifier is reported only once for each function it appears in
    make: *** [out/target/product/sabresd_6dq/obj/EXECUTABLES/slcan_attach_intermediates/slcan_attach.o] Error 1
    make: Leaving directory `/home/myzr/myandroid'

三、查看N_SLCAN情况:
    1. 直接查看:
        myzr@myzr:~/myandroid/packages/apps/can-utils$ grep N_SLCAN * -R
        configure.ac:AC_CHECK_DECL(N_SLCAN,,
        configure.ac:    [AC_DEFINE([N_SLCAN], [17], [N_SLCAN])]
        slcan_attach.c:    int ldisc = N_SLCAN;
        slcand.c:    int ldisc = N_SLCAN;
    2. 执行autogen.sh再查看:
        myzr@myzr:~/myandroid/packages/apps/can-utils$ ./autogen.sh 

        ----------
        autoreconf
        ----------

        Can't exec "libtoolize": No such file or directory at /usr/bin/autoreconf line 196.
        Use of uninitialized value in pattern match (m//) at /usr/bin/autoreconf line 196.
        configure.ac:9: installing `config/autoconf/config.guess'
        configure.ac:9: installing `config/autoconf/config.sub'
        configure.ac:22: installing `config/autoconf/install-sh'
        configure.ac:22: installing `config/autoconf/missing'
        GNUmakefile.am:25: Libtool library used but `LIBTOOL' is undefined
        GNUmakefile.am:25:   The usual way to define `LIBTOOL' is to add `LT_INIT'
        GNUmakefile.am:25:   to `configure.ac' and run `aclocal' and `autoconf' again.
        GNUmakefile.am:25:   If `LT_INIT' is in `configure.ac', make sure
        GNUmakefile.am:25:   its definition is in aclocal's search path.
        GNUmakefile.am: installing `config/autoconf/depcomp'
        autoreconf: automake failed with exit status: 1
        myzr@myzr:~/myandroid/packages/apps/can-utils$ grep N_SLCAN * -R
        autom4te.cache/output.1:ac_fn_c_check_decl "$LINENO" "N_SLCAN" "ac_cv_have_decl_N_SLCAN" "$ac_includes_default"
        autom4te.cache/output.1:if test "x$ac_cv_have_decl_N_SLCAN" = xyes; then :
        autom4te.cache/output.1:$as_echo "@%:@define N_SLCAN 17" >>confdefs.h
        autom4te.cache/output.0:ac_fn_c_check_decl "$LINENO" "N_SLCAN" "ac_cv_have_decl_N_SLCAN" "$ac_includes_default"
        autom4te.cache/output.0:if test "x$ac_cv_have_decl_N_SLCAN" = xyes; then :
        autom4te.cache/output.0:$as_echo "@%:@define N_SLCAN 17" >>confdefs.h
        autom4te.cache/traces.0:m4trace:configure.ac:86: -1- m4_pattern_allow([^N_SLCAN$])
        autom4te.cache/traces.1:m4trace:configure.ac:86: -1- AC_DEFINE_TRACE_LITERAL([N_SLCAN])
        autom4te.cache/traces.1:m4trace:configure.ac:86: -1- m4_pattern_allow([^N_SLCAN$])
        autom4te.cache/traces.1:m4trace:configure.ac:86: -1- AH_OUTPUT([N_SLCAN], [/* N_SLCAN */
        autom4te.cache/traces.1:@%:@undef N_SLCAN])
        configure:ac_fn_c_check_decl "$LINENO" "N_SLCAN" "ac_cv_have_decl_N_SLCAN" "$ac_includes_default"
        configure:if test "x$ac_cv_have_decl_N_SLCAN" = xyes; then :
        configure:$as_echo "#define N_SLCAN 17" >>confdefs.h
        configure.ac:AC_CHECK_DECL(N_SLCAN,,
        configure.ac:    [AC_DEFINE([N_SLCAN], [17], [N_SLCAN])]
        slcan_attach.c:    int ldisc = N_SLCAN;
        slcand.c:    int ldisc = N_SLCAN;
        myzr@myzr:~/myandroid/packages/apps/can-utils$ 

四、解决办法:
    slcan_attach.c slcand.c 中添加 #define N_SLCAN 17 宏定义。

五、测试命令:
    root@android:/data/local # ./cangen                                            

    cangen: generate CAN frames

    Usage: cangen [options] <CAN interface>
    Options: -g <ms>       (gap in milli seconds - default: 200 ms)
             -e            (generate extended frame mode (EFF) CAN frames)
             -f            (generate CAN FD CAN frames)
             -b            (generate CAN FD CAN frames with bitrate switch (BRS))
             -R            (send RTR frame)
             -m            (mix -e -f -b -R frames)
             -I <mode>     (CAN ID generation mode - see below)
             -L <mode>     (CAN data length code (dlc) generation mode - see below)
             -D <mode>     (CAN data (payload) generation mode - see below)
             -p <timeout>  (poll on -ENOBUFS to write frames with <timeout> ms)
             -n <count>    (terminate after <count> CAN frames - default infinite)
             -i            (ignore -ENOBUFS return values on write() syscalls)
             -x            (disable local loopback of generated CAN frames)
             -v            (increment verbose level for printing sent CAN frames)

    Generation modes:
    'r'        => random values (default)
    'i'        => increment values
    <hexvalue> => fix value using <hexvalue>

    When incrementing the CAN data the data length code minimum is set to 1.
    CAN IDs and data content are given and expected in hexadecimal values.

    Examples:
    cangen vcan0 -g 4 -I 42A -L 1 -D i -v -v   (fixed CAN ID and length, inc. data)
    cangen vcan0 -e -L i -v -v -v              (generate EFF frames, incr. length)
    cangen vcan0 -D 11223344DEADBEEF -L 8      (fixed CAN data payload and length)
    cangen vcan0 -g 0 -i -x                    (full load test ignoring -ENOBUFS)
    cangen vcan0 -g 0 -p 10 -x                 (full load test with polling, 10ms timeout)
    cangen vcan0                               (my favourite default :)

    root@android:/data/local # 

 

目录
打赏
0
0
0
0
12
分享
相关文章
【Android 应用开发】Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件(二)
【Android 应用开发】Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件(二)
589 0
【Android 应用开发】Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件(二)
【Android 应用开发】Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件(一)
【Android 应用开发】Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件
601 0
Android11.0(R) MTK6765 TP 驱动移植调试排错过程
Android11.0(R) MTK6765 TP 驱动移植调试排错过程
536 0
Android O/P/Q 版本移植iperf网络性能测试工具
Android O/P/Q 版本移植iperf网络性能测试工具
539 0
Android10(Q) GMS 全家桶移植
Android10(Q) GMS 全家桶移植
275 0
嵌入式实践教程--Android音频开发日志(一)—移植FFmpeg
嵌入式实践教程--Android音频开发日志(一)—移植FFmpeg
嵌入式实践教程--Android音频开发日志(一)—移植FFmpeg

热门文章

最新文章

  • 1
    Android历史版本与APK文件结构
    11
  • 2
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    21
  • 3
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
    13
  • 4
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
    2
  • 5
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    3
  • 6
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    3
  • 7
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    2
  • 8
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    6
  • 9
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
    3
  • 10
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    1
  • 1
    android FragmentManager 删除所有Fragment 重建
    18
  • 2
    Android实战经验之Kotlin中快速实现MVI架构
    30
  • 3
    即时通讯安全篇(一):正确地理解和使用Android端加密算法
    35
  • 4
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
    42
  • 5
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    142
  • 6
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    46
  • 7
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    58
  • 8
    Android历史版本与APK文件结构
    159
  • 9
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    48
  • 10
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    41
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等