raspberry pi
您是否有旧的Raspberry Pi散布着灰尘,也许是在最近的Pi升级之后? 您对BSD Unix感到好奇吗? 如果您对这两个问题都回答“是”,您将很高兴知道第一个是第二个问题的解决方案,因为您可以在Raspberry Pi上运行NetBSD ,最早的版本可以追溯到第一个版本。
BSD是Unix的Berkley软件发行版。 实际上,它是唯一可以直接返回贝尔实验室的Dennis Ritchie和Ken Thompson编写的原始源代码的开源Unix。 其他现代版本是专有的(例如AIX和Solaris)或巧妙的重新实现(例如Minix和GNU / Linux)。 如果您已经习惯了Linux,那么使用BSD会让您感到宾至如归,但是有许多新的命令和约定可以发现。 如果您还不熟悉开源,那么尝试BSD是体验传统Unix的好方法。
POSIX世界。下载NetBSD
BSD有不同的版本。 NetBSD因其轻巧和多功能而享誉全球(其网站标有“当然,它运行NetBSD”的标语)。 自原始版本以来,它为Raspberry Pi的每个版本提供了最新版本的OS映像。 要为Pi下载一个版本,必须首先确定Pi使用哪种ARM体系结构变体 。 有关此问题的一些信息可从NetBSD站点上获得,但要获得全面的概述,还可以参考RPi硬件历史记录 。
据我所知,我在本文中使用的Pi是Raspberry Pi Model B Rev 2.0(具有两个USB端口,没有安装Kong)。 根据Raspberry Pi FAQ的说法,这意味着该体系结构是ARMv6,在NetBSD的体系结构表示法中转换为earmv6hf 。
![Raspberry Pi上的NetBSD NetBSD on Raspberry Pi](https://i-blog.csdnimg.cn/blog_migrate/f1692d271c2aa8b7a90a2ebb91dfea8a.jpeg)
如果您不确定拥有哪种Pi,最好的消息是只有两个Pi映像,因此请首先尝试earmv7hf ; 否则,请执行以下步骤 。 如果不起作用,请退回到earmv6hf 。
为了最简单,最快的安装,请使用二进制映像而不是安装程序。 使用映像是将操作系统安装到Pi上的最常见方法:将映像复制到SD卡并启动。 不需要安装,因为该映像是操作系统的常规安装,您已将其一点一点地复制到Pi用作引导驱动器的介质上。
映像文件位于NetBSD安装介质服务器的二进制> gzimg目录中,您可以从NetBSD.org的首页访问该目录。 该图像是rpi.img.gz (压缩的.img文件)。 将其下载到硬盘。
下载完整个图像后,将其解压缩。 如果您正在运行Linux,BSD或MacOS,则可以使用gunzip命令:
$ gunzip ~/Downloads/rpi.img.gz
如果您使用的是Windows,则可以安装开源的7-Zip存档实用程序。
将图片复制到SD卡
图像文件解压缩后,必须将其复制到Pi的SD卡中。 有两种方法可以执行此操作,因此请使用最适合您的一种方法。
1.使用蚀刻机
Etcher是一个跨平台应用程序,专门用于将OS映像复制到USB驱动器和SD卡。 从Etcher.io下载它并启动它。
在Etcher界面中,选择硬盘驱动器上的图像文件和要刷新的SD卡,然后单击“ Flash”按钮。
![刻蚀者 Etcher](https://i-blog.csdnimg.cn/blog_migrate/ef68f44f97129dccf8b08cdb0c6a331c.png)
而已。
2.使用dd命令
在Linux,BSD或MacOS上,可以使用dd命令将映像复制到SD卡。
- 首先,将SD卡插入读卡器。 不要将卡安装到系统上,因为dd需要断开设备才能将数据复制到其上。
- 运行dmesg | 尾部以查找未安装卡的位置。 在MacOS上,使用diskutil list 。
- 将映像文件复制到SD卡:
在执行此操作之前, 必须确保您具有正确的SD卡位置。 如果将映像文件复制到不正确的设备,则可能会丢失数据。 如果您对此不确定,请改用Etcher!$ sudo dd if=~/Downloads/rpi.img of=/dev/mmcblk0 bs=2M status=progress
当dd或Etcher将图像写入SD卡后,请将其放入Pi并打开电源。
第一次启动
NetBSD第一次启动时,会检测到SD卡的文件系统没有占用所有可用空间,并相应地调整了文件系统的大小。
![在Raspberry Pi上启动NetBSD Booting NetBSD on Raspberry Pi](https://i-blog.csdnimg.cn/blog_migrate/5f175ca53fe39d395d11f6d81266b69d.png)
完成后,Pi会重新启动并显示登录提示。 使用root作为用户名登录到NetBSD系统。 不需要密码。
设置用户帐号
首先,为root用户设置密码:
# passwd
然后使用-m选项为您自己创建一个用户帐户,以提示NetBSD创建主目录,并使用-G wheel选项将您的帐户添加到wheel组,以便您可以根据需要成为管理用户(root):
# useradd -m -G wheel seth
再次使用passwd命令为您的用户帐户设置密码:
# passwd seth
注销,然后使用新的凭据重新登录。
将软件添加到NetBSD
如果您曾经使用过Pi,则可能知道向系统中添加更多软件的方法是使用apt或dnf之类的特殊命令(取决于您是在Pi上运行Raspbian还是FedBerry )。 在NetBSD上,使用pkg_add命令。 但是,在命令知道从何处获取要安装的软件包之前,需要进行一些设置。
在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)系统上的默认外壳。 另外,如果您还不是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设置为默认外壳,请使用chsh (更改外壳)命令,该命令现在将加载到您的首选编辑器中。 但是,在运行chsh之前,请确保您知道Bash的位置:
$ which bash
/usr/pkg/bin/bash
将chsh条目中的shell值设置为/ usr / pkg / bin / bash ,然后保存文档。
添加须藤
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外壳。
现在,您可以将sudo使用pkg_add而不是成为root用户:
$ sudo pkg_add -v fluxbox
净收益
NetBSD是功能齐全的Unix操作系统,现在您已经在Pi上安装了它,现在您可以探索每个角落。 它恰好是一个非常轻巧的操作系统,因此即使是具有700mHz处理器和256MB RAM的旧Pi也可以轻松运行。 如果这篇文章激发了您的兴趣,并且您有一个旧的Pi坐在抽屉中的某个地方,请尝试一下!
翻译自: https://opensource.com/article/19/3/netbsd-raspberry-pi
raspberry pi