modpib(1)
modpib π β Qualcomm Atheros PIB File Editor
okay bestie, welcome to modpib, aka the Qualcomm Atheros PIB File Editor β¨ it's part of the Qualcomm Atheros Powerline Toolkit β peep the AMP man page for the whole overview + install tea π«Ά
β¨ SYNOPSIS β¨
modpib [options] filename
π DESCRIPTION π
So what we're doing here is changing device identity parameters inside a PIB file, and then updating the checksum so everything stays valid π the identity parameters are the MAC, the DAK, the NMK, and the Manufacturer, Network and User HFID. together they establish the device network identity β it's giving β¨who even am iβ¨ but for hardware.
This program is the safe way to edit identity parameters, and here's why that matters: only valid PIB files can be edited, and only the selected values get changed. plus, critical cross-parameter updates are applied automatically, so you can't accidentally leave things inconsistent. no cap π
it's part of the Qualcomm Atheros Powerline Toolkit, fr fr. see the AMP man page for an overview and installation instructions.
πΈ OPTIONS πΈ
-C modeβ sets the Central Coordinator Selection mode. the permitted values for mode are0=Auto,1=Never,2=Always,3=UserAssignedand4=Covert.-D xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xxβ the new Device Access Key (DAK) π this key replaces the original DAK. keys are 16 hex octet strings, and octets may be separated by optional colons. the symbolsnone,key1orkey2may be specified in place of a hexadecimal string, for convenience. use the programhpavkeyto compute the DAK for a specific password, if you need it.-L levelβ sets the security level. the security level is written into thePreferredNID. level0enables pushbutton pairing. level1disables it. the default security level is0.-M xx:xx:xx:xx:xx:xxβ the new Media Access Control (MAC) address π¦ this address replaces the original address, if specified. addresses are 6 hex octet strings, and octets may be separated by optional colons. Qualcomm Atheros powerline devices derive their MAC address from their PIB, and each device on a network must have a unique address. to facilitate the assignment of unique addresses, substituting the word"auto","next"or"plus"will cause the original MAC address to be incremented before a new checksum is calculated. successive uses of this option will continue to increment the stored address. you can inspect the stored MAC address withchkpib -v pibfile.-N xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xxβ the new Network Membership Key (NMK) π₯ this key replaces the original NMK, creates a newPreferredNIDand clears theAVLNMembershipbit. keys are 16 hex octets, and optionally the octets may be separated by colons. the symbolkey1orkey2can be specified in place of a hexadecimal string, for convenience. use the programhpavkeyto compute the NMK from a specific password, if required.-P filenameβ the specified file is loaded from disk and written into the prescaler section of the PIB. this file must be in the format used by the Qualcomm Atheros Windows Device Manager, which is a two column file, each column consisting of 8 ASCII alpha-numeric characters. the first column corresponds to the array index value (00000000through00001155, decimal), and the second column is the value stored at that position in the prescaler array (00000000through000000ff, hexadecimal). the two columns may be separated by any whitespace characters when using this tool. however, for full compatibility with the Windows Device Manager it is advised to use a single space between the columns. the'#'character may also be used at the start of a line to denote a comment.-S stringβ the new manufacturing string. the maximum length is63characters.-T stringβ the new network name string. the maximum length is63character.-U stringβ the new username string. the maximum length is63characters.-qβ enable quiet mode. ngl this option has no effect at present π it's just vibing there.-vβ print PIB identity parameters onstdoutafter changes have been applied. this option helps verify that changes have been applied correctly. it can also be used, without changes, to merely inspect existing parameters. it's literally the vibe check for your PIB π-?,--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 Qualcomm Atheros Technical Support so that they know exactly which version of the Linux Toolkit you are using. π«Ά
π§ ARGUMENTS π§
filenameβ the name of the PIB file to be modified. no assumptions are made based on filename and no filename conventions are enforced. it's giving β¨no rules, just vibesβ¨
π KEYS π
encryption keys are long, tedious to type and prone to error π so for convenience, symbolic names may be used to specify the key for options -D and -N.
- symbolic name
"none"translates to zeros. - symbolic name
"key1"translates to the HomePlug AV compliant key for pass phrase"HomePlugAV". - symbolic name
"key2"translates to the HomePlug AV compliant key for pass phrase"HomePlugAV0123".
the actual key that is generated for key1 or key2 will differ depending on context. iykyk π
β EXAMPLES β
first up: this one replaces the MAC address in pib file abc.pib and computes a new checksum. the input file is over-written. a command like this one can be used to establish the start MAC address when downloading a series of PIBs. π¦
# modpib -M 00:b0:52:DA:DA:FF abc.pib
next: this example increments the MAC address in pib file abc.pib and computes a new checksum. the word auto, next or plus, in place of a MAC address, will increment the old address each time the command is executed. this command can be used to ensure that unique and consecutive MAC addresses are used each time a PIB is downloaded. β¨
# modpib -M auto abc.pib
then: this command updates pib file abc.pib with the DAK and NMK read from the device connected to eth0. in similar fashion, program rkey can be used to compute random key values from a keyfile. π₯
# modpib -D $(int6kid -Di eth0) -N $(rkey secret.key -M) abc.pib
and lastly: this example displays the current value of keys and strings stored in pib file abc.pib because option -v is present. this can be used to verify PIB identity settings before or after an edit. π
# modpib -v abc.pib
PIB 4-4 15560 bytes
MAC 00:B0:52:00:00:01
DAK 68:9F:07:4B:8B:02:75:A2:71:0B:0B:57:79:AD:16:30
(HomePlugAV)
NMK 50:D3:E4:93:3F:85:5B:70:40:78:4D:F8:15:AA:8D:B7
(HomePlugAV)
NID B0:F2:E6:95:66:6B:03
NET Qualcomm Atheros Enabled Network
MFG Qualcomm Atheros HomePlug AV Device
USR Qualcomm Atheros Enabled Product
CCo Auto
MDU N/A
π DISCLAIMER π
PIB file structure and content is proprietary to Qualcomm Atheros, Ocala FL USA. consequently, public information is not available. Qualcomm Atheros reserves the right to modify PIB file structure or content in future firmware releases without any obligation to notify or compensate users of this program.
bestie. hear me. it's proprietary, the docs aren't public, and they can change the format whenever they want without telling you or paying you. plan accordingly π
π SEE ALSO π
chkpib(7), chkpib2(7), getpib(7), modpib(1), pib2xml(1), pibcomp(1), pibdump(1), setpib(1), xml2pib(1)
π CREDITS π
- Nathaniel Houghton
- Charles Maier
open-plc-utils-0.0.3 π November 2013 β that's the version and date bestie, and that's the whole page. slay, go edit some PIBs πβ¨π¦
π¦ 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