gpt4 book ai didi

linux - 使用 configure 识别 Raspberry Pi 主机

转载 作者:IT王子 更新时间:2023-10-29 00:35:42 25 4
gpt4 key购买 nike

我从事跨平台项目,最近添加了对 Raspberry Pi 的支持。为了确保尽可能广泛的受众可以使用该项目,该项目有一个 premake、一个 cmake 和一个 autotools 构建系统。我已经为 RPi 设置了交叉编译,一切正常。

最近,我还设置了一个 Raspberry Pi VM(直到我得到一个真正的 RPi)来尝试构建这个库。在 Linux 中,我运行“./configure --host=arm-raspberry-linux-gnueabihf”,然后 configure 从那里获取它。然而,在 RPi (Rasbian 7) 上,config.guess 找到的默认主机是“armv61-unknown-linux-gnueabihf”。出于这个原因,即使是在 Pi 上,我也必须运行“./configure --host=arm-raspberry-linux-gnueabihf”。所以,我的问题总结为:

目前,我的配置脚本中有这样的东西:

case "$host" in
armv61-unknown-linux-gnueabihf)
if [[ -f /usr/bin/rpi-update ]]; then
on_raspberry=yes
fi
;;
## other hosts here
esac

所以,我的问题总结为:

  1. “armv61-unknown-linux-gnueabihf”是否仅在 Raspberry Pi 上报告?如果不是,配置如何确保它真的在 RPi 上?检查 rpi-update 是否足够?不同的发行版(Arch Linux、Pidora 等)是否也有 rpi-update?
  2. 是否有不同版本的 Pi 报告的任何其他可能的主机三元组?

提前致谢

最佳答案

Is 'armv61-unknown-linux-gnueabihf' only reported on the Raspberry Pi?

其他平台也可以使用它。

If not, how can configure make sure that it is really on RPi?

它真的不能(例如在 RPi VM 上运行它)。 configure 只是一个 shell 脚本。

Is checking for rpi-update sufficient?

见上文。

Do different distros (Arch Linux, Pidora, ...) also have rpi-update?

当前的 Pidora 和 Arch 镜像没有 /usr/bin/rpi-update。至少早在 2012 年 8 月 10 日,旧的 Rasbpian 图像也没有。

Are there any other possible host triplets like this that are reported by different versions of the Pi?

There are 3 triplets for the RPi cross compilers , 所以如果还有其他人也就不足为奇了。

编辑:所以基本上需要的是configure 检测它何时在Raspberry Pi 上构建的方法。简单易行:

configure.ac

# need to detect build...
AC_CANONICAL_BUILD

...

AC_MSG_CHECKING([if build is on Raspberry Pi])
# The test for 'BCM2708' might be sufficient,
# but the presence of Serial is definitely part of
# the Pi firmware for codec licensing.
# See this thread
# <http://www.raspberrypi.org/phpBB3/viewtopic.phpf=29&t=28304&p=252357#p251536>.
AS_CASE("$build",
[arm*-*-linux*],
[on_rpi=`awk -v r=0 '/^Hardware@<:@ \t@:>@+:@<:@ \t@:>@+BCM2708/ { ++r;} /^Serial@<:@ \t@:>@+:/ { ++r; } END { print ((r > 1) ? "yes" : "no");}' /proc/cpuinfo`],
[on_rpi="no"])
AC_MSG_RESULT($on_rpi)

在 Raspbian、Pidora 上检测,应该在 Arch 上工作。 Arch 似乎没有在其当前安装镜像中包含编译器,所以当我尝试时 configure 失败了。在运行 ./configure 时,所有检测到的构建为 armv6l-unknown-linux-gnueabihf。我没有在任何类型的 RPi 模拟器或 VM 上尝试过。

关于linux - 使用 configure 识别 Raspberry Pi 主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20336595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com