官方bitbake生成的新toolchain必须使用$CC来使用toolchain了? 无法再像老版本生成的toolchain一样直接使用arm-poky-linux-gnueabi-gcc -o a a.c来编译文件了?
另外: bitbake生成的toolchain无法用于编译buildroot? 有人成功使用arm-poky-linux-gnueabi-gcc编译过buildroot吗?在buildroot中正确配置了nxp的toolchain后报错:Unable to detect the toolchain sysroot, Buildroot cannot use this toolchain. 因为nxp的toolchain路径不符合buildroot要求。
Solved! Go to Solution.
Hi Yaojun,
首先,从yocto里导出来的tool chain是标准的编译工具链,只是在为了支持单机操作方式,在工具链中,都配置好一个环境配置脚本,只要在u-boot/kernel单机编译前,用source运行一下这个环境脚本,就给你配置好了。
其次,你要让buildroot找到编译的工具链路径,你要仔细地给bootroot配置一下,一般tool chain安装的路径都在/opt/下,路径配置对了,应该是没问题的。
【注释】
一般来说有些工程师不使用yocto,而要使用buildroot,可能是担心yocto编译时间太长,不方便。但是,如果你熟悉了yocto之后,速度也是非常快的。 以下给你参考:
1. 使用Yocto时,你可以这样做:
一般来说,rootfs编译一次就不用在编译了。对于移植来说,重要的是修改u-boot和device tree。
修改完u-boot和修改完device tree,可以这样做:
---bitabke u-boot-imx -f -c compile
---bitbake u-boot-imx -f -c deploy
---bitabke linux-imx -f -c compile
---bitbake linux-imx -f -c deploy
这样时间不长,你修改好的u-boot和device tree(包括内核)都会到image里,然后你就可以烧写了。
2. 单机模式
--按照linux文档(user's guide 或者porting guide)的方法,建立u-boot和kernel 源码路径。
--导出来编译工具链
--修改u-boot、deivce tree做移植。
用传统方法编译u-boot和内核,单独编译dts,可以用make dtbs。
这样的话,过程就是这样的:
u-boot,dts,kernel用单机模式
rootfs用yocto编译一次即可。
Have a nice day!
B.R,
weidong
Hi Yaojun,
首先,从yocto里导出来的tool chain是标准的编译工具链,只是在为了支持单机操作方式,在工具链中,都配置好一个环境配置脚本,只要在u-boot/kernel单机编译前,用source运行一下这个环境脚本,就给你配置好了。
其次,你要让buildroot找到编译的工具链路径,你要仔细地给bootroot配置一下,一般tool chain安装的路径都在/opt/下,路径配置对了,应该是没问题的。
【注释】
一般来说有些工程师不使用yocto,而要使用buildroot,可能是担心yocto编译时间太长,不方便。但是,如果你熟悉了yocto之后,速度也是非常快的。 以下给你参考:
1. 使用Yocto时,你可以这样做:
一般来说,rootfs编译一次就不用在编译了。对于移植来说,重要的是修改u-boot和device tree。
修改完u-boot和修改完device tree,可以这样做:
---bitabke u-boot-imx -f -c compile
---bitbake u-boot-imx -f -c deploy
---bitabke linux-imx -f -c compile
---bitbake linux-imx -f -c deploy
这样时间不长,你修改好的u-boot和device tree(包括内核)都会到image里,然后你就可以烧写了。
2. 单机模式
--按照linux文档(user's guide 或者porting guide)的方法,建立u-boot和kernel 源码路径。
--导出来编译工具链
--修改u-boot、deivce tree做移植。
用传统方法编译u-boot和内核,单独编译dts,可以用make dtbs。
这样的话,过程就是这样的:
u-boot,dts,kernel用单机模式
rootfs用yocto编译一次即可。
Have a nice day!
B.R,
weidong
您好,可否分享一下arm-poky-linux-gnueabi-编译链的包呀,找了好久找不到这个编译链的安装包
非常感谢您的回复。
新版本bitbake生成的toolchain在一个复杂的、有多个编译器的开发系统上似乎不是很友好,不如以前的方式(在要使用对应的交叉编译工具的时候直接通过宏指定)。
另外,我希望使用buildroot是因为uuu刷机工具可以直接烧录emmc.img。 而在bitbake中没有找到关于制作emmc.img的方法,而buildroot中有个genimage可以实现,所以才想未来使用nxp的toolchain+buildroot来制作rootfs(有一些系统命令或一些个性化定制增删可能需要多次修改文件系统)。关于emmc.img的疑问现在也没解决。详见:nxp uuu工具