====== vyvoj emtest aplikacii v kubuntu systeme ====== * **Prebieha vyvoj scriptu, ktory by mal automaticky spravit nizsie uvedeny postup. Zatial je spraveny do bodu " * install arm buildroot " vratane. Tento script sa nachadza na ceste /usr/local/emtest/DevelInstall/ a vola sa develInstall.** ---- * preput sa do administratorskeho modu pomocou sudo su * install nfs-common a portmap apt-get install nfs-common portmap * add phoenix to /etc/fstab NEPLATNE: 192.168.241.14:/usr/local/emtest /usr/local/emtest nfs defaults,hard,intr 0 0 - Ak toto nefunguje (v novsich systemoch) 192.168.241.14:/usr/local/emtest /usr/local/emtest nfs defaults,hard,intr,nfsvers=2 0 0 - Na verzii kubuntu 14.04 LTS pre rychlejsiu pracu 192.168.241.14:/usr/local/emtest /usr/local/emtest nfs defaults,hard,intr,nfsvers=4 0 0 AKTUALNY MOUNT PRIKAZ platny od 3.11.2014: - Presunutie ulozika a kompilacnych skriptov do pripojeneho disku /mnt/STORAGE 192.168.241.14:/mnt/STORAGE/devel /usr/local/emtest nfs defaults,hard,intr,nfsvers=4,auto,users 0 0 * and now you could mount phoenix from fstab mount -a * Nastavenie toolchain-ov: [[howto:compile#stiahnutie_toolchainu_a_rozbalenie_toolchainu]] * add emtest_xscale toolchain to fstab /usr/toolchain/emtest_xscale/usr/arm-linux/ /usr/arm-linux auto bind 0 0 * create directories neccesary for emtest development system (dont forget for user permissions): mkdir /usr/local/emtest/ mkdir /opt/devel/ mkdir /opt/devel/src/ mkdir /opt/devel/src/VehicleSystem/ mkdir /opt/devel/etc mkdir /opt/devel/var mkdir /opt/devel/lib mkdir /opt/devel/tmp mkdir /opt/devel/tmp/sound mkdir /usr/arm-linux * and now you could remount phoenix from fstab mount -a * samozrejme treba mat kompare alebo kdiff3 nainstalovane apt-get install kompare kdiff3 * install git apt-get install git * install SCS dependencies apt-get install pcscd pcsc-tools libpcsclite1 libpcsclite-dev libacsccid1 libssl-dev **Pozor** - pre linux os verzie 18.04 LTS a vyssie je potrebne pouzivat verziu SSL //libssl1.0-dev// * install unwind library. sudo apt-get install libunwind8-dev * install qtlibs apt-get install libqt4-dev pre novsie systemy (od kubuntu 14.04 LTS) apt-get install qt-sdk pre este novsie systemy (kubuntu 20.04 LTS) apt install qt5-default apt install libqt5websockets5-dev * Instalacia expat kniznice apt-get install libexpat1-dev Pre vyvoj 32bit app na 64bit systeme: apt-get install libexpat1-dev:i386 * Softver automatov vyzaduje systemove kniznice: apt-get install libqrencode-dev apt-get install libjsoncpp-dev sqlanywhere16 kniznice ( framework sqlanywhere16 na ceste /opt /usr/local/emtest/toolchain/sqlanywhere16.tar.gz + export LD_LIBRARY_PATH na /opt/sqlanywhere16/lib32 v projekte ). Automat vyzaduje kniznicu libdbodbc * Softver vozidlovej aplikacie( kniznica eprinterdriver ) vyzaduje systemovu kniznicu libusb apt-get install libusb-1.0-0-dev Pre vyvoj 32bit app na 64bit systeme: apt-get install libusb-1.0-0-dev:i386 * VoIP funkcionalita implementovana v binarke VoipClient na palubnom počítači VESNA vyžaduje knižnice libopus a libasound sudo apt-get install libopus-dev sudo apt-get install libasound2-dev * Fonty pre citacku DejavuSansCondensed.ttf apt-get install ttf-dejavu-extra * Citacky s kernelom verzie 2.4 vyzaduju kniznicu pre kompilaciu na system 2.4 sytemovu kniznicu libjpeg62 apt-get install libjpeg62 * Instalacia framework-u pre C++ unit testy apt-get install libcppunit-dev Pre vyvoj na systemoch >= Kubuntu 16.04 LTS nainstalovat: apt-get install libcppunit-dev:i386 **Pozor! Tymto krokom je zaroven odstraneny libcppunit-dev pre 64bit a nahradeny 32bitovym !!!**\\ [[dev_doc:frontoffice-unite-testing| unit testing - vsetko ohladom testov]] * Nove systemy ( >= Kubuntu 14.04 ) pouzivaju pre volbu qt 'qtchooser'. Defaultne sa pouziva QT5. pre pouzitie QT4 je potrebne pridat export do ~/.bashrc export QT_SELECT=qt4 * install ssh apt-get install ssh Od systemu kubuntu 22.04 LTS je RSA autentifikacia povazovana za zastaralu a preto je potrebne ju povolit, aby sa dalo prihlasit na Vesnu. V adresari //~/.ssh/// je potrebne vytvorit subor //config// s obsahom: Host * PubkeyAcceptedKeyTypes +ssh-rsa HostKeyAlgorithms +ssh-rsa Host 192.168.12.60 User root IdentityFile /home/benadik/.ssh/id_rsa.benadik Pozn. druha cast suboru je nepovinna a sluzi iba na to, aby nebolo potrebne pouzivat ssh s prepinacom -i. Aby bolo mozne prihlasovat sa aj opacnym smerom (Vesna -> PC), je potrebne upravit subor ///etc/ssh/sshd_config//. V neho treba doplnit riadky: PubkeyAuthentication yes HostbasedAcceptedKeyTypes +ssh-rsa HostKeyAlgorithms +ssh-rsa PubkeyAcceptedKeyTypes +ssh-rsa pricom prvy riadok uz v nom je, len zakomentovany. * install crypto stuff (maybe not required) apt-get install libssl0.9.8 apt-get install libssl-dev - aupo-BA need this library * install g++ apt-get install g++ Pre 64 bitove systemy: apt-get install g++-multilib * Pre 64 bitove systemy instalacia 32 bitvej qt-cky apt-get install qt4-default:i386 qt4-dev-tools:i386 qt4-qmake:i386 libqt4-dev-bin:i386 libqt4-designer:i386 libqt4-xml:i386 libqt4-network:i386 libqt4-dbg:i386 libqt5help5:i386 libxcomposite-dev:i386 **Pozor! Tymto krokom je zaroven odstraneny qt4-qmake pre 64bit a nahradeny 32bitovym !!!** * OSMScout - Postupujte podla [[http://wiki.openstreetmap.org/wiki/Libosmscout|osmscout]]. Kniznice vyzadovane pre projekt Vesna. Je potrebne mat nainstalovane Qt5Positioning: sudo apt install qtpositioning5-dev sudo apt install protobuf-compiler Postup vykompilovania OSMScout pre 64 bitove systemy: export CMAKE_PREFIX_PATH=ZDAJTE CESTU k 32bitovej QT a pridajte /lib/cmake NAPRIKLAD: export CMAKE_PREFIX_PATH=/opt/devel/qt/qt-5.6.1/lib/cmake/ CFLAGS=-m32 CXXFLAGS=-m32 cmake .. * Baliky vyzadovane kompilacnymi skriptami apt-get install realpath * Valgring - tool ktory okrem ineho detekuje memory leaky apt-get install valgrind * Astyle - tool ktory dokaze automatizovane naformatovat zdrojovy C/C++ kod apt-get install astyle V nastaveniach Qt creatora (options->Beautifier->Artistic Style) zvolit "Use customized style" a vlozit (edit) do pola Value: --style=allman --indent=force-tab --pad-oper --pad-paren-in --pad-header --align-pointer=name --add-brackets --indent-namespaces --indent-switches --indent-preproc-block * Je potrebne doplnit subor ///usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf// nasledovne # # qmake configuration for linux-g++ # MAKEFILE_GENERATOR = UNIX CONFIG += incremental x86_64 develop QMAKE_INCREMENTAL_STYLE = sublib QMAKE_CXXFLAGS += -DX86_64 -DDEVELOP QMAKE_CXXFLAGS += -Wno-deprecated-declarations -Wno-class-memaccess -Wno-register -Wno-overloaded-virtual -Wno-format-overflow -Wno-maybe-uninitialized include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) load(qt_config) * flag --no-undefined is for ld linker and disallows undefined symbols in shared libraries, it come to us with new qt libraries (qt =>4.3.4), we don't want this, \\ so we have to comment qt4 config file **/usr/share/qt4/mkspecs/common/g++.conf** alebo **/usr/share/qt4/mkspecs/common/g++-unix.conf** ,where is flag defined. So we should be thankful to hajkym ( he find the solution ) and also we should find and comment this line : ... #QMAKE_LFLAGS += -Wl,--no-undefined ... * Zapnut cisla buildov podla: [[howto:biuld_id|Zapnutie zaznamenavania cisla buildov v knizniciach]] ** toolchain 2.6 ver 10 to uz ma ** * Nastavit si scope podla pouzivaneho crosscompilatora: [[user_howto:qt_scope|qt scope]] * nastavenie aliasov pre kompilaciu balikov pre arm: [[howto:creatingpackages#priprava_pre_pouzivanie_skriptov|priprava pre pouzivanie kompilacnych skriptov.]] * pod sebou (nie root) vygenerovanie ssh klucov a nahranie na server phoenix. [[http://192.168.241.14/wiki/doku.php?id=coding:rules_phoenix&s=ssh%20keygen#prihlasovanie_generovanie_klucov_vymena_klucov|Navod generovania ssh klucov]] * instalacia qtcreatora apt install qtcreator * Nastavenie jednotneho formatovania zdrojovych kodov: [[http://192.168.241.14/wiki/doku.php?id=coding:rules_k5&s=creator|QtCreator code style]]