HyperAIHyperAI

Command Palette

Search for a command to run...

用NetBSD将任天堂Wii变成高效博客服务器

这篇科技博客记录了一位热情的科技爱好者如何在Nintendo Wii游戏机上成功安装并运行NetBSD操作系统,最终将一台游戏机变成了一台可以实际承担生产任务的服务器,用以托管自己的个人博客。 故事的起因源自作者对在不通用的硬件上运行通用操作系统的一种痴迷。他提到过去曾尝试在PS3上安装Yellow Dog Linux,但多年以来一直未能找到价格合适的PS2 Linux。这些项目普遍已经过时且缺乏长期维护。然而,最近一次浏览NetBSD官方网站时,作者发现 Wii 竟然列在了“安装媒体”部分的第一类支持列表中,支持最新的 10.1 版本,这引发了他极大的兴趣。 作者决定将 Wii 打造成一台真正的生产服务器,并且顺利地在 EMF Camp 2024 Swap Shop 购买了一台旧式的 Wii 游戏机。接下来,他使用 Wilbrand 漏洞 Mod 了这台 Wii,该漏洞利用 SD 卡上的消息传递功能实现非签名代码的执行,并安装了 Homebrew Channel。这一过程比过去的 Twilight Hack 更加简便,即便使用的是 1GB 非 SDHC 卡,整体操作也没有遇到太大问题。 安装 NetBSD 的过程相当顺利。作者下载了 wii.img.gz 镜像文件,并使用 Raspberry Pi Imager 工具将其写入 SD 卡。安装完成后,NetBSD 已经自动启用了 SSH,只需要为 root 用户设置密码并启用 root 登录即可远程管理系统。为了提高网络性能,作者使用了官方的 RVL-015 Wii LAN Adapter。 随后,作者安装了 NetBSD 的 pkgin 包管理器,并通过它安装了 lighttpd 轻量级 Web 服务器。由于他的博客是用 Hugo 生成的静态页面,所以只需将这些文件同步到 Wii 的 /srv/www/htdocs 目录下,Wii 就开始正常提供服务。 在测试过程中,作者发现 Wii 的 PPC 750 处理器虽然能够处理基础的 Web 服务请求,但在处理多个并行的现代 TLS 加密请求时表现不佳。为了优化性能,他选择在前端部署 Caddy 作为反向代理,处理加密和证书管理,同时在 Caddy 层面封锁已知的爬虫 User Agents。这样每一条被服务器显示的请求都是由 Wii 处理的,但整体负担减轻了不少。 与此同时,作者还编写了一个简单的 shell 脚本,每 15 分钟运行一次,将系统资源使用情况输出到一个基本的 HTML 文件中,实现了初步的监控功能。根据 UPS 监控数据,Wii 在空闲状态下的功耗约为 18W,每月消耗约 13.2kWh 电力,成本大约为 3.47 英镑(在英国的电价下),这竟然比许多云提供商的 VPS 更加经济。 虽然这一实验非常有趣,但也有其不足之处。首先,重启 NetBSD 将同时重启 Wii 游戏机,这意味着每次系统升级或内核打补丁后,都要回到 Wii 菜单重新启动。其次,Wiimote 和传感器条成了生产基础设施的一部分。不过,作者对于 Wii 的功耗表现感到满意,并表示如果效果持续良好,会继续这一实验。 业内评论认为,这一实验展示了开源操作系统和复古硬件的兼容性与灵活性,同时也证明了在资源受限的环境中优化系统性能的重要性。NetBSD 作为一款历史悠久的操作系统,其开发者群体的努力使这个项目能够支持如此多样化的硬件平台,这也是其一大亮点。

相关链接

用NetBSD将任天堂Wii变成高效博客服务器 | 热门资讯 | HyperAI超神经