If you like BoxMatrix then please contribute Supportdata, Supportdata2, Firmware and/or Hardware (get in touch).
My metamonk@yahoo.com is not reachable by me since september. Please use hippie2000@webnmail.de instead.

0
U

Property:luavar

From BoxMatrix


BoxMatrix >> Shell-Commands >> luavar @ BoxMatrix   -   IRC-Chat   -   Translate: de es fr it nl pl
News Selectors Models Accessories Components Environment Config Commands System Webif Software Develop Lexicon Community Project Gallery

Startup-Scr Hotplug-Scr BusyBox-Cmds Bash-Cmds AVM-Cmds Chipset-Cmds Linux-Cmds Shared-Libs Kernel-Mods Research

AVM-Command

Goto:   Limits  -  Examples  -  Source  -  Dependencies   -   Model-Matrix   -   Symbols   -   SMW-Browser

Details

luavar is a minimalistic Lua commandline interpreter. Lua is a simple and efficient scripting language.
Unlike Perl or PHP its memory and storage footprint makes it an excellent choice for embedded usage like in FRITZ!OS.
Initially AVM only provided the luacgi interpreter, which requires webserver login, but later they added luavar for shell usage.

Lua scripts can be textual or compiled bytecode, both use the .lua file extension.
AVM uses this fact to hide the source of the mobiled Lua plugins, see the Plugins section there.

luavar does not provide help functionality. It only accepts one argument:

usage: luavar [<lua-script>]

Let's do the obligatory Hello world test:

$ echo "print('Hello world!')" > test.lua
$ luavar test.lua
Hello world!

Like every script language luavar can also be run from the shebang line:

#! /bin/luavar

print('Hello world!')

Save this file as 'test'. make it executable with 'chmod +x test'. and run it './test'.

Limits

The limits of luavar have yet to be collected.

One important fact is that luavar does no provide any error messages.

$ echo "print('Hello " > test.lua
$ luavar test.lua

If a script is broken it fails silenty. Not a development tool.

Examples

PeterPawn did some examples for luavar usage, the code can be downloaded here. The most interesting is queries.lua which provides an efficient and fast way to mass query UI-Modules without using ctlmgr_ctl.

Source

The names of source files compiled into an executable often help to understand function blocks (and show gaps in the docs).
fw 7.39 source files:

$ strings /bin/luavar | grep -e '\.c$' -e '\.cpp$'

ar7/ctlmgr/src/luacgi/luavar.c  

Dependencies

Daily updated index of all dependencies of this command. Last update: 2023-02-06 07:23 GMT.
A * in the Mod column marks info from Supportdata-Probes, which will always stay incomplete.

Relation Typ Object Mod Firmware Info Origin
Depends on lib ld.so 29 7.08 - 7.51 Dynamic linker / loader Linux
Depends on lib libar7cfg.so 50 6.54 - 7.51 TFFS-Configuration API to ar7.cfg and many more. AVM
Depends on lib libavmauth.so 50 6.50 - 7.51 Fritzbox authentification helpers AVM
Depends on lib libavmcipher.so 50 6.54 - 7.51 AES / DES / Rijndael encryption / decryption. AVM
Depends on lib libavmcsock.so 72 5.23 - 7.51 Networking, I/O and helper functions AVM
Depends on lib libavmfbconf.so 26 7.39 - 7.51 API to hardcoded fbconf.cfg AVM
Depends on lib libavmfbstate.so 26 7.39 - 7.51 IPC fritzbox state notification AVM
Depends on lib libavmhmac.so 56 6.35 - 7.51 HMAC / SHA / MD5 hashing. AVM
Depends on lib libboxlib.so 56 6.35 - 7.51 Box status, logging and statistics functions AVM
Depends on lib libboxnotify.so 1 6.35 boxnotifyd client API (old) AVM
Depends on lib libc.so 72 5.23 - 7.51 Standard C library Linux
Depends on lib libcm.so 72 5.23 - 7.51 ctlmgr / cm_logic messaging API Linux
Depends on lib libcrypto.so 50 6.54 - 7.51 OpenSSL general crypto and X.509 library Linux
Depends on lib libdl.so 62 5.23 - 7.50 Dynamic linking library Linux
Depends on lib libdputil.so 56 6.35 - 7.51 DataPipe / packet utilities AVM
Depends on lib libewnwjson.so 26 7.39 - 7.51 JSON helper functions AVM
Depends on lib libewnwlinux.so 56 6.35 - 7.51 Linux networking functions AVM
Depends on lib libewnwnet.so 56 6.35 - 7.51 Internet helper functions AVM
Depends on lib libgcc_s.so 36 5.23 - 6.110 GCC low-level runtime library Linux
Depends on lib libjuisclient.so 50 6.54 - 7.51 Update-Search - second generation - JUIS AVM
Depends on lib liblua.so 72 5.23 - 7.51 Lua 5.1.4 interpreter library Linux
Depends on lib libm.so 62 5.23 - 7.50 C math library Linux
Depends on lib liboauth2.so 26 7.39 - 7.51 OAuth v2.0 authentificator Linux
Depends on lib libpthread.so 62 5.23 - 7.50 POSIX threading library Linux
Depends on lib librt.so 46 6.35 - 7.50 POSIX realtime extensions library Linux
Depends on lib libsvctl.so 40 7.19 - 7.51 supervisor notification library AVM
Depends on lib libtiinterpreter.so 26 7.39 - 7.51 Preprocessor for SSI-Files by TI. AVM
Depends on lib libwdt.so 72 5.23 - 7.51 AVM-Watchdogs management API AVM
Depends on lib libwebkpiclient.so 23 7.39 - 7.51 KPI sensor for system parts which use HTTP / HTTPS AVM
Depends on lib libwebsrv.so 56 6.35 - 7.51 HTTP / HTTPS webserver and tools. AVM
Depends on lib libyajl.so 26 7.39 - 7.51 Event-driven JSON parser Linux
Depends on lib libz.so 44 6.83 - 7.51 Zlib compressor / decompressor Linux
32 dependencies for this command

Model-Matrix

Daily updated index of the presence, path and size of this command for each model. Last update: 2023-02-06 05:57 GMT.
Showing all models using this command. Click any column header (click-wait-click) to sort the list by the respective data.
The (main/scrpn/boot/arm/prx/atom) label in the Model column shows which CPU is meant for models with multiple Linux instances.
Note that this list is merged from Firmware-Probes of all known AVM firmware for a model, including Recovery.exe and Labor-Files.

Model Firmware Path Size
FRITZ!Box WLAN 3270 5.29 - 5.54 /bin 10.9k - 11.0k
FRITZ!Box WLAN 3270 v3 5.29 - 5.54 /bin 10.9k - 11.0k
FRITZ!Box WLAN 3270 IT 5.51 - 5.52 /bin 10.9k - 11.0k
FRITZ!Box 3272 5.50 - 6.88 /bin 10.9k - 11.3k
FRITZ!Box WLAN 3370 5.29 - 6.55 /bin 10.5k - 11.2k
FRITZ!Box 3390 5.50 - 6.55 /bin 10.5k - 11.2k
FRITZ!Box 3490 (main) 6.20 - 7.30 /bin 10.1k - 14.1k
FRITZ!Box 4020 6.27 - 7.02 /bin 10.1k - 10.6k
FRITZ!Box 4040 6.50 - 7.39 /bin 7.4k - 9.3k
FRITZ!Box 4060 7.26 - 7.39 /bin 9.2k - 9.3k
FRITZ!Box 5490 (main) 6.51 - 7.29 /bin 10.1k - 14.1k
FRITZ!Box 5491 (main) 7.01 - 7.29 /bin 10.1k - 14.1k
FRITZ!Box 5530 Fiber (main) 7.21 - 7.30 /bin 14.0k
FRITZ!Box 5590 Fiber (arm) 7.27 - 7.39 /bin 9.2k - 9.3k
FRITZ!Box 6320 Cable v1 6.03 - 6.04 /bin 8.1k
FRITZ!Box 6320 Cable v2 6.21 /bin 8.1k
FRITZ!Box 6340 Cable 5.24 /bin 11.1k
FRITZ!Box 6360 Cable 5.25 - 6.51 /bin 8.1k - 11.1k
FRITZ!Box 6430 Cable (arm) 6.84 - 7.29 /bin 7.8k - 9.3k
FRITZ!Box 6430 Cable (atom) 6.84 - 7.29 /bin 7.8k - 9.2k
FRITZ!Box 6490 Cable (arm) 6.20 - 7.39 /bin 7.3k - 13.1k
FRITZ!Box 6490 Cable (atom) 6.20 - 7.39 /bin 7.8k - 13.1k
FRITZ!Box 6590 Cable (arm) 6.83 - 7.39 /bin 7.3k - 13.1k
FRITZ!Box 6590 Cable (atom) 6.83 - 7.39 /bin 7.8k - 13.1k
FRITZ!Box 6591 Cable (arm) 7.04 - 7.39 /bin 8.5k - 13.4k
FRITZ!Box 6591 Cable (atom) 7.04 - 7.39 /bin 8.5k - 13.4k
FRITZ!Box 6660 Cable (arm) 7.14 - 7.39 /bin 9.3k - 13.4k
FRITZ!Box 6660 Cable (atom) 7.14 - 7.39 /bin 9.3k - 13.4k
FRITZ!Box 6690 Cable (arm) 7.28 - 7.50 /bin 9.3k - 13.4k
FRITZ!Box 6690 Cable (atom) 7.28 - 7.50 /bin 9.3k - 13.4k
FRITZ!Box 6810 LTE 5.27 - 6.34 /bin 10.9k - 11.2k
FRITZ!Box 6820 LTE v1 6.40 - 7.29 /bin 10.1k - 14.1k
FRITZ!Box 6820 LTE v2 6.40 - 7.29 /bin 10.1k - 14.1k
FRITZ!Box 6820 LTE v3 7.19 - 7.29 /bin 14.1k
FRITZ!Box 6840 LTE 5.23 - 6.87 /bin 10.4k - 11.2k
FRITZ!Box 6842 LTE 6.01 - 6.34 /bin 10.9k - 11.2k
FRITZ!Box 6850 LTE 7.21 - 7.39 /bin 9.3k - 14.0k
FRITZ!Box 6850 5G 7.24 - 7.39 /bin 9.3k
FRITZ!Box 6890 LTE 6.84 - 7.39 /bin 9.9k - 14.1k
FRITZ!Box 6890 LTE v1 6.84 - 7.39 /bin 9.9k - 14.1k
FRITZ!Box 6890 LTE v2 6.84 - 7.39 /bin 9.9k - 14.1k
FRITZ!Box Fon WLAN 7240 5.29 - 6.06 /bin 10.9k - 11.0k
FRITZ!Box Fon WLAN 7270 v2 5.27 - 6.06 /bin 10.9k - 11.1k
FRITZ!Box Fon WLAN 7270 v3 5.27 - 6.06 /bin 10.9k - 11.1k
FRITZ!Box 7272 5.55 - 6.88 /bin 10.9k - 11.3k
FRITZ!Box 7312 5.29 - 6.55 /bin 10.9k - 11.3k
FRITZ!Box Fon WLAN 7320 5.29 - 6.34 /bin 10.9k - 11.3k
FRITZ!Box 7330 5.29 - 6.55 /bin 10.9k - 11.3k
FRITZ!Box 7330 SL 5.29 - 6.55 /bin 10.9k - 11.3k
FRITZ!Box Fon WLAN 7340 5.51 - 6.06 /bin 11.0k - 11.2k
FRITZ!Box Fon WLAN 7360 SL 5.29 - 6.34 /bin 10.9k - 11.3k
FRITZ!Box Fon WLAN 7360 v1 5.29 - 6.35 /bin 10.9k - 11.3k
FRITZ!Box Fon WLAN 7360 v2 5.29 - 6.87 /bin 10.4k - 11.2k
FRITZ!Box 7362 SL 5.53 - 7.13 /bin 10.1k - 14.1k
FRITZ!Box 7369 6.30 - 6.32 /bin 11.2k
FRITZ!Box Fon WLAN 7390 5.50 - 6.87 /bin 10.9k - 11.3k
FRITZ!Box 7412 6.21 - 6.87 /bin 10.4k - 11.2k
FRITZ!Box 7430 6.26 - 7.29 /bin 10.1k - 14.1k
FRITZ!Box 7490 (main) 5.57 - 7.51 /bin 10.1k - 14.1k
FRITZ!Box 7510 7.30 - 7.39 /bin 9.2k - 9.3k
FRITZ!Box 7520 6.98 - 7.50 /bin 7.5k - 9.3k
FRITZ!Box 7520 v2 (arm) 7.30 - 7.50 /bin 9.3k
FRITZ!Box 7530 6.93 - 7.51 /bin 7.4k - 9.3k
FRITZ!Box 7530 AX 7.20 - 7.39 /bin 9.4k
FRITZ!Box 7560 6.51 - 7.29 /bin 10.1k - 14.1k
FRITZ!Box 7580 6.51 - 7.29 /bin 10.1k - 14.1k
FRITZ!Box 7581 6.54 - 7.16 /bin 7.8k - 13.4k
FRITZ!Box 7582 6.83 - 7.16 /bin 7.8k - 13.4k
FRITZ!Box 7583 7.01 - 7.31 /bin 10.1k - 14.1k
FRITZ!Box 7583 VDSL 7.19 - 7.31 /bin 14.0k
FRITZ!Box 7590 6.83 - 7.51 /bin 9.9k - 14.1k
FRITZ!Box 7590 AX 7.19 - 7.39 /bin 9.9k - 14.0k
72 models use this command

Symbols

Daily updated index of all symbols of this command. Last update: 2023-02-06 07:23 GMT.

Firmware Symbol
5.23 - 7.31 LuaScript_MakeFunction
7.08 - 7.31 get_any_string_arg
5.23 - 7.31 get_string_arg
5.23 - 7.51 main
4 symbols for this command

SMW-Browser

Information is currently being retrieved from the backend.