int6kmod(1)
π int6kmod(1) β Qualcomm Atheros Powerline Device Module Manager π
okay bestie, sit down, hydrate, because this is int6kmod, your personal module manager for Qualcomm Atheros powerline devices. it's giving glow-up for your NVRAM and honestly? iconic. β¨
πΈ NAME πΈ
int6kmod β Qualcomm Atheros Powerline Device Module Manager
π¦ SYNOPSIS π¦
int6kmod [options] [device] [device] [...]
β¨ DESCRIPTION β¨
so basically, int6kmod reads or writes Atheros custom powerline modules using VS_MODULE_OPERATION messages. that's the whole vibe. π₯
here's the tea: modules can be read from a device and written to a file, or read from a file and written to a device. modules can have any of several formats and purposes β no gatekeeping here.
and where the firmware permits, this program can now read modules in excess of 1400 bytes and can write multiple modules that exceed 1400 bytes in one single operation. ate. π
this program is part of the Qualcomm Atheros Powerline Toolkit. see the plc man page for an overview and installation instructions. iykyk π«Ά
π OPTIONS π
-dβ Read the specified module from NVRAM and write to standard output in hexadecimal dump format. The module is identified by module and sub-module using options-tand-s. Runtime firmware will report an error if the module is not available. The session identifier is not required for a module read operation and is ignored. The largest module that can be read is 1400 bytes. This option and option-mare mutually exclusive. π-eβ Redirectsstderrmessages tostdout. By convention status and error messages are printed onstderrwhile primary program output is printed onstdout. This option prints all output onstdoutin cases where this is desired. everything in one place, we love a tidy queen π-iinterface β Select the host Ethernet interface. All requests are sent via this host interface and only reponses received via this host interface are recognized. The default interface iseth1because most people useeth0as their principle network connection; however, if environment string"PLC"is defined then it takes precedence over the default interface. This option then takes precedence over either default. so it's a whole hierarchy situation: option >PLCenv >eth1. π-mfilename β Read the specified module from NVRAM and write it to the named file. The module is identified by module and sub-module using options-tand-s. Runtime firmware will report an error if the module is not available. The session identifier is not required for a module read operation and is ignored. The largest module that can be read is 1400 bytes. This option and option-dare mutually exclusive. pick one bestie, you can't have both π«-Mfilename β Read the named module file and download it to the named device and commit NVRAM. The module is assigned to a module and sub-module identifier using options-tand-s. Runtime firmware will reject modules having invalid module and sub-module identifiers. Module files must be a multiple of four bytes or an error will occur. As implemented,int6kmodwill reject files exceeding 1400 bytes but this restriction will be removed in later versions. so don't come at it with a chunky file, it's not ready for that yet π-qβ Suppresses status messages onstderr. silence. serene. main character energy. π€«-ssub-module-id β The sub-module identifier expressed as a 16-bit hexadecimal value with optional0xprefix. This identifier indicates a specific module with the module class specified using option-t. Any 16-bit value is permitted but only certain values are accepted by device firmware depending on firmware type and revision. The default value is0x0000.-Ssession-id β The session identifier expressed as a 32-bit hexadecimal value with optional0xprefix. The session identifier value is arbitrary and so any 32-bit value is permitted but0x00000000and0xFFFFFFFFare illegal. The0xprefix is optional for this argument. The default session-id is0x78563412.-tmodule-id β The module identifier expressed as a 16-bit hexadecimal value with optional0xprefix. This identifier indicates the module type or class. Option-sindicates the specific member of a module class. Any 16-bit value is permitted but only certain values will be accepted by device firmware. The default value is0x0000.-vβ Print additional information onstdout. In particular, this option dumps incoming and outgoing packets which can be saved as text files for reference. packet receipts fr fr π¬-wβ Write settings to the device instead of reading settings from the device. If omitted then settings are read from the device and displayed. If present, the user should specify all settings to avoid writing default values to the device. > β οΈ careful bestie β leave a setting out and you might be writing defaults to the device. specify everything. π-?,--helpβ Print program help summary onstdout. This option takes precedence over other options on the command line. β¨-?,--versionβ Print program version information onstdout. This option takes precedence over other options on the command line. Use this option when sending screen dumps to Atheros Technical Support so that they know exactly which version of the Linux Toolkit you are using. π (yes, the manpage literally writes-?for both help and version β iconic little chaos goblin behaviour, we respect it)
π ARGUMENTS π
- device β The MAC address of some powerline device. More than one address may be specified on the command line. If more than one address is specified then operations are performed on each device in turn. The default address is
local. See DEVICES for information.
π DEVICES π
Powerline devices use Ethernet Media Access Control (MAC) addresses. A MAC address is a 48-bit value entered as 12 hexadecimal digits in upper, lower or mixed character case. Octets may be separated with colons for clarity. For example, "00b052000001", "00:b0:52:00:00:01" and "00b052:000001" are valid and equivalent. same energy, different outfit π
The following MAC addresses are special and may be entered by name instead of number:
allβ Same as"broadcast".broadcastβ A synonym for the Ethernet broadcast address,FF:FF:FF:FF:FF:FF. All devices, whether local, remote or foreign recognize messages sent to this address. A remote device is any device at the far end of a powerline connection. A foreign device is any device not manufactured by Atheros.localβ A synonym for the Qualcomm Atheros vendor specific Local Management Address (LMA),00:B0:52:00:00:01. All local Atheros devices recognize this address but remote and foreign devices do not. A remote device is any device at the far end of a powerline connection. A foreign device is any device not manufactured by Atheros.
π REFERENCES π
See the Qualcomm Atheros HomePlug AV Firmware Technical Reference Manual for more information. go read it, it's giving required reading π
π¨ DISCLAIMER π¨
Atheros HomePlug AV Vendor Specific Management Message structure and content is proprietary to Qualcomm Atheros, Ocala FL USA. Consequently, public information is not available. Qualcomm Atheros reserves the right to modify message structure or content in future firmware releases without any obligation to notify or compensate users of this program. so likeβ¦ no notes, no promises, no refunds. π
π EXAMPLES π
The following command reads module file abc.bin and writes it to the local device. The module identifier 0x1000 indicates that it is an MDIO Init module. The sub-module identifer defaults to 0x0000 because option -s is omitted. The session identifier defaults to 0x78563412 because option -S is omitted. The operation takes place in three steps. The last step may take 2 or 3 seconds to complete. be patient, she's working π
# int6kmod -M abc.bin -t 0x1000
eth1 00:B0:52:00:00:01 Request Session
eth1 00:B0:52:BE:EF:03 Request Granted
eth1 00:B0:52:00:00:01 Write abc.bin
eth1 00:B0:52:BE:EF:03 Written
eth1 00:B0:52:00:00:01 Commit Modules
eth1 00:B0:52:BE:EF:03 Committed
The next example does the same thing but writes module file def.bin to remote device 00:B0:52:BA:BE:02. The module identifier 0x4000 indicates that it is an Advanced Power Management uC module. The session identifier used is 0xA5A5A5A5. The sub-module identifer defaults to 0x0000 because option -s is omitted.
# int6kmod -M def.bin -t 0x4000 -S A5A5A5A5 00:B0:52:BA:BE:02
eth1 00:B0:52:00:00:01 Request Session
eth1 00:B0:52:BE:EF:03 Request Granted
eth1 00:B0:52:00:00:01 Write abc.bin
eth1 00:B0:52:BE:EF:03 Written
eth1 00:B0:52:00:00:01 Commit Modules
eth1 00:B0:52:BE:EF:03 Committed
The next example reads back the module written in the first example and saves it in file zyx.bin.
# int6kmod -m xyz.bin -t 0x1000
eth1 00:B0:52:00:00:01 Read zyx.bin
eth1 00:B0:52:BE:EF:03 Read
π«Ά SEE ALSO π«Ά
plc(1), int6kmdio(1), int6kmdio2(1), mdioblock(1), mdioblock2(1), mdiodump(1), mdiogen(1)
go read those next, bestie, the whole friend group is iconic π§
π CREDITS π
Charles Maier
and that's the whole page!! this gem comes to you from the open-plc-utils-0.0.3 era, dated November 2013 β so yes, she's an elder but she still slays π β¨ thanks for reading, mwah π
π¦ where this page comes from
- alpine 3.24: open-plc-utils-doc 0_git20250712-r1 Β· BSD-3-Clause-Clear
- debian bookworm: plc-utils-extra 0.0.6+git20230504.1ba7d5a0-1 Β· BSD-3
- debian trixie: plc-utils-extra 0.0.6+git20250517.7fb8ac5-1 Β· BSD-3
- ubuntu noble: plc-utils-extra 0.0.6+git20230504.1ba7d5a0-1 Β· BSD-3
- ubuntu questing: plc-utils-extra 0.0.6+git20250517.7fb8ac5-1
- ubuntu resolute: plc-utils-extra 0.0.6+git20250712.46c3506-1 Β· BSD-3
- ubuntu stonking: plc-utils-extra 0.0.6+git20250712.46c3506-1 Β· BSD-3
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms