Успешная установка Debian Linux на Nintendo Wii

Успешная установка Debian Linux на Nintendo Wii

Первая публикация об экспериментах с Wii вызвала живой отклик, за что я искренне благодарен читателям. Вдохновившись комментариями, я решил пойти дальше: запустить графическую оболочку X Window System и провести серию тестов. Однако параллельно меня преследовал закономерный вопрос — насколько реально развернуть на этой консоли полноценный дистрибутив Linux?

Первичное изучение темы создавало иллюзию легкости, но практическая реализация преподнесла немало сюрпризов. В этой статье я пошагово разберу процесс адаптации Linux для работы на базе процессора IBM Broadway (архитектура PowerPC).


Архитектура BootMii: ключ к системе

В сети представлено множество сборок Linux для Wii, большинство из которых используют устаревшие версии ядра из-за аппаратных ограничений консоли. Ключевым звеном для их запуска является BootMii — специализированное низкоуровневое ПО. Изначально этот инструмент создавался не для кастомных ОС, а как средство глубокого восстановления системы.

Архитектурно Wii существенно отличается от ПК: здесь отсутствуют привычные BIOS или UEFI. Любая критическая ошибка при модификации софта превращает устройство в «кирпич». BootMii нивелирует этот риск, работая на самых ранних этапах загрузки, что позволяет создавать побитовые дампы NAND-памяти для последующего восстановления.

Стоит отметить, что на ранних ревизиях консоли (до 2009 года) BootMii можно установить как полноценный загрузчик (boot2). В более новых версиях аппаратные исправления заблокировали эту возможность, поэтому запуск осуществляется через Homebrew Channel. Тем не менее, это все равно позволяет делать полные бэкапы системы.

Подготовка и установка BootMii

Инструментарий устанавливается через эксплоит HackMii вместе с Homebrew Channel. В моем случае идеально сработал метод Letterbomb — специально сформированное сообщение в системном почтовом ящике вызывает переполнение буфера, позволяя исполнить сторонний код. После активации эксплоита остается лишь выбрать установку BootMii в системном меню.

После завершения процесса зайти в интерфейс можно через Homebrew Channel, выбрав пункт Launch BootMii в меню контроллера:

Запуск BootMii

Важный нюанс: в этом режиме Wiimote не активен. Управление осуществляется физическими кнопками на передней панели приставки (Power — навигация, Reset — подтверждение).

Процесс резервного копирования

Процесс бэкапа NAND

Визуально создание образа памяти напоминает классическую дефрагментацию в Windows 98: на экране сменяются блоки данных. Наличие «bad blocks» — нормальное явление для NAND-чипов Wii; они маркируются еще на заводе и не являются признаком поломки. Также могут встречаться «Corrected pages» — это блоки, где ошибки чтения были исправлены алгоритмом ECC (Error Correction Code).

Результатом процедуры становятся два критически важных файла на SD-карте: nand.bin (полный образ памяти) и keys.bin (уникальные ключи шифрования конкретной консоли). Без ключей восстановить данные будет невозможно, поэтому их стоит хранить как зеницу ока.

Выбор дистрибутива: тернистый путь

Ориентиром в выборе системы послужил ресурс wiibrew.org. Самым современным проектом считается ArchPOWER — порт Arch Linux для PowerPC. Процесс установки через скрипт автоматизирован: разметка накопителя, форматирование и загрузка образа происходят в интерактивном режиме.

Я подготовил скрипт на основной Linux-машине:

$ git clone https://github.com/Wii-Linux/pc-installer
$ cd pc-installer; sudo ./installer.sh

Однако после подготовки SD-карты и запуска через BootMii я столкнулся с проблемой:

Ошибка загрузки Arch

Искаженное черно-белое изображение свидетельствовало о несоответствии видеостандартов (NTSC vs PAL), а система не реагировала на нажатия кнопок. Ручные манипуляции с файлами ppcboot.elf и загрузчиком gumboot также не принесли успеха — консоль просто зависала.

В качестве альтернативы был выбран проверенный временем проект wii-linux-ngx на ядре 3.15.10. Несмотря на почтенный возраст, этот дистрибутив славится своей стабильностью на форумах энтузиастов.

Загрузка wii-linux-ngx

Сначала казалось, что и этот вариант провалился, так как экран застыл. Однако я заметил интенсивное мигание светодиода дисковода. Стало ясно — индикатор выполняет роль HDD LED, и система активно загружается в фоновом режиме.

Удаленное управление и настройка

Проверка роутера подтвердила: устройство получило IP и определилось как wii-linux-ngx. Поскольку прямой доступ под root по SSH обычно заблокирован, мне пришлось отредактировать файл /etc/ssh/sshd_config на SD-карте через картридер, установив PermitRootLogin yes.

После этого маневр удался. В терминале появилось приветствие с цитатой Сигэру Миямото:

Linux wii-linux-ngx 3.15.10ngx+ #169 Sat Aug 19 22:49:32 CEST 2017 ppc
...
"There are big lines between those who play video games and those who do not..."
Shigeru Miyamoto

Аппаратные характеристики процессора подтвердились через lscpu:

Architecture: ppc (32-bit Big Endian)
Vendor ID: IBM (nintendo,wii)
BogoMIPS: 121.56
L1 cache: 32K (data), 32K (instruction)

Оптимизация пространства

Стандартный образ занимал всего 340 МБ, оставляя гигабайты памяти на карте неиспользованными. Исправить это помог fdisk:

root@wii-linux-ngx:~# fdisk /dev/mmcblk0

Пересоздав раздел и выполнив resize2fs /dev/mmcblk0p2, я расширил рабочее пространство до полных 15 ГБ.

Последним штрихом стало обновление репозиториев. Поскольку Debian Jessie давно находится в архиве, я скорректировал sources.list:

deb http://archive.debian.org/debian jessie main contrib non-free

После длительного apt update && apt upgrade система была готова к работе. Удалось даже запустить screenfetch для наглядности:

Screenfetch на Wii

Итоги и перспективы

Главный парадокс текущей настройки — полное отсутствие видеовывода на телевизор при идеально работающей по сети системе. Вероятно, корень проблемы кроется в параметрах инициализации консоли или настройках initramfs. Это — задача для будущих изысканий.

Если говорить о практичности, то Linux на Wii — это скорее вызов мастерству, чем утилитарное решение. По сравнению с NetBSD, здесь больше нюансов и багов, но есть и неоспоримый плюс — полноценная поддержка встроенного Wi-Fi модуля.

В планах остается запуск Fedora, Ubuntu и — самое амбициозное — эмуляция MacOS 9. Путь энтузиаста продолжается, а пока я возвращаюсь к экспериментам с конфигурацией ядра.

 

Источник

Читайте также