Инструкция: Как подключить PS3 к ОС Linux
Здравствуйте, дорогие друзья. В этой статье мы с вами познакомимся с архитектурой Sony PlayStation 3 и научимся ставить всем известную операционную систему Linux на консоль нового поколения Sony PlayStation 3.
Перед началом изучения и прочтения этой статьи задайте себе один маленький вопросик «нужен ли мне Linux на PS3?».И еще. сами разработчики PS3 не гарантируют вам корректной роботы ОС на консоли. так что, ребята, решать вам будете ли Вы подвергать свою «родненькую», «любимую» консоль этим неизвестным и секретным экспериментам! А теперь ПОЕХАЛИ.
Вся статья состоит из двух очень важных частей. Первая часть включает в себя особенности архитектуры PS3, вторая — подробную инструкцию установки Linux на консоль.
I. АрхитектураSony PlayStation 3.
Вообще говоря, PLAYSTATION 3 — это необычная игровая консоль, которую нам доводилось видеть раньше, этот вывод можно сделать, исходя из двух характерных причин. Во-первых, она наиболее открытая для пользователя (на программном уровне), в отличие от консолей предыдущего поколения. То есть, в то время как большинство консолей пытаются бороться с несанкционированными, запрещенными или пиратскими играми для своей системы, то процесс развития консоли PS3 направлен немного в иную сторону, а именно, обеспечивает прямую поддержку устанавливать и загружать не только игры и различного рода приложения, но и даже операционные системы, которые не имеют никакого отношения к консольной индустрии. Разумеется, многие другие консоли не придерживаются такого направления, исходя из многих факторов и причин (например, из-за «фич», связанных с игрой). Здесь, к примеру, имеется ввиду то, что ускоритель передачи видеосигналов блокируется со стороны операционной системы. Но этот цикл сосредоточен на универсальных и научных системах исследованиях.
Однако, по-настоящему главная и, пожалуй, основная часть для PS3 – это его процессор – чип Cell Broadband Engine (сокращенно Cell BE чип). Архитектура Cell BE чипа стала радикально отличаться от традиционной архитектуры процессора. Эти отличия стали проявляться в следующем: Cell BE процессор стал представлять собой чип сложной структуры, состоящий из девяти элементов обработки данных, причем в PS3 один из них – блокирован для взаимодействия пользователя с системой, другой из них – резервный и используется исключительно системой, остальные семь элементов остаются в распоряжении пользователя. Главным же элементом обработки данных является, довольно, стандартный процессор общего назначения. Это – двойное ядро PowerPC® , т.е. основной элемент, который называется Power Processing Element (сокращенно PPE).
Другие элементы обработки данных известны как Synergistic Processing Elements или SPE. Каждый SPE состоит из:
— Направленного процессора, который принято называть Synergistic Processing Unit( SPU);
— Собственной области памяти в пределах SPU, называемым локальным хранилищем (размер этой области на PS3 — 256 КБ);
— Коммуникационных каналов связи длявзаимодействия с внешним миром;
— 128 регистраторов, каждый из которых содержит 128 широких битов (каждый регистр обычно хранит в себе одновременно четыре 32х-битных значения)
— Диспетчера потока памяти (Memory Flow Controller или MFC), который управляет передачами прямого доступа к памяти между локальным хранилищем SPU и главной памятью процессора.
Однако, элементы SPE имеют недостаток во многих особенностях общего назначения, которые пользователь обычно ожидает увидеть в процессоре. Эти SPE элементы не приспособлены к выполнению стандартных задач операционной системы, и причем существенно. У них нет никакой поддержки виртуальной памяти, к тому же они не имеют прямого доступа к оперативной памяти компьютера. Эти процессоры полностью сконцентрированы на быстрой обработке данных.
Поэтому можно сделать вывод, что процессор PPE действует в системе как менеджер ресурсов, а SPE процессор – как механизм быстрой обработки данных. Можно отметить, что SPE и PPE процессоры взаимодействуют между собой, обрабатывая и передовая данные друг другу. То есть, программы на PPE процессоре распределены также и на SPE процессоры для того, чтобы завершить задачи, поставленные системой.
Теперь, соединяем вместе SPE, PPE и главный контролер памяти, в итоге получаем некий канал, который называется Element Interconnect Bus канал. Это главный пропускной коридор, через который проходят данные.
Самая поразительная часть архитектуры чипа Cell BE – это то, что локальное хранилище SPE элементов не является, в своем роде, кэшем, то есть, это, фактически, полный объем памяти, в котором SPE процессор должен работать одновременно и с программами, и с обработкой данных. Такой подход может с одной стороны показаться неудобством, но с другой – имеет несколько преимуществ:
— Доступы к памяти локального хранилища SPU на порядок быстрее, чем доступы к главной памяти процессора;
— Доступы к памяти локального хранилища SPU могут быть заранее помещены в синхронизированный цикл;
— Обработка входных и выходных данных основной памяти процессора можно запросить асинхронно раньше времени.
В основном такие особенности локального хранилища SPU – это, ничто иное, как скоростные характеристики кэша. Однако, так как программы используют это тщательно и быстро, то они могут намного изящней управлять этим процессом. Например, могут запрашивать, чтобы данные загружались в необходимом порядке, при этом параллельно продолжать выполнение других задач до полной загрузки этих данных.
Таким образом, подводя итоги сказанному, PS3 – это первый девайс, который основан на чипе Cell BE, и, благодаря своему новому дизайну архитектуры процессора, предоставляет пользователю полный доступ к своей системе, т.е. пользователь может полностью настроить систему “под себя”. Такая консоль позволяет не только загружать операционные системы, но и программировать в ней.
II. Теперь рассмотрим как поставить ОС на PS3, на примере ОС Linux.
Вообще говоря, для игровых консолей не свойственна загрузка операционных систем. Потому что на консоли, обычно, ставятся игры с лицензией, которая приобретается у самих разработчиков приставки, и поэтому “левый хлам” установить практически невозможно. Но представители SONY решили предоставить возможность загрузки операционной системы на консоль SP3, только с одной оговоркой, что ОС не получает ускоренную графику.
Вследствие такой «фичи», пользователь теперь может установить Linux на PS3, правда, ему придется для этого проделать несколько этапов, но это определенно работает. Terra Soft Solutions в сотрудничестве с S ONY разработали Yellow Dog Linux 5 для PS3. Эта уникальная поддержка пользователям консоли нового поколения. Yellow Dog Linux (известный как YDL), начиная с самого начала, был распределен на базе ядра PowerPC. Таким образом, никого не удивило то, что SONY заключила такую договоренность по отношению к ОС, чтобы разработать следующую версию YDL определенно для PS3. Далее прилагается инструкция инсталляции первого выпуска YDL 5 для PS3.
Для того чтобы загрузить Linux на PS3, необходим следующий перечень аппаратных средств:
— Дисплей и соответствующий кабель;
— USB клавиатура;
— USB мышь;
— USB флеш драйвер («флешка»).
Необходимо отметить, что 20GB PS3 проходят через сложный RCA разъём, который подобен телевизионному устройству выхода. Это можно преобразовать в VGA (здесь вы можете посмотреть как выглядит этот кабель: http://www.monoprice.com/products/search.asp?keyword=2509) через специальный кабель. К сожалению, все это будет работать в разрешении экрана 576×384. Для того чтобы увеличить разрешение, необходимо использовать порт HDMI, но такой подход может привести к ненужным проблемам.
Чтобы подготовить PLAYSTATION 3 для загрузки ОС, необходимо выполнить следующие шаги:
1. Соедините кабель Ethernet с PS3. Убедитесь, что сеть имеет DHCP сервер.
2. Если PS3 совсем новая, то тщательно разберите все пункты инсталляции, т.к. от запуска первой программы зависит многое, в том числе регулирование языка, времени, имени пользователя для системы PS3.
3. Зайдите теперь в Settings, затем в System Settings выберете Format Utility.
4. Выберете Format Hard Disk и подтвердите выбранный вариант дважды.
5. Укажите, что хотите выбрать Custom разбиение диска.
6. Укажите, что хотите выбрать Allot 10GB to the Other OS. Такая опция автоматически зарезервирует оставшееся свободное место на диске PS3 для операционной системы. После чего надо будет выполнится перезагрузка системы.
7. После перезагрузки системы, войдите в Settings, затем System Update.
8. Теперь выбираем Update via Internet.
9. Далее, на экране будут всплывать окна для обновления системы, следуйте за ними, переходя от одного окошка к другому, чтобы загрузить и установить последние обновления. Некоторые из этих окон не будут содержать кнопки “cancel”, и для того, чтобы перейти в другое окно вам придется на джойстике нажать кнопку X.
10. В итоге, PS3 один раз перезагрузится и будет подготовлена к инсталляции Linux.
Теперь, подготовим к инсталляции Linux на PS3 со стороны операционной системы. Ниже описывается последовательность шагов, которые вы должны проделать на своем компьютере (НЕ НА PS3), чтобы правильно подготовить ОС:
1. Загрузите и создайте DVD ISO образ для YDL 5.
2. Загрузите PS3 OtherOS инсталлятор от SONY ( http://www.playstation.com/ps3-openplatform/terms.html ) и сохраните его как otheros.self. Это файл, который запускает на PS3 операционную систему, служит для установки неизвестных bootloader-ов.
3. Загрузите YDL bootloader от Terra Soft (http://www.terrasoftsolutions.com/support/install/ps3/otheros.bld) и сохраните его как otheros.bld. Это будет bootloader, который установится инсталлятором SONY.
4. Вставьте USB-флешку в свой компьютер.
5. Создайте там папку с названием PS 3. В этой папке создайте еще одну папку с названием otheros.
6. Скопируйте созданные файлы ( otheros.self и otheros.bld) в директорию PS3/ otheros на флешке.
После проделанных манипуляций можно приступить к инсталляции.
Выполните следующие шаги, чтобы поставить Linux на PS3:
1. Извлекаем USB- флешку с вашего компьютера и вставляем его в PS3.
2. Далее идем в Settings, затем в System Settings, после чего выбираем Install Other OS.
3. Подтвердите место расположения инсталлятора и перейдите на экран инсталляционного процесса. Отметим, что сейчас устанавливается bootloader , а не операционная система.
4. После завершения загрузки зайдите в Settings, затем в System Settings и выберете Default System. Затем выберете пункт Other OS и нажмите кнопку X.
5. Вставьте YDL 5 DVD.
6. После вставьте в USB-разъем клавиатуру и мышь.
7. Сейчас перезагрузите систему. Вы можете сделать это удерживая кнопку PS на джойстике и затем выбрать команду выключения системы ( Turn Off), или, просто, удержать кнопку power в течении 5 секунд.
8. Когда система загрузится, тоее интерфейс пользователя будет похож наинтерфейс загруженного Linux. Потому что bootloader реально переключится на ядро Linux, или иначе kboot.
9. Как только система полностью загрузится и перейдет в режим kboot, то немедленно установите и перейдите на этот тип модели (только в случае, когда у вас устройство выхода проходит через HDMI порт), или прейдите на другой тип модели — installtext (если у вас действующее аналоговое (лицензионной)устройство). Оставшиеся пункты инструкции предполагают, что вы выбрали опции installtext.
10. После медиа проверки, у вас может выскочить в синей части экрана сообщение об ошибке — Traceback error. Но вы не волнуйтесь, просто проигнорируйте эту ошибку и переходите в другое инсталляционное окно.
11. Когда система спросит у вас о разбиении диска, то вы не беспокойтесь о том, что можете удалить операционную систему с PS3. Так как режим Other OS позволяет только пользователю операционной системы увидеть разделы жесткого накопителя. Даже утилиты низкого уровня не могут видеть другие разделы жесткого диска. Таким образом, YDL продолжает удаление данных с вашего накопителя HDD, после этого удаляются все разделы и создается стандартная, привычная любому пользователю PC разметка жесткого диска.
12. Когда вы дойдете до установки пакета, то вам потребуется приблизительно час, чтобы его полностью установить в систему PS3. Но это не означает, что вы установите все данные с DVD диска.
13.Сейчас у вас система перезагрузится. Если у вас аналоговый продукт, то вам необходимо выставить тип ядра kboot как boot prompt в опции ydl480i. Иначе это может привести к результатам, которые не допускаются аналоговой (или лицензионной) продукцией.
14. Во время загрузки у вас появятся инструменты инсталляции. Здесь вам больше ничего делать не надо, т.к. система автоматически выполнит дальнейшую загрузку и первый запуск.
Все! Теперь вы можете считать, что YDL на вашей PS3!
Теперь мы с вами рассмотрим как настроить некоторые полезные элементы или параметры установленного Linux(а) на вашу PS3.
К сожалению, установленная программа не заботится о всех деталях аналогового устройства. Однако, вы еще можете сделать, скажем, автоматическую загрузку надлежащей операционной системы, настроить X Window System на лицензионном устройстве, установить Cell BE SDK. Для всех этих фич, вам надо убедиться, что YDL 5 DVD находится в дисководе, установив это следующим образом:
Все инструкции предполагают, что загруженный DVD установлен так, чтобы вы при загрузки операционной системы сразу оказываетесь в корневом каталоге системы. Чтобы получить лицензионную систему загрузки при запуске, необходимо, редактировать файл /etc/kboot.conf, изменив в нем значение строки default=ydl на default=ydl480i, и после этого сохранить файл.
Если вы хотите настроить X Window System на вашем аналоговом(лицензионом) устройстве, надо установить и запустить пакет Xautoconfig. Это можно выполнить следующим образом:
Однако. . стоит заметить, что один важный набор пакетов не включается в DVD – это 64-битовая версия библиотеки libspe. Но этот недостаток можно легко исправить. Получите пакет SRPM библиотеки libspe либо загрузив с DVD, либо скачав с вебсайта (этот пакет называется libspe-1.1.0-1.src.rpm). Затем зайдите в директорию, в которой вы его загрузили и выполните следующие шаги:
Все готово! YDL 5 – установлен, настроен и готов к использованию.
Что же дальше? Linux – установлен!
Сейчас, у вас и Linux, и Cell BE SDK полностью установлены. В этом разделе мы с вами поговорим о программировании и о том, какиспользовать установленные «навороты». Давайте, рассмотрим нетрудную задачку на языке Си (описанную ниже), в которой используются PPE и SPE элементы. Но для этого нам понадобится некоторый набор инструментов, которые используются при построении Cell BE программ:
— gcc
Наш испытанный компилятор, построенный для формирования бинарников PPC Linux для элемента PPE. Использует -m64 коммутатор, чтобы генерировать 64-битовый операции.
— spu-gcc
Это такой же испытанный компилятор, который генерирует код для SPEs элементов.
— embedspu
Это специальный инструмент, который преобразовывает программы SPE, файл объекта которого может быть связан с PPE операциями. Он создает глобальную переменную, которая обращается к программе SPE так, чтобы PPE мог загрузить и управлять программой в SPE-элементах. Используйте -m64 флаг, чтобы внедрить в систему 64-битовые программы PPC.
Без элементов PPE, Cell BE процессор может быть программируемым (причем существенным образом) на любой другой системе, основанной на ядре PowerPC. Фактически, вы можете эмулировать несуществование этих элементов, вследствие чего, ваш код будет прекрасно работать. Но это повлечет то, что большинство вашей вычислительной мощности будет не затронуто. Чтобы полноценно использовать в своих интересах SPE процессоры, вы должны будете приложить немного усилий.
Если вы плохо знакомы с Cell BE технологией, то запомните, что PPE процессор – это менеджер ресурсов системы. Он обращается к задачам операционной системы, регулирует доступ к памяти и управляет SPE процессами. Код для PPE задач отвечает за инициализацию программы, за настройку SPE элементов с задачами и выполнения ввода/вывода. Конечно, PPE процессор может также выполнять задачи обработки данных. Но, как правило, система должна освободиться от лишней загрузки, что является основательным по отношению к SPE элементам.
Таким образом, мы сейчас увидим, как написанная ниже простая программа выполнит задачу обработки данных на SPE процессорах. Программа будет очень элементарна, она вычисляет расстояние пройденного пути, скорость (миль/час) и время (в часах). Ниже приведенный код для PPE процессора (записанный как ppe_distance.c ):
Как упоминалось раньше, основное назначение PPE в Cell BE процессоре это управление задачами ввода/вывода. Реально интересная часть, которую здесь можно рассмотреть – создание потока spe_create_thread. Первы параметр – это поток ID группы (ноль указывает на то, что этот ID должен создать новую группу для потока данных); второй параметр -отвечает за управление SPE программы; третий параметр -является указателем на данные, которые вы хотите передать; четвертый параметр – указатель на опциональное окружение; пятый параметр – список опций, которые вы хотите использовать(но не все подряд). Функция возвращает номер ID задач процессора, которую вы будете в дальнейшем использовать как параметр метода spe_wait . Метод spe_wait возвращается, когда заканчивается SPE задача.
Далее представлен код для SPE процессора (записанный как spe_distance.c ):
Источник