Running Rack after building from source: Could not find module Fundamental/VCO

While trying to track down audio glitches, I’m building Rack from source on Linux x64. I followed the instructions and they work great.

When I run ./Rack, it works but it can’t find the Fundamental modules. In my super-simple patch that has only VCV VCO, VCV Audio, and VCV Record, I see:


I have also cloned the Fundamental repo and built it without issues. Of course that is in a separate subdirectory.

What is the right way to run Rack + Fundamental, both built from source? I thought I would ask before I guess wrong and start chasing phantom bugs while looking for the real bug I’m interested in.

build plugins in subdirs under the “plugins” folder under Rack.

git clone
cd Rack
git submodule update --init --recursive
make dep
make -j8

cd plugins
git clone
cd Fundamental
git submodule update --init --recursive
make dep
make -j8

cd ../..
make run (starts rack -d)

VCV build instructions here


Thank you @Jens.Peter.Nielsen! That did the trick.

It’s curious that git submodule ... and make dep don’t appear to do anything when I run them inside Rack/plugins/Fundamental. I wonder if they are really needed?

~/github/Rack/plugins$ git clone
Cloning into 'Fundamental'...
# ...
~/github/Rack/plugins$ cd Fundamental/
~/github/Rack/plugins/Fundamental$ git submodule update --init --recursive
~/github/Rack/plugins/Fundamental$ make dep
make: Nothing to be done for 'dep'.
~/github/Rack/plugins/Fundamental$ make
g++ -std=c++11 -Wsuggest-override  -Idep/include -fPIC -I/home/don/rack_sdk_2.2.0/include -I/home/don/rack_sdk_2.2.0/dep/include -fno-gnu-unique -MMD -MP -g -O3 -funsafe-math-optimizations -fno-omit-frame-pointer -Wall -Wextra -Wno-unused-parameter -DARCH_X64 -march=nehalem -DARCH_LIN  -c -o build/src/8vert.cpp.o src/8vert.cpp
# ...
1 Like

They’re not needed for fundamental. They do no harm , some plugins have git controlled submodules, and dependencies has to be built first = they’re in my recipe :man_cook:

1 Like

hello, interesting that you could manage it to build under linux. i do not manage it, because the make process requires jack libraries to run, or alsa, but under pipewire both are emulated and not needed.

did you build with pipewire, or instead with a jack-server? did you build under x11 or wayland?


Hi @karlderletzte, I’m running a generic install of Debian Bullseye on a basic Intel x64 system. I use Xfce as my graphical shell. I followed the instructions for an Ubuntu-like system (which is based on Debian) by installing some required packages:

sudo apt install libx11-dev libglu1-mesa-dev \
    libxrandr-dev libxinerama-dev libxcursor-dev \
    libxi-dev zlib1g-dev libasound2-dev libgtk2.0-dev \
    libgtk-3-dev libjack-jackd2-dev zstd libpulse-dev

I don’t know anything about pipewire or jack-server, so I’m not sure how to answer your question. If you know of some specific settings/files I can check on my system to help you, please let me know.

I have another question. As mentioned above, I built Rack from source, and I can run it using ./Rack -d in the directory where I built it. However, when I try to run without the -d option, I keep running into problems. When I load one of my local patches I get:


I go under the Library menu, do an Update All, and it downloads everything. I exit Rack, run it again, but I’m right back where I started. Same dialog box pops up when I try to reload the patch.

There is some basic thing I’m missing here… all I want is to make the Rack I built from source act like the Rack I download from the website.

What is the correct way to do the equivalent of make install that most other Linux source packages provide? Thanks in advance!

not sure.

What I do, is “make dist”, when I have built rack + plugins/Fundamental

Then install the dist like I would install a rack release from

On windows, I set an environment variables RACK_SYSTEM_DIR and RACK_USER_DIR to point my rack dirs on another drive. This has to be done only once before installing rack. Never had path / permission related issues since that (no spaces / æøå characters, windows defender / onedrive locks).

Thanks @Jens.Peter.Nielsen! I finally got it working. I couldn’t get the built-from-source Rack to use my existing user data directory, so I ended up creating a new empty directory. For example, on my system I called it /home/don/sandbox/data. I also discovered I have to copy Fundamental.vcvplugin (also built from source) into /home/don/sandbox/data/plugins/ before running Rack the first time. Then I execute

RACK_USER_DIR=/home/don/sandbox/data ./Rack

Rack finds the data folder. I have to log in with my username and password, then I download and install all my plugins. Now everything is working.

Ack! I spoke too soon. I’m stuck in a loop where I keep downloading all my plugins, close VCV Rack, run it again, try to load my patch, and it’s like it forgot everything:


I’m fairly inexperienced with rack on linux - other than the RACK_SYSTEM_DIR and RACK_USER_DIR, It may use ~/.Rack2

edit to add: “~./Rack2” is the default userdir on linux

I wish you luck getting it to run as you wish.

add: the update downloads the .vcvplugin - you have to restart rack to extract the plugin

Thanks, but yes, I know about this already from running VCV Rack from a normal installation. I’ve been familiar with that for a while now. In this case, running from my own build, no matter how many times I restart, it can’t find the plugins it just downloaded. It starts all over wanting to download everything again.