Building serialosc on arch linux

#1

Hi, I am trying to build serialosc on arch linux.

I’ve been using serialosc 1.2 for a long time on my own. I’ve changed systems from debian to arch linux and I am in the process or rebuilding my setup. I was able to build and install libmonome just fine but serialosc has been giving me trouble all morning.

Here’s my output from running ./waf configure

|> ./waf configure
Setting top to                           : /home/dylan/build/serialosc 
Setting out to                           : /home/dylan/build/serialosc/build 

Checking for 'gcc' (C compiler)          : /usr/bin/gcc 

Checking for working poll()              : yes 
Checking for libudev                     : yes 
Checking for libmonome                   : yes 
Checking for liblo                       : yes 
Checking for function strdup             : yes 
Checking for function _strdup            : not found 
Checking for function strndup            : yes 
Checking for function strcasecmp         : yes 
Checking for header unistd.h             : yes 
Checking for header dns_sd.h             : yes 
Checking for library dl                  : yes 

'configure' finished successfully (0.741s)

Here’s what I get when I run ./waf afterwards

|> ./waf
Waf: Entering directory `/home/dylan/build/serialosc/build'
Traceback (most recent call last):
  File "/home/dylan/build/serialosc/.waf3-1.8.5-3fc7b0f5070c04bfd3f2489448471a84/waflib/Scripting.py", line 103, in waf_entry_point
    run_commands()
  File "/home/dylan/build/serialosc/.waf3-1.8.5-3fc7b0f5070c04bfd3f2489448471a84/waflib/Scripting.py", line 164, in run_commands
    ctx=run_command(cmd_name)
  File "/home/dylan/build/serialosc/.waf3-1.8.5-3fc7b0f5070c04bfd3f2489448471a84/waflib/Scripting.py", line 155, in run_command
    ctx.execute()
  File "/home/dylan/build/serialosc/.waf3-1.8.5-3fc7b0f5070c04bfd3f2489448471a84/waflib/Scripting.py", line 366, in execute
    return execute_method(self)
  File "/home/dylan/build/serialosc/.waf3-1.8.5-3fc7b0f5070c04bfd3f2489448471a84/waflib/Build.py", line 104, in execute
    self.execute_build()
  File "/home/dylan/build/serialosc/.waf3-1.8.5-3fc7b0f5070c04bfd3f2489448471a84/waflib/Build.py", line 107, in execute_build
    self.recurse([self.run_dir])
  File "/home/dylan/build/serialosc/.waf3-1.8.5-3fc7b0f5070c04bfd3f2489448471a84/waflib/Context.py", line 133, in recurse
    user_function(self)
  File "/home/dylan/build/serialosc/wscript", line 239, in build
    bld.recurse("third-party")
  File "/home/dylan/build/serialosc/.waf3-1.8.5-3fc7b0f5070c04bfd3f2489448471a84/waflib/Context.py", line 133, in recurse
    user_function(self)
  File "/home/dylan/build/serialosc/third-party/wscript", line 54, in build
    build_uv(ctx)
  File "/home/dylan/build/serialosc/third-party/wscript", line 6, in build_uv
    from_gyp = ctx.target_from_gyp('libuv/uv.gyp', 'libuv')
  File "/home/dylan/build/serialosc/.waf3-1.8.5-3fc7b0f5070c04bfd3f2489448471a84/waflib/Configure.py", line 183, in fun
    return f(*k,**kw)
  File "/home/dylan/build/serialosc/waftools/gyp_wrapper.py", line 80, in target_from_gyp
    gyp = parse_gyp_file(n.abspath())
AttributeError: 'NoneType' object has no attribute 'abspath'

Any help would be appreciated!!!

Also, any other arch users out here?

Critter & Guitari Organelle
#2

oh, that’s my bad. hit it with a

$ git submodule init
$ git submodule update

and it should build ok. i’ve added a message during ./waf configure if the submodules aren’t checked out.

and yeah, i use arch. serialosc is primarily developed on arch, in fact. :slight_smile:

#3

@wrl
Oh cool! I’m glad I’m not the only one.

I actually just got it working right before I saw your reply.

Since you develop the thing on arch I’m sure you’ll not need this list, but just in case there is anyone else out there, here are some of the hurdles I had to jump:

  • After installing libmonome, it will be placed in /usr/local/lib. Arch will want it to be in /usr/lib.

  • After cloning the serialosc repo, also clone the libuv repo

cd serialosc/third-party
git clone https://github.com/libuv/libuv
  • Finally, get your user into the group uucp. This is the group that Arch uses to grant special permission to usb ports and the like to regular users. With out this step you’ll have to run serialoscd with sudo.
1 Like
#4

you shouldn’t need to clone libuv manually, it’s set up as a submodule. you could actually clone it like so to do both the clone and submodule init steps at the same time:

$ git clone --recursive http://github.com/monome/serialosc

i should update the AUR package now that AUR4 is a thing, actually.

#5

By the way how do you like to run serialosc on your setup? I’m thinking of making a systemd unit file for the purpose.

1 Like
#6

I’m installing serialosc on Arch (armv7 cpu), and it seems to install just fine. However when I run serialoscd, i get

Segmentation fault (core dumped)

Any ideas?

Edit: Running directly seems to work!

./build/bin/serialosc-device /dev/ttyUSB0
#7

oh yeah i don’t know why I didn’t mention this yet but there are actually AUR packages for libmonome and serialosc.

https://aur.archlinux.org/packages/libmonome-git/
https://aur.archlinux.org/packages/serialosc-git

#8

are you having luck with hotplugging?
can you connect/disconnet monome and it works after?
or do you have to rerun serialoscd?

#9

Yesterday i built libmonome and serialosc from github on the latest Raspbian on an RPi1 and i have now that exact same situation; serialoscd segfaults while running directly serialosc-device works.
This makes workarounds possible but it would be easier to have serialoscd working.
How can we debug that ? Did someone find out if the problem lies with serialosc or with something in the host system’s config ?

1 Like
#10

Hello,

To those with experience with serialosc and libmonome on Arch:

I’ve been trying to get serialosc and libmonome set up. Building libmonome seemed to go smoothly. However when I went to configure serialosc, it would not configure unless I moved the libmonome files from /usr/local/lib64 to /usr/local/lib. Then serialosc built as normal. Not positive if this is related to my issue…

Now when I run serialoscd, it starts fine. When I plug in my grid I get the following error:
/usr/local/bin/serialosc-device: error while loading shared libraries: libmonome.so.1: cannot open shared object file: No such file or directory

I’ve tried moving the libmonome files back to lib64, and various combinations of moving the symbolic links and the other files to either lib and lib64. No luck…

Are there other files somewhere I can’t find that are in the wrong location? I looked around as much as I could on my computer where serialosc is running smoothly, as well as this computer. Any other ideas?

And I don’t believe this makes a difference but I am on Parabola (a fsf endorsed distro based on Arch) and not Arch.

Thanks

#11

Sounds like some of the ideas above could be potential solutions. I’ll try it out and see if any of them do the trick.

#12

Well, I have everything half working. When I try to use my arc (newest edition) I get this error:

serialosc-devic : …/src/common/ipc.c:224: sosc_ipc_msg_to_buf: Assertion ‘avail >= 0’ failed.

My monome grid of the same era works fine.

#13

@Andrew_Sblendorio, could you try building serialosc from this branch: https://github.com/artfwo/serialosc/tree/waddress-of-packed-member and see if the problem with the arc persists? Thanks!

1 Like
#14

That seems to have worked perfectly! Thanks!!!

As an aside, I had an issue with similar symptoms when I first got my arc and grid and I was on Windows 7. The grid worked fine and the arc would not work. Now I have a second arc and grid set of an older generation, and those work fine on windows.

I guess what I’m getting at is I wonder if this fix would help get the newest arc working on windows. From what I remember I was not the only one with this issue.

1 Like
#15

Just found this to be true while installing fresh on xubuntu 64-bit.

Kept getting this error:
/usr/local/bin/serialosc-device: error while loading shared libraries: libmonome.so.1: cannot open shared object file: No such file or directory

1 Like
#16

@Andrew_Sblendorio you can try the pre-compiled Ubuntu packages instead. They’re specifically created to avoid most pitfalls with installing software from sources on Linux.

#17

Please may someone present the steps to install serialosc and libmonome on arch linux?
Is that what I need to get the monome to work on arch?

What are the commands?

Many thanks!

1 Like