This is as far as I got. Problem I have now is that there is no /dev/sda1 or sdb1 and OPL doesn't show any games. It would be great if someone figures this out, but I'm giving up on it for now. It's taken way too much of my time so I just bought a PS2 fat instead.
Thanks a lot for this post, this was my starting point to setup the server part on OpenWRT.
As my filserver is a OpenWRT device, i didn´t want to convert the existing filesystem from Ext4 to ExFat and i didn´t have an additional USB port for a HDD or USB Stick and as i always try to keep my infrastructure minimal (which excludes USB Hubs aso for permanent usage), i needed another solution to match my needs.
I also saw multiple posts with OrangePI devices or NAS systems, where this HowTo may be a solution too, as you just need linux basics and
no exfat driver on the server side (for a minimal but working setup).
I wanted to keep my fileserver like it is and give my PS2 a ExFat HDD via UDPBD,
no matter which filesystem is used on the fileserver. Technically this works on all Linux/Unix based maschines.
The filesystem for UDPBD will be ExFAT and is completly independent of the filesystem used on the local maschine, for the local maschine, it´s just a file on the exsting filesystem. No changes (except for creating an additional file) will be done to the local filesystem.
This is my personal pre-alpha HowTo to setup the server part on OpenWrt (very very dirty and feedback is very welcome, especially for errors and unclear parts, no screenshots, no other nice stuff, just text with typos (for sure)):
Preflight check:
on your PC:
scp udpbd-server.elf
[email protected]:/bin/ <-- change 192.168.1.1 to your OpenWRT address (it´s just the default after installing OpenWRT)
scp libstdc++.so.6.0.25
[email protected]:/lib/ <-- change 192.168.1.1 to your OpenWRT address
Of course u can also use Filezilla or whatever your tool to transfer files to your OpenWRT device is called, scp is the easiest tool to use on linux, so i used it.
on the OpenWRT device command line:
chmod +x /bin/udpbd-server.elf
ln -s /lib/libstdc++.so.6.0.25 /usr/lib/libstdc++.so.6
and try:
/bin/udpbd-server.elf
This should give you this output:
Usage:
/bin/udpbd-server.elf <file>
if not, your device needs a executeable which has been built for your platform, or you forgot the chmod +x line

It runs fine for me on ramips/mt7621 with OpenWrt 23.05.4 (latest stable 09/2024)
Preflight check completed
If the server binary works fine:
web interface or commandline on OpenWRT----- for BETA STATE -----:
Web interface --> Network --> Interfaces ---> edit button @ lan --> IPV4 address, add 192.168.0.1/24 and 192.168.1.1/24 as additional addresses
Useful in beta phase, i found different hard-coded addresses in different client binaries, so adding those 2 saves troubleshooting time,
if you try multiple client betas, if you already elected one, which is working for you already, you should know which one you will need.
------------------------------------ Start of "i create my harddisk myself, i don´t need a buy button"
-----------------------------
webinterface --> Software .... or commandline:
Install packages to create and manage loopback devices:
kmod-loop
losetup
If you want to create/access the .bin file locally on your OpenWRT device:
Install ExFat driver and mgmt tools:
kmod-fs-exfat
exfat-mkfs
exfat-fsck
If not (or you need to save flash space) create the .bin on another computer scp it to the openwrt device and skip the next step module installation and the "dd line"
REM The router doesn´t need to be able to read the filesystem in the .bin, it´s useful if you want to copy isos into it locally, but it´s not needed for normal operation
If not, create the UDPBD.bin on your PC, fill it with isos or whatever and transfer it to your OpenWRT device and skip the next 2 points.
Command line ssh ... local connection whatever you need to get on the OpenWRT command line:
Create a Blockdevice structure in a file:
dd if=/dev/zero of=/DATA/PS2/UDPBD.bin bs=1M count=5120 <-- change size (count= 1024=1G 5120=5G .....) change PATH (of=...)to your enviroment
Create a ExFat filesystem on that blockdevice file:
mkfs.exfat /DATA/PS2/UDPBD.bin -c 128k <---- change PATH to your enviroment (same as in the "dd line")
------------------------------------ Finish of "i create my harddisk myself, i don´t need a buy button"

-----------------------------
---------------------------------------------------Back to standard setup -----------------------------
On the OpenWRT Webinterface:
System --> Startup --> local startup
add these lines before the exit line::
losetup /dev/loop0 /DATA/PS2/UDPBD.bin <---- change PATH to your enviroment (same as in the "dd line")
/bin/udpbd-server.elf /dev/loop0 & <---- if you want you can use screen, or log into a file, this works fine for me
This will setup /dev/loop0 pointing to the UDPBD bin, which acts like a normal block device and start the UDPBD server using /dev/loop0 at each startup.
-->
Save
reboot
If you installed kmod-fs-exfat, you can mount the .bin, by mounting /dev/loop0 (after stopping the UDPBD binary) and move isos or whatever into the file locally (don´t forget to unmount and start the UDPBD binary after that or simply reboot),if not you need to mount it on your PC and fill it there.
Configure your PS2 to a fixed IP address in 192.168.0.0/24 or 192.168.1.0/24 (if your home networks is in a different IP range) and try multiple PS2 UDPBD clients binaries, as some didn´t show up any content for me (copy all you got to MC0: and try one after another).
Just an idea for adv. users:
in cron: monitor download folder, if there is new content:
stop UDPBD-server
mount bin
mv new stuff into bin
unmount bin
start UDPBD-server
I hope it helps someone.
Like always, just my 2 cents, use it at your own risk and feedback is welcome
