Apportez votre aide…
Ceci est une ancienne révision du document !
Sony Playstation Portable (PSP) & Linux Ubuntu
Présentation de la PSP
La PSP est une console portable conçu par Sony et visant un public au premier abord hard-gamer. Néanmoins, cette page dédiée à la console va permettre de mettre à la portée de tous ce petit bijou et de l'exploiter à 100% !
Caractéristiques des modèles
en cours by Naoki…
Connexion à l'ordinateur
Détection
[Ubuntu Dapper] : la PSP est reconnue directement comme un lecteur de musique ordinaire et montée automatiquement. Cependant, vous pouvez aussi la définir dans le fstab et la gérer comme un disque amovible. Elle est considérée comme un disque sd ?
Une fois branchée, faites un dmesg ou fdisk pour récupérer sous quelle adresse disque elle est placée:
$ dmesg [4296824.734000] usb 4-1: new high speed USB device using ehci_hcd and address 4 [4296824.849000] scsi1 : SCSI emulation for USB Mass Storage devices [4296824.849000] usb-storage: device found at 4 [4296824.849000] usb-storage: waiting for device to settle before scanning [4296829.850000] Vendor: Sony Model: PSP Rev: 1.00 [4296829.850000] Type: Direct-Access ANSI SCSI revision: 00 [4296829.854000] SCSI device sdb: 985088 512-byte hdwr sectors (504 MB) [4296829.855000] sdb: Write Protect is off [4296829.855000] sdb: Mode Sense: 00 6a 20 00 [4296829.855000] sdb: assuming drive cache: write through [4296829.861000] SCSI device sdb: 985088 512-byte hdwr sectors (504 MB) [4296829.862000] sdb: Write Protect is off [4296829.862000] sdb: Mode Sense: 00 6a 20 00 [4296829.862000] sdb: assuming drive cache: write through [4296829.862000] sdb: sdb1 [4296829.865000] sd 1:0:0:0: Attached scsi removable disk sdb [4296829.865000] sd 1:0:0:0: Attached scsi generic sg1 type 0 [4296829.873000] usb-storage: device scan complete [4296830.927000] FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive! $ fdisk -l Disk /dev/sda: 164.6 GB, 164696556032 bytes 255 heads, 63 sectors/track, 20023 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 20023 160834716 b W95 FAT32 Disk /dev/sdb: 504 MB, 504365056 bytes 32 heads, 32 sectors/track, 962 cylinders Units = cylinders of 1024 * 512 = 524288 bytes Device Boot Start End Blocks Id System /dev/sdb1 * 1 961 491789+ 6 FAT16 $ mount -l ... ... ... /dev/sdb1 on /media/psp type vfat (rw,nosuid,nodev,quiet,shortname=mixed,uid=100 0,gid=1000,umask=077,iocharset=utf8)
Voilà, ça devrait être bon !
mount -l
est celui de l'auto-détection de la PSP, avant de toucher au fstab. Normalement le montage automatique fonctionne et vous pouvez manipuler les fichiers sur la PSP.
Encoder les vidéos
La PSP est capable de lire un certain nombre de formats vidéo, comme documenté sur le site US de Sony:
- MemoryStick™ Video Format
- MPEG-4 Simple Profile (AAC)
- H.264/MPEG-4 AVC Main Profile (CABC)(AAC) and Baseline Profile (AAC)
- MP4
- MPEG-4 Simple Profile (AAC)
- H.264/MPEG-4 AVC Main Profile (CABC)(AAC) and Baseline Profile (AAC)
- AVI
- Motion JPEG (Linear PCM)
- Motion JPEG (u-Law)
D'autre part, la résolution native de la PSP est 480x272. Mais ces informations sont loin d'être suffisantes pour pouvoir encoder des vidéos lisibles par une PSP.
Dans les faits, après recherches sur le web et nombreux tests, cela se traduit par les caractéristiques plus précises suivantes:
Conteneur et codecs
- Conteneur vidéo: MP4
- Codec Audio: AAC
- Codecs Video:
Résolutions Supportées
Attention, cette section ne parle que les PSPs avec firmware officiels. Les firmwares modifiés ont des caractéristiques différentes – meilleures la plupart du temps:
- Résolutions avec un "768k pixel count" (tous firmwares):
- 368x208 (16:9)
- 320x240 (4:3)
- 384x160
- 416x176
- 400x192
- 480x160
- Firmwares récents seulement ( Vérifié sur une PSP Slim en 3.71 "officiel". )
- 480x272
- 720x480
Les logiciels de transcodage
"Transcodage" signifiant en vidéo tout simplement "conversion de format".
Handbrake
Pour transcoder des DVDs vers la PSP, le plus simple est sans doute d'utiliser Handbrake, un soft Open Source qui possède une version en ligne de commande pour Linux.
Typiquement, une simple commande comme:
./HandBrakeCLI -i /media/cdrom0/VIDEO_TS -L -N -f mp4 -w 720 -l 480 -m -e x264 -x level=30:trellis=1:cabac=1 -S 700 -2 -E faac -B 128 -a 3 -R 48 -o "VIDEO.mp4"
… permet de créer un fichier lisible sur la PSP de 700MB max (qualité UMD Vidéo), au format NTSC (720x480), qui sera d'ailleurs lu en pleine résolution sur une télé si on utilise une PSP Slim & Lite.
Afin d'éviter de stresser inutilement les lecteurs de DVD, il vaut mieux faire une copie locale avec vobcopy (vobcopy -m
).
Il existe une interface graphique en paquet deb pour amd64 et i386 ici :
AVIDEMUX
Pour transcoder des fichiers AVI, un des meilleurs softs disponibles pour la PSP en ce moment (juin 2009) est sans doute avidemux, un outil assez impressionnant de conversion et travail sur les fichiers AVI.
Pour la PSP, en particulier pour les formats en résolution élevée, il faut utiliser la version SVN de la 2.4. sous Ubuntu (ou disponible directement dans les dépôt sous Jaunty), voir les miroirs proposés sur le site de avidemux, cela ça marche très bien.
Méthode de conversion pour obtenir du 480x272 sur un firmware officiel récent - tutoriel très rapide - :
- Ouvrir le ficher AVI à convertir
- Aller dans le menu 'Auto':
- choisir le format PSP (H.264) pour les grandes résolutions, Ensuite, dans 'Target Type', choisir PSP Full Res ou PSP 480x272
- Sinon choisir 'PSP' pour le codec classique (MP4 ASP)
- Pour modifier la résolution, il faut aller dans les filtres et modifier à la main
- Cliquer sur 'Sauver', attendre…
Le fichier résultant doit être stocké, non pas dans "/MP_ROOT" mais dans "/VIDEO". Il n'y a pas de convention de nommage particulière.
Attention: cette méthode fonctionne bien pour les grandes résolutions, mais il faut faire quelques manipulations supplémentaires pour les plus petites résolutions: il faut en effet éditer à la main les filtres vidéo qui convertissent l'image vers la résolution cible.
PSPVC
Une nouvelle version de ce soft est disponible depuis le 13 mars 2007 dans sa version 0.3.
Voici les nouveautés ajoutées depuis la version 2.0 :
- 0.2.1 → 0.3
- nouvelles versions de X264 et FFMPEG (fif1973)
- entrée dans le menu (freedesktop) Applications/Multimedia (fif1973)
- Simplification des paramètres de conversion (fif1973)
- Affiche un message d'erreur quand le fichier source est dans un format non supporté (fif1973)
- Traduction Slovène ajoutée (lenooh)
- Traduction Allemande ajoutée (Christian Stake)
- Option "–threads X" pour une utilisation multi-cpu/multi-coeur (fif1973)
- 0.2 → 0.2.1
- L'ordre des options a changé (fif1973)
- Fenêtre 'Au sujet de' (fif1973)
- Titre des fenêtres de conversion est le titre de la vidéo convertie (fif1973)
- Limite haute du choix de la vignette ajusté à la durée de la video (fif1973)
- Traduction polonaise ajoutée (Thomasz Dominikowski)
Plus d'informations sur Le site officiel de pspvc
C'est un soft graphique (basé sur ffmpeg) qui permet d'encoder des vidéos sous format de la PSP : MPEG4/SP (all firmware), H264/AVC (firmware 2.0+) ou H264/AVC 480x272 (firmware 3.03-OE-B+). Très simple d'utilisation et d'installation une fois les dépendances installées.
- Dépendances
- nasm
- libfaac
- libxvidcore
- liba52
- gtk+2.0
- yasm
Les bibliothèques indiquées pour les dépendances doivent être installées avant, et en version de développement (dev). Pour les installer (sous feisty), installez les paquets nasm yasm libfaac-dev libxvidcore4-dev liba52-0.7.4-dev libgtk2.0-dev
Installation
Télécharger l'archive du programme sur le site. Décompresser le fichier dans votre répertoire personnel, déplacez-vous dans le dossier créé et ensuite :
sudo ./install.sh
pour exécuter le programme, dans un terminal :
pspvc
Installation alternative
Note: le script install.sh lance la compilation/installation de ffmpeg qui est empaqueté avec. Ce n'est pas forcément une bonne idée. Vous pouvez juste aller chercher dans le repetoire archives les sources de pspcv, et compiler à partir de là.
tar xfvz pspvc-0.3.tar.gz cd pspvc-0.3 ./configure make sudo make install
Si ./configure se termine par un message expliquant qu'il manque une dépendance, alors que vous êtes sûr de bien l'avoir déjà, c'est sûrement qu'il manque la version de développement du paquet (les "headers"). Il vous manquera donc certainement le paquet "libgtk2.0-dev", même si vous êtes sous Gnome et que vous avez déjà tous les paquets gtk 2.0 dont "libgtk2.0".
Utilisation
Les vidéos mpeg4 vont dans MP_ROOT/100MNV01
et celles encodées en H264 dans MP_ROOT/100ANV01
WinFF
WinFF permet de convertir à peu près n'importe quoi dans un format lisible par la PSP.
Consultez la page WinFF pour plus d'informations.
Gérer la PSP
qPSP Manager
qPSP Manager est un outil créé par Bernat Ràfales Mulet pour gérer sa PSP, il permet entre autres gérer les PBP, compresser/décompresser les ISO/CSO, gérer les sauvegardes de jeux… Il est aussi capable de transférer le tout sur votre PSP à partir d'Ubuntu.
Les menus
- "PBP File" vous permet de customiser vos homebrew (Devhook, IRShell, ….)
- "ISO Files" vous permet de manipuler un ISO, compresser un ISO en CSO ou décompresser un CSO en ISO et de transférer le tout sur votre PSP.
- "Savegames" quand à lui vous permet de transférer tout ou une partie de vos sauvegardes de l'ordinateur vers votre PSP et inversement.
- "Options", demande de confirmation pour effacement ou écrasement d'une sauvegarde, cacher vos "données endommagées", choisir "l'emplacement" de votre PSP et la possibilité de sauvegarder vos choix d'options Save Preferences
Installation
Il y a deux méthodes pour l'instant. Pour la première, vous devrez compiler le programme avant de pouvoir l'utiliser, pour la seconde, vous n'aurez qu'a installer le paquet.
Première méthode
- Installez les paquets build-essential libqt4-dev zlib1g zlib1g-dev qt4-dev-tools
- si vous avez les paquets suivants d'installer: qt3-dev-tools libqt3-mt-dev, Utilisez la commande qmake-qt4 a la place de qmake ce qui evitera de compiler avec la mauvaise version de qt et donc de generer des erreurs.
- Téléchargez le fichier source qpspmanager-X.X.X.tar.gz depuis le site officiel
- Décompressez le quelque part (votre dossier personnel /home/nomdutilisateur vera l'affaire).
- Ouvrez une console et tapez :
cd qpspmanager-X.X.X
- Ensuite on va commencer à compiler, tapez :
qmake
- Ensuite :
make
src/isocompressor.h:38: error: 'uint32_t' does not name a type
Dans ce cas, éditez le fichier /src/isocompressor.h en ajoutant sous
# include <cstdint> la ligne # include <iostream>
. Puis lancez la commande qmake. Enfin éditez le fichier Makefile fraichement créé en remplaçant
CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES) par CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES) -std=c++0x
- Enfin, installez le tout en tapant :
sudo make install
sudo cp /home/nomdutilisateur/qpspmanager-X.X.X/bin/QPSPManager /usr/bin/qpspmanager
Ce bug sera résolu dans la future version
- Voilà l'installation est finie, pour lancer le programme, tapez :
qpspmanager
Seconde méthode
- Téléchargez le paquet
si le lien est cassé, ce paquet est aussi disponible sur sourceforge :
télécharger le ici
- Double-cliquez sur l'archive.deb pour l'installer. Suivez simplement les instructions.
- Ensuite attendez jusqu'à la fin de l'opération et lancez QPSPManager en tapant :
qpspmanager
Les images .iso et .cso en ligne de commandes
L'outil qui permet la compression/décompression des fichiers ISO est ciso disponible dans le dépôt universe pour feisty (peut-être autre part aussi mais en tout cas il est là)
Installation
Pour l'installer tapez dans un terminal
sudo apt-get install ciso
Utilisation
ciso niveau fichierentree fichiersortie
ISO > CSO
Le niveau de compression doit être compris entre 1 et 9
Exemple
ciso 5 fichier.iso fichier.cso
CSO > ISO
Le niveau de compression doit être 0.
Exemple
ciso 0 fichier.cso fichier.iso
Une interface graphique pour ciso
Si vous êtes allergique a la ligne de commande il existe une interface graphique : Cso-Dax compressor . C'est un logiciel pour windows mais il existe une version linux qui utilise ciso.
Installation
Il faut télécharger l'archive a cette adresse http://psp.ducseb.net/download/cso-dax/cso-dax_compressor_0.34_linux.zip
Ensuite décompressez là dans votre répertoire personnel.
Maintenant il faut copier 3 fichiers dans : /usr/bin
Pour ça ouvrez un terminal et tapez
sudo cp "/home/VOTRE NOM/CSO DAX COMPRESSOR 0.34 Linux/FR/bin/ciso" "/usr/bin" (ceci copie le fichier ciso)
Puis
sudo cp "/home/VOTRE NOM/CSO DAX COMPRESSOR 0.34 Linux/FR/bin/csoCompiler" "/usr/bin" (ceci copie le fichier csoCompiler)
et enfin
sudo cp "/home/VOTRE NOM/CSO DAX COMPRESSOR 0.34 Linux/FR/bin/daxcr" "/usr/bin" (ceci copie le fichier daxcr)
Plus simple : taper dans un terminal
sudo nautilus (sous Ubuntu) ou sudo konqueror (sous Kubuntu) ou sudo thunar (sous Xubuntu)
et puis faites glisser simplement les fichiers: ciso,csoCompiler et daxcr.
Pour lancer l'interface il suffit de taper en respectant la casse
csoCompiler
Développement et programmation
Pour cela, je vous invite à installer le custom firmware 6.20 PRO-B7, 6.35 PRO-B7 ou 6.39 PRO-B7 (dernière version stable en date en ce 18 Juillet 2011) : tutoriel d'installation. Cette version a le mérite d'être compatible toutes PSPs (PSP1000/2000/3000/Go). Il suffira simplement de mettre à jour votre console en firmware 6.20, 6.35 ou 6.35 selon votre choix et d'installer le custom firmware qui correspond.
Précisons également que flasher sa PSP pour installer un custom firmware est une manipulation légale !
Passons aux choses sérieuses. Pour programmer sur votre console PSP, sachez que le code sera fait sur votre ordinateur, mais celui-ci n'est pas nativement capable de compiler pour une PSP. Il va donc falloir procéder à l'installation d'un environnement de développement pour pouvoir compiler vos programmes à lancer sur votre PSP (on appelle cela de la cross-compilation).
Installation des outils
Tout d'abord, il faut savoir que ces quelques outils vous permettront de programmer sous 3 langages différents sur la PSP:
- Langage C : un standard, et celui que je vous conseillerai pour débuter.
- Langage C++ : un langage orienté objet (mettant en œuvre les notions de classe, héritage, surcharge d'opérateurs…). Bien plus complexe, une bonne base en C est recommandée si vous voulez mieux assimiler ce langage.
- Langage Asm MIPS R(S)4000 : le langage d'assembleur de la PSP, seulement pour les expérimentés, et n'est nécessaire que pour ceux voulant faire du hack sur la console ou créer un custom firmware, faire du reverse engineering.
Téléchargements des fichiers
Selon que vous utilisez une distribution que Debian (y compris Ubuntu, Xubuntu, Kubuntu…) ou une autre distribution Linux, prenez le lien adéquat. Cet outil est appelé minPSPW, soit un PSPSDK "minimaliste", bien qu'il contienne tout ce qu'il faut pour programmer (comme la SDL pour vos jeux par exemple):
Choisissez d'enregistrer le fichier sur votre Bureau pour les manipulations à venir. Une fois le fichier téléchargé sur votre poste, passons à son installation à proprement parlé, vous allez voir, rien de bien compliqué !
Installation et configuration du PSPSDK
Pour la version Debian/Ubuntu (32 ou 64 bits)
Même si un simple clic servirait à installer un paquet deb, nous allons faire autrement, afin de pouvoir disposer les fichiers à un endroit efficace. Pour cela:
- Faîtes un clic droit sur le paquet puis Renommer et appelez-le par exemple psp.
- Ouvrez un terminal et tapez les commandes suivantes:
On va sur le bureau:
cd $HOME/Bureau
Puis on déplace le dossier du PSPSDK là où il faut (et en le renommant pspdev au passage):
mv psp/opt/pspsdk /var/local/pspdev
Maintenant que notre environnement est bien placé sur notre système, on va éditer notre fichier bashrc:
cd
Puis:
gedit .bashrc
Ajoutez-y les 3 lignes suivantes à la fin:
export PSPDEV="/usr/local/pspdev"
export PSPSDK="$PSPDEV/psp/sdk"
export PATH="$PATH:$PSPDEV/bin:$PSPSDK/bin"
Vous pouvez sauvegarder le fichier. Voilà, c'est tout, rien de plus, votre environnement est installé et prêt à l'emploi. Passez donc au chapitre suivant pour tester la compilation d'un programme afin de vérifier que tout fonctionne correctement !