• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

(PS3Linux) Open Platform for PS3 - site open with instructions

gofreak

GAF's Bob Woodward
Update - an abbreviated guide to installing Fedora Core 5 on a PS3:

Preparation:

1) Download and burn Fedora Core 5 to a DVD
2) Download and burn the PS3 Linux Add-On Packages CD
3) Using a USB stick (or other storage option, like CD/DVD/BD etc.) create a folder at the top level called 'PS3'. Within that folder create a new sub-folder called 'otheros'. In that folder you need to put to files:

otheros.bld (bootloader - found on the Add-on Packages CD in the 'kboot' folder)
otheros.self (Sony's "Other OS Installer")

4) Create a Linux partition on your PS3 (via the XMB format utility)
5) Connect the USB or other storage from 3) to your PS3.
6) Start the "Install Other OS" Utility. It will scan for the otheros.self file, and when it has found it, will display its location. Select that and it will install the bootloader.
7) Set the default OS to be "Other OS" in the XMB system settings.
8) Reboot the machine. It will now automatically boot the bootloader from which you can install your OS.

Installing Fedora Core 5:


The bootloader will have a command prompt. To install type the following command:

install-fc sda

It will prompt you to insert the Fedora Core 5 DVD. Put it in if you haven't already, and hit 'y'.

It will then ask you if you want a minimum or full install, enter your preferred option. It will warn you that data on the linux partition will be erased - just hit 'y' to continue.

When finished, the DVD will eject. It will then prompt you to enter the Add-on Packages CD. Just pop it in and hit 'y'. It will eject to finish, and that's the installation complete. Just enter 'reboot' to start Linux or 'halt' to turn off the machine.

edit - The bootloader is available now too! So we have all the pieces (I think). You should now be able to install Fedora Core 5 (at least) on your PS3 (see further down the thread for full instructions).

PS3 Linux add-on cd with bootloader (kboot):

ftp://ftp.uk.linux.org/pub/linux/Sony-PS3/

Sony's Open Platform for PLAYSTATION®3 website has updated with configuration details for installing another OS on your PS3.

Here's the instructions:

http://www.playstation.com/ps3-openplatform/manual.html

Basically you download the installer from that website and save it to a USB key or HDD, or CD or DVD or BD or memory stick etc. (basically any storage PS3 will recognise can be used). You have to create a folder called 'PS3' at the top level of your storage, then a subfolder called 'otheros', and place the installer in there. You place the third party bootloader for your OS in the same location (must be named 'otheros.bld'). Then just connect your storage to your PS3 and run the 'Install Other OS' utility - it will scan for the installer, and display its location. Just select that, and it will start the installation process for your OS.

Currently the site doesn't point to any third party OSes, and notes that they'll be distributed completely independently of Sony. There's a FAQ in there too.

On a related Open Platform note, PowerDeveloper.org updated its PS3 page to note that a Gentoo overlay for PS3 is in the works. Luca Barbato is looking for someone with a PS3 to test out a Gentoo image for him ;)

http://planet.gentoo.org/developers/lu_zero/2006/11/11/playstation_3
 

RuGalz

Member
You'd still need to make the bootloader for the distribution you are using it seems. I'm having trouble figuring that part out since I'm not that family with linux. Was hoping to get everything ready before I go pick up the system in a few hours. :)
 

RSP

Member
so, this is for application development? you can't use the RSX chip can you?

the early E3 demo's have proven that Cell should have plenty of power for most homebrew titles, so hopefully many creative things will come from opportunity :)
 

wsippel

Banned
RSP said:
so, this is for application development? you can't use the RSX chip can you?

the early E3 demo's have proven that Cell should have plenty of power for most homebrew titles, so hopefully many creative things will come from opportunity :)
You can use RSX, but you can't use hardware 3D accelleration. Which means lots of stuff should be possible for homebrew devs, except for 3D and memory hungry stuff.

I just hope someone already got EXA and XV support working on RSX (2D and video accelleration).
 

gofreak

GAF's Bob Woodward
RuGalz said:
You'd still need to make the bootloader for the distribution you are using it seems. I'm having trouble figuring that part out since I'm not that family with linux. Was hoping to get everything ready before I go pick up the system in a few hours. :)


Sony's original instructions on the powerdeveloper.org site mention that kboot is provided for this.

I might be wrong, but I think everything might be out there already to try this..(e.g. with Fedora Core, as Sony's example outlined). Who'll be the first to get Linux on their PS3? :p

edit - you can find the add-on packages cd referenced in those instructions here:

ftp://ftp.uk.linux.org/pub/linux/Sony-PS3/ (one at b3d pointed out this link)
 

RuGalz

Member
gofreak said:
Sony's original instructions on the powerdeveloper.org site mention that kboot is provided for this.

I might be wrong, but I think everything might be out there already to try this..(e.g. with Fedora Core, as Sony's example outlined). Who'll be the first to get Linux on their PS3? :p

They've released the patches but I've yet to find a binary for it.
 

gofreak

GAF's Bob Woodward
Yeah..I think all the pieces of the puzzle are there now. Here's the instructions again for installing FC5, if anyone wants to try it :D

Install Fedora Core 5
1. Abstract

This section shows how to install Fedora Core 5 on a PS3.

To install Fedora Core 5 on a PS3, you have to execute following steps.

* Create a Linux partition on the HDD.
* Install boot loader.
* Set boot flag to 'Other OS'.

2. Requirements
Hardware

* PS3 which System Software version 1.10 or later is installed
o Controller
o USB keyboard
o USB Memory or MemoryStick or SD or CompactFlash
o Monitor
The following will be used for output from a PS3.
+ HDTV monitor(supporting 480p, 1080i, 720p or 1080p)
+ Connected with the HDMI connector or the AV MULTIOUT connector

Software

* Other OS installer (otheros.self)
o You can get the binary from http://www.playstation.com/ps3-openplatform/
* kboot image compressed by gzip (otheros.bld)
o You can find this in Addon Packages CD.
* Fedora Core 5 PPC install DVD
o You can get Fedora Core 5 PPC install DVD from Fedora Project (http://fedora.redhat.com/)
* Addon Packages CD.

3. Setup procedure.
3.1 Setup your PS3.
1) Connecting power cables.
2) Connecting monitor

* Connected with the HDMI connector or the AV MULTIOUT connector.

3) Making other interface connections.

* Connect the USB cable of the Controller to the USB connector.
* Connect the USB cable of the USB keyboard to the USB connector.

3.2 How to create a Linux partition.
1) Turn on the PS3. After initializing, you can see GameOS menu. You select "Settings -> System Settings".
2) After selecting "Format Utility" from sub menu, following messages are displayed.

Format Memory Stick
Format SD Memory Card
Format CompackFlash
Format Hard Disk

To allocate a Linux partition on the Hard Disk, select "Format Hard Disk".
3) After following message is displayed. you select 'Yes'.

Do you want to format the hard disk?

Yes No
4) After following message is displayed. you select 'Yes'.

If you format, all data on the hard disk will be deleted.
This data cannot be restored.
Are you sure you want to continue?

Yes No
5) You can see following message.

Select a partition setting for the hard disk.

Use All for the PS3 System
Custom

To allocate a Linux partition on the Hard Disk, select "Custom".
After selecting "Custom", following messages are displayed.

Select a partition setting for the hard disk.

Use All for the PS3 System
Allot 10GB to the Other OS
Allot 10GB to the PS3 System

To allocate a Linux partition on the Hard Disk, select one of following items.

Allot 10GB to the Other OS
Allot 10GB to the PS3 System

If your hard disk size is 20GB, you have to select 'Allot 10GB to the Other OS'.
6) After selecting the item, format process is started.
7) After creating a Linux partition, following messages are displayed.

Format Complete.
Press the X button to restart the system.

After pressing the X button, restart the system software and you can see GameOS menu.
3.3 How to install kboot.
1) Connect a USB memory or memory card to the USB connector of your PC.
2) Open the USB memory or memory card(E drive).
3) Create PS3 folder in E drive and open PS3 folder.
4) Create otheros folder in PS3 folder.
5) Copy following files to otheros folder.

* otheros.self Other OS installer
* otheros.bld kboot(compressed by gzip)

6) Extract USB memory or memory card from your PC and insert it to the USB connector of the PS3
7) Turn on the PS3. After initializing, you select "Settings -> System Settings" by using GameOS menu.
8) After selecting "Install Other OS" from sub menu, the system search Other OS installer from flash memory device. After the system found. Other OS installer, following messages are displayed.

The following installer items were found:

Title /PS3/otheros/otheros.self
Location USB Device

OK

Note: Path name of Other OS installer and Location information may vary according to your environment.

If the system cannot find Other OS installer, following message is displayed.

No applicable installer was found.

If you see above message, please confirm the data on your flash memory device.

After the system found Other OS installer and you select 'OK', following messages are displayed.

Press the X button to start the installer.
The screen will temporarily go blank. Please wait until the installer starts.

Press the X button to start the installer.
9) After initializing Other OS installer, you start installing kboot.
10) After finishing Other OS install, you can see the GameOS menu.
3.4 Change the default system to boot

To start kboot, you have to change the default system to boot.
1) Turn on the PS3. After initializing, you select "Settings -> System Settings" by using GameOS menu.
2) After selecting "Default System" from sub menu, following messages are displayed.

PS3
Other OS

Select 'Other OS'.
3.5 Turn off the PS3.
1) Push the "PS" button in 2 seconds. on your Controller. Following messages are displayed.

Turn off the controller.
Turn off the system.

Select 'Turn off the system'.
3.6 Restart
1) Push the power button on the PS3.
2) You have already set the default system to 'Other OS'. So you can see the kboot message.
3.7 How to install Fedora Core 5 on your PS3
1) Insert Fedora Core 5 install DVD to the PS3.
2) After displaying kboot prompt, you start a installer program.

You can select only DVD install.
There is one Hard Disk Drive in the PS3.
After initializing boot loader, one HDD is recognized as follows.

* sda Linux

You select 'sda' HDD for install.

DVD install

kboot: install-fc sda

After executing installer, you can see following message.

Please insert Fedore Core install DVD.
Is it OK? (y/n):

After you finish preparing, type 'y'.

1) Fedora Core minimum install
2) Fedore Core full install"
Select install system?

You select one of them.

Next you can see following message. If you can save the data on HDD, you have to backup them to another device.

Caution!!. All data in /dev/sda are removed.
Is it OK? (y/n):

To start Fedora Core 5 install, type 'y'.

HDD is initialized as follows.

Partition id Size Type Label
1 Max size - 512MB Linux /
2 512 MB swap SWAP

After Fedora Core 5 install, Fedora Core 5 install DVD is automatically ejected. Next you can see following messages.

Please insert a Addon Packages CD.
Is it OK? (y/n)

You insert a Addon Packages CD, type 'y'. Then additional packages are installed.

After Addon Packages install, Addon Packages CD is automatically ejected. And you can see following messages.

Install done.
Type reboot to start Linux or type halt to power off

3) To start Linux, type 'reboot'.

4) You can see Linux messages.

Fedora Core release 5 (Bordeaux)
Kernel 2.6.16 on an ppc64

localhost login:

edit - or in shorter terms,

1) Burn the add-on packages cd from the link above.
2) Create a linux partition using the format utility
3) Install kboot (the bootloader) as per the instructions in the first post
4) Set Other OS as your default OS and restart
5) Insert FC5 install disc and go from there..

So now we just need someone to try it out ..:)
 

gofreak

GAF's Bob Woodward
BlueTsunami said:
So is the Bootloader thats needed for the MC or USB Stick, is that for security reasons or something?

It's just kboot, so I doubt it. The "other os installer" is probably doing the security bit perhaps.

We need a guinea pig! :p
 

TTP

Have a fun! Enjoy!
Where is FC5. I can only see FC6 on that site.

And about the add-on CD. Do I have to download all those 4 files or just the first one?
 

BlueTsunami

there is joy in sucking dick
Fedora 5 being another installable OS is awesome

If I had gotten a PS3 at launch, this would have been one of the first things I would have tested out

;_;

Can't wait for screens though
 
BlueTsunami said:
So is the Bootloader thats needed for the MC or USB Stick, is that for security reasons or something?
No, you can use any of this:
# Empty CD-R, CD-RW, DVD-R, DVE+R, DVD-RW, DVD+RW, BD-R, or BD-RE disc
# Memory Stick™ *
# SD memory card *
# CompactFlash® *
 

RuGalz

Member
TTP said:
Where is FC5. I can only see FC6 on that site.

And about the add-on CD. Do I have to download all those 4 files or just the first one?
If you go to mirrors they have FC5. You just need the ISO of addon.
 

gofreak

GAF's Bob Woodward
TTP said:
Where is FC5. I can only see FC6 on that site.

Here's a mirror for FC5 PPC:

http://ftp.heanet.ie/pub/fedora/linux/core/5/ppc/

edit - these might be closer to you, in italy ;)

ftp://ftp.edisontel.com/pub/Fedora_Mirror/5/ppc/iso/

or

ftp://ftp.unina.it/pub/linux/distributions/fedora/5/ppc/iso/

TTP said:
And about the add-on CD. Do I have to download all those 4 files or just the first one?

I think just the first one. The second looks like sourcecode, the third and fourth are just hashes for verifying your download.
 

gofreak

GAF's Bob Woodward
Here's the readme file for the add-on disc, if anyone's curious:

Release Contents

$Id: README-e.txt,v 1.43 2006/11/10 13:39:46 fuse Exp $

* Summary

This delivery consists of the Linux for PS3 release.

* Release Items List

Addon Packages CD

- README(TOP directory)
o README-j.txt
o README-e.txt This file

- Documents
HTML:
(doc directory)
      o index.html
    	* Linux Kernel Overview 
    	* How to Enable Your Distro
    	* Booting Linux and Installation
    	* Platform Specific Utilities
    	* Application Programming Environment
    	* Cell Programming Primer  - coming soon

  - Software

    kboot(kboot directory)
    - kboot image
      o otheros.bld

    target(target directory)
    - Kernel Headers
      o glibc-kernheaders-2.6.16-20061108.ppc.rpm
    - Kernel and modules
      o kernel-2.6.16-20061108.ppc64.rpm
    - PS3PF tool
      o ps3pf_utils-1.0.9-2.ppc.rpm
    - Kexec tool
      o kexec-tools-1.101-4.ppc64.rpm
    - VSYNC sample
      o vsync-sample-1.0.1-4.ppc.rpm
    - RAM disk for boot
      o initrd.img

    SPU (spu directory)
    - LIBSPE
      o elfspe2-2.0.0-be0644.3.20061107.1.ps3pf.ppc.rpm
      o libspe2-2.0.0-be0644.3.20061107.1.ps3pf.ppc64.rpm
      o libspe2-2.0.0-be0644.3.20061107.1.ps3pf.ppc.rpm
      o libspe2-devel-2.0.0-be0644.3.20061107.1.ps3pf.ppc64.rpm
      o libspe2-devel-2.0.0-be0644.3.20061107.1.ps3pf.ppc.rpm
    - SPU newlib
      o spu-newlib-1.14.0.200610300000-1.ps3pf.ppc.rpm


In addition to the items listed above, the following software programs are 
required:

    - PS3 System Software 1.10 or later.
    - Fedora Core 5 install DVD(http://fedora.redhat.com)
    - SPU toolchain(http://www.bsc.es/projects/deepcomputing/linuxoncell/)
      Please refer Application Programming Environment.
    - Other OS installer(http://www.playstation.com/ps3-openplatform/)

Contact a system administrator in charge to obtain these programs.


* Linux for PS3 Document top page.

  Refer to doc/index.html


* Linux Kernel Overview

  Refer to the How to Linux Kernel Overview HTML document.


* Installation Instructions

  Refer to the How to Enable Your Distro HTML document
  for installation instructions.


* kboot 

  For information about using the kboot, refer to the  
  How to Enable Your Distro HTML document.


* Application Program Environment

  Refer to the Application Programming Environment HTML document for the
  application program environment for the Linux for PS3.


* VSYNC sample program

  VSYNC sample programs are located in /usr/share/doc/vsync-sample-1.0.1.
  Refer to 'README.txt' in the above directory. For the relationship
  between virtual frame buffer and VSYNC, refer to the 
  Application Programming Environment HTML document.


* ps3pf-tools 

  For information about using the ps3pf-tools commands, refer to the  
  Platform Specific Utilities HTML document.


* Cell Programming Primer

  Refer to the Cell Programming Primer HTML document for developing
  Cell oriented Program.


---
EOF[/QUOTE]
 

wsippel

Banned
If you want higher performance and don't mind a few bugs, a command line and a lengthy setup process, use gentoo with the CELL overlay. Contrary to generic PPC distros like Fedora or Ubuntu, gentoo is already partially optimized for CELL and comes with a compiler that actually supports CELL itself, including the SPUs (GCC 4.3.0_alpha20061111), not PPC in general.
 
wsippel said:
If you want higher performance and don't mind a few bugs, a command line and a lengthy setup process, use gentoo with the CELL overlay. Contrary to generic PPC distros like Fedora or Ubuntu, gentoo is already partially optimized for CELL and comes with a compiler that actually supports CELL itself, including the SPUs (GCC 4.3.0_alpha20061111), not PPC in general.
Using only the PPC binaries, do you think it'll be able to run PPC-compiled software out of the box?
 

mrklaw

MrArseFace
so you need to format your HDD to create a partition reserved for linux?

Hmm.

I'm looking forward to what homebrew devs manage to get up to with this, but plan to wait until something concrete comes out with a nice step-by-step guide. I'm no programmer but just want to use whatever apps are developed.

But if I wait I'll end up with a HDD full of save games and demos etc. So I'm wondering if I just reformat now (lose my motorstorm and F1 demo, nothing much) and reserve around 10GB for a future linux solution. I'd think that'd be plenty if I just want to install something like PS3MC

Woudl that be the best direction to take?
 

gofreak

GAF's Bob Woodward
mrklaw said:
so you need to format your HDD to create a partition reserved for linux?

Hmm.

Yeah, that's a subtlety I missed on the first scan through. I think it is a pretty decent idea to reserve space when you get your PS3 so you don't have to further down the line when when you actually might have stuff you can't back up.
 

wsippel

Banned
InsertCredit said:
Using only the PPC binaries, do you think it'll be able to run PPC-compiled software out of the box?
Standard PPC binaries should work just fine on CELL, but they'll only use the PPE, and the performance shouldn't be that great. Binaries compiled for CELL should always be faster, even if they don't use the SPUs. The latest GCC alphas feature a few specific optimizations for CELL, which, while compatible with the PPC ABI, is still a different animal (in-order, different pipeline and such).

Remember, though, that GCC 4.1 is the stable branch right now, GCC 4.2 is feature freeze, and GCC 4.3, the version with CELL support, is in heavy development and really unsuited for production use. 4.3.0 is expected to be released in late 2007.
 

gofreak

GAF's Bob Woodward
BlueTsunami said:
I wish there was a more custom option for HDD Space allocation

:/

Yeah, I'm hoping those options get improved in a firmware update. Although the option to connect an external HDD might offset that to a large degree..but if you really need a lot of space for both OSes on the internal drive, I guess you could possibly swap between two different drives partitioned differently (?)
 

wsippel

Banned
yahso said:
While the Bootloader is available, then theoretically i could install Mac OS X ( PPC ) on a PS3?
Nope. No drivers, an incompatible firmware, not enough RAM to make it work properly, and on top of that, you're not allowed to install OS X on non-Apple hardware. You could install Linux and run OS X via MacOnLinux, but it would be slow as hell and still violating Apples EULA.
 

BlueTsunami

there is joy in sucking dick
gofreak said:
Yeah, I'm hoping those options get improved in a firmware update. Although the option to connect an external HDD might offset that to a large degree..but if you really need a lot of space for both OSes on the internal drive, I guess you could possibly swap between two different drives partitioned differently (?)

Firmware Update for sure. Its pretty glaring how rigid the HDD space is as far as allocation.

Swapping of drives should be fine I guess. It would be cool if an external enclosure gets created where hot swapping drives would be easy as disconnecting the SATA cables :D

If External USB Drives are supported nicely in Linux though, I actually wouldn't mind allocating 10GB to the Linux OS and just saving all my media and stuff on that external drive.

That would actually be cool seeing as the media on the drive should be accessible both to the XMB and the Linux OS.
 

rubso

Banned
wsippel said:
Nope. No drivers, an incompatible firmware, not enough RAM to make it work properly, and on top of that, you're not allowed to install OS X on non-Apple hardware. You could install Linux and run OS X via MacOnLinux, but it would be slow as hell and still violating Apples EULA.
then how come you will install Linux on PS3 while there is no "RSX" drivers available, i mean if RSX isn't supported in the "nv" driver provided in X Server ( Linux ), how can it run without any problems?
 

wsippel

Banned
yahso said:
then how come you will install Linux on PS3 while there is no "RSX" drivers available, i mean if RSX isn't supported in the "nv" driver provided in X Server ( Linux ), how can it run without any problems?
RSX is not the only hardware component that needs some drivers - don't forget about audio, LAN, WLAN, mass storage controller, Bluetooth, USB ports and such. Also, you can hack one of the X.org drivers to at least make it display stuff on RSX, but you can't do the same on OS X without access to the sourcecode - Apple could do it, but why should they be interested in supporting OS X on PS3? Maybe someone could write all the drivers from scratch, but I don't know if that would be allowed, and it would only fix one of the issues, the least important issue.

"Real" RSX drivers with support for advanced features like hardware accelleration are a completely different issue, though. There is a Linux project to create open source drivers with hardware OpenGL accelleration, but it's a young project and far from usable, let alone complete. Still, this driver is probably the only hope to ever get hardware accellerated OpenGL on PS3 Linux - so maybe someone who cares should donate a PS3 to the project to help speed things up...


@Jonnyram:

IBM OS/2 is dead. I think IBM sold it to Serenity Systems, it's now called eComStation:

http://en.wikipedia.org/wiki/EComStation


@ZombieSupaStar:

There's no need to revive the homebrew scene, it never went away. ;)
 

rubso

Banned
wsippel:
its a bit confusing, because most of PS3's hardware is not supported nor well supported in most Linux Drivers Projects, such as "ALSA", X.org, even WLAN drivers aren't well supported and few of WLAN chipsets does work but not all the features are implemented, Bluetooth on the other hand is a big problem in Linux especially in my PC, its totally dead and it causes Kernel Panics all the time.
but still, if sony releases some kind of a "Spec sheet" to the developers it would be nice.
I'd like to see YDL and FC5 performance in PS3.
 

Mato

Member
Is this whole thing about being able to develop your own games? I want to develop my own million seller some day.
 

gofreak

GAF's Bob Woodward
yahso said:
wsippel:
its a bit confusing, because most of PS3's hardware is not supported nor well supported in most Linux Drivers Projects, such as "ALSA", X.org, even WLAN drivers aren't well supported and few of WLAN chipsets does work but not all the features are implemented, Bluetooth on the other hand is a big problem in Linux especially in my PC, its totally dead and it causes Kernel Panics all the time.
but still, if sony releases some kind of a "Spec sheet" to the developers it would be nice.
I'd like to see YDL and FC5 performance in PS3.

Some answers might be in the docs Sony released a week ago:

http://www.powerdeveloper.org/files/Playstation/linux-20061110-docs.tar.bz2

Might be wrong, but I think add-on disc installs some of the ps3-specific modules named here - just a guess though.

Here's a copy from the docs:

Platform specific Devices

Storage
(Module name: ps3pf_storage)

PS3 storage devices includes HDD, Blu-ray Disc drive (BD drive) and flash ROM. These devices are connected via CBE’s companion chip. Accessing these devices is performed by dedicated hypervisor calls. These hypervisor calls consist of simple straightforward methods: open, close, read, write, ioctl.Most of all methods are asynchronous, that is, methods will return immediately after call, and then the caller must wait for its completion via other method. These completions are notified by virtualized interrupts. The status of results of these asynchronous methods can be retrieved via the specific hypervisor call. Since the BD drive is basically ATAPI device, Linux can issue ATAPI commands by ioctl. Some of ATAPI commands have been rejected by the hypervisor call because of security issues.

PS3 Linux storage driver is implemented just like the usb storage driver does. That is, the driver behaves as SCSI host controller driver and the storage devices themselves are as SCSI devices. So the HDD is accessed as SCSI disk, like /dev/sda. Because PS3 HDD and flash ROM is not actually SCSI devices, responses of SCSI commands are synthesized by this driver.

Device detection by the hypervisor is asynchronous, that is, there is chance that the hypervisor puts device information after guest OS starts. So guest OSes should wait for hypervisor’s device detection is done. That can be achieved by waiting for special virtual interrupts to notify the completion of hypervisor’s device detection. See the source of the driver to know the details

Audio (Module name: snd_ps3pf)

PS3 Audio hardware can be divided into two part; front end part and back end part.

The front end part is PS3 audio chip itself, the back end consists HDMI driver chip, digital to analog converter for AV Multi interface, Optical Digital Out (IEC60958/SPDIF) device and base clock generators for 44.1KHz/48KHz audio clocks. Front end chip can be controlled by guest OSes through conventional register access. To gain the access of these registers the guest OS must issue dedicated hypervisor and then ioremap. The front end chip has simple structure, which reads(DMAs) PCM data into its buffer and put them out with specified clock and format. No special hardware to support to decode compressed audio, like MP3, is equipped. Unlike AC97, the front end chip does not have volume control. Guest OSes should modify supplying digital PCM audio data into the chip if it wants to volume control.

The back end audio devices are completely controlled by called ‘AV setting driver’. Setting up sample frequency and data format consistently between backend and front end is the role of the AV setting driver. Since the AV setting driver resides behind hypervisor, guest OS should use virtual UART to communicate with it.

The Linux driver for this audio is composed under ALSA driver framework, not OSS.

Graphics/Video

PS3 has a powerful graphic processing unit with high speed host connection. The GPU is connected to both HDMI and AV multi interface. Although the GPU is connected directly to CBE, no direct access by guest OSes to the GPU is allowed currently. Video mode/format setting is also the role of AV setting driver. PS3 Linux fb driver calls AV setting driver to setup video modes.

Currently X server uses virtual frame buffer to render its image. No hardware acceleration is supported under Linux. See the description above section.

Giga Bit Ethernet(GbE) (Module name: gelic_net)

PS3 has built-in giga bit ethernet controller. Unlike conventional PC’s ethernet controllers, it is not PCI device. It is connected to companion chip directly. To access or setup the chip, guest OSes should use dedicated hypervisor call. This controller has its dedicated DMA controller, thus transfer data is automatically sent/received without PPE interventions. There is also dedicated hypervisor call to set up DMAC.

VLAN framework is internally used for the built-in controller. Therefore, conventional VLAN can’t be used. PROMISC network mode is not supported with this controller.

USB


PS3 equips industry standard USB EHCI host controller and its companion OHCI host controllers. Although most USB host controllers are PCI devices, PS3 USB host controller exists in the companion chip. The PCI probe routines of Linux are modified so that PS3 USB host controller can imitate PCI device. After initialization, all operational registers of USB host controllers are directly accessed by PPE, so no modification to original Linux USB host controller driver is needed. PS3 has internal high speed USB hub. The USB ports of PS3 front panel is connected to the hub, not to USB host controller directly. This PCI probe modification would be change later to get better device driver maintainer acceptance.

Game PAD

PS3 game pad has both USB mode and Bluetooth mode.Enabling each mode depends on the timing of pressing PS button, which resides in the center of the pad.

In USB mode, although it almost conforms to USB HID specification, it requires special USB request to enable sending HID data (reports). The generic USB HID driver is modified to support this. Because it is just HID device, information of the device is retrieved by standard HID device node, like /dev/input/js0, /dev/input/event0 and so on. Bluetooth mode is not supported by Linux.

Memory card reader/writer

Built-in memory card reader/writer supports Memory Stick, CompactFlash and SD. The controller is a high speed USB device and conforms to USB Mass storage specification. The generic usb mass storage driver of Linux can support this device with no modification. It is connected to root port of the EHCI controller. Because each card slot behaves logical unit (LUN), Linux driver can support these slots simultaneously.

Bluetooth

PS3 has built in USB Bluetooth host controller which conforms to Bluetooth host controller interface specification, so generic hci_usb Linux driver can handle the host controller. The controller is high speed USB device and connected to directly internal EHCI root port.

Paring between Bluetooth device and host is maintained per OS basis. That is, paring information at Linux does not propagate Game OS, and vice versa.

RTC

Built-in real time clock keeps the wall clock time for PS3 system. Like PC, it is backed up by battery, so it ticks time even if external power is out. RTC value can be retrieved by a hypervisor call, but be never set. PS3 RTC monotonically increases and never rolls back.

PS3 Linux RTC driver supports the standard RTC userland interface /dev/rtc, so that you can use hwclock command to set the difference.
 

BlueTsunami

there is joy in sucking dick
Wow, I just read through the whole thing

It seems like IBM and Sony really thought threw the base compatibility with Linux with the PS3. As far as what calls Hypervisor will take in terms of basic functions and security.
 

Danj

Member
gofreak said:
Game PAD

PS3 game pad has both USB mode and Bluetooth mode.Enabling each mode depends on the timing of pressing PS button, which resides in the center of the pad.

In USB mode, although it almost conforms to USB HID specification, it requires special USB request to enable sending HID data (reports). The generic USB HID driver is modified to support this. Because it is just HID device, information of the device is retrieved by standard HID device node, like /dev/input/js0, /dev/input/event0 and so on. Bluetooth mode is not supported by Linux.

Does this mean we might see some homebrew Windows drivers for it? If all that's needed is a modification to do this special request to enable HID data, then it shouldn't be that hard for some experienced coder person to reverse engineer and modify an existing Windows HID driver for it, right? Actually, didn't some website already try plugging in a SIXAXIS, and it registered, but the buttons didn't work? So maybe just modifying the generic Windows driver would work.
 

wsippel

Banned
yahso said:
wsippel:
its a bit confusing, because most of PS3's hardware is not supported nor well supported in most Linux Drivers Projects, such as "ALSA", X.org, even WLAN drivers aren't well supported and few of WLAN chipsets does work but not all the features are implemented, Bluetooth on the other hand is a big problem in Linux especially in my PC, its totally dead and it causes Kernel Panics all the time.
but still, if sony releases some kind of a "Spec sheet" to the developers it would be nice.
I'd like to see YDL and FC5 performance in PS3.
ALSA supports most soundcards available, even more than Windows. There are a few exceptions, Creative X-Fi for example (blame Creative). WLAN can be an issue, especially if you use a Broadcom-based WLAN adapter. RaLink, Atmel, Orinoco and Intel chips usually work just fine. Bluetooth support is actually top notch on Linux, but there are quite a few dodgy Bluetooth dongles available. My cheap ass whitebox USB dongle worked perfectly, out of the box, on amd64 Linux. Actually, my workstation is quite packed, lots of unusual and non-standard components, yet everything works just fine on Linux. Took a while to make everything work, though. And I did experience some incompatibilities in the past, but since I'm Linux-only for quite a few years now, I won't buy any hardware components that are known not to work on Linux, of course. It's really unrealistic to expect Linux-support for every piece of PC hardware available, at least until all companies actually support Linux.

Anyway, all of that doesn't apply to hardware like the PS3, though, so there shouldn't be any big problems as soon as stable drivers for all the components exist. External devices might be an issue, but most printers or Wacom Intuos tablets should work perfectly.
 

rubso

Banned
Thanks gofreak, i really needed to read this ;)
PS3 has a powerful graphic processing unit with high speed host connection. The GPU is connected to both HDMI and AV multi interface. Although the GPU is connected directly to CBE, no direct access by guest OSes to the GPU is allowed currently. Video mode/format setting is also the role of AV setting driver. PS3 Linux fb driver calls AV setting driver to setup video modes.

Currently X server uses virtual frame buffer to render its image. No hardware acceleration is supported under Linux. See the description above section.
that's the problem but "ps3videomode" in Linux will solve a minor part of it.. although Linux can not work 100% natively on a PS3 it runs on a virtual system called the "Hypervisor" as its shown in the docs it gives Linux "some" access points to use "some" of PS3 hardware parts.
anyway this document really explains it all =) Thanks again gofreak.
Note: i can not find anything regarding PS3 WLAN in the docs.
 
Top Bottom