PS2 Raspberry Pi UDPBD tutorial

MuscleBelt

Forum Noob
UDPBD Server Setup on Raspberry Pi (64-bit Desktop OS)

1. Install a 64-bit desktop OS

Flash a 64-bit desktop OS onto your SD card. I like to use Raspberry Pi Imager.

2. Check for and install updates
Install updates to the OS on the Raspberry Pi by clicking the "Updates are available" icon that pops up on the taskbar (I will assume your Raspberry Pi has internet access throughout the tutorial)
(You can also check for and install updates in the terminal by using the below commands if you don't see the icon)
Code:
sudo apt update && sudo apt -y upgrade

3. Install the UDPBD server
Install the UDPBD server (as per 4gordi readme) with the following commands (device will reboot)
Code:
cd ~
git clone https://github.com/4gordi/udpbd-server.git
cd udpbd-server
chmod 755 setup.sh
./setup.sh

4. Configure network settings
Open "Network Connections" by clicking the network icon on the taskbar, select "Advanced options" and then "Edit connections"
Double click the Ethernet connection to edit the wired connection
On the "IPv4 settings" tab select "Manual" from the dropdown menu and click "Add" to add an address. Enter
Address - 192.168.1.5Netmask - 24Gateway - 192.168.1.1
and click "Save"

5. Configure OPL settings
Settings (top option):
[BDM Start Mode "Manual"]
[ETH Device Start Mode "Off"]
Network settings:
-PS2- (top half of the screen)
[IP Address Type "Static"]
[IP Address "192.168.1.10"]
[Mask "255.255.255.0"]
[Gateway "192.168.1.1"]
[DNS Server "192.168.1.1"]

6. Start the UDPBD server (you will need to do each time you boot the Raspberry Pi to start the server)
Open the file browser and navigate to the folder "udpbd-server" which should be in the user's home directory (/home/username/)
Go to "Tools" at the top of the window and "Open current folder in terminal" (or push F4)
Enter the command
Code:
sudo udpbd-server /dev/sda1
7. Check it works!
On the PS2, start OPL (the UDPBD version) and start the BDM device by pressing X on "BDM". This should list the games stored on the device plugged into your Raspberry Pi

8. [Optional] Create a shortcut
Create a shortcut on the desktop to start the UDPBD server (with this tutorial it does not start automatically on boot)
Right click the desktop and select "New file...". Call this whatever you like
Open the newly created desktop file and it should open in the Text Editor. Enter the following
Code:
#!/bin/sh
sudo udpbd-server /dev/sda1
Save and close the file
Right click the file on the desktop, go to the "Permissions" tab and change the "Execute:" option to "Anyone", click "OK"
Now, when you double click the new desktop file, click "Execute in terminal" to run the UDPBD server

Notes
- Do not have a USB drive inserted to the PS2 in combination with the Raspberry Pi connected when starting BDM device in OPL
- Use a version of OPL compatible with UDPBD (OPL 1970+UDPBD ("1973") built by El_isra)
- Game folders (DVD and / or CD) should be stored at the root of the device, and the iso files in DVD or CD folders depending on iso size
- The IP address 192.168.1.5 for the Raspberry Pi ethernet does not actually need to be that fixed address, but make sure it is not 192.168.1.10 (used by the PS2) or whatever the WiFi IP address is. If there are conflicts, change the Raspberry Pi ethernet IP address to 192.168.1.XXX, where XXX is 0-255
- POPStarter does not work with UDPBD, PS1 games are not playable via UDPBD
- The device with games stored and plugged into the Raspberry Pi needs to be formatted as either EXFAT (recommended) or FAT32
- If it does not work, try checking the device inserted to the Pi is referred to as "sda1" using the command in the terminal (standing for list block devices)
Code:
lsblk
 
Last edited:
I'm using Raspbian Lite. Here's how I got this UDPBD server to run on startup via the terminal. I'll present it in a way that's easily copy-pasteable (SSH recommended but not needed).

NOTE #1: OPL 1970+UDPBD STABILITY MAY BE NEGATIVELY AFFECTED BY ENABLING VMC'S. THIS IS PROBABLY BECAUSE READING + WRITING IS TOO MUCH FOR THE CLIENT.

NOTE #2: I RECOMMEND CROSSOVER CABLES BECAUSE THIS METHOD DID NOT WORK FOR ME USING REGULAR ETHERNET CABLES. YOUR MILEAGE MAY VARY.

STEP 1. MAKE SURE YOUR USB IS FORMATTED IN GPT AND EXFAT!!!
If it's MBR, FORGET ABOUT IT! You can check whether it's MBR with Disk Management on Windows. If it is MBR, you must back up your USB's contents and reformat the thing with Rufus as GPT and ExFAT, then move everything back on. In Rufus, I made it a non-bootable disk.
436KCB3.png


AND MAKE SURE YOU ONLY HAVE ONE USB DRIVE PLUGGED INTO THE RASPBERRY PI ANY GIVEN TIME!

STEP 2. CONNECT YOUR RASPBERRY PI TO THE INTERNET

Unless you want to install packages offline, wield the power of the internets. I already put my WiFi details into my installation via the Raspberry Pi Imager; do the same cause I can't help you configure it through terminal.

STEP 3. INSTALL THE BASICS

Paste these into the terminal and hit yes for everything:
Code:
sudo apt update
sudo apt upgrade
sudo apt install git
sudo apt install autoconf
sudo apt install automake
sudo apt install intltool
sudo apt install libtool

STEP 4. INSTALL SERVER
Paste this into terminal:
Code:
cd ~
git clone https://github.com/4gordi/udpbd-server.git
cd udpbd-server
chmod 755 setup.sh
./setup.sh

STEP 5. RUN ON STARTUP

Run this:
Code:
sudo nano /etc/rc.local

Paste this:
Code:
#!/bin/bash
# Log that rc.local is starting
echo "Running rc.local at $(date)" > /var/log/rc.local.log

#Wait a bit
echo "Starting" >> /var/log/rc.local.log
sleep 30 >> /var/log/rc.local.log 2>&1

#Assign USB slot
echo "Assigning USB" >> /var/log/rc.local.log
mkdir -p /mnt/sda1 >> /var/log/rc.local.log 2>&1

#Mount USB
echo "Mounting USB" >> /var/log/rc.local.log
mount /dev/sda1 /mnt/sda1 >>/var/log/rc.local.log 2>&1

# Flush IP address for eth0 and log the result
echo "Flushing IP address for eth0" >> /var/log/rc.local.log
ip addr flush dev eth0 >> /var/log/rc.local.log 2>&1

# Add new IP address for eth0 and log the result
echo "Adding IP address 192.168.1.4/24 to eth0" >> /var/log/rc.local.log
ip addr add 192.168.1.4/24 dev eth0 >> /var/log/rc.local.log 2>&1

# Add default route and log the result
echo "Adding default route via 192.168.1.1" >> /var/log/rc.local.log
ip route add default via 192.168.1.1 >> /var/log/rc.local.log 2>&1

# Run the udpbd-server and log the result
echo "Starting udpbd-server on /dev/sda1" >> /var/log/rc.local.log
udpbd-server /dev/sda1 >> /var/log/rc.local.log 2>&1

# Indicate the end of rc.local execution
echo "rc.local execution completed at $(date)" >> /var/log/rc.local.log
exit 0

Ctrl+S then Ctrl+X

Then run this:
Code:
sudo chmod +x /etc/rc.local

Then run this:

Code:
sudo nano /etc/systemd/system/rc-local.service

And paste this:
Code:
[Unit]
Description=/etc/rc.local Compatibility
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

Ctrl+S then Ctrl+X

Then run this:

Code:
sudo systemctl enable rc-local

If all goes well and it's not stupid, it'll work. Just wait 2 minutes after powering the Pi on before starting OPL because this server needs to boot first.

Voila! Now I never have to look at a Linux terminal again :adoration:
Since my Pi has SSH, it has my WiFi password and stuff on it, so I don't feel comfortable providing an image. Nevertheless, this should be a copypasteable procedure.
 
Last edited:
I believe this is a bit of a cleaner install.

UDPBD Server Setup on Raspberry Pi (64-bit Lite OS)
Tested on 64-bit Raspberry Pi OS Lite – may also work on 32-bit (untested).
1. Install Raspberry Pi OS Lite
  • Flash a 64-bit (or 32-bit) Lite OS onto your SD card.
  • Enable SSH to allow remote setup from another device.
2. Update the OS
Code:
sudo apt update && sudo apt -y upgrade
3. Install Git
Code:
sudo apt install -y git
4. Install the UDPBD Server
Code:
cd ~ 
git clone https://gitlab.com/ps2max/udpbd-server 
cd udpbd-server 
make 
cd build 
ls
  • Look for a file like udpbd-server.aarch64 (name may vary).
  • Make it executable:
    Code:
    chmod +x udpbd-server.aarch64
Replace with the actual filename if different.​
  • Copy to system path:
    Code:
    sudo cp udpbd-server.aarch64 /usr/local/bin
5. Install USB Automount
Code:
wget https://github.com/fasteddy516/pi-usb-automount/releases/latest/download/pi-usb-automount.deb 
sudo dpkg -i pi-usb-automount.deb
6. Configure Ethernet (Static IP)
Launch the network tool:
Code:
sudo nmtui
Steps:
  • Edit a connection
  • Choose your wired connection
  • Set IPv4 Configuration to Manual
  • Enter:
    • Address: 192.168.1.5
    • Gateway: 192.168.1.1
  • OK → Back → Quit
7. Create a Systemd Service to Auto-Start
Create the service file:
Code:
sudo nano /etc/systemd/system/udpbdSystemd.service
Paste this content:
Code:
[Unit] 
Description=UDPBD server for PS2 
After=network-online.target
[Service] 
ExecStart=sudo udpbd-server /dev/sda1 
Restart=on-failure
[Install] 
WantedBy=multi-user.target
Save and exit (CTRL+S, then CTRL+X)
Enable and start the service:
Code:
sudo systemctl enable udpbdSystemd.service 
sudo systemctl start udpbdSystemd.service
Done!
The UDPBD server will now auto-start on boot, and should appear in OPL if connected to your PS2.
Notes
  • Unmount USB before removing:
    Code:
    sudo umount /dev/sda1
  • To shutdown Pi safely:
    Code:
    sudo shutdown -h now
  • If stuck viewing server output via SSH, open another SSH session.
 

Similar threads

Back
Top