amptool(1)
π amptool(1), but make it bestie π
Okay bestie, this is the amptool(1) manual, and I'm about to make it actually readable π This is the part 1 of 2, so more is coming π«Ά
β¨ NAME β¨
amptool - Qualcomm Atheros AR7x00 Powerline Device Manager π
π SYNOPSIS π
amptool [options] [device] [device] [...]
π¦ DESCRIPTION π¦
Okay so this version of the Qualcomm Atheros Device Manager for Linux does the basic stuff on Atheros AR7400 devices. It talks over the raw Ethernet protocol described in the Qualcomm Atheros HomePlug AV Firmware Technical Reference Manual. You can interrogate and control devices, or upgrade firmware if on-board NVRAM is present π
This program is part of the Qualcomm Atheros Powerline Toolkit. It supports chipset AR7400 and QCA7450. For QCA6410, QCA7000 and QCA7420 devices, see plctool instead. For the overview and installation instructions, check the plc man page πΈ
πΈ COMMENTS πΈ
Real talk, this program version is identical to the legacy int6k program, except for option -m. That one uses version 1 of the Qualcomm Atheros VS_NW_INFO vendor-specific message. Older firmware versions may not recognize this message version π
π OPTIONS π
Here's every single option, no skipping, bestie π«Ά
-aβ Pull device attributes usingVS_OP_ATTRIBUTES. Attributes are short strings and integers that describe the hardware and firmware π§ They get stitched together into output that's kinda like-r, but it's worked out a different way.-B actionβ Press the simple connect pushbutton usingVS_PB_ENC. You can give the action as a number or a symbol:1isjoin,2isleave,3isstatus, and4isreset. Use1on both devices that are supposed to join. Only use2on the device that's expected to leave the network πͺ-C moduleβ Commit (flash) downloaded modules to NVRAM usingVS_MOD_NVM. The module can be1,2or3, or the symbolsnvm,piborall. So1isnvm,2ispib, and3isall. Module3is equivalent to-F, which writes the NVM and PIB together. You cannot force-flash NVRAM with this one. For that, use-FFπ-d filenameβ Read the Watchdog Report from the device and write it to the named file in binary format usingVS_WD_RPT. The report file can be sent to Qualcomm Atheros for technical analysis. No assumptions are made based on the filename and no filename conventions are enforced. Still, you should use a.logextension to show it's binary π-D xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xxβ Define the 16 octet Device Access Key (DAK) in hex format. The DAK is used by-J. It can also be set tokey1orkey2, as explained in the KEYS section π-eβ Redirects stderr messages to stdout. By convention, status and error messages go to stderr, while the main program output goes to stdout. This option sends everything to stdout for when that's what you want π€-fβ Read flash memory parameters usingVS_GET_NVM. You'll get an error if no flash memory is present π-F[F]β Write the previously downloaded MAC and PIB to NVRAM usingVS_MOD_NVM. Add a secondFhere, or another-Fanywhere on the command line, to force-flash a blank or corrupted NVRAM. Firmware loaded from NVRAM will treat force-flash as an error. This option can make factory settings, but it can't change them once they exist. Later use creates and updates operational settings, which can be erased with a factory reset β¨ This option runs after all the others on the command line, except for-R.-i interfaceβ Select the host Ethernet interface. All requests go out through this host interface, and only responses received through it get recognized. The default iseth1, because most people useeth0as their main network connection. If the environment stringPLCis defined, it takes precedence over the default. This option takes precedence over either one π-Iβ Read the device PIB header usingVS_RD_MOD. It prints the firmware major revision number, PIB minor revision number, Device Access Key (DAK), Network Membership Key (NMK), MAC address and other info on stdout. The values displayed can be changed using the programmodpib.-J xx:xx:xx:xx:xx:xxβ Set the Network Membership Key (NMK) on a remote device usingVS_SET_KEY. This is similar to-K, but it needs the remote device MAC and DAK on top of the NMK and local device MAC address. The NMK comes from-Kunless you want the default value. The remote DAK comes from-Dunless you want the default value. Remote device keys are complicated π It's often easier to connect the device directly to the host and use-K.-K xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xxβ Define the Network Membership Key (NMK) value used by-Mor-J. The symbolic nameskey1andkey2are recognized, as described in the KEY section ποΈ-l countβ Define how many times the command repeats for each device specified. Normally you'll only repeat operations on one device π-mβ Read network membership info usingVS_NW_INFO. This can be used to figure out the network configuration πΈοΈ-Mβ Set the Network Membership Key (NMK) on the local device usingVS_SET_KEY. The NMK value comes from-Kunless you want the default value.-n filenameβ Read firmware from the device SDRAM and write it to the named.nvmfile using multipleVS_RD_MODmessages. No assumptions are made based on the filename and no filename conventions are enforced. This runs before-Nwhen both are specified.-N filenameβ Read the named.nvmfile and write it to the device using multipleVS_WR_MODmessages. No assumptions are made based on the filename and no filename conventions are enforced. Files with invalid.nvmformat will be rejected π« This runs after-nwhen both are specified.-p filenameβ Read parameters from the device SDRAM and write them to the named.pibfile using multipleVS_RD_MODmessages. No assumptions are made based on the filename and no filename conventions are enforced. This runs beforeBPwhen both are specified.-P filenameβ Read the named.pibfile and write it to the device using multipleVS_WR_MODmessages. No assumptions are made based on the filename and no filename conventions are enforced. Files with invalid.pibformat will be rejected π« This runs after-pwhen both are specified.-qβ Suppresses status messages on stderr π€«-Qβ Quick flash β‘ The program won't wait for a device to reset or the firmware to restart after writing flash memory. This is desirable with newer firmware that writes flash memory in the background. It has no effect unless used with-For-C.-rβ Read device firmware and hardware revision usingVS_SW_VER. The output is similar to-a, but it's derived differently.-Rβ Reset the device usingVS_RS_DEV. This runs after all the others on the same command line π-sβ Read device SDRAM configuration usingVS_RD_CBLOCK.-t millisecondsβ Read timeout in milliseconds β±οΈ Values range from0throughUINT_MAX. This is the maximum time allowed for a response. The default is shown in brackets on the program menu.-Tβ Restore factory defaults.
π Heads up, bestie: this permanently erases all PIB changes made since the device was last programmed with factory default settings. The device will automatically reset and reboot.
-vβ Print additional info on stdout π This option dumps incoming and outgoing packets, which can be saved as text files for reference.-w secondsβ Defines how many seconds to wait before repeating the command line options β³ This has no effect unless-lis also specified with a non-zero value.-xβ Make the program exit on the first error, instead of pushing on with the remaining iterations, operations or devices π Normally the program reports errors and moves on to the next operation, iteration or device, depending on the command line.-?,--helpβ Print the program help summary on stdout π This option takes precedence over other options on the command line.-?,--versionβ Print program version information on stdout π This option takes precedence over other options on the command line. Use it when sending screen dumps to Atheros Technical Support, so they know exactly which version of the Linux Toolkit you're using.
β¨ DEVICES β¨
Okay so powerline devices are identified by their Ethernet hardware addresses, aka MAC addresses π«Ά. A device address is 12 hexadecimal digits (0123456789ABCDEFabcdef), and you can type them in upper, lower, or mixed case. It's giving flexibility π
Colons are optional for clarity, and not every octet has to be separated, so all of these are valid and equivalent: 00b052000001, 00:b0:52:00:00:01 and 00b052:000001 π¦
You can also use symbolic addresses instead of typing out the real value, and this program recognizes them β¨
allβ Same thing asbroadcast, which is next πbroadcastβ This is the standard Ethernet broadcast address,FF:FF:FF:FF:FF:FF. Every device responds to it, whether it's local, remote, or foreign π‘localβ This is the Qualcomm Atheros vendor specific Local Management Address (LMA),00:B0:52:00:00:01. All local Atheros devices recognize it, but remote and foreign devices don't πΈ 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 π
For more info, check out the Qualcomm Atheros HomePlug AV Firmware Technical Reference Manual π€π
π¨ DISCLAIMER π¨
Okay, serious moment bestie π The Atheros HomePlug AV Vendor Specific Management Message structure and content is proprietary to Qualcomm Atheros, Ocala FL USA. That means public info may not be 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 π
π EXAMPLES π
Let's do the examples π§
# amptool -n old.nvm -p old.pib -N new.nvm -P new.pib -F 01:23:45:67:89:AB
This one does 5 operations on one device π It uploads the firmware and PIB from the device and writes them to the files old.nvm and old.pib, respectively. Then it reads new.nvm and new.pib and downloads them as new firmware and PIB, respectively. Last, it commits the downloaded firmware and PIB to NVRAM. The operations always run in the order I just described, no matter what order you type them on the command line. If you want reading and writing in a different order, you need two or more commands to get the tasks done in the order you want π
# amptool -N new.nvm 01:23:45:67:89:28
# amptool -P new.pib 01:23:45:67:89:28
# amptool -C 3 01:23:45:67:89:28
You don't have to cram every operation onto one command line, and these three lines do basically the same thing as the previous example π«Ά Notice this one uses -C 3 instead of -F as another way to write the MAC and PIB to NVRAM. -C 1 would write the .nvm file only, and -C 2 would write the .pib file only. The value 3 is the logical OR of 1 and 2 π§
# amptool -N new.nvm -P new.pib -FF local
This downloads new.nvm and new.pib, then force flashes the local device π₯ Force flashing only works on running firmware that has been downloaded and started by the Qualcomm Atheros Boot Loader. If you want to download, start firmware, and force flash in one go, check out amptoolf π
# amptool -MK key1
# amptool -M
These two commands are equivalent π Both set the NMK on the local device to key1, as described in the KEYS section. The first one resets the NMK on the local device with -M, then specifies the NMK as key1. The second one skips the key specification because key1 is the program's default NMK. Of course, you could also just type out the encryption key yourself π
π SEE ALSO π
plc(1), ampboot(1), ampboot(1), amphost(1), int6kid(1), amprate(1), amprule(1), ampstat(1), ampwait(1) π¦
π CREDITS π
Huge shoutout to Charles Maier and Nathaniel Houghton π«Άβ¨
Okay bestie, that's the whole page π It's from open-plc-utils version 0.0.3, last updated November 2013. Iykyk πΈ
π¦ where this page comes from
- alpine 3.24: open-plc-utils-doc 0_git20250712-r1 Β· BSD-3-Clause-Clear
- debian bookworm: plc-utils 0.0.6+git20230504.1ba7d5a0-1 Β· BSD-3
- debian trixie: plc-utils 0.0.6+git20250517.7fb8ac5-1 Β· BSD-3
- ubuntu noble: plc-utils 0.0.6+git20230504.1ba7d5a0-1 Β· BSD-3
- ubuntu questing: plc-utils 0.0.6+git20250517.7fb8ac5-1
- ubuntu resolute: plc-utils 0.0.6+git20250712.46c3506-1 Β· BSD-3
- ubuntu stonking: plc-utils 0.0.6+git20250712.46c3506-1 Β· BSD-3
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms