NQPTP(8)

πŸ“¦ version 1.2.8, in arch rolling, nixos 26.05, nixpkgs unstable

πŸ’… NQPTP(8) β€” like, the manual page, bestie

okay so this is page 8 of the System Manager's Manual, and the whole thing is about nqptp. yes that's the name. no i will not be pronouncing it. 🫢


✨ NAME ✨

nqptp β€” Not Quite PTP: the PTP-based timing daemon for Apple AirPlay 2. literally that's the whole vibe. πŸŽ€


🌸 SYNOPSIS 🌸

nqptp [-V] [-v|-vv|-vvv] [-h]

that's it. that's the whole thing. she's lowkey minimalist. ✨


πŸ’– DESCRIPTION πŸ’–

okay so nqptp is a daemon β€” like a little background gremlin that just... runs β€” and what it does is monitor timing data from PTP (that's Precision Time Protocol) clocks. πŸ‘‘

and here's the tea: it exists exclusively as a companion daemon to shairport-sync(1). like, that's its whole purpose in life. shairport-sync uses it to get the accurate timing information it needs for AirPlay 2 audio playback. no nqptp, no accurate timing, no cute audio. simple as that. 😭

bestie please read this part: nqptp must be running before shairport-sync is started with AirPlay 2 support enabled. like, order matters. it's giving "you had one job" energy but in a good way. πŸ’…

it talks to shairport-sync through a shared memory interface, and β€” iconic behaviour honestly β€” it does not require any configuration file. zero. none. nada. πŸ¦‹

under normal operation, nqptp just runs silently in the background. it's not loud, it's not asking for attention, it's just doing its thing. it's typically started at boot time via a service manager such as systemd(1). main character energy but make it quiet. 🌈


πŸ’… OPTIONS πŸ’…

  • -V β€” prints the version number and dips. that's it. exit stage left. πŸŽ€
  • -v β€” turns on verbose logging. you get the basic informational messages about timing sources and state changes, written to the system log. like a little running commentary. πŸ¦‹
  • -vv β€” more verbose logging. this one throws in extra detail about PTP clock selection and timing computations. she's chatty now. ✨
  • -vvv β€” very verbose logging. full diagnostic output, including low-level PTP message handling. πŸ‘‘ and β€” important β€” this one is intended for debugging only. it's not a lifestyle, it's a tool. πŸ”₯
  • -h β€” prints a brief help summary and exits. the "just tell me what to do" option. 🫢

πŸŽ€ SIGNALS πŸŽ€

  • SIGTERM β€” cleanly shuts down the daemon, releasing the shared memory interface before exiting. polite. responsible. we stan. πŸ’–
  • SIGINT β€” cleanly shuts down the daemon, equivalent to SIGTERM. same energy, different signal name. πŸ’«

πŸ¦‹ FILES πŸ¦‹

  • /dev/shm/nqptp β€” the shared memory segment it uses to pass timing data over to shairport-sync(1). that's the lil bridge between them. πŸŒ‰

πŸ”₯ NOTES πŸ”₯

okay so nqptp listens on UDP port 319 and 320 β€” those are the standard PTP event and general message ports. and because those are, y'know, low ports, it therefore requires either CAP_NET_BIND_SERVICE or root privileges in order to bind them. 😭

but good news β€” when running under systemd(1), the provided unit file grants the necessary capability without requiring the daemon to run as root. so you don't have to give it the whole crown, just the one little permission. πŸ‘‘

one (1) instance only, bestie. Only one instance of nqptp should be run at a time on a given host. do not spawn a whole squad. πŸ’€

🌟 SEE ALSO 🌟

shairport-sync(1), ptp4l(8), systemd(1)

go read those too. or don't. i'm not your mom. but like. they're right there. 🫢


πŸ™ˆ BUGS πŸ™ˆ

found a bug? Please report bugs at https://github.com/mikebrady/nqptp/issues. πŸ›


πŸ‘‘ AUTHORS πŸ‘‘

nqptp was written by Mike Brady. legend behaviour. ⭐

this man page was originally written for the Debian package of nqptp by Chris Boot <bootc@debian.org>. thank you for your service. πŸŽ€


and that's the whole page!! mwah πŸ’‹

so yeah β€” this was nqptp from NQPTP(8), dated May 7, 2026, and it lives in the System Manager's Manual. go forth and sync your timings, bestie. πŸ¦‹βœ¨πŸ’œ

πŸ“¦ where this page comes from