Quantcast

Mono on ARM Chromebook

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Mono on ARM Chromebook

Hall72215
I have installed ChrUbuntu on my new ARM Chromebook, and was interested in running a .NET WinForms app (KeyPass).  So, I did "apt-get install mono-complete" and tried to run it, but it crashes.  To make sure that mono wasn't completely broken, I made a program that just wrote "Success" to the console, and it worked.  Next, I made a "hello world" winforms app (just a form with a button), compiled it, and ran it.  It crashed with the exact same error as KeyPass.  So then I ran "mono --version", and saw that the architecture said armel.  The Chromebook is armhf, so I thought all I needed to do was download the source and compile it myself.  But then I found out that hard float ARM isn't supported yet.  Can I assume that the architecture mismatch is the problem?  Any idea on when armhf will be supported?

Here's the top of the stack trace:
Stacktrace:

  at System.Drawing.Font.CreateFont (string,single,System.Drawing.FontStyle,System.Drawing.GraphicsUnit,byte,bool) <0x0013f>
  at System.Drawing.Font..ctor (string,single,System.Drawing.FontStyle,System.Drawing.GraphicsUnit,byte,bool) <0x0007f>
  at System.Drawing.Font..ctor (string,single,string) <0x00057>
  at (wrapper remoting-invoke-with-check) System.Drawing.Font..ctor (string,single,string) <0xffffffff>
  at System.Drawing.SystemFonts.get_DefaultFont () <0x0005b>

And here's what gdb found:
Debug info from gdb:

Cannot access memory at address 0x616a653c
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[New Thread 0x746ff460 (LWP 2483)]
[New Thread 0x750c4460 (LWP 2481)]
[New Thread 0x768a1460 (LWP 2480)]
0x76f393a0 in read () from /lib/arm-linux-gnueabihf/libpthread.so.0
  Id   Target Id         Frame
  4    Thread 0x768a1460 (LWP 2480) "mono" 0x76f3b384 in __libc_do_syscall () from /lib/arm-linux-gnueabihf/libpthread.so.0
  3    Thread 0x750c4460 (LWP 2481) "dconf worker" 0x76e50276 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
  2    Thread 0x746ff460 (LWP 2483) "gdbus" 0x76e50276 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
* 1    Thread 0x76ff6000 (LWP 2479) "mono" 0x76f393a0 in read () from /lib/arm-linux-gnueabihf/libpthread.so.0

Thread 4 (Thread 0x768a1460 (LWP 2480)):
#0  0x76f3b384 in __libc_do_syscall () from /lib/arm-linux-gnueabihf/libpthread.so.0
#1  0x76f386da in do_futex_wait () from /lib/arm-linux-gnueabihf/libpthread.so.0
#2  0x76f38756 in sem_wait@@GLIBC_2.4 () from /lib/arm-linux-gnueabihf/libpthread.so.0
#3  0x001155dc in mono_sem_wait ()
#4  0x000a5b10 in ?? ()
#5  0x000a5b10 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 3 (Thread 0x750c4460 (LWP 2481)):
#0  0x76e50276 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0x76ec11e8 in poll () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0x75c3f22e in ?? () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0
#3  0x75c3f22e in ?? () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 2 (Thread 0x746ff460 (LWP 2483)):
#0  0x76e50276 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0x76ec11e8 in poll () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0x75c3f22e in ?? () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0
#3  0x75c3f22e in ?? () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 0x76ff6000 (LWP 2479)):
#0  0x76f393a0 in read () from /lib/arm-linux-gnueabihf/libpthread.so.0
#1  0x76f39394 in read () from /lib/arm-linux-gnueabihf/libpthread.so.0
#2  0x7ea49e70 in ?? ()

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

Thanks,
Sean
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Mono on ARM Chromebook

Rodrigo Kumpera
Mono doesn't support the hardfp ABI used by ubuntu.

On Saturday, December 1, 2012, Hall72215 wrote:
I have installed ChrUbuntu on my new ARM Chromebook, and was interested in
running a .NET WinForms app (KeyPass).  So, I did "apt-get install
mono-complete" and tried to run it, but it crashes.  To make sure that mono
wasn't completely broken, I made a program that just wrote "Success" to the
console, and it worked.  Next, I made a "hello world" winforms app (just a
form with a button), compiled it, and ran it.  It crashed with the exact
same error as KeyPass.  So then I ran "mono --version", and saw that the
architecture said armel.  The Chromebook is armhf, so I thought all I needed
to do was download the source and compile it myself.  But then I found out
that hard float ARM isn't supported yet.  Can I assume that the architecture
mismatch is the problem?  Any idea on when armhf will be supported?

Here's the top of the stack trace:
Stacktrace:

  at System.Drawing.Font.CreateFont
(string,single,System.Drawing.FontStyle,System.Drawing.GraphicsUnit,byte,bool)
<0x0013f>
  at System.Drawing.Font..ctor
(string,single,System.Drawing.FontStyle,System.Drawing.GraphicsUnit,byte,bool)
<0x0007f>
  at System.Drawing.Font..ctor (string,single,string) <0x00057>
  at (wrapper remoting-invoke-with-check) System.Drawing.Font..ctor
(string,single,string) <0xffffffff>
  at System.Drawing.SystemFonts.get_DefaultFont () <0x0005b>

And here's what gdb found:
Debug info from gdb:

Cannot access memory at address 0x616a653c
[Thread debugging using libthread_db enabled]
Using host libthread_db library
"/lib/arm-linux-gnueabihf/libthread_db.so.1".
[New Thread 0x746ff460 (LWP 2483)]
[New Thread 0x750c4460 (LWP 2481)]
[New Thread 0x768a1460 (LWP 2480)]
0x76f393a0 in read () from /lib/arm-linux-gnueabihf/libpthread.so.0
  Id   Target Id         Frame
  4    Thread 0x768a1460 (LWP 2480) "mono" 0x76f3b384 in __libc_do_syscall
() from /lib/arm-linux-gnueabihf/libpthread.so.0
  3    Thread 0x750c4460 (LWP 2481) "dconf worker" 0x76e50276 in ?? () from
/lib/arm-linux-gnueabihf/libc.so.6
  2    Thread 0x746ff460 (LWP 2483) "gdbus" 0x76e50276 in ?? () from
/lib/arm-linux-gnueabihf/libc.so.6
* 1    Thread 0x76ff6000 (LWP 2479) "mono" 0x76f393a0 in read () from
/lib/arm-linux-gnueabihf/libpthread.so.0

Thread 4 (Thread 0x768a1460 (LWP 2480)):
#0  0x76f3b384 in __libc_do_syscall () from
/lib/arm-linux-gnueabihf/libpthread.so.0
#1  0x76f386da in do_futex_wait () from
/lib/arm-linux-gnueabihf/libpthread.so.0
#2  0x76f38756 in sem_wait@@GLIBC_2.4 () from
/lib/arm-linux-gnueabihf/libpthread.so.0
#3  0x001155dc in mono_sem_wait ()
#4  0x000a5b10 in ?? ()
#5  0x000a5b10 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 3 (Thread 0x750c4460 (LWP 2481)):
#0  0x76e50276 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0x76ec11e8 in poll () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0x75c3f22e in ?? () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0
#3  0x75c3f22e in ?? () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 2 (Thread 0x746ff460 (LWP 2483)):
#0  0x76e50276 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0x76ec11e8 in poll () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0x75c3f22e in ?? () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0
#3  0x75c3f22e in ?? () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 0x76ff6000 (LWP 2479)):
#0  0x76f393a0 in read () from /lib/arm-linux-gnueabihf/libpthread.so.0
#1  0x76f39394 in read () from /lib/arm-linux-gnueabihf/libpthread.so.0
#2  0x7ea49e70 in ?? ()

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

Thanks,
Sean



--
View this message in context: http://mono.1490590.n4.nabble.com/Mono-on-ARM-Chromebook-tp4657617.html
Sent from the Mono - General mailing list archive at Nabble.com.
_______________________________________________
Mono-list maillist  -  <a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;Mono-list@lists.ximian.com&#39;)">Mono-list@...
http://lists.ximian.com/mailman/listinfo/mono-list

_______________________________________________
Mono-list maillist  -  [hidden email]
http://lists.ximian.com/mailman/listinfo/mono-list
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Mono on ARM Chromebook

Hall72215
Using the thread at http://www.raspberrypi.org/phpBB3/viewtopic.php?f=66&t=11634&p=218815&hilit=mono, I was able to get mono working on the ARM Chromebook.

On the Chromebook:

    cd ~
    git clone git://github.com/directhex/mono-1.git
    cd mono-1
    git checkout remotes/origin/armhf-port
    ./autogen.sh --disable-mcs-build
    make CFLAGS=-DARM_FPU_VFP_HARD
    make install

On Ubuntu desktop machine:

    cd ~
    git clone git://github.com/directhex/mono-1.git
    cd mono-1
    git checkout remotes/origin/armhf-port
    ./autogen.sh
    make
    make install DESTDIR=~/monoArmhfBuild
    cd ~/monoArmhfBuild/usr/local/lib
    tar -cf mono.tar mono
 
Moved mono.tar onto the Chromebook, then on the Chromebook:

    cd /usr/local/lib
    tar xf mono.tar mono
Loading...