您是否有一台旧的 Raspberry Pi 闲置积灰,也许是在最近的 Pi 升级之后?您是否对 BSD Unix 好奇?如果您对这两个问题都回答“是”,您会很高兴知道第一个问题是第二个问题的解决方案,因为您可以在 Raspberry Pi 上运行 NetBSD,甚至可以追溯到最初的版本。
BSD 是 Unix 的伯克利软件发行版。事实上,它是唯一一个开源的 Unix,其血统可以直接追溯到 Dennis Ritchie 和 Ken Thompson 在贝尔实验室编写的原始源代码。其他现代版本要么是专有的(如 AIX 和 Solaris),要么是巧妙的重新实现(如 Minix 和 GNU/Linux)。如果您习惯了 Linux,您会感到使用 BSD 大体上很顺手,但也有很多新的命令和约定需要探索。如果您对开源还比较陌生,尝试 BSD 是体验传统 Unix 的好方法。
诚然,NetBSD 并不是一个完美适用于 Pi 的操作系统。与许多专门为 Pi 设计的 Linux 发行版相比,它是一个最小化的安装,而且并非所有最新 Pi 型号的组件在 NetBSD 下都能正常工作。然而,对于较旧的 Pi 型号来说,它可以说是理想的操作系统,因为它轻量级且维护良好。退一步说,对于任何铁杆 Unix 极客来说,体验 POSIX 世界的另一面也是非常有趣的。
下载 NetBSD
BSD 有不同的版本。NetBSD 因其轻量级和多功能性而闻名(其网站的标语是“当然,它可以运行 NetBSD”)。它为自最初版本以来的每个 Raspberry Pi 版本都提供了最新操作系统的镜像。要为您的 Pi 下载版本,您必须首先确定您的 Pi 使用的 ARM 架构变体。NetBSD 网站上提供了一些关于此的信息,但要获得全面的概述,您也可以参考 RPi 硬件历史。
我用于本文的 Pi,据我所知,是 Raspberry Pi Model B Rev 2.0(带有两个 USB 端口,没有安装孔)。根据 Raspberry Pi 常见问题解答,这意味着架构是 ARMv6,在 NetBSD 的架构符号中转换为 earmv6hf。

如果您不确定您拥有哪种 Pi,好消息是只有两个 Pi 镜像,所以先尝试 earmv7hf;如果它不起作用,则回退到 earmv6hf。
为了最简单和最快速的安装,请使用二进制镜像而不是安装程序。使用镜像是将操作系统安装到您的 Pi 上的最常见方法:您将镜像复制到您的 SD 卡并启动它。无需安装,因为镜像是操作系统的通用安装,您只是将其逐位复制到 Pi 用作启动驱动器的介质上。
镜像文件位于 NetBSD 安装媒体服务器的 binary > gzimg 目录中,您可以从 NetBSD.org 的 首页 访问该服务器。镜像为 rpi.img.gz,一个压缩的 .img 文件。将其下载到您的硬盘驱动器。
下载完整镜像后,解压缩它。如果您运行的是 Linux、BSD 或 MacOS,您可以使用 gunzip 命令
$ gunzip ~/Downloads/rpi.img.gz
如果您在 Windows 上工作,您可以安装开源 7-Zip 压缩实用程序。
将镜像复制到您的 SD 卡
一旦镜像文件被解压缩,您必须将其复制到您的 Pi 的 SD 卡。有两种方法可以做到这一点,所以使用最适合您的一种。
选项 1:使用 Etcher
Etcher 是一个跨平台应用程序,专门设计用于将操作系统镜像复制到 USB 驱动器和 SD 卡。从 Etcher.io 下载并启动它。
在 Etcher 界面中,选择您硬盘驱动器上的镜像文件和您想要刷写的 SD 卡,然后单击 Flash 按钮。

就这样。
选项 2:使用 dd 命令
在 Linux、BSD 或 MacOS 上,您可以使用 dd 命令将镜像复制到您的 SD 卡。
- 首先,将您的 SD 卡插入读卡器。不要将卡挂载到您的系统,因为 dd 需要设备处于分离状态才能将数据复制到其上。
- 运行 dmesg | tail 以找出卡的位置,而无需挂载它。在 MacOS 上,使用 diskutil list。
- 将镜像文件复制到 SD 卡
$ sudo dd if=~/Downloads/rpi.img of=/dev/mmcblk0 bs=2M status=progress
在执行此操作之前,您必须确保您拥有 SD 卡的正确位置。如果您将镜像文件复制到错误的设备,您可能会丢失数据。如果您对此有任何不确定,请改用 Etcher!
当 dd 或 Etcher 将镜像写入 SD 卡后,将卡放入您的 Pi 并接通电源。
首次启动
首次启动时,NetBSD 检测到 SD 卡的文件系统没有占用所有可用的可用空间,并相应地调整文件系统的大小。

一旦完成,Pi 将重新启动并显示登录提示。使用 root 作为用户名登录您的 NetBSD 系统。无需密码。
设置用户帐户
首先,为 root 用户设置密码
# passwd
然后使用 -m 选项创建您自己的用户帐户,以提示 NetBSD 创建一个主目录,使用 -G users 选项将您自己添加到 users 组并使其成为您的主组,并使用 -g wheel 选项将您的帐户添加到 wheel 组,以便您可以根据需要成为管理用户 (root)
# useradd -m -G users -g wheel seth
再次使用 passwd 命令为您的用户帐户设置密码
# passwd seth
注销,然后使用您的新凭据重新登录。
向 NetBSD 添加软件
如果您曾经使用过 Pi,您可能知道向您的系统添加更多软件的方法是使用像 apt 或 dnf 这样的特殊命令(取决于您是否更喜欢在您的 Pi 上运行 Raspbian 或 FedBerry)。在 NetBSD 上,使用 pkg_add 命令。但在命令知道去哪里获取您想要安装的软件包之前,需要进行一些设置。
NetBSD 的服务器上提供了现成的(预编译的)NetBSD 软件包,使用方案 <ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/[PORT]/[VERSION]/All>。将 PORT 替换为您正在使用的架构,earmv6hf 或 earmv7hf。将 VERSION 替换为您正在使用的 NetBSD 版本;在撰写本文时,它是 8.0。
将此值放在名为 /etc/pkg_install.conf 的文件中。由于这是一个位于您的用户文件夹之外的系统文件,您必须调用 root 权限才能创建它
$ su -
<password>
# echo \
"PKG_PATH=ftp://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/earmv6hf/8.0/All/" \
>> /etc/pkg_install.conf
现在您可以从 NetBSD 软件发行版安装软件包了。一个好的首选是 Bash,通常是 Linux(和 Mac)系统上的默认 shell。此外,如果您还不是 Vi 文本编辑器用户,您可能想尝试一些更直观的东西,例如 Jove 或 Nano
# pkg_add -v bash jove nano
# exit
$
与许多 Linux 发行版(Slackware 是一个值得注意的例外)不同,NetBSD 代表您做的配置非常少,这被认为是一个特性。因此,要将 Bash、Jove 或 Nano 用作您的默认工具集,您必须自己设置配置。
您可以使用环境变量动态设置您的许多首选项,环境变量是您的整个系统都可以访问的特殊变量。例如,Unix 中的大多数应用程序都知道,如果设置了 VISUAL 或 EDITOR 变量,则应将这些变量的值用作默认文本编辑器。您可以临时设置这两个变量,仅用于您当前的登录会话
$ export EDITOR=nano
# export VISUAL=nano
或者您可以通过将它们添加到默认的 NetBSD .profile 文件中来使它们永久生效
$ sed -i 's/EDITOR=vi/EDITOR=nano/' ~/.profile
加载您的新设置
$ . ~/.profile
要将 Bash 设置为您的默认 shell,请使用 chsh(更改 shell)命令,该命令现在加载到您首选的编辑器中。但在运行 chsh 之前,请确保您知道 Bash 位于何处
$ which bash
/usr/pkg/bin/bash
在 chsh 条目中将 shell 的值设置为 /usr/pkg/bin/bash,然后保存文档。
添加 sudo
pkg_add 命令是一个特权命令,这意味着要使用它,您必须使用 su 命令成为 root 用户。如果您愿意,您也可以设置 sudo 命令,该命令允许某些用户使用自己的密码来执行管理任务。
首先,安装它
# pkg_add -v sudo
然后使用 visudo 命令编辑其配置文件。您必须使用 visudo 命令编辑 sudo 配置,并且必须以 root 身份运行
$ su
# SUDO_EDITOR=nano visudo
进入编辑器后,找到允许 wheel 组的成员执行任何命令的行,并取消注释它(通过删除行首的 #)
## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL
按照 Nano 底部菜单面板中的说明保存文档并退出 root shell。
现在您可以使用带有 sudo 的 pkg_add 而不是成为 root 用户
$ sudo pkg_add -v fluxbox
净收益
NetBSD 是一个功能齐全的 Unix 操作系统,现在您已经在您的 Pi 上设置好了它,您可以探索它的每一个角落和缝隙。它碰巧是一个非常轻量级的操作系统,所以即使是一台带有 700mHz 处理器和 256MB 内存的旧 Pi 也可以轻松运行它。如果这篇文章激发了您的兴趣,并且您有一台旧 Pi 放在抽屉里的某个地方,请尝试一下!
8 条评论