Вместо Game Over — сервер на NetBSD: энтузиаст оживил приставку в роли сервер

Вместо Game Over — сервер на NetBSD: энтузиаст оживил приставку в роли сервер

Играл в Just Dance, а стал сервером — вот вторая жизнь Wii.

image

Многие игровые приставки, вышедшие более 10 лет назад, больше не используются по своему первоначальному назначению. Однако одна из таких систем — Nintendo Wii — получила альтернативное применение. Энтузиаст установил на консоль операционную систему NetBSD и использует её в качестве веб-сервера.

Ранее существовали различные проекты по адаптации Linux для устройств, не предназначенных для запуска настольных операционных систем, включая PlayStation 2, PSP и Dreamcast. Однако большинство подобных инициатив были прекращены или не получили регулярной поддержки. В отличие от них, порт NetBSD для Wii продолжает развиваться, а в стабильной версии 10.1, выпущенной в декабре 2024 года, данная платформа поддерживается наравне с Raspberry Pi и x86.

Консоль использует процессор IBM Broadway, относящийся к семейству PowerPC 750. Такие процессоры ранее применялись в различных системах, включая автоматические межпланетные станции. В данном случае ресурсы системы были задействованы для размещения статических веб-страниц.

Для установки NetBSD использовалась уязвимость в работе системы обмена сообщениями через SD-карту, позволившая установить Homebrew Channel. Через неё был запущен образ операционной системы. Консоль поддерживает подключение клавиатуры и Ethernet-адаптера, включая модель RVL-015, однако совместимость сохраняется и с другими устройствами.

После запуска системы была настроена удалённая работа по SSH и установлены необходимые пакеты через менеджер pkgin. Веб-сервер lighttpd был выбран из-за небольших требований к ресурсам. Контент сайта, подготовленный с помощью генератора статических страниц Hugo, был перенесён на устройство с использованием rsync.

Во время эксплуатации выявлены ограничения, связанные с обработкой зашифрованных соединений. Для снижения нагрузки шифрование TLS было вынесено на отдельный сервер с использованием Caddy, выступающего в роли обратного прокси. Это позволило снизить объём операций, выполняемых непосредственно на консоли.

Мониторинг системы осуществляется с помощью периодического запуска скрипта, формирующего HTML-страницу со статистикой. Использование более ресурсоёмких решений, таких как Prometheus, признано нецелесообразным из-за ограниченного объёма оперативной памяти. Процесс синхронизации времени через ntpd также был отключён и заменён периодическим запуском через планировщик задач.

В течение первых суток сайт, размещённый на Wii, получил большое количество обращений. Пиковая нагрузка составила до 40 запросов в секунду, при этом в дальнейшем показатель стабилизировался на уровне около 10 запросов в секунду.

По оценке автора, энергопотребление приставки составляет около 18 Вт в режиме ожидания, что соответствует приблизительно 13,2 кВт·ч в месяц. После перезагрузки система возвращается в главное меню, и для запуска среды может потребоваться использование оригинального контроллера и инфракрасного датчика.

Твой код — безопасный?

Расскажи, что знаешь о DevSecOps.
Пройди опрос и получи свежий отчет State of DevOps Russia 2025.