WhyCan Forum

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132 (挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2019-11-08 12:08:29

cris8259
会员
注册时间: 2019-09-25
累计积分: 125

关于buildroot

buildroot使用外部编译工具链,会导致panic,使用内部工具链,则可以正常启动。

Toolchain设置
1. Toolchain type (External toolchain)  --->
2. Toolchain (Custom toolchain)
3. Toolchain origin (Pre-installed toolchain)
4. (/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi) Toolchain
5. (arm-linux-gnueabi) Toolchain prefix
6. External toolchain gcc version (7.x)  --->
7. External toolchain kernel headers series (4.10.x)
8. External toolchain C library (glibc/eglibc)
9. [//*] Toolchain has SSP support? (NEW)
10.[//*] Toolchain has RPC support? (NEW)

问题:
1. 按照上面设置编译出来,运行会导致panic,如下,什么原因
[    1.786977] VFS: Mounted root (jffs2 filesystem) on device 31:3.
[    1.795787] devtmpfs: mounted
[    1.805273] Freeing unused kernel memory: 1024K
[    2.074266] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    2.074266]
[    2.083419] CPU: 0 PID: 1 Comm: init Not tainted 4.15.0-rc8-licheepi-nano+ #5
[    2.090537] Hardware name: Allwinner suniv Family
[    2.095323] [<c010e550>] (unwind_backtrace) from [<c010b6a8>] (show_stack+0x10/0x14)
[    2.103079] [<c010b6a8>] (show_stack) from [<c0116878>] (panic+0xb8/0x230)
[    2.109958] [<c0116878>] (panic) from [<c0118034>] (do_exit+0x96c/0x9a4)
[    2.116659] [<c0118034>] (do_exit) from [<c0118bb8>] (do_group_exit+0x3c/0xb4)
[    2.123877] [<c0118bb8>] (do_group_exit) from [<c0121758>] (get_signal+0x144/0x558)
[    2.131537] [<c0121758>] (get_signal) from [<c010a934>] (do_signal+0xc4/0x404)
[    2.138766] [<c010a934>] (do_signal) from [<c010ae3c>] (do_work_pending+0xb8/0xcc)
[    2.146335] [<c010ae3c>] (do_work_pending) from [<c0107d48>] (slow_work_pending+0xc/0x20)
[    2.154500] Rebooting in 5 seconds..
[    8.133732] Reboot failed -- System halted

2. 使用外部工具链时,设置8. External toolchain C library (glibc/eglibc)必须选择glibc/eglibc ,不然编译会报错c lib选择错误,这是为何
3. 使用外部工具链时,设置7. External toolchain kernel headers series (4.10.x) 必须选择4.10.x , 我选4.15.x会报错显示预期是4.15,实际是4.10,
    这个4.10.x是由哪里决定的?

4. 如果使用内部工具链,则设置8中的C library 随便选哪个都可以编译通过,而且系统可以正常运行,原因何在

离线

#2 2019-11-08 14:02:47

smartcar
会员
注册时间: 2018-02-19
累计积分: 412

Re: 关于buildroot

离线

#3 2019-11-08 15:59:15

xgui
会员
注册时间: 2019-09-07
累计积分: 142

Re: 关于buildroot

第4个问题,内部tool chain, libc也是内部的(经过测试的版本),当然随便怎么选都ok

离线

#4 2019-11-08 16:01:28

我思故我在
会员
注册时间: 2019-09-03
累计积分: 135

Re: 关于buildroot

mmexport1573199104860.png

mmexport1573199102650.png

第一张图是buildroot 2019里面的Config.in
第二张是2017
人家规定了版本
至于4.10可以,4.15报错,要看看她的buildroot里面的具体情况
有些脚本编写时可能没有考虑到新版本
这个在./configure时经常出现,不知道buildroot是不是一样存在

离线

#5 2019-11-08 16:49:59

单刀
会员
注册时间: 2019-11-07
累计积分: 11

Re: 关于buildroot

第3个问题是读的外部工具链的内核版本

离线

#6 2019-11-08 16:56:56

cris8259
会员
注册时间: 2019-09-25
累计积分: 125

Re: 关于buildroot

uboot kernel 都是用/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi编译,为何buildroot用一样的编译器就不行了

离线

#7 2019-11-08 17:13:50

我思故我在
会员
注册时间: 2019-09-03
累计积分: 135

Re: 关于buildroot

cris8259 说:

uboot kernel 都是用/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi编译,为何buildroot用一样的编译器就不行了

用 -v 参数打印出来看下, 可能要设置一个参数, 如果用默认参数编译会生成arm9识别不了的指令,然后就没有然后了。

离线

#8 2019-11-08 17:32:58

cris8259
会员
注册时间: 2019-09-25
累计积分: 125

Re: 关于buildroot

我思故我在 说:
cris8259 说:

uboot kernel 都是用/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi编译,为何buildroot用一样的编译器就不行了

用 -v 参数打印出来看下, 可能要设置一个参数, 如果用默认参数编译会生成arm9识别不了的指令,然后就没有然后了。

你的意思是buildroot生成了arm9的指令?你是指打印什么参数,需要设置什么参数

离线

#9 2019-11-08 21:31:42

jimmy
Moderator
注册时间: 2017-10-29
累计积分: 242

Re: 关于buildroot

应该是说buildroot生成的arm-linux-gcc,用这个编译出的应用程序是没有问题的,而别的工具链由于参数的问题,生成的应用程序指令集有问题。

离线

#10 2019-11-08 23:57:36

cris8259
会员
注册时间: 2019-09-25
累计积分: 125

Re: 关于buildroot

jimmy 说:

应该是说buildroot生成的arm-linux-gcc,用这个编译出的应用程序是没有问题的,而别的工具链由于参数的问题,生成的应用程序指令集有问题。

就是说编译buildroot 和 app 用 buildroot生成的工具链,这样参数不会有问题,而编译BootLoader和kernel用buildroot生成的工具链或者其他工具链都行,是这个意思吗

离线

页脚