PlayStation 3
The Linux SCSI Target Wiki
![]() | |
---|---|
![]() Counter-clockwise from the top: Logo, original "fat" model, Sixaxis controller, DualShock 3 controller, current "slim" model. | |
Developer | Sony Computer Entertainment |
Manufacturer | Sony EMCS, Foxconn, ASUSTeK[1] |
Product family | PlayStation |
Type | Video game console |
Generation | Seventh generation era |
Retail availability | November 11, 2006 |
CPU | 3.2 GHz Cell Broadband Engine |
Storage capacity |
2.5" SATA hard drive (20 GB to 320 GB included) (upgradeable) |
Memory | 256 MB system and 256 MB video |
Display | Composite, S-Video, Component, D-Terminal, HDMI |
Graphics | 550 MHz nVidia/Sony Computer Entertainment RSX "Reality Synthesizer" |
Sound | AV multi, TOSLINK, HDMI |
Controller input | Sixaxis, DualShock 3, Logitech Driving Force GT, Logitech Cordless Precision™ controller, standard USB controllers, GT Force, Rhythm game controllers, PlayStation Move, GunCon 3, PlayStation Portable, Keyboard and Mouse |
Connectivity | Flash Memory, A/V Out, 802.11b/g, Bluthooth, 4×USB 2.0, 1×GbE |
Online services | PlayStation Network |
Backward compatibility |
PlayStation (all models) PS2 (20 GB, 60 GB, some 80 GB) |
Predecessor | PlayStation 2 |
- See platforms for an overview over the supported devices and CPUs.

The Sony PlayStation 3 (officially abbreviated as PS3)[2] is a seventh-generation game consoles that runs LIO. It is the third home video game console produced by Sony and the successor to the PlayStation 2 (PS2) as part of the PlayStation series. The PlayStation 3 competes with Microsoft's Xbox 360 and Nintendo's Wii as part of the seventh generation of video game consoles.
A major feature that distinguishes the PS3 from its predecessors is its unified online gaming service, the PlayStation Network,[3] which contrasts with Sony's former policy of relying on video game developers for online play.[4] Other major features of the console include its robust multimedia capabilities,[5] connectivity with the PlayStation Portable,[6] and its use of the BluRay Disc as its primary storage medium.[7] The PS3 was also the first BluRay 2.0-compliant BluRay player on the market.[8] The PS3 is based on the IBM Cell Broadband Architecture CPU.
Contents |
PlayStation Family
The PlayStation (officially abbreviated PS) brand is a series of video game consoles created and developed by Sony Computer Entertainment. Spanning the fifth, sixth and seventh generations of video gaming, the brand was first introduced on December 3, 1994 in Japan. The brand consists of a total of three consoles, a media center, an online service, a line of controllers and a handheld as well as multiple magazines.
LIO runs on both PS3 and the PS2. For the PS3, a Live USB image is available to turn the PS3 into a media jukebox.[9]
LinuxIO 3.0
The PS3 runs LIO and iSCSI based on a modified Linux/ppc64 kernel.
Configuration
- PPC modules (iscsi-target-module-2.6.25-2.9.0.295-1.powerpc.rpm) built for ppc64 and built with the toolkit for Fedora Core 8 ppc.
- gcc (GCC) 4.1.2 20070925 (Red Hat 4.1.2-33)
- Tested with Linux 2.6.25 from ps3-linux.git and built against
arch/powerpc/configs/ps3_defconfig
with drivers/md/* enabled as modules for MD/LVM access with LIO.
Features
- Booting CELL physical machines with SCEI PS3 with HYPERVISOR with Linux/iSCSI
- Booting CELL virtual machines with IBM Mambo Simulator running PPC64 with Linux/iSCSI
- Use SPEs to decode/encode iSCSI socket level traffic on CELL
- Use SPEs to decode/encode DDP iSER level traffic on CELL
- T/I Repeater Implementations for CELL for PPE achieved
- T/I Repeater Implementations for CELL for PPE+SPE
Live USB image
The fastest and easiest option is to get the free live USB image from Datera, Inc., and follow the README provided with it. This setup was described in detail in the Linux Magazine.[9]
Setup
Getting the sources
First, install git
and git-core
packages on the PS3, then follow the git clone instructions from the LIO:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/nab/lio-core-2.6.git lio-core-2.6.git
Building the sources
Second, configure and built Linux v2.6.29 from lio-core-2.6.git and under "Device Drivers" built the LIO core module, configFS infrastructure and the iSCSI target mode stack as loadable kernel modules (LKMs).
Once lio-core-2.6.git/drivers/target/target_core_mod.ko
and drivers/lio-core/iscsi_target_mod.ko
have been built and installed with:
make modules_install
Mounting configFS
LIO uses configFS for its configuration. All storage objects can be accessed and exported, so the configFS module must be loaded and configFS must be mounted. Mount configFS at /sys/kernel/config
:
mount -t configfs configfs /sys/kernel/config
This can also be added to /etc/fstab
:
configfs /sys/kernel/config configfs defaults 1 1
The export of storage objects from the PS3 on Linux/ppc64 through the v3.0 code should be up and running now.
Configure storage objects
Once configFS is mounted and the LIO modules can be loaded, the following set of configFS calls will grant r/w demo access to the ps3rom
.
modprobe target_core_mod export CONFIGFS=/sys/kernel/config/ export TARGET=/sys/kernel/config/target/core/ export FABRIC=/sys/kernel/config/target/iscsi/ # Create PSCSI ConfigFS storage object from HTCL 0:0:0:0 mkdir -p $TARGET/pscsi_0/sr0 echo scsi_channel_id=0,scsi_target_id=0,scsi_lun_id=0 > $TARGET/pscsi_0/sr0/control echo 1 > $TARGET/pscsi_0/sr0/enable export DEF_IQN="iqn.2003-01.org.linux-iscsi.playstation3.cell:sn.73b073c4e157" export PORTAL="192.168.0.160:3260" # The first mkdir(2) to $FABRIC will load iscsi_target_mod mkdir -p "$FABRIC/$DEF_IQN/tpgt_1/np/$PORTAL" echo 8 > "$FABRIC/$DEF_IQN/tpgt_1/param/MaxConnections" # Create the SCSI Target Port from PSCSI storage object mkdir -p "$FABRIC/$DEF_IQN/tpgt_1/lun/lun_0" ln -s $TARGET/pscsi_0/sr0 "$FABRIC/$DEF_IQN/tpgt_1/lun/lun_0/lio_bdrom_port" # Allow demo mode R/W access for the iSCSI target portal group echo 0 > $FABRIC/$DEF_IQN/tpgt_1/attrib/authentication echo 1 > $FABRIC/$DEF_IQN/tpgt_1/attrib/generate_node_acls echo 0 > $FABRIC/$DEF_IQN/tpgt_1/attrib/demo_mode_write_protect # Enable the TPG Endpoint so initiators can login echo 1 > $FABRIC/$DEF_IQN/tpgt_1/enable
ConfigFS object tree
A running LIO /sys/kernel/config/target
configFS layout looks like:
target# tree/sys/kernel/config/target /sys/kernel/config/target/ |-- core | |-- alua | | |-- lu_gps | | | `-- default_lu_gp | | | |-- alua_access_state | | | |-- lu_gp_id | | | `-- members | | `-- tg_pt_gps | | `-- default_tg_pt_gp | | |-- alua_access_state | | |-- members | | `-- tg_pt_gp_id | `-- pscsi_0 | |-- hba_info | `-- sr0 | |-- alua_lu_gp | |-- attrib | | |-- block_size | | |-- emulate_tas | | |-- emulate_ua_intlck_ctrl | | |-- hw_block_size | | |-- hw_max_sectors | | |-- hw_queue_depth | | |-- max_sectors | | |-- queue_depth | | `-- task_timeout | |-- control | |-- enable | |-- fd | |-- info | |-- pr | | |-- res_holder | | |-- res_pr_all_tgt_pts | | |-- res_pr_generation | | |-- res_pr_holder_tg_port | | |-- res_pr_registered_i_pts | | |-- res_pr_type | | `-- res_type | `-- wwn | |-- vpd_assoc_logical_unit | |-- vpd_assoc_scsi_target_device | |-- vpd_assoc_target_port | |-- vpd_protocol_identifier | `-- vpd_unit_serial |-- iscsi | |-- iqn.2003-01.org.linux-iscsi.playstation3.cell:sn.73b073c4e157 | | `-- tpgt_1 | | |-- acls | | |-- attrib | | | |-- authentication | | | |-- cache_dynamic_acls | | | |-- default_cmdsn_depth | | | |-- demo_mode_write_protect | | | |-- generate_node_acls | | | |-- login_timeout | | | |-- netif_timeout | | | `-- prod_mode_write_protect | | |-- control | | |-- enable | | |-- lun | | | `-- lun_0 | | | |-- alua_tg_pt_gp | | | `-- lio_bdrom_port -> ../../../../../../target/core/pscsi_0/sr0 | | |-- np | | | `-- 192.168.0.160:3260 | | | |-- info | | | `-- sctp | | `-- param | | |-- AuthMethod | | |-- DataDigest | | |-- DataPDUInOrder | | |-- DataSequenceInOrder | | |-- DefaultTime2Retain | | |-- DefaultTime2Wait | | |-- ErrorRecoveryLevel | | |-- FirstBurstLength | | |-- HeaderDigest | | |-- IFMarkInt | | |-- IFMarker | | |-- ImmediateData | | |-- InitialR2T | | |-- MaxBurstLength | | |-- MaxConnections | | |-- MaxOutstandingR2T | | |-- MaxRecvDataSegmentLength | | |-- OFMarkInt | | |-- OFMarker | | `-- TargetAlias | `-- lio_version `-- version 22 directories, 68 files
Kernel ringbuffer
For reference, the kernel ring buffer output on the PS3 looks like:
TARGET_CORE[0]: Loading Generic Kernel Storage Engine: v3.0.0 on Linux/ppc64 on 2.6.29 TARGET_CORE[0]: Initialized ConfigFS Fabric Infrastructure: v1.0.0 on Linux/ppc64 on 2.6.29 SE_PC[0] - Registered Plugin Class: TRANSPORT PLUGIN_TRANSPORT[1] - pscsi registered PLUGIN_TRANSPORT[4] - iblock registered PLUGIN_TRANSPORT[5] - rd_dr registered PLUGIN_TRANSPORT[6] - rd_mcp registered PLUGIN_TRANSPORT[7] - fileio registered SE_PC[1] - Registered Plugin Class: OBJ PLUGIN_OBJ[1] - dev registered Target_Core_ConfigFS: Located se_plugin: c000000006a44030 plugin_name: pscsi hba_type: 1 plugin_dep_id: 0 CORE_HBA[0] - Linux-iSCSI.org SCSI HBA Driver v3.0 on Generic Target Core Stack v3.0 CORE_HBA[0] - ps3rom CORE_HBA[0] - Attached SCSI HBA to Generic Target Core with TCQ Depth: 1 MaxSectors: 128 CORE_HBA[0] - Attached HBA to Generic Target Core PSCSI: Allocated pdv: c00000000c384500 for sr0 Target_Core_ConfigFS: Allocated se_subsystem_dev_t: c000000006927800 se_dev_su_ptr: c00000000c384500 PSCSI[0]: Referencing SCSI Channel ID: 0 PSCSI[0]: Referencing SCSI Target ID: 0 PSCSI[0]: Referencing SCSI LUN ID: 0 pscsi: Using SPC_PASSTHROUGH, no reservation emulation pscsi: Using SPC_ALUA_PASSTHROUGH, no ALUA emulation CORE_PSCSI[0] - Activating Legacy Device with TCQ: 1 at SCSI Location (Channel/Target/LUN) 0/0/0 Vendor: SONY Model: PS-SYSTEM 302R Revision: 4094 Type: CD-ROM ANSI SCSI revision: 00 PSCSI Status Byte exception at task: c00000000696ee00 CDB: 0x12 Result: 0x08000002 CORE_PSCSI[0] - Added Type: CD-ROM for 0:0:0 Target_Core_ConfigFS: Registered se_dev->se_dev_ptr: c000000003050000 Target_Core_ConfigFS: REGISTER -> group: d000000002087f20 name: iscsi Linux-iSCSI.org iSCSI Target Core Stack v3.0.0 on Linux/ppc64 on 2.6.29 <<<<<<<<<<<<<<<<<<<<<< BEGIN FABRIC API >>>>>>>>>>>>>>>>>>>>>> Initialized struct target_fabric_configfs: c00000000d418600 for iscsi <<<<<<<<<<<<<<<<<<<<<< END FABRIC API >>>>>>>>>>>>>>>>>>>>>> LIO_TARGET[0] - Set fabric -> lio_target_fabric_configfs iscsi_allocate_thread_sets:195: ***OPS*** Spawned 4 thread set(s) (8 total threads). TARGET_CORE[iSCSI]: Allocated Discovery se_portal_group_t for endpoint: None, Portal Tag: 0 CORE[0] - Allocated Discovery TPG Loading Complete. Target_Core_ConfigFS: REGISTER -> Located fabric: iscsi Target_Core_ConfigFS: REGISTER -> d0000000025f5fa0 Target_Core_ConfigFS: REGISTER -> Allocated Fabric: iscsi Target_Core_ConfigFS: REGISTER -> Set tf->tf_fabric for iscsi lio_target_call_coreaddtiqn(): name: iqn.2003-01.org.linux-iscsi.playstation3.cell:sn.73b073c4e157 CORE[0] - Added iSCSI Target IQN: iqn.2003-01.org.linux-iscsi.playstation3.cell:sn.73b073c4e157 LIO_Target_ConfigFS: REGISTER -> iqn.2003-01.org.linux-iscsi.playstation3.cell:sn.73b073c4e157 LIO_Target_ConfigFS: REGISTER -> Allocated Node: iqn.2003-01.org.linux-iscsi.playstation3.cell:sn.73b073c4e157 lio_target_tiqn_addtpg() called: name tpgt_1 lio_target_tiqn_addtpg() parent name: iqn.2003-01.org.linux-iscsi.playstation3.cell:sn.73b073c4e157 lio_target_tiqn_addtpg() Using TPGT: 1 TARGET_CORE[iSCSI]: Allocated Normal se_portal_group_t for endpoint: iqn.2003-01.org.linux-iscsi.playstation3.cell:sn.73b073c4e157, Portal Tag: 1 CORE[iqn.2003-01.org.linux-iscsi.playstation3.cell:sn.73b073c4e157]_TPG[1] - Added iSCSI Target Portal Group LIO_Target_ConfigFS: REGISTER -> iqn.2003-01.org.linux-iscsi.playstation3.cell:sn.73b073c4e157 LIO_Target_ConfigFS: REGISTER -> Allocated TPG: tpgt_1 LIO_Target_ConfigFS: REGISTER -> iqn.2003-01.org.linux-iscsi.playstation3.cell:sn.73b073c4e157 TPGT: 1 PORTAL: 192.168.0.160:3260 CORE[0] - Added Network Portal: 192.168.0.160:3260 on TCP on network device: None CORE[iqn.2003-01.org.linux-iscsi.playstation3.cell:sn.73b073c4e157] - Added Network Portal: 192.168.0.160:3260,1 on TCP on network device: None CORE[iqn.2003-01.org.linux-iscsi.playstation3.cell:sn.73b073c4e157]_TPG[1] - Incremented np_exports to 1 LIO_Target_ConfigFS: addnptotpg done! iSCSI_TPG[1]_LUN[0] - Activated iSCSI Logical Unit from CORE HBA: 0 LIO_Target_ConfigFS: Created Port Symlink sr0 -> lun_0 Disabling iSCSI Authentication Methods for TPG: 1. iSCSI_TPG[1] - Generate Initiator Portal Group ACLs: Enabled iSCSI_TPG[1] - Demo Mode Write Protect bit: OFF iSCSI_TPG[1] - Enabled iSCSI Target Portal Group
LinuxIO 2.9
Running the legacy LIO v2.9 iSCSI for PS3-Linux code is still supported, but requires manual setup see Target#Building-2.9. The following builds are a bit outdated, however, but might still be helpful.
Setup
Getting the sources
Get the Linux kernel modules iscsi-target-module-2.6.25-2.9.0.295-1.powerpc.rpm. They are built for PPC464 and built with the toolkit for Fedora Core 8 PPC. This is gcc (GCC) 4.1.2 20070925 (Red Hat 4.1.2-33)
This module has been tested with 2.6.25 from ps3-linux.git and built against
arch/powerpc/configs/ps3_defconfig with drivers/md/*
enabled as modules for MD/LVM access with the LIO.
Using the BD-ROM on a kernel older than 2.6.24 requires a small patch (ps3rom-use-128-max-sector.diff) for full performance.
The userspace sources are 32-bit modules for Fedora Core 8:
- iscsi-target-tools-2.9.0.295-1.powerpc.rpm: PPC iSCSI module
- lio-mibs-2.9.0.295-1.powerpc.rpm: MIBs module
- LIO-cluster/ps3-linux/: perl RPMs for Fedora PowerPC for iscsi-target-tools
Building the sources
Follow the BUILD-README.
Addon CD
See ADDON CD for more information.
OCFS2
LIO on the PS3 has been serving FILEIO and IBLOCK storage objects for OCFS2 and EXT3 Filesystem access on OS-2008 running on mobile clients (Nokia N800 and i386 Ubuntu).
iSCSI HD
In summer 2007, the LinuxWorld PS3 BOF hosted a demonstration and discussion on running HD media types (BluRay and the now defunct DVD-HD) between a PS3, an Apple MacbookPro Laptop, and an USB connected Toshiba/MicrosoftHD-DVD drive.
An 802.11n v1.0 IPv[4,6] wireless demo via a 1 GbE router connected to the PS3 running Linux 2.6.23-rc5 (the kernel sources are avilable from ps3-linux.git
).
See also
- LinuxIO: PlayStation 2 and TS-7800
- Initiator: Motorola ROKR E2, Nokia 770, Nokia N800, OpenMoko and Neuros OSD
- Other Platforms
- iSCSI HD
- OCFS2
Notes
- ↑ Shilov, Anton (7/18/2006). "Asustek Computer Ships PlayStation 3 Consoles". X-bit Labs.
- ↑ "Entertainment on PS3 has a new look". Sony Computer Entertainment Europe. 8/18/2009.
- ↑ "PlayStation Direct.net". PlayStation Direct.net.
- ↑ "Sony confirms PS2 online plans". The Register. 8/15/2002.
- ↑ "PlayStation.com - PLAYSTATION®3 Features: Multimedia". Sony Computer Entertainment America.
- ↑ De Leon, Al (12/26/2007). "PlayStation Blog — PS3 Tips — Remote Play and PlayStation Store". Sony Computer Entertainment America.
- ↑ "PlayStation 3 Features - BluRay". Sony Computer Entertainment America.
- ↑ Lempel, Eric (3/20/2008). "Firmware version 2.20 bringing BD-Live to PS3". Sony Computer Entertainment America.
- ↑ a b Feilner, Markus (February, 2010). "Zum Spielen zu schade". Linux Magazine.
External links
- Sony Official website
- PlayStation Wikipedia entry
- PlayStation 3 (PS3) Wikipedia entry