Pololu Robotics & Electronics
My account Comments or questions? About Pololu Contact Ordering information Distributors

Error running MaestroControlCenter on Ubuntu 16.04



I need a little help here. I am new to Ubuntu and was trying to follow the instructions 3.b. Installing Linux Driver and Software.
Somehow, when i try to run Maestro Control Center using

mono ./MaestroControlCenter

I had the following errors.

WARNING: The runtime version supported by this application is unavailable.
Using default runtime: v4.0.30319
Can't find custom attr constructor image: /home/rss/maestro-linux/MaestroControlCenter mtoken: 0x0a000292
Unhandled loader error: 8, (null) System.Core, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089 (null)
* Assertion: should not be reached at loader.c:298


Native stacktrace:

	mono() [0x49ff2f]
	/lib/x86_64-linux-gnu/libpthread.so.0(+0x11390) [0x7f46ea836390]
	/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x38) [0x7f46ea490428]
	/lib/x86_64-linux-gnu/libc.so.6(abort+0x16a) [0x7f46ea49202a]
	mono() [0x630409]
	mono() [0x63069c]
	mono() [0x630833]
	mono() [0x54357a]
	mono() [0x54641b]
	mono() [0x546796]
	mono() [0x546d80]
	mono(mono_get_method_full+0x23) [0x546ee3]
	mono() [0x41543a]
	mono() [0x415476]
	mono() [0x4494fb]
	mono() [0x500b39]
	mono() [0x501fbd]
	mono() [0x425db6]
	mono() [0x426749]
	mono(mono_runtime_invoke+0x3d) [0x5ac68d]
	mono(mono_runtime_exec_main+0xbc) [0x5ae9cc]
	mono(mono_main+0x1177) [0x476967]
	/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7f46ea47b830]
	mono(_start+0x29) [0x422e79]

Debug info from gdb:

[New LWP 2636]
[New LWP 2637]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007f46ea835f7b in __waitpid (pid=2638, stat_loc=0x7ffeb4872ebc, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
29	../sysdeps/unix/sysv/linux/waitpid.c: No such file or directory.
  Id   Target Id         Frame 
* 1    Thread 0x7f46eb338780 (LWP 2635) "mono" 0x00007f46ea835f7b in __waitpid (pid=2638, stat_loc=0x7ffeb4872ebc, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
  2    Thread 0x7f46e93ff700 (LWP 2636) "mono" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  3    Thread 0x7f46e9a9a700 (LWP 2637) "Finalizer" 0x00007f46ea834827 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=0, futex_word=0x956820) at ../sysdeps/unix/sysv/linux/futex-internal.h:205

Thread 3 (Thread 0x7f46e9a9a700 (LWP 2637)):
#0  0x00007f46ea834827 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=0, futex_word=0x956820) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x956820, abstime=0x0) at sem_waitcommon.c:111
#2  0x00007f46ea8348d4 in __new_sem_wait_slow (sem=0x956820, abstime=0x0) at sem_waitcommon.c:181
#3  0x00007f46ea83497a in __new_sem_wait (sem=<optimized out>) at sem_wait.c:29
#4  0x0000000000622e06 in mono_sem_wait ()
#5  0x00000000005a5742 in ?? ()
#6  0x0000000000587b2b in ?? ()
#7  0x0000000000629a8c in ?? ()
#8  0x00007f46ea82c6ba in start_thread (arg=0x7f46e9a9a700) at pthread_create.c:333
#9  0x00007f46ea5623dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f46e93ff700 (LWP 2636)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00000000005fdcdb in ?? ()
#2  0x00007f46ea82c6ba in start_thread (arg=0x7f46e93ff700) at pthread_create.c:333
#3  0x00007f46ea5623dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f46eb338780 (LWP 2635)):
#0  0x00007f46ea835f7b in __waitpid (pid=2638, stat_loc=0x7ffeb4872ebc, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
#1  0x00000000004a0006 in ?? ()
#2  <signal handler called>
#3  0x00007f46ea490428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#4  0x00007f46ea49202a in __GI_abort () at abort.c:89
#5  0x0000000000630409 in ?? ()
#6  0x000000000063069c in ?? ()
#7  0x0000000000630833 in ?? ()
#8  0x000000000054357a in ?? ()
#9  0x000000000054641b in ?? ()
#10 0x0000000000546796 in ?? ()
#11 0x0000000000546d80 in ?? ()
#12 0x0000000000546ee3 in mono_get_method_full ()
#13 0x000000000041543a in ?? ()
#14 0x0000000000415476 in ?? ()
#15 0x00000000004494fb in ?? ()
#16 0x0000000000500b39 in ?? ()
#17 0x0000000000501fbd in ?? ()
#18 0x0000000000425db6 in ?? ()
#19 0x0000000000426749 in ?? ()
#20 0x00000000005ac68d in mono_runtime_invoke ()
#21 0x00000000005ae9cc in mono_runtime_exec_main ()
#22 0x0000000000476967 in mono_main ()
#23 0x00007f46ea47b830 in __libc_start_main (main=0x422be0, argc=2, argv=0x7ffeb4874f88, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffeb4874f78) at ../csu/libc-start.c:291
#24 0x0000000000422e79 in _start ()

Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.

Aborted (core dumped)

I did saw the post on similar issue but wasn’t able to have it resolved.
The following are my output from

$ ls -lR

rss@rss-Surface-Pro:~/maestro-linux$ ls -lR
total 324
-rw-r--r-- 1 rss rss     55 Jan 17  2015 99-pololu.rules
-rw-r--r-- 1 rss rss  19968 Jan 17  2015 Bytecode.dll
-rw-r--r-- 1 rss rss  29696 Jan 17  2015 FirmwareUpgrade.dll
-rwxr-xr-x 1 rss rss 183296 Jan 17  2015 MaestroControlCenter
-rw-r--r-- 1 rss rss   1483 Jan 17  2015 README.txt
-rw-r--r-- 1 rss rss  11264 Jan 17  2015 Sequencer.dll
-rw-r--r-- 1 rss rss  12800 Jan 17  2015 UsbWrapper.dll
-rwxr-xr-x 1 rss rss  15872 Jan 17  2015 UscCmd
-rw-r--r-- 1 rss rss  38400 Jan 17  2015 Usc.dll


$ mono -v ./MeastroControlCenter

rss@rss-Surface-Pro:~/maestro-linux$ mono -v ./MeastroControlCenter
converting method (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr)
Method (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr) emitted at 0x4048cbc0 to 0x4048ccd0 (code length 272) [MeastroControlCenter]
converting method (wrapper write-barrier) object:wbarrier_noconc (intptr)
Method (wrapper write-barrier) object:wbarrier_noconc (intptr) emitted at 0x4048cce0 to 0x4048cd45 (code length 101) [MeastroControlCenter]
Cannot open assembly './MeastroControlCenter': No such file or directory.
converting method (wrapper runtime-invoke) object:runtime_invoke_virtual_void__this__ (object,intptr,intptr,intptr)
Method (wrapper runtime-invoke) object:runtime_invoke_virtual_void__this__ (object,intptr,intptr,intptr) emitted at 0x4048cd50 to 0x4048ce48 (code length 248) [MeastroControlCenter]
converting method (wrapper managed-to-native) System.Threading.InternalThread:Thread_free_internal (System.Threading.InternalThread,intptr)
Method (wrapper managed-to-native) System.Threading.InternalThread:Thread_free_internal (System.Threading.InternalThread,intptr) emitted at 0x4048ce60 to 0x4048cf0c (code length 172) [MeastroControlCenter]


$ mono --version

rss@rss-Surface-Pro:~/maestro-linux$ mono --version
Mono JIT compiler version 4.2.1 (Debian
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
	TLS:           __thread
	SIGSEGV:       altstack
	Notifications: epoll
	Architecture:  amd64
	Disabled:      none
	Misc:          softdebug 
	LLVM:          supported, not enabled.
	GC:            sgen

Thanks in advance for your help!



I am sorry you are having trouble running the Maestro Control Center on Ubuntu 16.04.

I am running Ubuntu 16.04 and using the same version of mono as you, and the Maestro Control Center works for me. Could you run dpkg --get-selections | grep mono and post the result here so I can see what Mono packages you have installed?



Here we go

rss@rss-Surface-Pro:~$ dpkg --get-selections | grep mono
ca-certificates-mono				install
fonts-tlwg-mono					install
fonts-tlwg-mono-ttf				install
libmono-corlib4.5-cil				install
libmono-i18n-west4.0-cil			install
libmono-i18n4.0-cil				install
libmono-security4.0-cil				install
libmono-system-configuration4.0-cil		install
libmono-system-security4.0-cil			install
libmono-system-xml4.0-cil			install
libmono-system4.0-cil				install
mono-4.0-gac					install
mono-gac					install
mono-runtime					install
mono-runtime-common				install
mono-runtime-sgen				install
ubuntu-mono					install

On the other hand, i am able to use
./UscCmd --servo 0,8000
to move one servo at channel 0, but unable to move the servo on channel 1. I believe is due to the maximum and minimum setting? I am using Pololu 18 Channel Mini Maestro.


The Maestro Control Center uses Windows Forms as its GUI library. Can you try installing it by running the command below?

sudo apt-get install libmono-system-windows-forms4.0-cil



Thanks you so David for your quick response!
My Maestro Control Center is up.
Appreciate your support and help.