2017-10-17 73 views
0

我试图构建我的主机系统体系结构(x86_64)的目标体系结构中的所有配方,以便能够在x86_64环境中安装这些RPM。在生成的RPM中控制体系结构

为此,我只需设置MACHINE=genericx86-64并构建;但是,由此产生的RPM似乎将其架构设置为core2_64。我想这与运行bitbake时报告的TUNE_FEATURES="m64 core2"有关(见下文)。

我该如何确保这些RPM最终为x86_64,以便我的主机(RHEL7)接受它们?

Build Configuration: 
BB_VERSION  = "1.34.0" 
BUILD_SYS   = "x86_64-linux" 
NATIVELSBSTRING = "universal-4.8" 
TARGET_SYS  = "x86_64-poky-linux" 
MACHINE   = "genericx86-64" 
DISTRO   = "generic-panel" 
DISTRO_VERSION = "0.7" 
TUNE_FEATURES  = "m64 core2" 
TARGET_FPU  = "" 

# rpm -i xxx.core2_64.rpm 
package xxx.core2_64 is intended for a different architecture 

$ uname -a 
Linux localhost 3.10.0-693.2.2.el7.x86_64 #1 SMP Sat Sep 9 03:55:24 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux 
+0

我可以建议不要这样做吗?即使您将RPM转化为rpm接受的内容,RPM也不能保证与RHEL(或您使用Yocto创建的任何其他发行版)兼容或安全。 – jku

+0

@jku感谢你的抬头。是什么让他们不适合使用RHEL?另外,你有任何建议的替代品? – aerkenemesis

+0

嗯,我并不是说它肯定无法工作,但软件包会对操作系统和其他软件包做出假设。无法保证即使Yocto和RHEL使用的软件包名称也匹配(因此您的软件包可能依赖于在RHEL上找不到的软件包,因为名称不同),更不用说软件包的功能了。这是两个不同的操作系统碰巧使用相同的封装格式的问题。 – jku

回答

1

的解决方案是修改DEFAULTTUNE变量,所以我刚添加DEFAULTTUNE_genericx86-64 = "x86-64"到我local.conf