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 on stderr as they are merged. Little running commentary, love that for us.
  • -?,--help β€” Print program help summary on stdout. 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 on stdout. 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 .nvm file 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 πŸŽ€


⭐ 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 πŸ«ΆπŸ’–