Introducing the Radxa Rock Pi S, an alternative to the Raspberry Pi, as a linux server running the dreampi script. This device is a single-board computer using Rockchip RK3308. It measures 1.7-inch square (47mm square), and offers 1x USB-A, Ethernet, and optional wifi. Most importantly, Rockpi S is readily available online on ebay and aliexpress for under US$40.
General information on the wiki:
https://wiki.radxa.com/RockpiS
Project goals
- Release image for lay users to connect quickly.
- Document build setup to inform others building their own environment from scratch. Dreampi script is packaged as armhf, and RockpiS is arm64 architecture.
- Get more people online in time for Driving Strikers release.
- Radxa RockpiS
- microSD Card (any class-10 will do, 4Gb or more)
- microSD card reader
- USB-C to USB-A cable (power and adb)
- RJ-45 ethernet connected to LAN
Remainder of "dreampi" kit (not covered in this guide)
- Dreamcast with DC modem
- Linux-compatible USB modem
- Line-voltage inducer
- RJ-11 telephone cable
- Planetweb 2.62 Browser - recommended for testing
Image (debian-buster stable)
https://wiki.radxa.com/RockpiS/downloads
Balena Etcher (any OS, portable version is good)
https://etcher.balena.io
PuTTy
https://www.chiark.greenend.org.uk/~sgt ... atest.html
Android debug bridge (ARM developer tool)
https://developer.android.com/tools/rel ... form-tools
03) Etcher
- Load microSD card to PC
- Run Etcher
- select image
- select card
- flash
-plug USB-C to RockpiS and USB-A end to PC for power and adb connection
(green light is power)
(green + blue-flashing means debian linux managed to boot)
05) Finding IP address
IP address needs to be known for SSH tunnel. This can be found by several methods. All methods listed here can be executed on any platform (Windows/Mac/Linux, etc...).
- Using your home router firmware, look at connected devices. Device name is "rockpis".
- Use free scanning software like nmap or angryip.
- Android Debug Brige (adb). It's slightly more difficult than other methods, but step-by-step instructions are included here.
- Make sure RockPiS is powered by the PC via USB-C to USB-A cable.
Download adb:
https://developer.android.com/tools/rel ... form-tools
- Open windows powershell, go to directory
(for Win11 Explorer: go to folder, alt+F then "open terminal")
- List connected devices:
Code: Select all
platform-tools/adb devices
Code: Select all
platform-tools/adb shell
Code: Select all
ifconfig
exit
exit
TIP: send with "push" file or dir from PC to Rock (before entering shell)
Code: Select all
adb push <local_dir> </target_dir/>
adb pull <local_dir> </target_dir/>
( ) < > | ; & * \ ~ " '
NOTE: many special characters and escape codes in windows powershell takes priority over the adb shell and behave unexpectedly. We will now connect using SSH instead.
06) Install PuTTy and connect via SSH
Download:
https://www.chiark.greenend.org.uk/~sgt ... atest.html
Connect to rockpis via SSH using PuTTy
- Input IP address from earlier
- port 22
- SSH connection type
- name saved session "rockpis" and hit 'save'
- click 'open'
- user: rock | password: rock
Code: Select all
sudo su #input password to confirm
cd /
Useful Linux commands
Code: Select all
#list hardware architecture(s)
dpkg --print-architecture
dpkg --print-foreign-architectures
# system information
uname -a
# filesystem information
df -H
#configure timezone
dpkg-reconfigure tzdata
07) Radxa updates
#install instructions: https://wiki.radxa.com/RockpiS/Debian
#update instructions: https://wiki.radxa.com/RockpiS/radxa-apt
Code: Select all
sudo apt update
sudo apt install wget
export DISTRO=buster-stable
wget -O - apt.radxa.com/$DISTRO/public.key | sudo apt-key add -
sudo apt update
sudo apt full-upgrade
# (Y) for all options, then enter region and timezone code
exit
exit
#reboot now
Code: Select all
dpkg --add-architecture armhf
#useful commands
dpkg --print-architecture
dpkg --print-foreign-architectures
Code: Select all
sudo apt install git-all
apt install dnsmasq dnsutils libnetfilter-queue-dev libnetfilter-queue1 ppp arping nftables tcpd wvdial
sudo apt install syslog-ng
# these last packages do not seem necessary.
# sudo apt-get install -y git user-mode-linux libslirp-helper
Code: Select all
git clone https://github.com/Kazade/dreampi
cd dreampi
dpkg -i arm/*.deb
# note: it's broken. We can fix and retry
sudo apt update
sudo apt full-upgrade
apt --fix-broken install
dpkg -i arm/*.deb
mkdir /usr/local/share/dreampi
cp *.py dial-tone.wav /usr/local/share/dreampi
ln -s /usr/local/share/dreampi/dreampi.py /usr/local/bin/dreampi
chown -R rock:rock /usr/local/share/dreampi/
cp etc/init.d/dreampi /etc/init.d/
cp etc/systemd/system/dreampi.service /etc/systemd/system/
https://github.com/Kazade/dreampi/issues/17
Code: Select all
cd /etc/dnsmasq.d/
cat > dreampi.conf
11) Install Python3
Code: Select all
sudo apt install python3 -y
# long install. Now is a good time for a break.
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
tar -xvf Python-3.7.3.tgz
python3 -V
sudo apt install python3-pip
pip3 --version
pip3 install -r /dreampi/requirements.txt
apt install --upgrade python3-iptables
Code: Select all
dreampi --no-daemon
- Try to connect using web browser at this point. PlanetWeb 2.62 is recommended.
- Dreamcast browser setup here:
[DreamcasticChannel] How To: Get Your Dreamcast Online (DreamPi) | 2017 Edition
- From any computer on your network, find Dreamcast Now website and attempt config. In 2023 you will need to disable a browser security feature to discover the RockPi.
PSA: Issue with Configuring DC Now on Chromium Browsers
Additional comments
Landmarks:
- 06/17 - connect browser to plain internet, and dreampipe portal.
- 06/23 - Logged into Quake III - Mechanic's server
- 06/25 - F - third build is broken, but now I have a streamlined procedure.
- 06/28 - fourth build successful, streamlined process that connects to dreampipe. Fails to recognize Dreamcast Now
- 07/05 - installing syslog fixes Dreamcast Now connection.
- Setup wifi config
- release working image(s)
- User experience add-ons (FTP server for save transfer, web browser enhancement)
- Match the dreamcastlive DreamPi1.8DLE image features for Raspberry Pi. here
- add SEGA RPG FAN's tunneling software for Capcom's KDDI, Saturn Netlink, and XBAND future releases. link
- add Shuouma's IP fix for future Daytona USA online release.
- (easy) add Shuouma's dcgmail installer to root. This script enables email setup for Sega Swirl play. link
- add Scrivani's "BBA Mode" tunnelling software. link
- configure backup DNS server (need to ask the dreamcastlive guys for the address)
- Still need wifi steup. Need to research headless Wi-fi setup
- Debian-buster build. One task that was completed from the start.
Observations:
- This thing is tiny. Without enclusure, it is about the width and thickness of a VMU. The RockPiS and linux modem should be able to fit inside the shell if space is made by PSU or ODE replacement.
- This device runs cool. I leave it plugged in for days and it remains cool to touch.
- 07A) During Radxa updates, the tutorial recommends this line. The distribution already has this source listed. Each time this line is run adds the same source and will create conflict every time "apt update" is run. This line has been removed from tutorial.
Code: Select all
echo "deb http://apt.radxa.com/$DISTRO/ ${DISTRO%-*} main" | sudo tee -a /etc/apt/sources.list.d/apt-radxa-com.list
- 08A) Removing arm64 packages, then arch isn't viable. The OS becomes broken at this point.
Code: Select all
apt-get purge ".*:arm64" dpkg --remove-architecture arm64
- 09A) Attempting to install latest Python3 package 3.11; however, 3.7 ends up being installed. This version will soon lose official support.
- Sequencing issue) The installation of several packages, the unpackaging of dreampi, and installing was a tangled mess. The solution seems to be resolved by enabling MULTIARCH support for armhf architecture. Attempting the broken install; then running "apt --fix-broken install". . .
seems to resolve the problem. I trimmed venv lines, and placed pip3 modules from dreampi install instructions to be after the python3 and pip3 install.