全志(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, '\0', 1);

修改調用為::write(_fd_write, “\0”, 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\target\allwinner\sitar-perf1\configs\sys_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/\$\{([^ \t=:+\{\}]+)\}/substitute_ac_subst_variables_worker ($1)/ge;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM