Feature Request: USB Pi Gadgets iSCSI Storage #26
Replies: 0 comments 16 replies
-
thanks for the detailed post, the first steps in this direction for us is providing generalised ISCSI support after that i absolutely agree this is a great opportunity. Unfortunately on Debian ISCSI management is not part of Cockpit due to missing udisk modules something to consider. i see three potential modes of operation the RetroNAS may want to handle
All this before we get to the gadget stage, the interfaces would be challenging and will require some thought but perhaps we just use a bash scripts/select. On the gadget side of things again we have two potential modes of operation
We may also want to look into support for other gadgets like I have purchased a RockPI4 (USB3.0 OTG) specifically for this purpose and have both a Zero and RPI4B (USB2.0 OTG) to test this with. The RockPI4 SE support is extremely flaky, their main Debian images do not ship with ISCSI support so i need to build a kernel myself and Armbian (which ships with ISCSI support) is missing the appropriate device tree info to operate in OTG mode. This board is a work in progress. I don't have a MODE to replicate the skipping issues but can potentially simulate it with an emu over the network i suppose, particularly since the SD card was performant. |
Beta Was this translation helpful? Give feedback.
-
According to the TerraOnion Product page, the MODE only has USB 2.0 Wii, Wii U, PS3, 360, etc all using USB 2.0, maybe I don't fully understand it, should the 2.0 speed be the hold up, or would a USB 3.0 connection to the console even make a difference? Rather than a MODE, If you have a Nintendo Wii, why not try to run games from a Pi gadget on a Softmodded Wii. That would be something, eh? |
Beta Was this translation helpful? Give feedback.
-
We've added basic iSCSI (Targets) support and Gadget support as individual options the user may install now. if an iSCSI block device is available the gadget block device selector will see it |
Beta Was this translation helpful? Give feedback.
-
I believe every console with a USB enabled storage can be supported by retronas with a USB Pi gadget, and iSCSI Storage on the server. a $15 Pi Zero 2 can connect to the server and act as a USB drive connected to any usb port.
Though it may require a Pi4 for each gadget if the Zero is not powerful enough to process large data files fast enough, it will require more testing. I would love to see this automated, for easy implementation in all USB enabled consoles. Wii U, Xbox One, Anything that can use a USB Hard Drive could, in theory, use this. a $15 Pi Zero, or even a $45 Pi4 would still be better than having to connect an individual hard drive to every console. The console doesn't even need to be modded or running custom firmware if it already has USB storage for games.
Proof of concept:
I have this setup working on my home server, with a raspberry pi Zero 2W connected to my PlayStation in my TerraOnion MODE. it needs further improvement and some help from folks to make it optimized. Currently, the PS1 games play from the sever.
Steps taken to get this working:
I followed the steps the in this video to set up the server
https://youtu.be/PLbdvkDGTSI?t=305
This video has you create an image file on the server, and that image file is formatted as a drive and used to access by the gadget.
I followed these steps for the gadget:
https://matt.olan.me/making-a-piscsi-usb-drive-part-1/
part 2:
https://matt.olan.me/making-a-piscsi-usb-drive-part-2/
Problems:
Streaming Full Motion Video and CD Audio, Voice Acting, etc all skips and causes problems if the game relies on it. For instance, Dino Crisis is unplayable because the entire game is voice acted and the voices skip when streaming. Gran Turismo however plays just fine, and any skipping in the FMV can be bypassed and you can load right into the game. lots of games play fine. some have errors, I have not tested all of them.
On the server, for some strange reason, I cannot change the permission or ownership of the image file, not with sudo, not as root. Logging in as root is the only way I can add games to the image. It is read only for all users except root. I can't even add images with the "sudo" command.
Troubleshooting:
I tested the Pi Zero2 USB gadget with the games stored on the device's SD card instead of over the network and the FMVs did not skip. I do not believe that the USB port is any limitation of the Pi Zero 2.
The server is connected via Gigabit Ethernet to the local router, the network throughput should exceed the speed of the PlayStation CD rom drive read speed.
The RetroNas server seems to crawl when accessing of the image file the PlayStation games are stored in. the Image File is 2TB in size, and formatted in FAT32. I am running RetroNas on a 3.2Ghz Dual Core Intel PC 4GB of ram, with Debian Linux. Not a Raspberry Pi. It did not have any problem serving SMB to PS2 or other aspects of RetroNas, but might be too slow to handle the 2TB image file.
Additionally, the Pi Zero 2 may just not be able to process the data fast enough, and if I try this with a Pi4b instead it might work fine. I don't have a Pi4b to test with, though I keep watching the stock updates in case on comes in stock.
--
I think this is everything. If you have further questions, or you would like me to try something please feel free. I would love to see this implemented on a larger scale.
Beta Was this translation helpful? Give feedback.
All reactions