diff --git a/stage0/00-configure-apt/files/sources.list b/stage0/00-configure-apt/files/sources.list index 13697ce..707cbeb 100755 --- a/stage0/00-configure-apt/files/sources.list +++ b/stage0/00-configure-apt/files/sources.list @@ -1,6 +1,10 @@ deb http://deb.debian.org/debian RELEASE main contrib non-free non-free-firmware deb http://deb.debian.org/debian-security/ RELEASE-security main contrib non-free non-free-firmware deb http://deb.debian.org/debian RELEASE-updates main contrib non-free non-free-firmware + +# needed for libfluidsynth2:arm64 +deb http://deb.debian.org/debian bullseye main + # Uncomment deb-src lines below then 'apt-get update' to enable 'apt-get source' #deb-src http://deb.debian.org/debian RELEASE main contrib non-free non-free-firmware #deb-src http://deb.debian.org/debian-security/ RELEASE-security main contrib non-free non-free-firmware diff --git a/stage1/00-boot-files/files/config.txt b/stage1/00-boot-files/files/config.txt index a1fdaeb..361707a 100755 --- a/stage1/00-boot-files/files/config.txt +++ b/stage1/00-boot-files/files/config.txt @@ -39,6 +39,9 @@ disable_overscan=1 # Run as fast as firmware / board allows arm_boost=1 +# enable high usb port power for booting from thumb drive for development +usb_max_current_enable=1 + [cm4] # Enable host mode on the 2711 built-in XHCI USB controller. # This line should be removed if the legacy DWC2 controller is required diff --git a/stage2/00-dummy-packages/01-run.sh b/stage2/00-dummy-packages/01-run.sh new file mode 100755 index 0000000..adba6ee --- /dev/null +++ b/stage2/00-dummy-packages/01-run.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +apt update && apt-get -y install equivs +export DEB_BUILD_OPTIONS="nocheck" +export DPKG_DEB_COMPRESSOR=gzip +equivs-build files/jack-dummy.ctl +cp jack-dummy_1.9.22_all.deb ${ROOTFS_DIR}/ + +on_chroot << EOF +dpkg -i /jack-dummy_1.9.22_all.deb +rm /jack-dummy_1.9.22_all.deb +EOF diff --git a/stage2/00-dummy-packages/files/jack-dummy.ctl b/stage2/00-dummy-packages/files/jack-dummy.ctl new file mode 100644 index 0000000..b729942 --- /dev/null +++ b/stage2/00-dummy-packages/files/jack-dummy.ctl @@ -0,0 +1,12 @@ +Section: misc +Priority: optional +Standards-Version: 4.5.0 + +Package: jack-dummy +Version: 1.9.22 +Maintainer: dummy +Architecture: all +Provides: libjack-jackd2-0, libjack-jackd2-dev, jackd2 +Description: Dummy JACK package to satisfy dependencies + This package provides JACK development/runtime dependencies without installing JACK. + diff --git a/stage2/01-sys-tweaks/00-packages b/stage2/01-sys-tweaks/00-packages index 82063bb..2db8cfc 100755 --- a/stage2/01-sys-tweaks/00-packages +++ b/stage2/01-sys-tweaks/00-packages @@ -35,9 +35,10 @@ unzip zip p7zip-full file git kms++-utils python3-venv -virtualenv python3-pip python3-dev python3-zeroconf build-essential libasound2-dev libjack-jackd2-dev -zlib1g-dev cmake gperf intltool ladspa-sdk libarmadillo-dev libavahi-gobject-dev liblilv-dev libjpeg-dev +virtualenv python3-pip python3-dev python3-zeroconf build-essential libasound2-dev +zlib1g-dev cmake gperf intltool ladspa-sdk libarmadillo-dev libavahi-gobject-dev libjpeg-dev libavcodec-dev libavutil-dev libbluetooth-dev libboost-dev libeigen3-dev libfftw3-dev libglib2.0-dev libglibmm-2.4-dev libgtk2.0-dev libgtkmm-2.4-dev liblrdf0-dev libsamplerate0-dev libsigc++-2.0-dev libsndfile1-dev libzita-convolver-dev -libzita-resampler-dev lv2-dev p7zip-full python3-all python3-setuptools libreadline-dev zita-alsa-pcmi-utils +libzita-resampler-dev lv2-dev p7zip-full python3-all python3-setuptools libreadline-dev zita-alsa-pcmi-utils dnsmasq iptables python3-smbus liblo-dev python3-liblo libzita-alsa-pcmi-dev authbind rcconf libfluidsynth-dev lockfile-progs +libfluidsynth2 diff --git a/stage2/01-sys-tweaks/00-packages-nr b/stage2/01-sys-tweaks/00-packages-nr index 15c0f66..3d8e102 100755 --- a/stage2/01-sys-tweaks/00-packages-nr +++ b/stage2/01-sys-tweaks/00-packages-nr @@ -1,3 +1,8 @@ cifs-utils rpicam-apps-lite mkvtoolnix +meson +ninja-build +libserd-dev +libsord-dev +libsratom-dev diff --git a/stage2/05-pistomp/01-run.sh b/stage2/05-pistomp/01-run.sh index 3c9a75d..923c368 100755 --- a/stage2/05-pistomp/01-run.sh +++ b/stage2/05-pistomp/01-run.sh @@ -2,6 +2,7 @@ install -m 644 files/services/*.service ${ROOTFS_DIR}/usr/lib/systemd/system/ install -m 644 files/jackdrc ${ROOTFS_DIR}/etc/ +install -m 644 files/jack-env.sh ${ROOTFS_DIR}/etc/profile.d/ install -m 500 files/80 ${ROOTFS_DIR}/etc/authbind/byport/ mkdir -p "${ROOTFS_DIR}/etc/systemd/system/alsa-restore.service.d" diff --git a/stage2/05-pistomp/02-run.sh b/stage2/05-pistomp/02-run.sh index e802390..d4ad3f5 100755 --- a/stage2/05-pistomp/02-run.sh +++ b/stage2/05-pistomp/02-run.sh @@ -7,31 +7,53 @@ mkdir -p /home/${FIRST_USER_NAME}/tmp cd /home/${FIRST_USER_NAME}/tmp export NOOPT=true -git clone --recursive https://github.com/falkTX/Hylia.git +[ ! -d Hylia ] && git clone --recursive https://github.com/falkTX/Hylia.git cd Hylia make make install cd .. -git clone https://github.com/micahvdm/jack2.git +[ ! -d jack2 ] && git clone --branch v1.9.22 https://github.com/jackaudio/jack2.git cd jack2 ./waf configure ./waf build ./waf install cd .. -git clone https://github.com/micahvdm/browsepy.git +# jack-example-tools provides jack_load/jack_unload v4 +# Alternative source: +#[ ! -d jack-example-tools ] && git clone --branch 4 https://github.com/jackaudio/jack-example-tools.git +[ ! -d jack-example-tools ] && git clone --branch debian/4-4 https://salsa.debian.org/multimedia-team/jack-example-tools.git +cd jack-example-tools +meson setup --prefix=/usr/local build +ninja -C build +meson install -C build +cd .. + +# debian 13 will include python3-lilv liblilv-dev +[ ! -d lilv-0.24.12 ] && \ + wget http://download.drobilla.net/lilv-0.24.12.tar.bz2 && \ + tar xvf lilv-0.24.12.tar.bz2 +cd lilv-0.24.12 +./waf configure --prefix=/usr/local --no-utils --no-bash-completion --pythondir=/usr/local/lib/python3.11/dist-packages +./waf build +./waf install +cd .. + +[ ! -d browsepy ] && git clone https://github.com/micahvdm/browsepy.git cd browsepy pip3 install ./ cd .. -git clone https://github.com/micahvdm/mod-host.git +[ ! -d mod-host ] && git clone https://github.com/mod-audio/mod-host cd mod-host +# This project has no tags - using the repo head from 2025-12-27 +git checkout af11901d9d3ab02631b463853bd16d7881c4e7ca make make install cd .. -git clone https://github.com/TreeFallSound/mod-ui.git +[ ! -d mod-ui ] && git clone https://github.com/TreeFallSound/mod-ui.git cd mod-ui chmod +x setup.py cd utils @@ -42,38 +64,31 @@ cp -r default.pedalboard /home/${FIRST_USER_NAME}/data/.pedalboards sed -i -e 's/collections.MutableMapping/collections.abc.MutableMapping/' /usr/local/lib/python3.11/dist-packages/tornado/httputil.py cd .. -git clone https://github.com/BlokasLabs/amidithru.git +[ ! -d amidithru ] && git clone https://github.com/BlokasLabs/amidithru.git cd amidithru sed -i 's/CXX=g++.*/CXX=g++/' Makefile make install cd .. -git clone https://github.com/micahvdm/touchosc2midi.git +[ ! -d touchosc2midi ] && git clone https://github.com/BlokasLabs/touchosc2midi.git cd touchosc2midi pip3 install ./ cd .. -git clone https://github.com/micahvdm/mod-midi-merger.git +[ ! -d mod-midi-merger ] && git clone https://github.com/mod-audio/mod-midi-merger cd mod-midi-merger +# This project's cmake forces the install prefix to /usr for some reason, so disable that +# so that CMAKE_INSTALL_PREFIX can be used. +sed -i 's/^[[:space:]]*set(CMAKE_INSTALL_PREFIX[[:space:]]*\/usr)/# &/' CMakeLists.txt +[ -d build ] && rm -rf build mkdir build && cd build -cmake .. +cmake -DCMAKE_INSTALL_PREFIX=/usr/local .. make make install -cd .. +cd ../.. -git clone https://github.com/moddevices/mod-ttymidi.git +[ ! -d mod-ttymidi ] && git clone https://github.com/moddevices/mod-ttymidi.git cd mod-ttymidi make install cd .. - -wget http://download.drobilla.net/lilv-0.24.12.tar.bz2 -tar xvf lilv-0.24.12.tar.bz2 -cd lilv-0.24.12 - -./waf configure --prefix=/usr/local --static --static-progs --no-shared --no-utils --no-bash-completion --pythondir=/usr/local/lib/python3.11/dist-packages -./waf build -./waf install -cd .. - EOF - diff --git a/stage2/05-pistomp/files/config_pistomp.txt b/stage2/05-pistomp/files/config_pistomp.txt index ea6c291..fdc26c3 100644 --- a/stage2/05-pistomp/files/config_pistomp.txt +++ b/stage2/05-pistomp/files/config_pistomp.txt @@ -43,6 +43,9 @@ gpu_mem=16 disable_overscan=1 disable_splash=1 +# enable high usb port power for booting from thumb drive for development +usb_max_current_enable=1 + [pi3] kernel=vmlinuz-6.1.54-rt15-v8+ # initramfs initrd.img-6.1.54-rt15-v8+ diff --git a/stage2/05-pistomp/files/jack-env.sh b/stage2/05-pistomp/files/jack-env.sh new file mode 100644 index 0000000..a25592f --- /dev/null +++ b/stage2/05-pistomp/files/jack-env.sh @@ -0,0 +1 @@ +export JACK_PROMISCUOUS_SERVER=jack