Raspbian+monome install instructions

For anyone who wants to try it the system libuv stuff is now in serialosc master. See https://github.com/monome/serialosc

./waf configure takes a --enable-system-libuv flag to let it use the system wide installed libuv.

Seems like the libuv offered by Ubuntu is a bit old though so this is probably more of use for the rolling release and up to date distro’s.

1 Like

weirdly, installing serialosc from the PPA basically works for me with occasional segfaults. sometimes serialoscd starts and sometimes does not :slight_smile: running raspbian stretch lite here.

btw, i’m installing serialosc by first installing dirmngr to fetch the repository public key (it’s not installed by default on stretch lite). the package still crashes, so do not try this at home!

sudo apt-get install dirmngr

then getting the public key:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DD9300F1

then adding the repository:

sudo echo "deb http://ppa.launchpad.net/artfwo/monome/ubuntu artful main" >> /etc/apt/sources.list.d/monome.list


sudo apt-get update
sudo apt-get install serialosc

next thing i’m gonna try is to make a PPA build with debug symbols so it can be debugged properly. hope that works!

The segfault affecting us here is apparently the same and it’s clearly affecting Linux systems in general. Btw, the crash is fixed by the linked PR, but there are still bogus messages coming to serialoscd from the detector or the device subprocess, still not sure from which one and why.

1 Like

I can’t reproduce the segfault on my serialize-before-write branch, can you guys please check if it also works on your systems? If all is well (the code is reviewed and merged), I can update the PPA with a working version too.


This is working for me on raspbian stretch lite. Thanks so much @artfwo!

1 Like

Thx! I’ve just switched to serialosc built from your branch, so far no issues. Since I have no reliable means to trigger the segfault the only thing I can do is keep using it the coming week(s). I’ll report back after that or if it crashes.

1 Like

I’ve built another package with the i/o fix now in master, it can be installed on Raspbian as follows:

gpg --keyserver keyserver.ubuntu.com --recv DD9300F1
gpg --export --armor DD9300F1 | sudo apt-key add -

echo "deb http://ppa.launchpad.net/artfwo/monome/ubuntu bionic main" | sudo tee /etc/apt/sources.list.d/monome.list

sudo apt update
sudo apt install serialosc
1 Like

Latest serialosc on git is now working on my beaglebone running debian!
thanks guys!

i’ve got the python grid-studies running too. All seems to be going well.


I’ve added a systemd service file to the serialosc package, so now it:

  • Starts automatically on boot. If upgrading from the previous version, run:
    sudo systemctl start serialosc.service
  • Saves grid state under /var/lib/serialosc (since a system daemon doesn’t have a home directory)

The package is currently based on my serialosc branch that has configurable configuration directory, but it will be repackaged once the changes are in master.


I wanted you to ask who’s had the monome running successfully with raspbian?
Everything has installed however when I run “serialoscd” there’s no error but also nothing indicating that it’s picked up anything?

I’ve also run the grid-studies-1.py and again this runs with no error but nothing indicates that anything is happening between the monome.

Is there anything i may not have tried?

Many thanks

I used the grid with raspbian a lot. serialoscd shows detected devices in the terminal as follows:

$ serialoscd 
serialosc [m0001754]: connected, server running on port 11271
serialosc [m0001754]: disconnected, exiting

make sure your user is a member of group dialout and has write access to /dev/ttyUSBx devices. make sure the device is present in the system, i. e. have a look at syslog and lsusb. hope this helps!

I’m a bit of a noob with Raspbian, so I hope this isn’t too dumb of a question.

How do I setup the systemctl start serialosc.service if I compiled serialosc from source?

Many Linux systems including Raspbian use software called systemd to manage processes in the system. If you want to manage serialosc with systemd you have to do the following:

  1. create or copy systemd unit file from the debian package.
  2. create a directory to store serialosc state: it’s ~/.config/serialosc by default, but with systemd you will probably be running serialosc as root.
  3. configure the unit to point to your serialosc binaries and the state directory from step 2.

Not sure what’s your plan here, but in practice it’s easier to run serialosc in an user session started under regular user. The package adds systemd support for headless setups, where you aren’t usually logging in.

Thanks. Yes - this would be a headless setup (Raspi Eurorack module).

You can as well use the binary package then as documented here:


I did use those instructions to compile from source. Can I go back and run apt install serialosc on top of that?

Yeah, just run waf uninstall from both libmonome and serialosc source directories to avoid having 2 serialosc binaries in the system.

1 Like

i’ve added the user to the dialout group and have write access to the USB device and received the expected output from serialoscd confirming the monome is connected. However, when running grid-studies-1.py taken from : https://monome.org/docs/grid-studies/python/
no message appears and the monome appears inactive.

is serialosc running when you launch the grid-studies script?

Yes serialosc is running in the background before running the python script