您尚未登录。

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

cris8259
会员
注册时间: 2019-09-25
已发帖子: 272
积分: 81

关于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 随便选哪个都可以编译通过,而且系统可以正常运行,原因何在

离线

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

cris8259
会员
注册时间: 2019-09-25
已发帖子: 272
积分: 81

Re: 关于buildroot

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

离线

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

cris8259
会员
注册时间: 2019-09-25
已发帖子: 272
积分: 81

Re: 关于buildroot

我思故我在 说:
cris8259 说:

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

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

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

离线

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

cris8259
会员
注册时间: 2019-09-25
已发帖子: 272
积分: 81

Re: 关于buildroot

jimmy 说:

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

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

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn