Как вам уже известно, 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).
С lv2patcher совместимы следующие прошивки:
Установите любую из них.
Для запуска AsbestOS необходима последняя версия lv2patcher'а — v9. В ней появилась возможность модифицировать содержимое гипервизора (lv1), а также выполнять перезагрузку (lv1_panic).
Для того, чтобы lv2patcher смог запустить AsbestOS, загрузчик надо предварительно записать во флеш-память приставки. Сделать это просто так нельзя — раздел /dev_flash защищён от записи. Но для этого существует специальная программа — AsbestOS installer (версия для ps3 fat). Просто запустите её и подождите, пока завершится процесс установки.
Теперь все приготовления на PS3 завершены. Поскольку AsbestOS использует сеть для загрузки ядра, то необходимо настроить компьютер, подключённый к локальной сети, чтобы он мог быть использован в качестве загрузочного сервера. Предположим, что на этом компьютере установлена Ubuntu. Чтобы поднять сервер, нам понадобятся пакеты dhcp3-server, tftpd-hpa и nfs-kernel-server.
DHCP-сервер нужен загрузчику, чтобы получить IP-адрес и адрес TFTP-сервера. Вот пример работающей конфигурации для ISC DHCP server:
Поправьте этот файл в соответствии с адресным пространством вашей сети.
Сразу после получения адреса, AsbestOS пытается скачать с TFTP-сервера файл конфигурации. В примере выше был указан файл kboot.conf. Нам хватит минимальной конфигурации, и поэтому этот файл будет состоять лишь из одной строки:
Как видно из неё, нам также нужно положить образ ядра в директорию tftp-сервера и назвать его vmlinux. Ссылка на готовое ядро будет указана в следующем разделе.
Так как жёсткий диск приставки не будет использован для хранения GNU/Linux, а корневая файловая система нужна для работы, то мы воспользуемся возможностью Linux использовать nfs в качестве корня. Добавим строку в /etc/exports:
Кстати, файловую систему можно взять здесь, а ядро и модули к нему — тут.
Всё готово. Запускаем lv2 patcher, выбираем новый пункт меню «Linux» и нажимаем «X». Через несколько секунд ядро проинициализирует framebuffer и выведет на экран два ряда пингвинов.
А как бы вы стали использовать старую (новую?) возможность PS3?
Небольшое видео для привлечения внимания:
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?