Моно на Raspberry Pi [закрито]


78

Я бачив багато розмов про запуск Mono / .NET коду на Raspberry Pi . Чи був якийсь успіх у фактичному запуску коду Mono на Raspberry Pi?

На своєму сайті вони перелічують кілька дистрибутивів Linux, які працюють на пристрої, і деякі з цих дистрибутивів включають Mono. Однак жодної подробиці, чи працює Mono над цим.

Чи є робоча реалізація?


2
можливий дублікат MonoDevelop ARMv6 Raspberry PI
skolima

20
Це питання стосується MonoDevelop (IDE), а не часу роботи, я думаю, це буде першим ударом розробників, які хочуть використовувати Mono на Raspberry Pi, а не іншому.
Ані

Я погоджуюсь, що запуск моно повністю відрізняється від запуску MonoDevelop. Це законне окреме запитання.
Joe Strout,

Я зміг запустити службу WCF із EntityFramework, що споживає базу даних MySql, встановлену на Pi. Це був просто тестовий проект, але продуктивність була хорошою.
vpetrovic

Відповіді:


32

Мені вдалося запустити свій компілятор Delta Forth .NET на Debian 6.0 (Squeeze) та Mono. Це працювало бездоганно з повною бінарною сумісністю, єдине, що мені потрібно було зробити, це перекомпілювати код для націлювання на .NET 3.5 (замість 4.0), оскільки Mono на Debian трохи відстає щодо версій .NET.

Компілятор не є тривіальною програмою .NET, тому я був щасливий побачити компілятор у дії на моїй крихітній Raspberry Pi.

Фактичними кроками, які я зробив, щоб здійснити магію, були (пам’ятаю на пам’ять):

  • Встановіть час виконання Mono за допомогою: sudo apt-get install mono
  • Викличте сам компілятор, використовуючи: mono DeltaForth.exe file_to_compile.4th

Це все. Найбільш складною частиною цієї роботи було передати файли з моєї машини Windows на Raspberry Pi за допомогою флешки :-)


9
'sudo apt-get install mono' у мене не працював. Я використовував 'sudo apt-get install mono-complete' .. це, здається, працює досі!
kodybrown

2
Додаткова примітка для тих, хто хоче скомпілювати .. Мені довелося використовувати 'mcs sample.cs' для компіляції мого коду на raspi та 'mono sample.exe' для його запуску .. це працює, тому я дуже радий можливості запрограмувати c # на моєму pi :-D
kodybrown

2
@wasatchwizard - це не "моно", а "моно-час виконання", "моно-повний" теж працює, але набагато більший і КОЖНА частина моно, тому ви отримуєте багато додаткових бібліотек. Якщо ви намагаєтеся створити невеликий розмір, цей пакет не є рішенням, але я також віддаю перевагу цьому, хоча його встановлення вимагає століть.
BerggreenDK

3
@vbocan -Я просто підключаю мережевий диск CIFS до мого ПК / локальної мережі, а потім використовую MonoDeveloper для повноцінної компіляції файлів mono.exe на сучасному ПК (Intel Core i7). Потім, коли двійковий файл закінчений, він просто виконує його через локальну мережу на Raspberry PI .. працює як шарм! а складання - це вітерець.
BerggreenDK

4
Наступного разу, SCP ваші файли на ваш Raspberry pi замість цього за допомогою флешки. У Windows ви можете використовувати WinSCP для цього.
Том ван Цуммерен

21

Люди на дошці Raspberri Pi повідомляють, що Mono справді працює , принаймні для простих додатків.


але з помилками на даний момент, оскільки DateTime не працює належним чином при використанні форматування рядків
BerggreenDK

Це не просто форматування рядків DateTime. Проблеми глибокі та загальні, на жаль. Дивіться звіт про помилку ( bugzilla.xamarin.com/show_bug.cgi?id=7938 ) та інші, пов’язані з ним.
Joe Strout,

Проблеми з DateTime звучать як проблеми з м’яким / жорстким поплавком. Вам потрібен м’який плаваючий дистрибутив для моно 2. Ви можете використовувати жорсткий плаваючий дистрибутив, якщо ви використовуєте моно 3 (можливо, вам доведеться скомпілювати моно самостійно, що не так складно).
fiat

19

Моно на Raspberry Pi можливо і досить просто налаштувати. Далі передбачається, що ви використовуєте Debian. Це взято з мого блогу, який пропонує ряд підручників з Raspberry Pi

Примітка: стандартна версія середовища виконання Mono, яка зараз доступна, підтримує лише до .NET 3.5, якщо ви не компілюєте з джерела самостійно.

Отже, ви хочете розпочати розробку деяких додатків для вашого Raspberry Pi, але ваші знання програмування обмежені сучасними мовами .NET, такими як VB.NET та C # . Не проблема!! Ласкаво просимо до світу Mono, крос-платформенної та сумісної версії платформи .NET з відкритим кодом. Використовуючи розробницьку IDE, таку як Visual studio, або ще краще MonoDevelop, ви можете створювати файли EXE, які працюватимуть на вашому Raspberry Pi. Все, що вам потрібно зробити, це встановити час роботи Mono на Raspberry Pi. Для цього ми вводимо наступні рядки.

sudo apt-get update

sudo apt-get install mono-runtime

Як згадувалося в інших навчальних посібниках, перший рядок використовується для оновлення менеджера пакетів APT-GET, щоб переконатися, що він використовує найновіші джерела для завантаження ваших пакетів. Другий рядок встановлює та готує середовища виконання до використання. Ось і все, тепер запустити розроблений Mono файл EXE. Просто додайте команді префікс до слова, monoяк показано нижче.

mono myprogram.exe 

Як би ви охарактеризували ефективність монододатків на Raspberry? Скажете, це достатньо для реальних програм (наприклад, для вбудованого пристрою чи пристрою для обробки в реальному часі)?
AngryHacker

@AngryHacker Загалом, я б сказав, що це ціна. Це не надмірно стабільний мікроконтролер, якому слід довіряти для критичних операцій з даними / часом. і йому може не вистачити потужності через його частини (ціна), які будуть використані для чого-небудь істотного, але як тестова база / фреймворк або як початковий фреймворк для створення прототипів - це фантастика. Його розроблено для навчання, а апаратне забезпечення це відображає. Для використання на місцях інші варіанти будуть кращими.
S_BatMan

Чи можу я використовувати MonoDevelop у Windows 7 для розробки / компіляції / тестування мого додатка, а потім передати його на свій Raspberry PI згодом, чи мені потрібно буде переміщати вихідні файли та компілювати безпосередньо на пристрої? Я думав про передачу файлів через локальну мережу ... просто зробіть папку для сміття загальнодоступною в локальній мережі ..
BerggreenDK

Чесно кажучи, це не те, що я пробував, однак, завдяки натузі на JIT, так, це повинно бути цілком можливо. Фактично припускаючи, що він не використовує будь-яку функціональність, яка не доступна в
моноверсії


5

Підтримка жорсткого поплавця тепер у моно 3.2.7:
http://www.raspberrypi.org/phpBB3/viewtopic.php?t=62496&p=468500

Останнє джерело можна встановити з git. Це має бути приблизно так:
(спочатку видаліть попередні моноінсталяції)

sudo apt-get update
sudo apt-get install git build-essential automake autoconf libtool gettext
git clone git://github.com/mono/mono.git
cd mono
./autogen.sh --prefix=/usr/local
make get-monolite-latest
make EXTERNAL_MCS="${PWD}/mcs/class/lib/monolite/gmcs.exe"
sudo make install

Ось як виглядає "моно-V" на моїй малині:

Mono JIT compiler version 3.4.0 (master/ae165c5 Thu Mar 13 01:20:37 UTC 2014)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           __thread
    SIGSEGV:       normal
    Notifications: epoll
    Architecture:  armel,vfp+hard
    Disabled:      none
    Misc:          softdebug
    LLVM:          supported, not enabled.
    GC:            sgen

Швидкий тест, здається, працює нормально:

csharp> Math.Pow(2,4);
16

4

На моєму Raspberry Pi з реміксом Fedora 18 мені було потрібно лише:

    # yum -y install mono-devel

Перевіряти:

    # csharp
    Mono C# Shell, type "help;" for help
    Enter statements below.
    csharp> Console.WriteLine("Hello, I am PI");
    Hello, I am PI
    csharp>  

6
До чека слід додати: "Math.Pow (2,4);". Якщо це поверне 16, ви добре. Якщо воно повертає сміття, ви натрапили на помилку в Mono на дистрибутивах ARM Linux, які використовують жорсткий плаваючий ABI.
Joe Strout


1

Ви можете запустити версію Mono x86 на Raspberry Pi за допомогою ExaGear Desktop програмного забезпечення .

Це дозволяє запускати майже всі програми x86 і навіть встановлювати Wine для запуску програм Windows.

Кажуть, що Firefox працює швидше, ніж навіть рідна ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.