Извраты в Линукс: многа букав...
Решил собрать всё в одну кучу, ибо забываю вечно:(
А на форуме потом фиг найдёшь…
И так: 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 -
- сборка под линуксом намного быстрее
- qgroundcontrol - плохо коннектится с PX4 под виндой (проверил на двух компах и на двух версиях)
- 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. Записи не в хронологическом порядке, а как их нашел, уже может что-нибудь и отличаться…