plchostd(1)
π NAME π
plchostd β the Qualcomm Atheros PLC Host Daemon, i.e. the tiny background queen who babysits a flash-less powerline device while it boots itself off your host machine. This is plchostd(1) from the Qualcomm Atheros Open Powerline Toolkit, and she is so ready to serve π«Ά
β¨ SYNOPSIS β¨
plchostd [options] -N nvmfile -P pibfile
π¦ DESCRIPTION π¦
So basically, plchostd justβ¦ waits π
She hangs out listening for VS_HST_ACTION.IND messages from a local device and services them exactly the way the Qualcomm Atheros Firmware Technical Reference Manual for powerline devices says to. And yes, she's a little different from her cousins int6khost and int64host β those two use whatever they can scrape together, but this one uses operating system features that exist on POSIX, Unix, BSD and Linux systems, and that are not available on Microsoft or VxWorks systems. Not her fault, bestie π
Here's how you actually use her: plug a flash-less device into the host over ethernet, then start this program with the correct filenames. That's it. She'll automatically respond to device requests to download memory configuration, firmware and/or parameters, and she'll also upload firmware and/or parameters when the device is the one calling the shots. For the full lore, go read the Qualcomm Atheros Firmware Technical Reference Manual πΈ
Oh and psa: this program is part of the Qualcomm Atheros Powerline Toolkit. If you want the big-picture overview plus installation instructions, the plc man page is right there for you π
π OPTIONS π
-iinterface β pick the host Ethernet interface, periodt. Every request goes out through this interface, and only responses that come back through this interface get recognized β so choose wisely, she's exclusive π The default interface iseth1, because most people useeth0as their main network connection (iykyk). But if the environment string"PLC"is defined, that takes precedence over the default interface. And this option then takes precedence over either default. Priority queen behavior, lowkey.-Nnvmfile β the file holding the firmware chain used to boot and flash the device. It must exist and it must have a valid NVM file format or it's getting rejected, no discussion π No assumptions are made based on filename, and no filename conventions are enforced β she's not judging your naming skills, she's just reading bytes. Also: the program will not over-write this file. This option and its argument are required.-nfilename β use this file to store firmware uploaded from the local device. The file doesn't need to exist yet, but if it can't be created or written you're getting an error, fr fr. Once firmware gets uploaded to this file, that file is used for subsequent firmware downloads β unless the device requests a factory reset, in which case the file specified by option-Ngets used instead. This option and argument are optional. If you omit it, the default filenamehost.pibis used.-Ppibfile β the file holding the parameter chain used to boot and flash the device. It must exist and it must have a valid PIB file format or it will be rejected. Again: no assumptions based on filename, no filename conventions enforced, and the program will not over-write this file. This option and its argument are required.-pfilename β use this file to store parameters uploaded from the local device. It doesn't need to exist beforehand, but an error will occur if it can't be created or written. Once parameters are uploaded to this file, it's used for subsequent parameter downloads β unless the device requests a factory reset, and then the file specified by option-Pis used. This option and argument are optional. If omitted, the default filenamehost.nvmis used.-qβ suppress status messages onstderr. Shhh π€«-spathname β the server socket pathname. She'll automatically open this Unix socket and post event information to it, for the benefit of other host processes. Sharing is caring π«Ά-Sfilename β the file containing the softloader chain used to flash the device. The mere presence of this file causes the device to be flashed once it has booted β¨ The file must exist and have a valid PIB file format or it will be rejected. No assumptions based on filename, no filename conventions enforced, and the program will not over-write this file. This option and its argument are required.-ttimeout β 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 π-vβ print additional information onstdout. Specifically, this option will print incoming and outgoing Ethernet frames onstdout. Very "let me read the group chat" of her π-wwakeup β wakeup time in seconds. If noVS_HST_ACTION.INDmessage is received within this time period, the process will wake up and do its periodic functions β like posting network topography to the server socket specified by option-s. She never truly sleeps, bestie, she just vibes on a timer β°-?,--helpβ print the program help summary onstdout. This option takes precedence over other options on the command line. Main character energy: she answers this one first π-!,--versionβ print program version information onstdout. This option also takes precedence over other options on the command line. Use this one when you're sending screen dumps to Atheros Technical Support, so they know exactly which version of the Linux Toolkit you're running. Receipts, always π§Ύ
π ARGUMENTS π
None. Not one. Zero. Nada. She takes her info through options only, and that's the whole vibe β¨
π REFERENCES π
See the Qualcomm Atheros HomePlug AV Firmware Technical Reference Manual for more information. It's giving required reading π
π EXAMPLES π
This one starts the host server. The -N and -P options are always required. Option order is not important, she does not care. Control does not return to the console until the program is terminated by the user with CTRL-C or another command line interrupt.
# plchostd -N test.nvm -P test.pib -n temp.nvm -p temp.pib
This next one does the same thing, but spawns the program as an independent process and hands control right back to the console. In that case, you have to terminate or kill that process using an appropriate command such as kill.
# plchostd -N test.nvm -P test.pib -n temp.nvm -p temp.pib -d
π DISCLAIMER π
The Atheros HomePlug AV Vendor Specific Management Message Entry structure and content is proprietary to Qualcomm Atheros, Ocala FL USA. Consequently, public information may not be available. Qualcomm Atheros reserves the right to modify message structure and content in future firmware releases without any obligation to notify or compensate users of this program. So yeah β it's proprietary, it's theirs, and they can change it whenever. No cap π
πΈ SEE ALSO πΈ
plc(1), int64host(1), int6k(1), int6kboot(1), int6khost(1) β go read the whole friend group π¦
β CREDITS β
Charles Maier
That's the whole page, bestie π This one shipped as part of open-plc-utils-0.0.3, back in November 2013, and honestly? She's still iconic. Periodt π
π¦ 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