Извраты в Линукс: многа букав...

Решил собрать всё в одну кучу, ибо забываю вечно:(
А на форуме потом фиг найдёшь…
И так: apm_planner (QT)
в файле qgroundcontrol.pro есть такая замечательная штука (короче для прошивальщика)

unix {
        DEFINES += GIT_COMMIT=$$system(git describe --dirty=-DEV --always)
        DEFINES += GIT_HASH=$$system(git log -n 1 --pretty=format:%H)
    INCLUDEPATH += C:/openssl-1.0.1e/include
    LIBS += -lssl -lcrypto
}

незнаю кто её писал, но помоему она неправильная нифига (реч идёт о линуксе под винду и макось есть готовые инсталяторы)
покопавшись надыбал вот что:
надобно openssl со всякими там lssl lcrypto, при этом ssl то есть но явно не там где написано, подставил я это дело, но не фунциклирует,короче начитался всякой лабуды, а потом попал сюда ну тут по полочкам разложено как установить это злосчастное openssl-1.0.1e и где его потом искать 😃
короче не долго думая поставил я это дело, ну и естественно изменил qgroundcontrol.pro
ну и как следствие вот что получилось:

unix {
        DEFINES += GIT_COMMIT=$$system(git describe --dirty=-DEV --always)
        DEFINES += GIT_HASH=$$system(git log -n 1 --pretty=format:%H)
        INCLUDEPATH += /usr/local/ssl/include/
        INCLUDEPATH += /etc/ssl
        INCLUDEPATH += /usr/include/openssl
        INCLUDEPATH += /usr/lib/
        INCLUDEPATH += /usr/share/doc/openssl-1.0.1e
        LIBS += -lssl -lcrypto
}

Mission Planner:

решил под бубунтой Mission Planner запустить:
И так что для этого надо?
установить mono runtime

как это сделать?
в консоли набираем:

sudo  apt-get install mono-runtime libmono-winforms2.0-cil  libmono-corlib2.0-cil libmono-system-web4.0-cil  libmono-system-management4.0-cil

после установки лезем сюда и скачиваем сам планнер в архиве!!! не msi.
распаковываем его куда-нибудь (папки без пробелов в названии и не кириллицей)
далее лезем в ту папку находим ArdupilotMegaPlanner10.exe правой клавишей ->свойства -> права ставим галочку - на разрешения запуска как приложение, открыть с помощью -> mono-runtime. Закрываем всё это дело и двойным кликом запускаем экзешник (тут есть нюанс - попросил обновится и перестал работать, так что я всё это убил и распаковал заново) и вуаля, под винду лазать больше не надо:)

Компиляция Арду PX4 и т.д.
обновляем командой git pull в каталогах ardupilot и PX4Firmvare (тут сначала придётся спрятать патчи командой git stash если у вас не px4 ) ну или если всё новое - git clone github.com/diydrones/ardupilot.git и git clone github.com/diydrones/PX4Firmware.git
ну это по инструкции dev.ardupilot.com/wiki/building-px4-with-make/
далее клонируем git clone github.com/PX4/NuttX.git в туже директорию где лежит папка ardupilot (это важно) и переименовываем папку NuttX в PX4NuttX
ну а дальше как всегда dev.ardupilot.com/wiki/building-px4-with-make/
PX4 появились двух версий как и их спутники io , по умолчанию компилится под V2…

хотя если у вас PX4 не парьтесь - планером скачиваются новые прошивки…

Небольшой ликбез:
Сборка qgroundcontrol V2 под Linux - подходит для Ardupilot, PX4, и для всех их производных.
Почему? Т.к. я балуюсь и с арду и с PX4 -

  1. сборка под линуксом намного быстрее
  2. qgroundcontrol - плохо коннектится с PX4 под виндой (проверил на двух компах и на двух версиях)
  3. qgroundcontrol V1 уже не актуальна 😦
    И так имеем инструкцию qgroundcontrol.org/dev/build_source#b_linuxgcc её пересказывать не буду, но по этой инструкции соберётся первая версия - что нам не интересно 😦
    Что же делать?
    клонируем репозиторий но не так как в инструкции:
git clone git://github.com/mavlink/qgroundcontrol.git

а чуть изменим:

git clone  -b config qgc2

ха у нас появилась папочка с исходниками которая называется qgc2
поехали дальше:

cd qgc2
git submodule init
git submodule update

замечаельно субмодули обновились 😃

далее что-то про библиотеки xbee мы всё ещё в каталоге qgc2, если же вышли то надобно зайти!

cd libs/thirdParty/libxbee/
 sudo make install

sudo обязательно иначе оно всё равно запросит пароль - но пароль root она не приме 😦
всё далее возвращаемся к инсрукции qgroundcontrol.org/dev/build_source#b_linuxgcc и завершаем наше чёрное дело, не забывая что всё делается в каталоге qgc2, а не qgroundcontrol

ну и на последок как сделать иконку на рабочий стол или в панель:
создаём новый документ
и в нём пишем следующее:

[Desktop Entry]
Version=1.0
Name=Имя приложения
Comment=Комментарий (описание программы)
Exec=Абсолютный путь до запускаемого файла, у меня /home/serg/qgroundcontrol2/release/qgroundcontrol
Terminal=false
Type=Application
Icon=Абсолютный  путь до иконки, что будет отображаться,  мой  //home/serg/qgroundcontrol2/release/files/images/icons/macx_128x128x32.png

далее сохраняем его куда вам нужно с расширением .desktop заходим в его свойсва и разрешаем запуск 😃

Станция ставится, а вот коннектится она ну никак на ubuntu 13.04 не желала, ответ оказался прост:
Все дело в правах доступа. По умолчанию к устройствам /dev/tty* имеют доступ пользовтели из группы “dialout”. В этом можно убедиться, набрав
ls -al /dev/ttyS0
В ответ появится
crw-rw---- 1 root dialout 4, 64 Mar 23 21:00 /dev/ttyS0
откуда можно увидеть, что доступ открыт для группы dialout

Теперь нужно добавить себя в эту группу:
sudo adduser <myusername> dialout
или
sudo usermod -a -G dialout <myusername>
<myusername> нужно заменить на свое имя пользователя.

После этого нужно перезагрузиться (или разлогиниться, а потом залогиниться, что более естественно)

да и ещё на 13 бубунте сначала ставим qt creator, а потом сверху накатываем qt4-default, а то эта зараза ставит qt5 а он нивкакую рабртать не хочет.
осталось разобраться как ещё st-link запустить и под виинду можно не возвращаться …

p.s. Записи не в хронологическом порядке, а как их нашел, уже может что-нибудь и отличаться…

  • 3106
Comments
SovGVD

Кхм, месяц или 2 назад прекрасно собиралось… Видимо снова чего то поменяли =) Лучше бы opengl сделали не обязательным ил добавили opengles… ну не прет меня таскать 17" ноут живуший 1-2 часа, а пд ac100 c убунтой упорно не собирается и выпиливать лениво.
Патчик то отослали им?

SergDoc

Да раньше собиралось - они добавили uploader - вот отсюда вся и беда…
Надо бы отослать, но я как-то с ними не общался и с буржуйским у меня плохо. Если кто поможет то я за 😃

SovGVD

написать просто This is the fix for unix и код старый/новый или diff - они разберутся =)

SergDoc

надо сегодня попробовать:
Installing MissionPlanner 1.3.X on Ubuntu 14.04

  1. Установить моно (.NET среду для Linux)
sudo add-apt-repository ppa:inizan-yannick/mono sudo apt-get update

далее

sudo apt-get install mono-runtime libmono-system-windows-forms4.0-cil libmono-system-xml-linq4.0-cil libmono-system-management4.0-cil libmono-system-web4.0-cil libmono-corlib4.5-cil libmono-system-numerics4.0-cil festival

или можно все библиотеки моно

sudo apt-get install mono-complete festival

но места много сожрёт
2. добавить себя любимого в группу пользователей “dialout”

sudo usermod -a -G dialout <myusername>
  1. скачать МР в zip архиве

http://ardupilot.com -> Downloads -> Advanced User Tools -> Missionplanner - ZIP

  1. запуск
mono MissionPlanner.exe

SergDoc

если 13.10 не обновляется до 14.4 то лезем usr/bin/do-release-upgrade

sudo gedit usr/bin/do-release-upgrade

и ремапим нафиг вот это:

# make sure to inform the user if his distro is no longer supported
  # this will make it appear in motd (that calls do-release-upgrade in
  #  check-new-release mode)
  if m.no_longer_supported is not None:
    url = ""
    print(_("Your Ubuntu release is not supported anymore."))
    print(_("For upgrade information, please visit:\n"
            "%(url)s\n") % { 'url' : url })
SovGVD

а почему обязательно Ubuntu 14.04?

SergDoc

да не при чём она тут, просто задолбало ругаться, что у 13.10 поддержка закончилась…
а обновляться отказывалась…