
For a long time, this article was lying in the drafts, still could not get it together to issue and publish. But as they say it can not last forever, so let's get down to the story. Actually what is the problem, you ask? Who has a PS3 with CFW installed, he knows that it is impossible to write a file larger than 4 GB to an external disk, since this is a limitation of the FAT32 file system (now file managers for PS3, such as Multiman, support the ability to read NTFS volumes, but this functionality appeared quite recently ). Two methods could be used to solve this problem:
- burn game to internal disk
- use special programs that split large files into parts that the PS3 file manager understood (in the end, he still glued these files together and copied to the internal disk of the console)
But there was another method, it is to raise the media server for streaming content on the PS3. Actually we will deal with this :)
I have CFW with
Cobra installed on my PS3, which allows using ISO images, and does not require expanding the image into a separate directory as required. Additionally, I still have a
webMAN installed that allows me to mount images of games without launching the file manager and even manage the images and the console itself from a web browser (even from a mobile). But this is not the subject of this message. Who is interested, can refer to the documentation on this software or write a personal message to me.
Actually, there is nothing difficult in assembling this (it was difficult to find it all in different forums and put it together), download the
prepared archive with the source files . This archive is intended for the Linux x86_64 platform, although I compiled it for FreeBSD and even for the
ASUS RT-N56U router. I do not remember all the nuances of the assembly for this platform, if you are interested in this issue, you can write to me in a personal or read
Issue 1106 : compiling ps3netsrv . The archive already includes modified files “main.cpp” and “netiso.h”. Expand the archive and collect.
$ tar -xzvf ps3netsrv.tar.gz $ make
Note.The archive has a skeleton of rc-script to automatically start / stop the service, but I went the other way and did not finish it.We start all this very simply:
$ ./ps3netsrv /mnt/media/ps3netsrv
- where
/ mnt / media / ps3netsrv is the root directory where content for PS3 will be located. Inside the root directory create folders -
GAMES, PS3ISO . In the first one we add the usual unpacked images, and in the second one the images in ISO format.
As I said earlier, we will not use rc-scripts to manage the service, but create a separate container for this service using the capabilities of Docker.
Create a separate folder to place the container creation configuration file and copy the compiled file into it. For example:
$ cd ~/docker/ps3netsrv $ cp ~/source/ps3netsrv/ps3netsrv ./
Create a configuration file:
$ vim Dockerfile
FROM sovicua:jessie MAINTAINER Viktor M. Sytnyk <sovicua@sovic.org.ua> ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get upgrade -y RUN groupadd -g 1000 ps3netsrv RUN useradd -u 1000 -g 1000 -m -c "PS3 Media Server" ps3netsrv VOLUME /home/ps3netsrv/media RUN chown ps3netsrv:ps3netsrv /home/ps3netsrv/media COPY ps3netsrv /home/ps3netsrv/ RUN chown ps3netsrv:ps3netsrv /home/ps3netsrv/ps3netsrv WORKDIR /home/ps3netsrv CMD ./ps3netsrv ./media
Create an image for this service:
$ docker build -t sovicua:ps3netsrv .
And run the container:
$ docker run --net=host --name=ps3netsrv --user=ps3netsrv -v /mnt/media/ps3netsrv:/home/ps3netsrv/media -i -t -d sovicua:ps3netsrv
- where
/ mnt / media / ps3netsrv is the root directory on the host operating system, which is mounted on
/ home / ps3netsrv / media in a container. Everything can check the operation of our media server on the PS3. I think that you can no longer make it difficult for you to make out what and how.
In the future, I plan to unload this container in the general Docker Hub pool, so that everyone can use this ready-made container to create a media server.
I would like to hear your opinion on this issue.
PS Initially, I forgot to set the correct time zone for the base image, the default for the container was UTC. The procedure for changing the time zone for the base image is described in a small article Installing the timezone in the Docker base image .