Pull to refresh

Запускаем GNU/Linux на PS3

Reading time 3 min
Views 27K
Как вам уже известно, Sony убрала возможность запускать OtherOS на приставке Sony Playstation 3. Для некоторых гиков именно запуск GNU/Linux на PS3 был причиной покупки. Но благодаря работе сторонних разработчиков это вновь стало возможным. На прошивке с версией 3.55 без каких-либо дополнительных устройств (USB jailbreak device, USB JIG).

Небольшое видео для привлечения внимания:



UPDATE: теперь всё стало гораздо проще — можно запускать Debian GNU/Linux прямо с флешки без установки TFTP и NFS серверов. См. инструкцию.

Используемые средства



Для запуска ядра Linux будет использоваться загрузчик AsbestOS и программа для внесения изменений в память lv2patcher. Для работы lv2patcher необходимо, чтобы системные файлы были предварительным образом изменены (работали системные вызовы peek и poke, а также функция lv1_undocumented_function_114 была модифицирована: 0x2D5A47: 00 -> 01). Эти изменения уже сделаны в большинстве модифицированных прошивок (CFW).

CFW



С lv2patcher совместимы следующие прошивки:
  • Waninkoko V2;
  • kmeaw's CFW;
  • Wutangrza's CFW;
  • PS3MFW от KaKaRoTo (с соответствующими опциями, включенными при сборке).


Установите любую из них.

lv2patcher



Для запуска AsbestOS необходима последняя версия lv2patcher'а — v9. В ней появилась возможность модифицировать содержимое гипервизора (lv1), а также выполнять перезагрузку (lv1_panic).

AsbestOS



Для того, чтобы lv2patcher смог запустить AsbestOS, загрузчик надо предварительно записать во флеш-память приставки. Сделать это просто так нельзя — раздел /dev_flash защищён от записи. Но для этого существует специальная программа — AsbestOS installer (версия для ps3 fat). Просто запустите её и подождите, пока завершится процесс установки.

Теперь все приготовления на PS3 завершены. Поскольку AsbestOS использует сеть для загрузки ядра, то необходимо настроить компьютер, подключённый к локальной сети, чтобы он мог быть использован в качестве загрузочного сервера. Предположим, что на этом компьютере установлена Ubuntu. Чтобы поднять сервер, нам понадобятся пакеты dhcp3-server, tftpd-hpa и nfs-kernel-server.

DHCP-сервер



DHCP-сервер нужен загрузчику, чтобы получить IP-адрес и адрес TFTP-сервера. Вот пример работающей конфигурации для ISC DHCP server:
option domain-name "example.org";
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;
log-facility local7;
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.128 192.168.2.250;
}
next-server 192.168.2.1;
filename "kboot.conf";
option routers 192.168.2.1;


Поправьте этот файл в соответствии с адресным пространством вашей сети.

TFTP-сервер



Сразу после получения адреса, AsbestOS пытается скачать с TFTP-сервера файл конфигурации. В примере выше был указан файл kboot.conf. Нам хватит минимальной конфигурации, и поэтому этот файл будет состоять лишь из одной строки:

linux='vmlinux video=ps3fb:mode:2 root=/dev/nfs rw ip=dhcp nfsroot=192.168.2.1:/mnt/ps3 panic=5'

Как видно из неё, нам также нужно положить образ ядра в директорию tftp-сервера и назвать его vmlinux. Ссылка на готовое ядро будет указана в следующем разделе.

NFS-сервер



Так как жёсткий диск приставки не будет использован для хранения GNU/Linux, а корневая файловая система нужна для работы, то мы воспользуемся возможностью Linux использовать nfs в качестве корня. Добавим строку в /etc/exports:

/mnt/ps3 192.168.0.0/16(rw,async,no_root_squash,no_subtree_check,anonuid=0,anongid=0)

Кстати, файловую систему можно взять здесь, а ядро и модули к нему — тут.

Всё готово. Запускаем lv2 patcher, выбираем новый пункт меню «Linux» и нажимаем «X». Через несколько секунд ядро проинициализирует framebuffer и выведет на экран два ряда пингвинов.

А как бы вы стали использовать старую (новую?) возможность PS3?
Tags:
Hubs:
+37
Comments 42
Comments Comments 42

Articles