plchostd2(1)

πŸ’– plchostd2 β€” Qualcomm Atheros Panther/Lynx PLC Host Daemon πŸ’–

okay bestie, welcome to plchostd2(1), one of the little legends from the Qualcomm Atheros Open Powerline Toolkit. this is the host daemon that just... sits there, patiently, being the main character so your flash-less powerline device can boot. no cap. let's get into it πŸ¦‹


✨ SYNOPSIS ✨

plchostd2 [options] -N nvmfile -P pibfile

🌸 DESCRIPTION 🌸

so basically? it waits for VS_HST_ACTION.IND messages coming from a local device, and then it services them exactly the way the Qualcomm Atheros Firmware Technical Reference Manual says to for powerline devices. it's giving "on-call but make it ethernet." πŸ’…

and here's the tea: unlike int6khost and int64host, this program uses operating system features that exist on POSIX, Unix, BSD and Linux systems β€” but that are NOT available on Microsoft or VxWorks systems. so like, it's built different, and it knows it. it supports chipsets QCA6410, QCA7000 and QCA7420. πŸ‘‘

to actually use it: plug a flash-less device into the host over ethernet, then start this program with the correct filenames. that's it. the program will automatically respond to device requests to download memory configuration, firmware and/or parameters, and it'll upload firmware and/or parameters under device control. for the full lore, go read the Qualcomm Atheros Firmware Technical Reference Manual. πŸ“–

this program is part of the Qualcomm Atheros Powerline Toolkit, so if you want the overview and installation instructions, hit up the plc man page. 🫢


πŸ’… OPTIONS πŸ’…

  • -i interface β€” pick which host Ethernet interface we're working with. every request goes out through this interface, and only responses that come back through this interface get recognized. the default is eth1, because most people use eth0 as their main network connection (makes sense bestie, protect the wifi). BUT β€” if the environment string "PLC" is defined, that takes precedence over the default interface. and this option takes precedence over either default. so the hierarchy is: -i > "PLC" > eth1. periodt. ✨
  • -N nvmfile β€” the file holding the firmware chain used to boot and flash the device. it must exist and have a valid NVM file format or it will be rejected, no exceptions. no assumptions are made based on filename and no filename conventions are enforced β€” call it whatever, we don't judge. the program will not over-write this file. this option and argument are required. πŸ”₯
  • -n filename β€” use this file to store firmware uploaded from the local device. the file doesn't need to exist yet, but an error will occur if it can't be created or written. once firmware is uploaded into this file, it gets used for subsequent firmware downloads β€” unless the device requests a factory reset. in that case, the file specified by option -N is used instead. this option and argument are optional. if you omit it, the default filename host.pib will be used. πŸŽ€
  • -P pibfile β€” the file holding the parameter chain used to boot and flash the device. it must exist and have a valid PIB file format or it will be rejected. again: no assumptions from the filename, no conventions enforced, we're chill like that. the program will not over-write this file. this option and argument are required. πŸ’œ
  • -p filename β€” use this file to store parameters uploaded from the local device. the file doesn't need to exist, 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. in that case, the file specified by option -P is used. this option and argument are optional. if omitted, the default filename host.nvm will be used. 🌸
  • -q β€” suppress status messages on stderr. quiet queen behavior. 🀫
  • -S filename β€” the file containing the softloader chain used to flash the device. the 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 argument are required. ⭐
  • -t timeout β€” read timeout in milliseconds. values range from 0 through UINT_MAX. this is the maximum time allowed for a response. the default is shown in brackets on the program menu. ⏳
  • -v β€” print additional information on stdout. specifically, this option prints incoming and outgoing Ethernet frames on stdout. like a live commentary track for your packets. πŸ”
  • -w wakeup β€” wakeup time in seconds. if no VS_HST_ACTION.IND message is received within this time period, the process will wake up and perform periodic functions, like posting network topography to the server socket specified by option -s. β˜€οΈ
  • -?, --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 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. bestie, help them help you. 🫢

πŸŽ€ ARGUMENTS πŸŽ€

None. literally none. we don't do positional args here. πŸ’€


🌈 REFERENCES 🌈

see the Qualcomm Atheros HomePlug AV Firmware Technical Reference Manual for more information. that's where the whole story lives. πŸ“š


✨ EXAMPLES ✨

first up: starting the host server. -N and -P are always required, option order is not important, and control does not return to the console until the program is terminated by the user with CTRL-C or another command line interrupt.

# plchostd2 -N test.nvm -P test.pib -n temp.nvm -p temp.pib

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, that process has to be terminated or killed using an appropriate command such as kill.

# plchostd2 -N test.nvm -P test.pib -n temp.nvm -p temp.pib -d

πŸ’œ DISCLAIMER πŸ’œ

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 β€” proprietary, possibly undocumented, and subject to change with zero notice. not my rules, bestie, I'm just the messenger. πŸ™ˆ


πŸ¦‹ SEE ALSO πŸ¦‹

plc(1), int64host(1), int6k(1), int6kboot(1), int6khost(1)


πŸ‘‘ CREDITS πŸ‘‘

Charles Maier πŸ’–


and that's the whole page, fr fr. this masterpiece shipped as part of open-plc-utils-0.0.3, dated January 2014 β€” iconic behavior, we love a vintage baddie. go boot something. πŸ’…βœ¨πŸ¦‹