Uživatelské nástroje

Nástroje pro tento web


xpl_sasl

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
xpl_sasl [2015/12/15 22:20] – [Obecně] djbuldogxpl_sasl [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 29: Řádek 29:
 ===== Kompilace Slava ===== ===== Kompilace Slava =====
  
-  * svn http://sasl.googlecode.com/svn/trunk +  * stáhnout
-  * na webu se mluví o verzi 0.8 a 1.0 RC, v svn je ale verze kompatibilní s 2.0 (aktuálně 2.0.3) +
-  * kompilace se spouští pomocí //./mkdistr.sh// +
-  * soubor je potřeba upravit :) +
-    * není tam žádný configure, takže se musí upravit cesty a doinstalovat závislosti +
-    * pro kompilaci slava není potřeba kompilovat xap, který závisí na X-Plane SDK od XSquawkBox +
- +
-  * já jsem řešil tyto problémy při kompilaci +
 <code> <code>
-luna.h:10:17: fatal error: lua.h: Adresář nebo soubor neexistuje +svn co http://sasl.googlecode.com/svn/trunk
- #include <lua.h> +
-                 ^+
 </code> </code>
  
 +  * projekt neobsahuje žádný configure, takže se musí upravit cesty a doinstalovat závislosti
 +  * pro kompilaci slava není potřeba kompilovat xap, který závisí na X-Plane [[http://www.xsquawkbox.net/xpsdk/index.html|SDK od XSquawkBox]]
 +  *  minimálně budou potřeba balíčky
 <code> <code>
-locate lua.h+apt-get install libluajit-5.1-dev libsoil-dev libsdl2-dev libopenal-dev
 </code> </code>
  
 +  * upravit konfigurační soubor - zohlednit cesty knihoven a vypnout xap
 <code> <code>
-fps.h:5:17: fatal error: SDL.h: Adresář nebo soubor neexistuje +cp conf.mk-dist conf.mk
- #include <SDL.h>+
 </code> </code>
  
 <code> <code>
-apt-get install libsdl2-dev ++BUILD_XAP ?= no 
-</code>+-BUILD_XAP ?= yes
  
-<code> ++LUAJIT ?= /usr/ 
- #include <SOIL.h> +-LUAJIT ?= /usr/local 
-                  ^+  
 ++SOIL ?= /usr/ 
 +-SOIL ?= /usr/local 
 +  
 ++EXTRA_CXXFLAGS ?= -I/usr/include/SOIL 
 +-EXTRA_CXXFLAGS ?=
 </code> </code>
  
-<code> +  * spustit kompilaci 
-locate SOIL.h +  * lze použít přímo make, ale lepší je ./mkdisr, který navíc vytváří rovnou výstupní archív s binárkama 
-<code>+  * mkdistr ale ignoruje conf.mk a snaží se buildovat i xap, lze upravit takto
  
 <code> <code>
-apt-get install libsoil-dev+# build x-plane plugin 
 + cd ../xap 
 +-make clean 
 +-make  
 ++#make clean 
 ++#make 
 </code> </code>
  
-EXTRA_CXXFLAGS = -I/usr/include/lua5.1/ -I/usr/include/SOIL/+  * výsledek je ve složce distr
  
-ln -s /usr/lib/x86_64-linux-gnu/libopenal.so.1 slava/libopenal.so+==== Řešené problémy ====
  
--I/usr/include/lua5.1/ -I/usr/include/SOIL/ +  * obecně jsem postupoval takto
-./mkdistr.sh +
  
-/usr/bin/ld: cannot find -lalsound +<code> 
-/usr/bin/ldcannot find -lluajit-5.1 +luna.h:10:17: fatal error: lua.h: Adresář nebo soubor neexistuje 
-/usr/bin/ld: cannot find -lopenal+ #include <lua.h> 
 +                 ^ 
 +</code>
  
--L./ -L../  +<code> 
 +$ locate lua.
 +</code>
  
-ln -s /usr/lib/x86_64-linux-gnu/libluajit-5.1.so.2 libluajit-5.1.so+  * pak jsem kouknul na web debian, který balíček soubor poskytuje a v jaké cestě
  
-n.cpp +  * další zajímavý problém byl s kompilací lokálních adresářů 
-g++ -o slava -L/usr/lib/x86_64-linux-gnu/ -L./ -L../  -L../libavionics -L../libaccgl -L../alsound -L/usr/local/lib -L/usr/local/lib  utils.o cmdline.o fps.o main.o -lm `sdl2-config --libs` -lavionics -lalsound -laccgl -lluajit-5.1 -ldl -lSOIL -lGL -lopenal +  * pokud jsem dal make clean, tak to vyčistilo i složky, které se v mkdistr nebuildují přímo 
-/usr/bin/ld: cannot find -lalsound +  například chyba
-collect2: error: ld returned 1 exit status +
-Makefile:25: návod pro cíl „slava“ selhal +
-make: **[slava] Chyba 1+
  
 +<code>
 +make: *** Žádné pravidlo jak vyrobit cíl „../libaccgl/libaccgl.a“ potřebný pro „slava“. Konec.
 +</code>
  
-ten alsound se musi zkompilovat :) +  * oprava jednoduchá, zavoláním make nebo
-je to adresar... a vyzdauje+
  
-alsound.cpp:19:20: fatal error: AL/al.h: Adresář nebo soubor neexistuje +<code> 
-  #include <AL/al.h>+make -C libaccgl 
 +</code>
  
-install libopenal-dev+  * lze vyřešit i úpravou mkdistr, například pro alsound následovně
  
-a pozooor.. nasel jsem ten divnej build :)+<code> 
-https://github.com/der-On/sasl .tady server posila NP1 na NP2 :)+--- mkdistr.sh (revision 224
 ++++ mkdistr.sh (working copy)
  
-uprava default conf.mk++# build alsound 
 ++cd alsound 
 ++make clean 
 ++make 
 ++if [ $? != 0 ] ; then 
 ++    echo "Can't build alsound!" 
 ++    exit -1 
 ++fi 
 ++cd .
 +</code> 
 + 
 +===== Testování slava-Sasl ===== 
 + 
 +  * po zbuildování Slava jsem přišel na to, že s aplikaci nelze spojit Carenado SASL pluginem 
 +  * používají nejspíš verzi s bugem v handshake (jako [[https://github.com/der-On/sasl/blob/master/libavionics/propsserv.cpp|zde]]).. chovalo se to následovně
  
 <code> <code>
-# extra CXXFLAGS +server: 
-EXTRA_CXXFLAGS = -I/usr/include/lua5.1/ -I/usr/include/SOIL/+con.send((unsigned char*)"NP1\n", 4); 
 +con.send(seed, 16);
  
-# extra LNFLAGS +client: 
-EXTRA_LNFLAGS = -L/usr/lib/x86_64-linux-gnu/ -L./ -L../+md5_append(&md5, buf.getData(), 20); 
 +md5_append(&md5, (md5_byte_t*)secret, strlen(secret)); 
 +md5_byte_t digest[16]; 
 +md5_finish(&md5, digest); 
 +con.send(digest, 16); 
 +   
 +server: 
 +md5_append(&md5, (const md5_byte_t*)"NP2\n", 4); 
 +md5_append(&md5, seed, 16); 
 +md5_append(&md5, (const md5_byte_t*)secret.c_str(), secret.length()); 
 +unsigned char digest[16];
 </code> </code>
 +
 +  * vymyslel jsem opravu ve tvaru
  
 <code> <code>
Řádek 133: Řádek 167:
 </code> </code>
  
-  upravy mkdistr.sh... zakomentoval jsem jeste nejake kraivny ohledne buildu toho modulu do xpl +  * což pomohlo a Slava se se SASL serverem spojila 
-<code> +  * nebylo to ale stabilníPokud jsem ve Slava na něco klikl, tak se to nějak rozpojilo
---- mkdistr.sh (revision 224) +
-+++ mkdistr.sh (working copy)+
  
-+# build alsound +===== Zprovoznění Sasl u letadel =====
-+cd alsound +
-+make clean +
-+make +
-+if [ $? !0 ] ; then +
-+    echo "Can't build alsound!" +
-+    exit -1 +
-+fi +
-+cd .. +
-</code>+
  
-===== Testování slava-Sasl =====+  * měl jsem letadla, u kterých měl běžet sasl plugin, ale neběžel 
 +  * zjistil jsem, že tam někdy chybí 64 bit verze nebo verze pro Linux 
 +  * dále jsem zjistil, že ldd na lin.xpl má někdy problémy najít knihovny a tak se modul nezavede 
 +  * důvod přeskočení pluginu by to mělo vypsat do x-plane Log.txt 
  
-build mam hotov.. +===== Kompilace SASL =====
-proc to nekomunikuje???+
  
-saas2.0.zip je navodco se posila v packetech.. je tam vlastne popis celeho komunikacnicho protokolu +  * odstraněno zakomentování buildu xap (kompilace Slava) 
-(ten zip mas v aircrafts u toho hangaru pc12)+  * přidáno x-plane SDK 
 +  * kompilace proběhla pohoděale x-plane při pokusu načíst letadlo spadne
  
-vlastten tady +<code> 
-less /opt/X-Plane10/Aircraft/GeneralAviation/Eclipse\ 550-v1-5/plugins/sasl/netprops.txt+SASL: Starting... 
 +X-Plane scriptable avionics library plugin v2.0.3 
 +Loaded: /opt/X-Plane 10/Aircraft/General Aviation/Carenado C152II v3 (muj sasl)/plugins/sasl/64/lin.xpl (1-sim.sasl).
  
-kdyz poslu NP1 na eclipse, tak on nereaguje +SASL: Path to panel: /opt/X-Plane 10/Aircraft/General Aviation/Carenado C152II v3 (muj sasl)/avionics.lua 
-kdyz poslu NP2, tak on odpovi NP1+16B ... podle zdrojaku co mam, by mel ale odepsat NP2 :)+SASL: Loading avionics... 
 +--=={This application has crashed because of the pluginSASL}==-- 
 +</code>
  
-takze to vypada, ze tam je nejaka jina verze :) ale jaka?+  * do terminálu vypisuje
  
-u toho eclipse se pise neco o verzi 2.0.0... z svn mam cosi jako 2.0.3 :)+<code> 
 +Got allocator0x41e1c010 
 +Must use luaL_newstate(for 64 bit target 
 +Got Lua: (nil) 
 +error creating Lua virtual machine 
 +Neúspěšně ukončen (SIGABRT) 
 +</code>
  
-vzal jsem sasl plugin z eclipse a hodil to do TU letounu... no a funguje to ted na 64bit +  * je to prý způsobeno nepovolenou custom alokaci v knihovně LuaJIT na 64 bit systémech ([[https://gist.github.com/nddrylliog/8722197|info zde]]) 
-teoreticky, kdyz si udelam vlastni build sasl, tak by to pak mohlo frcet :) no ne? +  * diskuze o problému například [[http://forums.x-plane.org/index.php?showtopic=83054&page=3#entry890673|zde]] 
- +  * řešením je nejspíš použití toho [https://gist.github.com/nddrylliog/8722197|patche]] a následně přilinkování do lin.xpl staticky (to je i důvod, proč je carenado lin.xpl 2x větší než můj build) 
-jinak.. ten sasl plugin by nemel vesmes delat tak nejak nic.. vsechno by melo byt v custom cocpit!! +  * já jsem problém zkoušel vyřešit takto:
- +
- +
-===== Zprovoznění Sasl u letadel ===== +
- +
-  * je tam 64 bit verze? +
-  * ldd na lin.xpl - not found knihovny?? //tohle většinou způsobilo nezobrazení pluginu v menu +
-  * zkoumáním log.txt +
-  * typicky tam je problém s velikosti písmen v názvu souboru // tohle plugin zobrazilo v plugin info, ale nebyla tma položka v menu+
  
 <code> <code>
-SASL INFO: including    soundInit.lua +vim xap/xplua.cpp 
-SASL ERROR: Can't find sound    sounds/INBEE.wav +- lua = lua_newstate(lj_alloc_f, ud); 
-SASL ERROR: Can't find sound    sounds/INBEE.wav ++ lua = luaL_newstate();
-SASL ERROR: Can't find sound    sounds/BEE.wav +
-SASL ERROR: Can't find sound    sounds/BEE.wav +
-SASL ERROR: Can't find sound    sounds/xrpm4R.wav +
-SASL ERROR: Can't find sound    sounds/xrpm4R.wav+
 </code> </code>
  
 +  * funguje to, ale nevím jestli je to stabilní :) spíš bych měl zkusit to statické slinkování
 ===== Historie ===== ===== Historie =====
 +
 ==== Původní vize autora ==== ==== Původní vize autora ====
  
Řádek 240: Řádek 266:
 ===== TODO ===== ===== TODO =====
  
-  * co se stane, když dáš všude tu nejnovější verzi?? :) +  * co zkompilovat sasl 2.0.3 a dát ho do Caranado letadel??  
-  * proč spadne xpl, když dám stop serveru u sasl, když jsem připojen slava klientem? +    * bude Slava fungovat bez zaseknutí
-  * co zkompilovat sasl 2.0.3 a dát ho do caranado letadel?? bude to pořád padat v xpl+    a letadlo bez problémů (zvuk motoru, menu, pilot, ..)? 
-  udělat si vlastní panel s pár přístroji... cesna style :) v milmi2 je hodně custom componentale můžu i ukrást jen obrázky přístroju prostě z cesna letadla.. vytváření přístrojů by mělo být lehké +  * a kruci.. s tím starým mým buildem je to ok, ale s tím novým to padá ihned :/
-  * ve v35 je nejaky xpscrollwell plugin :nehodil by se i do jiných letadel+
-  * http://forums.x-plane.org/index.php?showtopic=59622 +
-  * http://forums.x-plane.org/index.php?showtopic=65052&page=9#entry739052 sasl 2.0 zip +
-  * http://forums.x-plane.org/index.php?showtopic=68571 encrypted sasl+
  
 +  * udělat si vlastní panel s pár přístroji... 
 +    * například pro cesnu 152, přístroje se dají vytahat z textur
 +  * zkusit namergovat (zkompilovat) Slave se zdrojaky 2.4 a používat tuhle novou verzi :)
 +  * zapřemýšlet, zda není jednoduší se na Slava vykašlat a udělat si vlastní dílo (nebo jiný projekt)
 +    * nevýhoda SASL je v tom, že každý letadlo může mít jinou verzi
 +    * některá letadla mohou používat tu DRM nebo šifrování a tam bych to tou free verzi popsul
xpl_sasl.1450214412.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki