Start with an Armbian image 24.2.1 Jammy Gnome image available here:
https://www.armbian.com/orangepi-5/
sudo add-apt-repository ppa:liujianfeng1994/panfork-mesa
sudo add-apt-repository ppa:liujianfeng1994/rockchip-multimedia
sudo apt update
sudo apt dist-upgrade
sudo apt install mali-g610-firmware rockchip-multimedia-configsudo rebootsudo apt-get -y install mtools ncdu build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wgetcurl https://raw.githubusercontent.com/UnconnectedBedna/shrink-backup/main/shrink-backup > shrink-backup
chmod +x shrink-backup
sudo mv shrink-backup /usr/local/binsudo apt-get -y install libsdl2-dev libsdl2-ttf-dev libsdl2-image-dev libsdl2-mixer-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly libgstreamer1.0-dev libxine2-ffmpeg libsmpeg-dev libswscale-dev libavformat-dev libavcodec-dev libavdevice-dev libavfilter-dev libjpeg-dev libtiff5-dev libx11-dev libmtdev-dev libgl1-mesa-dev libgles2-mesa-dev pulseaudio lsb-releasesudo apt-get -y install python3 python3-pip python3-devsudo python3 -m pip install --upgrade pipsudo pip3 install mpf==0.57.0
sudo pip3 install mpf-mc==0.57.0(Adapted from https://docs.missionpinball.org/tutorial/2_creating_a_new_machine.html)
mkdir your_machine
cd your_machine
mkdir config
echo "#config_version=6" > config/config.yaml
mpf -b(Adapted from https://doc.qt.io/qt-6/linux-building.html and https://www.ics.com/blog/how-build-qt-640-source-ubuntu-linux)
sudo apt install -y cmake bison build-essential clang flex gperf libatspi2.0-dev libbluetooth-dev libclang-dev libcups2-dev libdrm-dev libegl1-mesa-dev libfontconfig1-dev libfreetype6-dev libgstreamer1.0-dev libhunspell-dev libnss3-dev libopengl-dev libpulse-dev libssl-dev libts-dev libx11-dev libx11-xcb-dev libxcb-glx0-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-shape0-dev libxcb-shm0-dev libxcb-sync-dev libxcb-util-dev libxcb-xfixes0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcb1-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxext-dev libxfixes-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libxkbfile-dev libxrandr-dev libxrender-dev libxshmfence-dev libxshmfence1 llvm llvm-dev ninja-build nodejs python-is-python3 python3
Takes about 2 hours
wget https://download.qt.io/archive/qt/6.4/6.4.2/single/qt-everywhere-src-6.4.2.tar.xz
tar xvf qt-everywhere-src-6.4.2.tar.xz
cd qt-everywhere-src-6.4.2
./configure -prefix /usr/local/Qt6
cmake --build . --parallel
sudo cmake --install .
cd ..
sudo rm -rf qt-everywhere-src-6.4.2
rm qt-everywhere-src-6.4.2.tar.xzThis takes about 1 hour
Required because PyQt6 is asking questions that can't be answered during pip3
sudo PATH=/usr/local/Qt6/bin:$PATH pip3 install PyQt6 PyQt6==6.4.2 --config-settings --confirm-license= --verbosesudo pip3 install "mpf-monitor==0.57.0"Mount a USB drive large enough to hold an image. The drive will be a directory in the /media folder
cd /media/mpf/8e1b6305-8346-49ca-8f51-7fe5a705fe37
sudo shrink-backup -a -l mpf_0-57-0_001.imgssh -l mpf <ipaddress>
sudo armbian-config System -> Desktop -> Stop and Disable this service
Desktop -> Do you want to enable autologin? (YES)
Make a new mpf.desktop and place it in /home/mpf/.config/autostart.
Replace <machine> with the folder containing your machine.
[Desktop Entry]
Name=MPF
Comment=Mission Pinball
Exec=/home/mpf/<machine>/run.sh
Path=/home/mpf/<machine>/
Terminal=false
Type=ApplicationCreate a run.sh in the folder containing your machine.
Replace <machine> with the folder containing your machine.
#!/bin/bash
gnome-terminal -- bash -c "cd /home/mpf/<machine> && mpf both"Make run.sh executable:
chmod +x run.shSettings -> Power ->
Power Saving Option:
Dim Screen: OFF
Screen Blank: Never
Automatic Suspend: OFF
Suspend & Power Button:
Power Button Behavior: Power Off
Install Chrome GNome Shell
sudo apt-get install chrome-gnome-shellInstall GNome Shell Integration extension in Chromium
Search for and enable Hide Top Bar
I went through old links and got reminded of this. :)
You can now use curl to install shrink-backup in "correct" directory and changes execution bit automatically, so if you still use this:
Please see: shrink-backup wiki