---
name: "nqptp"
section: "8"
platform: "linux"
package: "nqptp"
version: "1.2.8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/nqptp"
---

# nqptp(8)

Not Quite PTP: PTP-based timing daemon for Apple AirPlay 2

## NAME

nqptp - Not Quite PTP: PTP-based timing daemon for Apple AirPlay 2

## SYNOPSIS

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

## DESCRIPTION

**nqptp** is a daemon that monitors timing data from PTP (Precision Time Protocol) clocks. It is designed exclusively as a companion daemon to [**shairport-sync**(1)](/shairport-sync/1.md), which uses it to obtain the accurate timing information required for AirPlay 2 audio playback.

**nqptp** must be running before **shairport-sync** is started with AirPlay 2 support enabled. It communicates with **shairport-sync** via a shared memory interface and does not require any configuration file.

Under normal operation, **nqptp** runs silently in the background. It is typically started at boot time via a service manager such as [**systemd**(1)](/systemd/1.md).

## OPTIONS

- **-V**

  Print the version number and exit.

- **-v**

  Enable verbose logging. Basic informational messages about timing sources and state changes are written to the system log.

- **-vv**

  Enable more verbose logging. Additional detail about PTP clock selection and timing computations is included.

- **-vvv**

  Enable very verbose logging. Full diagnostic output, including low-level PTP message handling. Intended for debugging only.

- **-h**

  Print a brief help summary and exit.

## SIGNALS

- **SIGTERM**

  Cleanly shut down the daemon, releasing the shared memory interface before exiting.

- **SIGINT**

  Cleanly shut down the daemon, equivalent to **SIGTERM**.

## FILES

- */dev/shm/nqptp*

  Shared memory segment used to pass timing data to [**shairport-sync**(1)](/shairport-sync/1.md).

## NOTES

**nqptp** listens on UDP port 319 and 320, the standard PTP event and general message ports. It therefore requires either **CAP\_NET\_BIND\_SERVICE** or root privileges in order to bind these ports. When running under [**systemd**(1)](/systemd/1.md), the provided unit file grants the necessary capability without requiring the daemon to run as root.

Only one instance of **nqptp** should be run at a time on a given host.

## SEE ALSO

[**shairport-sync**(1)](/shairport-sync/1.md), [**ptp4l**(8)](/ptp4l/8.md), [**systemd**(1)](/systemd/1.md)

## BUGS

Please report bugs at *https://github.com/mikebrady/nqptp/issues*.

## AUTHORS

**nqptp** was written by Mike Brady.

This man page was originally written for the Debian package of **nqptp** by Chris Boot \<bootc@debian.org\>.
