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 years. Please use hippie2000@webnmail.de instead.
Property:aicmd (avmcmd)
BoxMatrix >> Shell-Commands >> aicmd (avmcmd) | @ 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 | Media |
Startup-Scr | Hotplug-Scr | BusyBox-Cmds | Bash-Cmds | AVM-Cmds | Chipset-Cmds | Linux-Cmds | Shared-Libs | Kernel-Mods | Research |
Name-Collision - multiple objects in this wiki use the name aicmd!
|
AVM-Command
Command: | aicmd (avmcmd) - type Exec | Wiki | Freetz | IPPF | whmf | AVM | Web |
Location: | Shell-Commands >> AVM-Commands - Origin: AVM | ||||||
Path: | Release: /bin Lab+Rel: /bin | ||||||
Properties: | Size: 5.9k - 21.7k - Firmware: 6.54 - 8.00 | ||||||
Function: | avmipc_command query client. |
Goto: Examples - Endpoints - Libraries - Functions - Events - Dependencies - Model-Matrix - Symbols - SMW-Browser
Details
aicmd is an avmipc_command query client to show status info and logs from daemons supporting it and to set debug flags.
On models which run multiple Linux instances aicmd abstracts on which Linux the specific daemon is running.
fw 7.29 help:
root@fritz2:/var/mod/root# aicmd -? usage: aicmd [options] [endpoint] [command] options: -? - print this help -a STRING - name for avmipc. (NULL) -v - verbose. (NOTSET) -o INTEGER - output buffer size. (32768) -i INTEGER - input buffer size. (8192) -D STRING - switch debug logs on. (FUNC) options fw 7.12+: -l - list listening endpoints. (NOTSET) -e - list all endpoints. (NOTSET) aicmd pumaglued support get docsisinfo" aicmd multid dnsd dump aicmd -l aicmd -e
In fw 7.01 there was no way to list the listenering endpoints, and the aicmd_listener event did not exist yet.
Examples
Listing 6490 fw 7.29 ATOM endpoints - remote endpoints run on ARM:
Calling the same command from an armconsole lists the same with local and remote exchanged.
root@fritz2:/var/mod/root# aicmd -l | sort local:avmnexusd local:ctlmgr local:ddnsd local:deviceinfod local:dsld local:l2tpv3d local:meshd local:multid local:pcpd local:upnpd local:voipd local:vpnd local:wsdd remote:avmpacmstated remote:pumaglued
A good example for aicmd remote usage is the 6490 armconsole which just calls the aicmd command:
aicmd pumaglued shell start
If a daemom exists twice with the same name it could be addressed prepending local:
and remote:
.
root@fritz2:/var/mod/root# aicmd local:avmipcd avmcsock show csock IDX ; NAME/ADDR ; WHAT/STATE ; TYPE/FILE ; PKTS IN; PKTS OUT; BYTES IN; BYTES OUT; 4 ; 169.254.1.1:10012 ; connected to 169.254.1.2:59475 ; socket:[3642] ; 2367715; 0; 862432096; 0; 6 ; /var/tmp/me_remote.ctl 'avmipc' ; fd 6 ; unix,dgram ; 7 ; /var/tmp/me_avmipcd.ctl 'avmipc' ; fd 7 ; unix,dgram ; 8 ; 169.254.1.1:10012 ; listen ; inet,stream ; 9 ; /var/tmp/me_avmipc_state.ctl 'avmipc' ; fd 9 ; unix,dgram ; 10 ; 127.0.0.1:59110 'avmipc' ; connected to 127.0.0.1:11283 ; inet,stream ; 1; 1; 21; 20; root@fritz2:/var/mod/root# aicmd remote:avmipcd avmcsock show csock IDX ; NAME/ADDR ; WHAT/STATE ; TYPE/FILE ; PKTS IN; PKTS OUT; BYTES IN; BYTES OUT; 5 ; /var/tmp/me_remote.ctl 'avmipc' ; fd 5 ; unix,dgram ; 6 ; /var/tmp/me_avmipcd.ctl 'avmipc' ; fd 6 ; unix,dgram ; 7 ; 169.254.1.2:10012 ; listen ; inet,stream ; 8 ; /var/tmp/me_avmipc_state.ctl 'avmipc' ; fd 8 ; unix,dgram ; 9 ; 169.254.1.2:10012 ; connected to 169.254.1.1:52884 ; socket:[5185848] ; 1; 0; 34; 0; 10 ; 169.254.1.2:59475 'avmipc' ; connected to 169.254.1.1:10012 ; inet,stream ; 0; 2304289; 0; 862423918; 12 ; 169.254.1.2:60594 'avmipc' ; connected to 169.254.1.1:11247 ; inet,stream ; 1; 1; 21; 20;
A perfect playground to experiment with the features of aicmd without disturbing the system is testdaemon!
Endpoints
All aicmd endpoints are maintained in the AVMIPC-Datastore as subscribers of the aicmd_listener event.
All Listeners
inherit functions from aicmd enhanced Libraries
they open, at least from libavmcsock.so.
Have a look at the Endpoints
section of each Listener
article for their respective functions.
The Firmw
column is a snapshot of manual research at 6.88 / 7.01 / 7.12 / 7.29 / 7.39 / 7.50 / 7.70 probes and will change.
TODO: cable_segment_stats
In 7272 fw 6.83 there were only the listeners voipd, multid and pcpd.
TODO: find out the purpose of the lua_aicmd endpoint of luacgi.
Libraries
Some of the Shared-Libraries are aicmd enhanced and share functions with aicmd Listeners
opening them.
The mandatory library libavmcsock.so is included by every aicmd Listener
, since it contains the management code.
Have a look at the Endpoints
section of each Library
article for their respective functions.
The Firmw
column is a snapshot of manual research at 6.88 / 7.01 / 7.12 / 7.29 / 7.39 / 7.90 probes and will change.
TODO: no Endpoints section yet: libavmupnpbig.so, libavmupnp.so, libmesh_shared.so
A good example for using avmcsock library functions which are polymorph to all aicmd listeners is from supportdata:
aicmd -l | sort | while read daemon ; do echo "=== Sockets used by $daemon: ===" aicmd $daemon avmcsock show csock done
This lists all csock used by all aicmd listeners, regardless of being local or remote.
Functions
aicmd capable daemons could not be found by library dependency, since the code is in libavmcsock.so, which is widely used.
They register their endpoint's capabilities with aicmd_*
functions in libavmcsock.so, which could be searched for.
There are 4 basic uppercase functions which so far every aicmd capable daemon registers:
HELP - show help - if aicmd_help is registered SLABDUMP - show slab allocation - if aicmd_slabdump is registered SLABSHOW - show slab information - if aicmd_slabshow is registered QUIT - disconnect - if aicmd_quit is registered
The least cost function is aicmd_quit
so this is a perfect search string to find endpoints in daemons.
Shared-Libraries can add functions to endpoints using aicmd_register_library
/ aicmd_unregister_library
.
Since every aicmd endpoint needs libavmcsock.so to register this is another set of basic functions:
# provided by libavmcsock.so: - fw 7.01+ avmcsock show csock - show all csock avmcsock show dnsconfig - show all dns context avmcsock show timercb - show all timer avmcsock show debughandles - show all debughandles avmcsock show cprocess - show all processes avmcsock set debug - set debug flags # provided by libavmcsock.so: - fw 7.29+ avmcsock show cbcontext - show all cbdata avmcsock show daemon - show daemon status avmcsock show cbuf - show cbuf status # provided by libavmcsock.so: - fw 7.39+ avmcsock getsymbol <address> - get symbol for address avmcsock show dnsglobal - show all dns global values avmcsock show dnscache - show cache avmcsock show dnsqueries - show all pending queries avmcsock show avmipc [endpoint shmatch] - show avmipc events and states avmcsock ctimer show - show all timer avmcsock ctimer overview - show ctimer overview avmcsock iotrace format unctrl|hexdump - set format for csock iotrace avmcsock iotrace file - enable iotrace to file avmcsock iotrace enable - enable iotrace via debugmsg avmcsock iotrace disable - disable iotrace avmcsock iotrace match help|<match> - show allowed matches or set match avmcsock iotrace reset - remove all matches avmcsock iotrace show - show configuration # provided by libavmcsock.so: - fw 7.90+ avmcsock show signals - show signal handler avmcsock show connector [cache|stats] - show connector information avmcsock show clogger - show clogger information avmcsock set clogmod [ <module> [ '.' <submodule ] ... ] [ '=' <level> ] - set clogmod log level avmcsock slab check - red zone/free check avmcsock slab reap [heavy] - call slab_reap/slab_reap_heavy avmcsock slab dump [long] - show slab allocation avmcsock slab show - show slab information avmcsock slab ewma [show|activate|deactivate|reset] - show average allocates/freed per second avmcsock avmipc notifier [endpoint shmatch] - show registered notifier avmcsock avmipc set [endpoint shmatch] - show states/events sent avmcsock avmipc csv [endpoint shmatch] - show states/events sent and listing as csv
Most aicmd daemons also open libewnwlinux.so which adds another set of basic functions:
# provided by libewnwlinux.so: - fw 7.01+ ewnwlinux show csockshell - show shells running ewnwlinux show genetlink - show gerneric netlink families # provided by libewnwlinux.so: - fw 7.90+ ewnwlinux netlink show - show internal information ewnwlinux netlink getroute [address] - get route for inet address ewnwlinux netlink interfaces - show interfaces ewnwlinux netlink routes [ 4 | 6 ] - show routes
Events
Daily updated index of AVM-Events and AVMIPC-Datastore nodes affecting this command. Last update: 2023-12-10 05:13 GMT.
The owners of Event-Sinks and Event-Sources are manual research, which may be incomplete or even wrong.
A *
in the Mod
column marks info from Supportdata-Probes, which will always stay incomplete.
A **
in the Mod
column marks info from Supportdata2 probes, which by their nature will stay way more incomplete.
A -
in the Mod
column marks manual research, the Firmware
then shows where the item occurs, not the Relation
.
Relation | Typ | Object | Mod | Firmware | Info | Origin |
---|---|---|---|---|---|---|
0 event relations for this command |
Dependencies
Daily updated index of all dependencies of this command. Last update: 2025-01-21 07:43 GMT.
A *
in the Mod
column marks info from Supportdata-Probes, which will always stay incomplete.
Relation | Typ | Object | Mod | Firmware | Info | Origin |
---|---|---|---|---|---|---|
Reloads | serv | vpnd.service | 32 | 7.39 - 8.00 | supervisor service for vpnd. | AVM |
Runs as | proc | aicmd (process) | 1* | 7.61 | Process running aicmd | AVM |
Depends on | lib | ld.so | 48 | 7.08 - 8.00 | Dynamic linker / loader | Linux |
Depends on | lib | libavmcsock.so | 79 | 6.54 - 8.00 | Networking, I/O and helper functions | AVM |
Depends on | lib | libavmwdt.so | 28 | 7.61 - 8.00 | AVM-Watchdogs management API | AVM |
Depends on | lib | libc.so | 79 | 6.54 - 8.00 | Standard C library | Linux |
Depends on | lib | libdl.so | 56 | 6.54 - 8.00 | Dynamic linking library | Linux |
Depends on | lib | libewnwlinux.so | 79 | 6.54 - 8.00 | Linux networking functions | AVM |
Depends on | lib | libgcc_s.so | 14 | 6.69 - 6.110 | GCC low-level runtime library | Linux |
Depends on | lib | libpthread.so | 56 | 6.54 - 8.00 | POSIX threading library | Linux |
Depends on | lib | librt.so | 56 | 6.54 - 8.00 | POSIX realtime extensions library | Linux |
Depends on | lib | libsvctl.so | 61 | 7.19 - 8.00 | supervisor notification library | AVM |
Depends on | lib | libwdt.so | 47 | 7.39 - 7.81 | AVM-Watchdogs management API | AVM |
Depends on | lib | libz.so | 61 | 6.98 - 8.00 | Zlib compressor / decompressor | Linux |
14 dependencies for this command |
Model-Matrix
Daily updated index of the presence, path and size of this command for each model. Last update: 2025-01-21 05:39 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/rtl)
label in the Model
column shows which CPU is meant for Multi-Linux models.
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 3272 (main) | 6.83 - 6.89 | /bin | 8.3k |
FRITZ!Box 3490 (main) | 6.80 - 7.30 | /bin | 7.8k - 14.5k |
FRITZ!Box 4020 | /bin | 7.8k - 9.7k | |
FRITZ!Box 4040 | 6.69 - 8.00 | /bin | 6.1k - 13.5k |
FRITZ!Box 4050 | 7.58 - 7.90 | /bin | 13.5k |
FRITZ!Box 4060 | 7.29 - 7.90 | /bin | 13.4k - 13.5k |
FRITZ!Box 5490 (main) | 6.69 - 7.29 | /bin | 7.8k - 14.5k |
FRITZ!Box 5491 (main) | 7.01 - 7.29 | /bin | 9.7k - 14.5k |
FRITZ!Box 5530 Fiber (main) | 7.21 - 8.00 | /bin | 14.4k - 14.8k |
FRITZ!Box 5590 Fiber (main) | 7.29 - 8.00 | /bin | 13.4k - 13.5k |
FRITZ!Box 5590 Fiber (prx) | 7.29 - 8.00 | /bin | 14.4k - 14.8k |
FRITZ!Box 5690 Pro (main) | 7.62 | /bin | 13.4k |
FRITZ!Box 5690 Pro (rtl) | 7.62 | /bin | 14.6k |
FRITZ!Box 6430 Cable (arm) | 6.84 - 7.29 | /bin | 6.9k - 13.4k |
FRITZ!Box 6430 Cable (atom) | 6.84 - 7.29 | /bin | 7.4k - 13.3k |
FRITZ!Box 6490 Cable (arm) | 6.83 - 7.51 | /bin | 6.9k - 13.4k |
FRITZ!Box 6490 Cable (atom) | 6.83 - 7.51 | /bin | 7.4k - 13.3k |
FRITZ!Box 6590 Cable (arm) | 6.83 - 7.57 | /bin | 6.9k - 13.4k |
FRITZ!Box 6590 Cable (atom) | 6.83 - 7.51 | /bin | 7.4k - 13.3k |
FRITZ!Box 6591 Cable (arm) | 7.04 - 8.00 | /bin | 8.7k - 13.7k |
FRITZ!Box 6591 Cable (atom) | 7.04 - 8.00 | /bin | 8.7k - 17.7k |
FRITZ!Box 6660 Cable (arm) | 7.14 - 8.00 | /bin | 9.8k - 13.7k |
FRITZ!Box 6660 Cable (atom) | 7.14 - 8.00 | /bin | 9.7k - 17.7k |
FRITZ!Box 6670 Cable (arm) | 7.61 - 7.90 | /bin | 9.8k - 13.7k |
FRITZ!Box 6670 Cable (atom) | 7.61 - 7.90 | /bin | 13.6k - 21.7k |
FRITZ!Box 6690 Cable (arm) | 7.28 - 7.90 | /bin | 9.8k - 13.7k |
FRITZ!Box 6690 Cable (atom) | 7.28 - 7.90 | /bin | 13.4k - 17.7k |
FRITZ!Box 6820 LTE v1 (main) | 6.69 - 7.59 | /bin | 8.3k - 14.6k |
FRITZ!Box 6820 LTE v2 (main) | 6.69 - 7.59 | /bin | 8.3k - 14.6k |
FRITZ!Box 6820 LTE v3 (main) | 7.19 - 7.57 | /bin | 14.5k - 14.6k |
FRITZ!Box 6820 LTE v4 | 7.59 | /bin | 14.6k |
FRITZ!Box 6840 LTE (main) | 6.69 - 6.88 | /bin | 7.8k |
FRITZ!Box 6850 LTE | 7.21 - 7.90 | /bin | 13.4k - 14.4k |
FRITZ!Box 6850 5G | 7.24 - 7.90 | /bin | 13.4k - 13.5k |
FRITZ!Box 6890 LTE (main) | 6.84 - 7.57 | /bin | 7.8k - 14.4k |
FRITZ!Box 6890 LTE v1 (main) | 6.84 - 7.57 | /bin | 7.8k - 14.4k |
FRITZ!Box 6890 LTE v2 (main) | 6.84 - 7.57 | /bin | 7.8k - 14.4k |
FRITZ!Box 7272 (main) | 6.69 - 6.88 | /bin | 8.3k |
FRITZ!Box Fon WLAN 7360 v2 | 6.80 - 6.88 | /bin | 7.8k |
FRITZ!Box 7362 SL (main) | 6.69 - 7.18 | /bin | 7.8k - 14.4k |
FRITZ!Box Fon WLAN 7390 | /bin | 8.3k | |
FRITZ!Box 7412 (main) | 6.80 - 6.88 | /bin | 7.8k |
FRITZ!Box 7430 (main) | 6.69 - 7.31 | /bin | 7.8k - 14.5k |
FRITZ!Box 7490 (main) | 6.69 - 7.51 | /bin | 7.8k - 14.5k |
FRITZ!Box 7510 | 7.30 - 8.00 | /bin | 13.4k - 13.5k |
FRITZ!Box 7520 | 6.98 - 8.00 | /bin | 7.7k - 13.5k |
FRITZ!Box 7520 v2 (main) | 7.30 - 8.00 | /bin | 13.4k - 13.5k |
FRITZ!Box 7530 | 6.98 - 8.00 | /bin | 7.6k - 13.5k |
FRITZ!Box 7530 AX | 7.20 - 8.00 | /bin | 13.6k - 13.7k |
FRITZ!Box 7560 (main) | 6.69 - 7.30 | /bin | 7.8k - 14.4k |
FRITZ!Box 7580 (main) | 6.69 - 7.30 | /bin | 7.8k - 14.4k |
FRITZ!Box 7581 | 6.54 - 7.18 | /bin | 5.9k - 13.6k |
FRITZ!Box 7582 | 6.83 - 7.18 | /bin | 5.9k - 13.6k |
FRITZ!Box 7583 (main) | 7.01 - 7.59 | /bin | 9.7k - 14.4k |
FRITZ!Box 7583 VDSL (main) | 7.19 - 8.00 | /bin | 14.4k - 14.8k |
FRITZ!Box 7590 (main) | 6.83 - 8.00 | /bin | 7.8k - 14.8k |
FRITZ!Box 7590 AX (main) | 7.19 - 8.00 | /bin | 14.4k - 14.8k |
FRITZ!Box 7690 | 7.61 - 7.90 | /bin | 13.4k - 13.5k |
FRITZ!Smart Gateway | 7.52 - 7.63 | /bin | 13.4k |
FRITZ!WLAN Repeater 310 A | 6.90 - 7.16 | /bin | 8.4k - 14.4k |
FRITZ!WLAN Repeater 310 B | 6.90 - 7.16 | /bin | 7.9k - 14.4k |
FRITZ!WLAN Repeater 450E | 6.90 - 7.15 | /bin | 8.4k - 14.4k |
FRITZ!Repeater 600 | 7.11 - 7.58 | /bin | 10.6k - 14.5k |
FRITZ!Repeater 600 v2 | 7.27 - 7.58 | /bin | 10.6k - 14.5k |
FRITZ!WLAN Repeater 1160 | 6.90 - 7.15 | /bin | 7.9k - 14.4k |
FRITZ!Repeater 1200 | 7.11 - 7.58 | /bin | 13.4k - 13.5k |
FRITZ!Repeater 1200 AX | 7.30 - 7.58 | /bin | 13.4k - 13.5k |
FRITZ!WLAN Repeater 1750E | 6.90 - 7.32 | /bin | 8.4k - 14.5k |
FRITZ!Repeater 2400 | 7.12 - 7.58 | /bin | 10.5k - 14.5k |
FRITZ!Repeater 3000 | 6.98 - 7.58 | /bin | 7.6k - 13.5k |
FRITZ!Repeater 3000 AX | 7.41 - 7.58 | /bin | 13.4k - 13.5k |
FRITZ!Repeater 6000 | 7.19 - 7.58 | /bin | 13.4k - 13.5k |
FRITZ!WLAN Repeater DVB-C | 6.92 - 7.04 | /bin | 8.4k - 9.7k |
FRITZ!Powerline 540E | 6.90 - 7.15 | /bin | 8.4k - 14.4k |
FRITZ!Powerline 546E | 6.90 - 7.15 | /bin | 8.4k - 14.4k |
FRITZ!Powerline 1240 AX | 7.57 - 7.58 | /bin | 13.4k - 13.5k |
FRITZ!Powerline 1240E | 6.90 - 7.16 | /bin | 7.9k - 14.4k |
FRITZ!Powerline 1260E | 6.90 - 7.58 | /bin | 6.3k - 13.5k |
FRITZ!Powerline 1260 | 7.27 - 7.58 | /bin | 13.4k - 13.5k |
79 models use this command |
Symbols
Daily updated index of all symbols of this command. Last update: 2025-01-21 07:43 GMT.
Firmware | Symbol |
---|---|
6.69 - 8.00 | main |
1 symbol for this command |