首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否启动scratchbox2会话?

是否启动scratchbox2会话?
EN

Stack Overflow用户
提问于 2013-04-27 03:01:10
回答 1查看 1.5K关注 0票数 3

我正在尝试设置一个scratchbox2配置,以便使用包含真实raspian发行版副本的根分区来交叉编译rasberry pi软件。总体而言,这看起来还不错,因为我可以运行arm可执行文件,但是因为我试图在复制的根分区中使用gcc,所以名称转换不起作用。如何对scratchbox会话进行chroot?在运行sb2之后运行chroot似乎不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-23 22:38:15

在初始化scratchbox2!之后,您不需要执行chroot。您期望的结果可以通过以下步骤实现:

确保在主机系统上设置了交叉编译工具。假设您在linux主机(Ubuntu)上,您可以使用以下命令安装一个:

sudo apt-get install gcc-arm-linux-gnueabihf (硬浮点)或

sudo apt-get install gcc-arm-linux-gnueabi

如果你在不同的主机上,或者你有一个不同的交叉编译工具链,就像codesourcery的工具链一样,只要确保你安装了适当的版本(硬浮点/软浮点),并将编译器的路径导出到$PATH,并记下名称(前缀)。

确保您已经安装了Qemu。

由于您已经安装了scratchbox2,因此假设主机pc上的Rapberrypi副本的路径存储在变量$raspirootfs中,

cd $raspirootfs

现在使用以下命令初始化sb2:

sb2-init raspberrypi arm-linux-gnueabi-gcc

其中,raspberrypi只是目标配置的名称。用你的交叉编译器前缀替换arm-linux-gnuabi-gcc

如果这是您的第一个目标配置(如果这是您第一次运行sb2-init),您可以输入以下命令,使用默认的目标配置启动sb2:

sb2 -eR

这应该会给出如下提示:

[SB2 emulate raspberrypi] user@pc #

现在sb2处于模拟模式而不是正常模式,它将尝试远离您的主机二进制文件,并使用qemu在您的$raspirootfs中执行这些二进制文件。

在终端中输入sb2-show path /etc/apt查看/etc/apt是如何映射的。它应该显示类似/etc/apt --> $raspirootfs/etc/apt的内容(而不是主机系统的/etc/apt)。

要安装到仿真系统中的

只需像在主机系统上那样操作即可。示例:

apt-get install build-essential

交叉编译某些源代码的

cd sourcedir

sb2 ./configure

sb2 make -jN

sb2 make install DESTDIR=$raspirootfs

对于那些试图使用scratchbox2建立交叉编译环境的人,我在这里发表了一篇文章:http://praveenp.com/setting-up-a-cross-compiling-environment-to-build-linux-applications-for-embedded-targets/。关于使用chroot的交叉编译,你可以参考这篇文章:http://praveenp.com/setting-up-an-environment-using-chroot-for-developing-applications-for-embedded-targets/

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16243467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档