Abstrakt: Tento dokument obsahuje návod k překladu a instalaci nástrojů FITkitu ze zdrojových kódů.
Ke kompilaci je třeba následující software, který by měl být dostupný pomocí balíčkovacího systému.
GNU Make (make)
GCC/G++ (g++)
Python >= 2.5, < 3.0 (python, python-dev, python-docutils)
SWIG (swig)
Qt4 >= 4.2.0 (libqt4-dev, qt4-qmake)
CMake >= 2.6 (cmake)
libftdi >= 0.15 (libftdi, libftdi-dev)
libssh >= 0.4.6 (libssh, libssh-dev)
Knihovna libusb (libusb, libusb-dev)
SVN repozitář http://merlin.fit.vutbr.cz/svn/FITkitUtils/trunk.
Synchronizace zdrojových kódů pomocí SVN Vám umožní stálý přístup k nejnovějším zdrojovým kódům.
Stáhnout repozitář do aktuálního adresáře je možné pomocí příkazu
svn checkout http://merlin.fit.vutbr.cz/svn/FITkitUtils/trunk .
Balíčky se zdrojovými kódy
Balíčky se zdrojovými kódy jsou aktualizovány pouze při vydání nové verze QDevKitu. Tato cesta Vám tak zaručí vždy funkční řešení.
http://merlin.fit.vutbr.cz/FITkit/download/libkitclient-current.tar.gz
http://merlin.fit.vutbr.cz/FITkit/download/fcmake-current.tar.gz
http://merlin.fit.vutbr.cz/FITkit/download/fkflash-current.tar.gz
http://merlin.fit.vutbr.cz/FITkit/download/pythonqt-current.tar.gz
http://merlin.fit.vutbr.cz/FITkit/download/qdevkit-current.tar.gz
http://merlin.fit.vutbr.cz/FITkit/download/qdevkit-plugins-current.tar.gz
Kompilaci ze zdrojových souborů doporučujeme pouze těm, kteří vědí co dělají. Vzhledem k rozmanitosti distribucí bude nutné zvládnout nainstalovat kompatibilní knihovny. Začátečníkům doporučujeme stáhnout image pro VirtualBOX, který již obsahuje ověřené verze potřebných vývojových nástrojů.
Pro překlad se používá běžně dostupná utilita cmake
, která vygeneruje Makefile
se kterým je možné dále pracovat.
CMake podporuje (kromě jiných) následující volby:
CMAKE_BUILD_TYPE - release / debug build
Debug build
Release (použití: cmake -DCMAKE_BUILD_TYPE=Release
) nebo
PACKAGE - typ balíčku
Suse vygeneruje balíček pro SuSE, OpenSuSE
Ubuntu vygeneruje balíček pro Ubuntu Hardy
Debian vygeneruje balíček pro Debian Sid (použití: cmake -DPACKAGE=Ubuntu && make package
)
CMAKE_INSTALL_PREFIX - volba prefixu cesty, do které má být aplikace nainstalována.
Použití:
cmake -DCMAKE_INSTALL_PREFIX=/usr/
Jednotlivé utility/knihovny je zapotřebí kompilovat v následujícím pořadí (pozn: v závorce jsou uvedeny závislosti).
fcmake
libkitclient
fkflash (využívá knihovnu libkitklient)
pythonqt
qdevkit (využívá fcmake, libkitclient, fkflash a pythonqt)
qdevkit-plugins (vyžaduje qdevkit)
Pro překlad v prostředí Linux je možné využít skript ./build-app.sh
, který pouze stačí spustit a překlad i instalace aplikací do /usr/local
proběhne automaticky. Je zapotřebí mít nainstalované závislosti.
Příklad pro kompilaci knihovny libkitclient z balíčku:
přejdeme do adresáře, který obsahuje zdrojové kódy (např. libkitclient-0.2.7) a vytvoříme podadresář build, který bude obsahovat všechny produkty překladu.
cd libkitclient-0.2.7 mkdir build && cd build
pomocí utility cmake
vygenerujeme Makefile potřebný pro překlad. Utilita zajistí nalezení cest ke knihovnám a upozorní v případě problémů.
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/
V případě, že budete potřebovat upravit výchozí nastavení, můžete použít volby uvedené výše. Cesty uvedené v souborech CMakeLists.txt by nemělo být nutné upravovat.
pomocí utility make
přeložíme projekt
make
Pro paralelní překlad lze použít příkaz make -j4
.
Nyní můžeme z build adresáře vygenerovat Linuxový balíček, instalátor nebo přímo instalovat.
Přímá instalace
sudo make install
V adresáři build utilita cmake vytvoří soubor install_manifest.txt, který obsahuje seznam nainstalovaných souborů. Pro odstranění souborů ze systému je možné použít příkaz
sudo xargs rm < install_manifest.txt
Novější verze programů zvládají aplikaci odinstalovat příkazem
sudo make uninstall
.
Problém s překladem pluginů do QDevKit - skončí-li vám překlad chybovou hláškou nedefinovaný interface
.../fkflash.h:36: Error: Undefined interface
nepodařilo se nástroji moc
nalézt cestu k hlavičkovým souborům QDevKitu. Cesta je definována v souboru qdevkit-plugins/CMakeLists.txt v proměnné PLUGIN_INCLUDE. Typicky stačí nahradit následujícím řádkem:
set(PLUGIN_INCLUDE /usr/local/include)
QDevkit při programování skončí vyjímkou - skončí-li vám programování kitu v QDevKitu chybovou hláškou
Exception: No module named mspgcc
a příkaz python -c "import mspgcc"
spuštěný v shellu funguje bez problémů, zkontrolujte nastavení site-dir Pythonu ve vaší distribuci. Zejména může být problém pokud provozujete paralelně dvě verze pythonu a knihovny vyžadované utilitou fkflash se nainstalují pouze jdo jedné z nich.
Při hledání závad může pomoci následující dvojice příkazů zadaná do python konzole QDevKitu:
py> import sys py> print sys.path
QDevkit nelze spustit - skončí-li pokus o spuštění aplikace chybovou hláškou informující, že knihovna libqdevkit_core.so či jiná knihovna nebyla nalezena, nemáte zaregistrovánu cestu v /etc/ld.conf.so
. Po přidání příslušné cesty do souboru nezapomeňte provést update pomocí příkazu ldconfig
.
Po první instalaci nezapomeňte aktualizovat oprávnění udevu, jinak může dojít k chybnému chování aplikace. Detaily lze nalézt v dokumentu Zprovoznění FITkitu v nativním prostředí Linuxu v sekci zabývající se problémy po instalaci.