如何无显示器在树莓派上安装 NetBSD
0x00 Why
树莓派吃灰多年,总要用一下的( 然后作为 sdf.org 的用户却发现自己从来没有摸过 NetBSD,于是想自己本地装一个。 什么,你说虚拟机?
结果看了一下官方文档,默认安装方法是不能外部 ssh login 的…… 没有多余的显示器,瞬间抓狂了。然后突然想起来还可以用串行接口!
0x01 Get Started
你需要
- 一个树莓派(本文所用的是
2B+
) - Internet
- USB 转 TTL(淘宝¥12 – 13封顶的样子)
- 读卡器
这里以 Windows 系统作例子,使用软件为 XShell 6 + rufus。
0x02 Installation Process
镜像下载
首先去官网下载镜像包。在写这篇文章的时候,最新版本是 NetBSD 8。 根据 Wiki 的说明,你可以自己 Build,也可以使用官方的镜像,还可以使用 ebijun 的镜像。
为了省事,在这里直接使用官方镜像。
等一下,我们是不是忘了什么……
树莓派怎么连接电脑?!
连接电脑
根据资料来看,我们需要接线 Pin 6、Pin 8 和 Pin 10。
其中,接线对应以下:
Pin 6: GND -> GND
Pin 8: RXD -> TXD0
Pin 10: TXD -> RXD0
一般都是这样的?
之后,在设备管理器里把波特率设置为 115200。其它保持默认即可。
接下来,打开 XShell,新建一个 SERIAL 连接,在 连接 > SERIAL
里设置好即可为后续的连接做好准备。
写入镜像
我们在这里下载专门为树莓派 2B 打造的镜像。
随后直接用 rufus 写入就行啦!
最后准备
写入完成,不要慌!
因为我们是用串口连接,而官方镜像默认使用的是 HDMI 输出,所以我们需要挂载其中的 FAT32 分区,找到 cmdline.txt,删去 console=fb。
接下来就可以插到树莓派上启动啦!第一次启动后将会重启一次,然后就可以登陆了。
0x03 References
- http://wiki.netbsd.org/ports/evbarm/raspberry_pi/
- https://elinux.org/RPi_Serial_Connection
- https://elinux.org/RPi_Low-level_peripherals
- https://www.raspberrypi.org/documentation/hardware/raspberrypi/gpio/README.md
- http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0464f/index.html (…Kind Of?)
0x04 Questions
genfb0 at obio0: switching to framebuffer console
如果显示以下内容的话,说明它”去另一个世界了”:
genfb0 at obio0: switching to framebuffer console
解决方法:上文说过了,要**删去 **console=fb。或者再加一行 fb=disabled ?
第一次开机出现 ntpd[772]: ntp_rlimit: Cannot set RLIMIT_STACK: Invalid argument
如果显示以下内容:
ntpd[772]: ntp_rlimit: Cannot set RLIMIT_STACK: Invalid argument
根据邮件列表,没有什么大碍(?
0x05 Other Unnecessary Notes
Raspberry Pi 1 uses "earmv6hf".
Raspberry Pi 2 uses "earmv7hf".
Raspberry Pi 3 uses "earmv7hf".
我到现在也没搞懂 earmv7hfeb 后面的这个 eb 是什么……
如果喜欢本文,欢迎点击下方的「鼓掌」按钮!
如果上面没有加载出任何东西,可以点击这里。