• 全志(allwinner)编译过程问题与解决方法汇总


    一、copy_file_range

    ./../misc/create_inode.c:395:18: error: conflicting types for 'copy_file_range'

    static errcode_t copy_file_range(ext2_filsys fs, int fd, ext2_file_t e2_file,

    修改文件:./out/sun8iw11p1/linux/common/buildroot/build/host-e2fsprogs-1.43.3/misc/create_inode.c

    注释掉:#inlucde <unistd.h>

    ./out/sun8iw11p1/linux/common/buildroot/build/e2fsprogs-1.43.3/misc/create_inode.c

    二、write

    问题:pipe.cpp:86:29: error: invalid conversion from 'char' to 'const void*' [-fpermissive]

    ::write(_fd_write, '', 1);

    修改调用为::write(_fd_write, “”, 1)

    三、update_mbr failed

    问题: 执行./build.sh pack时提示的问题

    unable to open file rootfs_nor.fex dl file rootfs_nor.fex size too large

    update_for_part_info -1 update mbr file fail

    ERROR: update_mbr failed

    方法一:安装make的3.81版本 ./build.sh distclean后重新编译

    方法二:在网上查的,试了没有成功

    根据出错信息:dl file rootfs.fex size too large。判断是rootfs.fex分区尺寸小了,改大就可以了!至于改多大合适,根据实际情况来确定了。(全志也没有明确给出尺寸的规定!实践中一般倍数放大,具体可以根据您所使用的FLASH的大小来灵活设置)

    本例相差不大,直接改为2倍就可以了!

    dl_file_size = 17920 sector

    part_size = 13568 sector

    W:perf1_r6_tinav2.1 argetallwinnersitar-perf1configssys_partition_nor.fex

    [partition]

        name         = rootfs

        ;size         = 13568

        size         = 27136

        downloadfile = "rootfs.fex"

    四、arm-linux-gnueabi-gcc

    问题:export PATH=$PATH:/home/wang/work/lichee/brandy/gcc-linaro/bin/

    /bin/sh: arm-linux-gnueabi-gcc: command not found

    scripts/Makefile.build:308: recipe for target 'scripts/mod/empty.o' failed

    make[2]: *** [scripts/mod/empty.o] Error 127

    五、intltool

    Your intltool is too old. You need intltool 0.35.0 or later. 最后拷贝系统的/usr/bin/intltool-update到构建目录,解决问题。

    ./out/sun8iw11p1/linux/common/buildroot/build/host-intltool-0.51.0/intltool-update

    ./out/sun8iw11p1/linux/common/buildroot/host/usr/bin/intltool-update

    六、automake

    问题:The error is with automake and perl v5.26.

    In perl v5.22, using a literal { in a regular expression was deprecated, and will emit a warning if it isn't escaped: {. In v5.26, this won't just warn, it'll cause a syntax error.

    A temporary work around is to edit automake file (buildroot/output/host/usr/bin/automake- and modify):

    =================================================

    goto line :3936 and change

    解决方法:替换3936行的:

    $text =~ s/${([^ =:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge;

  • 相关阅读:
    Open 5分钟:恺英收集闵懿
    Open 5分钟:摩卡全国宋啸飞
    互联网十大病毒集体名单曝光
    浩大游戏CEO谭群钊:2011将进一步加大海内拓展
    CustomSongSender.com:定制歌曲作为礼物
    米聊:跨运营商收费即时通讯
    说说Google Cloud Connect
    松下将于3月19日出售无需触碰的感触式便携电视
    Groupon中国网站贵客上线 获腾讯云锋基金投资
    诺基亚西门子并购摩托罗案前景堪忧
  • 原文地址:https://www.cnblogs.com/wangwangever/p/12882670.html
Copyright © 2020-2023  润新知