在Retrocomputer上加速Pkgsrc

2020-08-16 15:37:42

本操作说明如何在几乎任何计算机上使用Distcc来加速运行NetBSD的逆向计算机上的编译。

本操作说明如何在几乎任何计算机上使用Distcc来加速运行NetBSD的逆向计算机上的编译。

本操作说明了一种在逆向计算机上加速NetBSD pkgsrc编译的快速而简单的方法。之所以写这篇文章,是因为总共有太多的discc how-to,它们很复杂,需要特殊的构建环境,或者在没有解释正在发生的事情和原因的情况下进行假设。这是我试图简化这一过程的尝试。

因此,假设您是一个喜欢在传统硬件上运行现代Unix的逆向计算爱好者。您正在运行NetBSD(毕竟,它是极少数不鄙视替代体系结构的操作系统之一),但是每当Perl更新时,您都会畏缩,因为更新m68030上的所有内容需要大约一周的时间。当然,您已经知道如何交叉编译操作系统,但这不适用于pkgsrc包。另一方面,您不是那种故意运行不安全软件的人,因此等待适用于您的平台的二进制软件包不是一种选择。

本指南将帮助您设置Distcc,以便通过网络将pkgsrc编译任务分发到另一台计算机。

如今,你可以花40美元买到树莓PI,50美元买到Beaglebone Black,20美元或更少买到PogoPlug。我喜欢PogoPlugs是因为它们在物理上很健壮,而且很难意外拔出,而如果你在PI周围打喷嚏,你可能在等待它完成重新启动(好的,这并不是真的那么糟糕,但你明白了)。或者,你可以使用几乎任何相对现代的BSD或GNU/Linux和NetBSD的源代码树来设置交叉编译工具链,以帮助任何可以运行NetBSD的机器。或者,你可以使用几乎任何相对现代的BSD或GNU/Linux和NetBSD的源代码树来设置交叉编译工具链,以帮助任何可以运行NetBSD的机器。或者,你可以使用几乎任何相对现代的BSD或GNU/Linux来设置交叉编译工具链,以帮助任何可以运行NetBSD的机器。

与M68k Next或VAXstation 3100相比,树莓PI的速度快得离谱。考虑到所用电力的大小、成本和数量,您甚至可能决定使用PogoPlug或PI来帮助您的逆向计算机。您甚至可以在一台辅助计算机上同时支持多个不同的体系结构。

无论您选择什么硬件和操作系统,我们都假定您知道如何在您的操作系统上安装软件包,并且您可以通过以下帮助通过首选方法获取NetBSD源代码树:

NetBSD源树应该与您在Retrop计算机上运行的分支相同或相似(可以是NFS共享的,因为您只需要一小段时间)。我们将假设NetBSD源代码位于/usr/src中。

在我的例子中,我使用的是PogoPlug Mobile,只有一个相当普通的16G USB闪存驱动器。它有800 MHz的StrongARM(Kirkwood ARMv5),128兆内存和千兆以太网,在Radio Shack还拥有它们的时候售价14美元。如果您对此感兴趣,请参阅我关于如何在不需要串行控制台的情况下安装NetBSD的文章:在PogoPlug上安装NetBSD。

这台机器将协助的后端计算机是一台内存为56兆的VAXstation 4000/60。我会称它们为复古和现代。这些示例中的复古版本为10.12.26.190,现代版本为10.12.26.189。

首先,在复古和现代机器上从pkgsrc安装devel/Distcc(如果您正在运行GNU/Linux或其他操作系统,也可以使用您喜欢的任何软件包方法来安装discc)。如果您希望使用Distcc 3.2rc1而不是3.1,请删除patches/patches-ad、patches/patches-src_emaillog.c和patches/patches-src_dotd.c,然后将Makefile中的PKGREVISION更改为0,将Makefile.common中的DISTCC_VERSION更改为3.2rc1,然后在no_checksum=yes的情况下运行make。

在运行的同时,我们将使用NetBSD的build.sh编译一个针对现代复古的工具链。选择下面的位置很简单,因为它们很容易记住。下面是我们如何制作VAX工具链。在/usr/src/中:

请注意,在本例中,VAX对于机器和体系结构都是相同的。如果运行m68k,您将选择一个计算机(-m)名称,如sun3、netx68k、mac68k或amiga,而不是m68k,但路径最终将为/usr/tools/m68k--netbsdelf/bin/。

稍后,您将在/usr/tools/中获得所需的一切。如果您查看/usr/tools/bin/,您会看到vax--netbsdelf-c++、vax--netbsdelf-GCC和...。

多读

您即将在逆向计算机上报告加速pkgsrc项目,请告诉我们原因。