查看: 5220|回复: 1

toolchain、Kernel、buildroot遇到的问题小结

[复制链接]

该用户从未签到

发表于 2017-5-12 21:40:35 | 显示全部楼层 |阅读模式
分享到:
拿到板子有一周了就先不上开箱照了,板卡的版本号是V5_0_1好像比其他人新。我在toolchainKernelbuildroot上耗费了大量时间。主要是因为wiki.espressobin.net上的文档都是在GCC5.*下编译的。而Ubuntu16.10GCC6.*。下面小结一下,可能有一些问题其他人也遇到过。希望能抛砖引玉。大神们请斧正。软件环境环境:
1vritualbox5.1.22
2Ubuntu16.10gcc版本6.2(后面文章必须要用到16.10所以用16.10编译的)


一、toolchain
Qtoolchain问题
A:Toolchain 按照网页教程基本没啥难度,设置完毕后通过以下3个命令检查一下是否生效即可。
  1. espresso@bin:~$ echo $PATH
  2. espresso@bin:~$ export
  3. espresso@bin:~$ aarch64-linux-gnu-gcc -v
复制代码
Shellexport实现:
echo $PATH 用于查看当前PATH的值
export 用于查看其路径
01.jpg

02.jpg
即可确定是否没问题。



二、kernel篇
Q:编译过程中偶然发现目录显示arch/x86 ,显然不对
A:不知道为啥CROSS_COMPILE设定没生效(PATH在.profile里写入就生效了而exportCROSS_COMPILE和ARCH前面通过命令查看了也生效了啊)。干脆直接在make命令后加上CROSS_COMPILE路径
  1. sudo make –j3 ARCH=arm64 CROSS_COMPILE=/home/espresso/toolchain/gcc-linaro-5.2-2015.11-2-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
复制代码
现在目录正常了。
03.jpg

Q: make mvebu_v8_lsp_defconfig出错
04.jpg
A:发现 Kernel根目录的.config里面内容也不对,看了一下指向的代码的具体内容
kernel/4.48/linux-marvel/Makefile:531
05.jpg
kernel/4.48/linux-marvel/script/kconfig/Makefile:110
06.jpg

07.jpg
不知道为啥ARCH=arm64没生效(跟我在.profile里设定没在.bashrc里设定有关?)所以呆萌地去x86的arch目录里去找mvebu_v8_lsp_defconfig[size=13.63636302948px]当然找不到了。所以要告知它。执行make加上ARCH参数就OK了。
  1. sudo make ARCH=arm64 mvebu_v8_lsp_defconfig
复制代码
三、 buildroot
Q:buildroot少数软件下载不下来。
A: 少数软件所在的网址被墙。如图就是其中之一。
08.jpg
A:换时间换网络下载。

Q: 错误gdate.c:2497:7: error:format not a string literal, format string not checked[-Werror=format-nonliteral]
09.jpg
A: 参考:https://dev.openwrt.org/ticket/22193
修改gdate.c的代码
  1. +--- glib/gdate.c.orig      2014-12-19 21:49:48.000000000 +0000

  2. ++++ glib/gdate.c

  3. +@@ -2494,7 +2494,10 @@ g_date_strftime (gchar       *s,

  4. +        * recognize whether strftime actually failed or just returned "".

  5. +        */

  6. +       tmpbuf[0] = '\1';

  7. ++      #pragma GCC diagnostic push

  8. ++      #pragma GCC diagnostic ignored "-Wformat-nonliteral"

  9. +       tmplen = strftime (tmpbuf, tmpbufsize, locale_format, &tm);

  10. ++      #pragma GCC diagnostic pop

  11. +

  12. +       if (tmplen == 0 && tmpbuf[0] != '\0')

  13. +         {
复制代码
所添加的代码的具体含义和原因可以参考以下网址:
https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html

Q:错误
  1. /bin/bash: line 9: makeinfo: command not found
复制代码
10.jpg
A:shell下安装sudo apt-get install texinfo
http://wiki.espressobin.net并没有提及texinfo

Q:lzop软件生成错误
11.jpg
A:因为被GCC6.*编译了,所以lzop软件的miniacc.h的代码需要修改(GCC5.*可能不出现该问题)
  1. +--- a/src/miniacc.h.orig   2016-02-10 16:09:23.247315866 +0100

  2. ++++ b/src/miniacc.h   2016-02-10 16:12:14.973297054 +0100

  3. +@@ -4469,12 +4469,12 @@

  4. + #if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)

  5. + #elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)

  6. + #else

  7. +-    ACCCHK_ASSERT((1   << (8*SIZEOF_INT-1)) < 0)

  8. ++    ACCCHK_ASSERT((int)(1u   << (8*SIZEOF_INT-1)) < 0)

  9. + #endif

  10. +     ACCCHK_ASSERT((1u  << (8*SIZEOF_INT-1)) > 0)

  11. + #if 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)

  12. + #else

  13. +-    ACCCHK_ASSERT((1l  << (8*SIZEOF_LONG-1)) < 0)

  14. ++    ACCCHK_ASSERT((long)(1ul  << (8*SIZEOF_LONG-1)) < 0)

  15. + #endif

  16. +     ACCCHK_ASSERT((1ul << (8*SIZEOF_LONG-1)) > 0)

  17. + #if defined(acc_int16e_t)

  18. +@@ -4703,7 +4703,7 @@

  19. + #elif 1 && (ACC_CC_LCC || ACC_CC_LCCWIN32) && !defined(ACCCHK_CFG_PEDANTIC)

  20. + #elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)

  21. + #elif !(ACC_BROKEN_INTEGRAL_PROMOTION) && (SIZEOF_INT > 1)

  22. +-    ACCCHK_ASSERT( (((unsigned char)128) << (int)(8*sizeof(int)-8)) < 0)

  23. ++    ACCCHK_ASSERT( (int)((unsigned int)((unsigned char)128) << (int)(8*sizeof(int)-8)) < 0)

  24. + #endif

  25. + #if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0560))

  26. + #  pragma option pop
复制代码

以上几个错误基本是因为使用GCC6.*版本带来的。不过还好基本都解决了。
上1张这三个家伙占用磁盘空间的图。想编译buildroot的同志们做好心理准备
12.jpg

回复

使用道具 举报

该用户从未签到

发表于 2017-5-16 15:33:23 | 显示全部楼层
楼主好人啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

手机版|小黑屋|与非网

GMT+8, 2024-4-23 17:52 , Processed in 0.113767 second(s), 17 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.