Getting MaestroControlCenter running on Linux

Specifically, I’m trying to get this going on CentOS 5. I’ve already done the following:

  • sudo yum install libusb-devel mono-winforms
  • sudo cp 99-pololu.rules /etc/udev/rules.d
  • export MONO_PATH=/usr/lib/mono/2.0
  • added <dllmap dll="gdiplus.dll" target="libgdiplus.so.0" os="!windows"/> to /etc/mono/config

The last two fixed problems with Mono not being able to find libraries. However, now I’m stuck at the following error:

[david@aries maestro_linux]$ mono MaestroControlCenter 

** (MaestroControlCenter:31058): WARNING **: Missing method System.Windows.Forms.Panel::set_AutoSizeMode(AutoSizeMode) in assembly /usr/lib/mono/gac/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll, referenced in assembly /home/david/Digitizing/maestro_linux/MaestroControlCenter

Unhandled Exception: System.MissingMethodException: Method not found: 'System.Windows.Forms.Panel.set_AutoSizeMode'.
  at <0x00000> <unknown method>
  at Pololu.MaestroControlCenter.MainWindow..ctor () [0x00000] 
  at (wrapper remoting-invoke-with-check) Pololu.MaestroControlCenter.MainWindow:.ctor ()
  at Pololu.MaestroControlCenter.Program.Main () [0x00000]

This isn’t Googling very well. Can anyone point me in the right direction?

Hello. I’m sorry you are having trouble.

My strategy for this would be to figure out what methods are in your version of System.Windows.Forms.dll and where it came from.

I am running Ubuntu 10.04.2 and the Maestro Control Center works for me, and I think I have the exact same version of System.Windows.Forms.dll as you. I computed the md5sum of the file:

$ md5sum -b /usr/lib/mono/gac/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll 
0e232b94c0c863af34926a240f5f3f6f */usr/lib/mono/gac/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

There is a symbolic link to that file:

$ ls -l /usr/lib/mono/2.0/System.Windows.Forms.dll
lrwxrwxrwx 1 root root 78 2011-05-06 12:16 /usr/lib/mono/2.0/System.Windows.Forms.dll -> ../gac/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

There is also a config file in the same directory:

$ cat /usr/lib/mono/gac/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.config
<configuration>
	<dllmap dll="gdiplus" target="libgdiplus.so.0"/>
	<dllmap dll="X11" target="libX11.so.6"/>
	<dllmap dll="libX11" target="libX11.so.6"/>
	<dllmap dll="libXcursor" target="libXcursor.so.1"/>
	<dllmap dll="libglib-2.0.so" target="libglib-2.0.so.0"/>
	<dllmap dll="libgobject-2.0.so" target="libgobject-2.0.so.0"/>
	<dllmap dll="libgdk-x11-2.0.so" target="libgdk-x11-2.0.so.0"/>
	<dllmap dll="libgtk-x11-2.0.so" target="libgtk-x11-2.0.so.0"/>
	<dllmap dll="libgdk_pixbuf-2.0.so" target="libgdk_pixbuf-2.0.so.0"/>
</configuration>

Could you run the same commands on your computer so we can see if you have the same files?

Also, could you try compiling and running this very simple test program I wrote? Just unzip it with tar -xzvf panel_test.tar.gz, go in to the directory with cd panel_test, then type make && ./test.exe.
panel_test.tar.gz (1.43 KB)

This program compiles with no warnings on my system and prints “GrowOnly” when it is run.

–David