Bug 26974 - Installing Mono 3.12 via Xamarin pkg repo on Raspberry Pi (clean from Noobs) throws Seg Fault on mono runtime
Summary: Installing Mono 3.12 via Xamarin pkg repo on Raspberry Pi (clean from Noobs) ...
Status: RESOLVED NOT_ON_ROADMAP
Alias: None
Product: Runtime
Classification: Mono
Component: packaging ()
Version: 3.12.0
Hardware: Other Linux
: --- normal
Target Milestone: ---
Assignee: Jo Shields
URL:
Depends on:
Blocks:
 
Reported: 2015-02-11 18:00 UTC by Hakan Lindestaf
Modified: 2015-04-14 03:06 UTC (History)
4 users (show)

Tags:
Is this bug a regression?: ---
Last known good build:

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report on GitHub or Developer Community with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:
Status:
RESOLVED NOT_ON_ROADMAP

Description Hakan Lindestaf 2015-02-11 18:00:35 UTC
I installed a fresh Raspberry Pi (model 1 B) using Noobs (version 1.3.12, http://www.raspberrypi.org/downloads/). I did a full apt-get upgrade before I started the mono install. Then I followed this:
http://www.mono-project.com/docs/getting-started/install/linux/#debian-ubuntu-and-derivatives

and it processes all the way until it gets to the code that is suppose to sync certificates (cert-sync) which makes a call to mono. It turns out somewhere along the process the mono executable (linked to mono-sgen) throws segmentation fault, even if I run it without any parameters.
Comment 1 Hakan Lindestaf 2015-02-11 18:10:33 UTC
Log when trying to install just mono-runtime:
http://pastebin.com/GcXqaKLJ
Comment 2 Hakan Lindestaf 2015-02-11 19:41:39 UTC
I think I may have figured it out. I tested it on my new Raspberry Pi 2 (arm-v7) last night and it worked. The one where it's crashing is Raspberry Pi 1 (arm-v6). If this is the cause then I think we need to make sure we don't serve up the Mono package on the Xamarin package repository for arm-v6 if it's not working.
Comment 3 Jo Shields 2015-04-03 05:17:00 UTC
(In reply to comment #2)
> I think I may have figured it out. I tested it on my new Raspberry Pi 2
> (arm-v7) last night and it worked. The one where it's crashing is Raspberry Pi
> 1 (arm-v6). If this is the cause then I think we need to make sure we don't
> serve up the Mono package on the Xamarin package repository for arm-v6 if it's
> not working.

We don't.

There are three types of ARM architecture in Debian - soft-float ARMv5 ("armel"), hard-float ARMv7 ("armhf"), and hard-float 64-bit ARM ("arm64").

The popular "raspbian" distribution for Raspberry Pi overloads the "armhf" name from Debian, and uses it to mean hard-float ARMv6 (despite being incompatible).

We build for the first two, using the standard Debian flags - armel, and armhf.

It's not our fault - or our problem - if people try to use packages for one architecture on a different architecture.

Providing packages for the original v6 Pi involves rebuilding *everything*, in a completely distinct software repository, on applicable hardware - it is impossible to provide packages for both ARMv6 hard float and ARMv7 hard float from the same repository (i.e. the same "deb" lines in sources.list), because both use the "armhf" architecture name so it is impossible for apt (or the archive manager software we use) to distinguish between the two