nvmmerge(1)
β¨ nvmmerge(1) β Qualcomm Atheros Open Powerline Toolkit β¨
okay bestie, pull up a chair because we're about to talk about nvmmerge, aka the Qualcomm Atheros PLC Firmware Image File Splicer π
yes the manual page is literally called nvmmerge(1) and yes it's part of the Qualcomm Atheros Open Powerline Toolkit, and yes it's giving "I glue firmware images together for a living" energy and honestly? iconic.
πΈ NAME πΈ
nvmmerge β Qualcomm Atheros PLC Firmware Image File Splicer π§
π SYNOPSIS π
nvmmerge [options] file [file] [...] [>stdout]
π¦ DESCRIPTION π¦
So what does it do. It takes a whole pile of binary image files and smushes them together into one single Qualcomm Atheros binary image file π«Ά and the originals? Untouched. Not a scratch on them. They stay exactly as they were, no cap.
Now, a Qualcomm Atheros image file is basically a chain β a whole chain of image headers, and each header is followed by an image block β Those image blocks can hold data, applets or programs. When Atheros software comes along it reads that header chain and decides which images to download and execute, based on what's written in those image headers. So the headers are kind of the main characters here, iykyk.
π¨ Real talk: tampering with image headers or images may void some contractual obligations made by Atheros. Like, don't just go poking at them for fun.
This program is part of the Qualcomm Atheros Powerline Toolkit β¨ See the AMP man page for an overview and installation instructions.
π OPTIONS π
-qβ Suppresses printing of routine messages. Heads up though: this option has no efect π (yes, that's how it's written, we don't make the rules).-vβ Print input file names onstderras they are merged. Little running commentary, love that for us.-?,--helpβ Print program help summary onstdout. This option takes precedence over other options on the command line π it's the boss of the command line, periodt.-!,--versionβ Print program version information onstdout. This option takes precedence over other options on the command line too. And listen: 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 π like, help them help you bestie.
π ARGUMENTS π
fileβ The name of a Qualcomm Atheros image file. By convention, these image files have a.nvmfile extension but this program does not enforce that convention (it's not the vibe police). Invalid image files will be rejected causing the output to be incomplete π so yeah, feed it good files.
π EXAMPLES π
The following example combines three files, abc-00.nvm, abc-01.nvm and abc-06.nvm into one file abc.nvm. Option -v displays the input file names as they are merged. Program output is in binary format and so output should be directed to a file or pipe and not the console π please don't dump binary on your terminal, it will not be cute.
# nvmmerge -v abc-00.nvm abc-01.nvm abc-06.nvm > abc.nvm
nvmmerge: abc-00.nvm
nvmmerge: abc-01.nvm
nvmmerge: abc-06.nvm
π₯ DISCLAIMER π₯
Atheros image file structure and content is proprietary to Qualcomm Atheros, Ocala FL USA. Consequently, public information is not available. Qualcomm Atheros reserves the right to change file structure or content in future firmware releases without any obligation to notify or compensate users of this program. This program is reserved for use by Qualcomm Atheros Field Engineers. Use of this program may void certain contractual obligations made by Qualcomm Atheros.
π yeah, that's a lot of "proprietary" and "may void". Read it twice. This one's not a joke, bestie.
π SEE ALSO π
ampboot(1)amptest(1)amptool(1)chknvm(1)chknvm2(1)int6k(1)int6kf(1)int6ktest(1)nvmsplit(1)plcboot(1)plctest(1)plctool(1)
β CREDITS β
Charles Maier π
and that's the whole page!! shoutout to open-plc-utils-0.0.3, dropped way back in November 2013 πΈ thanks for reading my little firmware-splicing TED talk, go merge responsibly π«Άπ
π¦ 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