u/Belin02

▲ 2 r/ps2+1 crossposts

[PS2] I need help with SCPH 30004 V3 console

Hello everyone!

I was trying to fix this modchipped PS2 with bad laser.

I notice that some pin of the modchip were oxidated so I decided to remod it with new wire.

Now I get no signal from the TV or at least a black screen with NTSC and then the logo boot up like first-startup console from 2000 with some graphical issues.

How much I'm f****d up?

reddit.com
u/Belin02 — 2 days ago

Hi everyone! I'm posting this because someone asked for a guide in a previous thread, and since I finally got everything working smoothly, I wanted to deliver on that and help out anyone looking for a compact, PC-less solution.

I'm sharing the full guide below, but I’d love to hear your thoughts:

  • If you have ideas to optimize the Luckfox performance for UDPFS, please let me know!
  • Any suggestions are welcome.

1. Overview

This guide explains how to configure a Luckfox device so it can act as a UDPBD server for PS2 game loading with XeB+. The setup assumes XeB+ is already installed and working from USB storage.

2. Hardware and software requirements

Hardware:

  • Luckfox Pico Plus or Mini
  • MicroSD card, preferably 32 Gb
  • PS2 connected to the Luckfox through Ethernet
  • Optional external USB HDD/SSD if you want to store games outside the microSD

Software:

  • Ubuntu image for Luckfox
  • SSH access to the device
  • XeB+ already installed on USB storage

3. First boot and SSH access

After flashing the Ubuntu image to the microSD card and inserting it into the Luckfox:

  1. Connect the Luckfox to the PC through the USB gadget interface.

  2. Set your PC to the same USB subnet, for example 172.32.0.32/24.

  3. Open a terminal and connect through SSH.

    ssh pico@172.32.0.70

Default credentials:

  • Username: pico
  • Password: luckfox

4. Enable Internet access on the Luckfox

Internet access is needed to download packages and the .NET runtime. Use the PC as a gateway for the USB network interface.

sudo ip route add default via 172.32.0.32 dev usb0
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

If package downloads still fail, verify that Internet Connection Sharing or the equivalent network sharing option is enabled on the PC.

5. Update the system

The Luckfox has limited temporary storage, so increase /run before running apt commands.

sudo mount -o remount,size=32M /run
sudo apt update
sudo apt upgrade -y

If dpkg prompts you about configuration files such as /etc/issue or /etc/issue.net, keep the current version by pressing Enter.

6. Install dependencies and the .NET runtime

Install unzip and the .NET runtime required by the UDPBD CLI.

sudo apt install unzip
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh --channel 10.0 --runtime dotnet

Add .NET to the shell environment:

echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
source ~/.bashrc

7. Install UDPBD-for-XEBP

Create a working directory and extract the release archive:

mkdir -p /home/pico/Server
cd /home/pico/Server
wget https://github.com/MegaBitmap/UDPBD-for-XEBP/releases/download/2.11.0.1/UDPBD-for-XEBP-v2.11.0.1.zip
unzip UDPBD-for-XEBP-v2.11.0.1.zip

After extraction, you should have the server binaries and the UDPFS Python server inside the Server directory.

8. Configure Ethernet for the PS2

The Luckfox needs a static Ethernet address so the PS2 can reach it reliably.

Edit the network configuration file:

sudo nano /etc/network/interfaces

Example configuration that worked for me:

# Ethernet Port (PS2)
auto eth0
iface eth0 inet static
address 192.168.1.20
netmask 255.255.255.0

In this example, the PS2 is expected to use 192.168.1.10 and the Luckfox uses 192.168.1.20.

9. Manual startup for testing

Before automating anything, test the setup manually.

On the PS2:

  1. Boot uLaunchELF.
  2. Go to /misc.
  3. Launch ps2net.

On the Luckfox, start the CLI server:

sudo mount /dev/sda1 /mnt/ps2/ -o uid=$USER

cd /home/pico/Server/UDPBD-XEB-CLI
dotnet UDPBD-for-XEB+-CLI.dll -path /mnt/ps2 -ps2ip 192.168.1.10 -udpfs

Then start the Python UDPFS server after sync had success:

cd /home/pico/Server/UDPBDG/udpfs_server
python3 udpfs_server.py --root-dir /mnt/ps2 --verbose

Keep both processes running. Once they are active, XeB+ should be able to load titles from the configured storage.

9. Optional: Using External Storage (exFAT HDD)

If you want to use an external hard drive through the Luckfox USB-C port, the device must be configured in USB Host mode instead of USB Device mode.

Important:

Switching to Host mode has several implications:

  • USB device mode will be disabled = no more USB access from the PC
  • The Luckfox must be externally powered
    • For example: provide 5V to the VBUS pin and GND to ground (using a modified USB cable)
  • Device access will only be possible via:
    • Ethernet (SSH)
    • UART

Enable USB Host mode

Run:

sudo luckfox-config

Navigate to:

Advanced Option → USB → Host

Then reboot the device:

sudo reboot

Mount the external drive

After reboot (accessing via Ethernet or UART), create the mount point and mount the drive:

sudo mkdir /mnt/ps2/
sudo mount /dev/sda1 /mnt/ps2/ -o uid=$USER

11. Automation: startup script and systemd service

This is the part that makes the whole setup easier to use. At boot, the Luckfox waits for the storage device, mounts it, and then start UDPFS automatically.

11.1 Create the startup script

Create the script file:

nano /home/pico/Server/auto_start.sh

Paste this content:

#!/bin/bash

DEVICE="/dev/sda1"
MOUNT_POINT="/mnt/ps2"
SERVER_DIR="/home/pico/Server/UDPBD-XEB-CLI"
PYTHON_DIR="/home/pico/Server/UDPBDG/udpfs_server"

echo "[INFO] Waiting for storage device: $DEVICE"

COUNT=0
while [ ! -b "$DEVICE" ]; do
sleep 1
COUNT=$((COUNT+1))
if [ $COUNT -ge 30 ]; then
echo "[ERROR] Timeout: storage device not detected."
exit 1
fi
done

echo "[INFO] Device detected"

if ! mountpoint -q "$MOUNT_POINT"; then
echo "[INFO] Mounting storage..."
mount "$DEVICE" "$MOUNT_POINT" -o uid=1000
fi

echo "[INFO] Starting UDPBD CLI..."
cd "$SERVER_DIR"
dotnet UDPBD-for-XEB+-CLI.dll -path "$MOUNT_POINT" -ps2ip 192.168.1.10 -udpfs > /tmp/udpbd.log 2>&1 &

echo "[INFO] Starting UDPFS server..."
cd "$PYTHON_DIR"
python3 udpfs_server.py --root-dir "$MOUNT_POINT" --verbose > /tmp/udpfs.log 2>&1 &

wait

Make the script executable:

chmod +x /home/pico/Server/auto_start.sh

11.2 Create the systemd service

Create the service file:

sudo nano /etc/systemd/system/ps2-server.service

Insert this content:

[Unit]
Description=PS2 UDPBD Server
After=network.target

[Service]
Type=simple
User=root
ExecStart=/home/pico/Server/auto_start.sh
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

This service starts the script automatically during boot. If one of the child processes exits unexpectedly, systemd will try to restart it.

11.3 Enable the service

Run the following commands:

sudo mount -o remount,size=32M /run
sudo systemctl daemon-reload
sudo systemctl enable ps2-server.service
sudo reboot

11.4 Correct boot sequence

The startup order still matters. The safest sequence is:

  1. Start the PS2.
  2. Open uLaunchELF.
  3. Launch ps2net.
  4. Power on the Luckfox.
  5. Wait about 30 seconds for the storage and services to come up.
  6. Start XeB+.
  7. Enjoy!

https://reddit.com/link/1szglm5/video/5at2wpqj28yg1/player

reddit.com
u/Belin02 — 14 days ago