testptp.c를 다른 사람을 위해 컴파일할 수 있습니까?

testptp.c를 다른 사람을 위해 컴파일할 수 있습니까?

LinuxPTP를 테스트하는 데 도움이 되는 스크립트를 컴파일하려고 합니다. testptp.c 파일은 이를 수행하는 데 도움이 되는 스크립트입니다. 이는 Linux 커널에 내장되어 있습니다. 그러나 나는 그것을 컴파일할 수 없습니다. 나 뿐인가요? 이 유틸리티 스크립트에 대해 많은 사람들이 이야기하는 것을 보았지만 제가 본 유일한 온라인 튜토리얼은 다음과 같습니다.https://docs.nvidia.com/networking/display/NVIDIA5TTechnologyUserManualv10/Testptp

gcc를 사용하여 testptp.c를 컴파일하라고 지시합니다. testptp.c만 있는 디렉토리에서 다음 명령을 사용하여 컴파일합니다 gcc testptp.c -o testptp. 또한 git에서 Linux 커널을 가져와서 실행 tools/testing/selftests/ptp했습니다 make. 둘 다 동일한 결과를 생성합니다.

이것은 내 결과입니다.

Makefile:10: warning: overriding recipe for target 'clean'
../lib.mk:130: warning: ignoring old recipe for target 'clean'
gcc -I../../../../usr/include/    testptp.c  -lrt -o testptp
testptp.c: In function ‘main’:
testptp.c:295:15: error: ‘struct ptp_clock_caps’ has no member named ‘adjust_phase’
  295 |           caps.adjust_phase);
      |               ^
testptp.c:429:28: error: ‘PTP_PEROUT_DUTY_CYCLE’ undeclared (first use in this function)
  429 |    perout_request.flags |= PTP_PEROUT_DUTY_CYCLE;
      |                            ^~~~~~~~~~~~~~~~~~~~~
testptp.c:429:28: note: each undeclared identifier is reported only once for each function it appears in
testptp.c:430:18: error: ‘struct ptp_perout_request’ has no member named ‘on’
  430 |    perout_request.on.sec = pulsewidth / NSEC_PER_SEC;
      |                  ^
testptp.c:431:18: error: ‘struct ptp_perout_request’ has no member named ‘on’
  431 |    perout_request.on.nsec = pulsewidth % NSEC_PER_SEC;
      |                  ^
testptp.c:434:28: error: ‘PTP_PEROUT_PHASE’ undeclared (first use in this function); did you mean ‘PTP_PEROUT_REQUEST’?
  434 |    perout_request.flags |= PTP_PEROUT_PHASE;
      |                            ^~~~~~~~~~~~~~~~
      |                            PTP_PEROUT_REQUEST
testptp.c:435:18: error: ‘struct ptp_perout_request’ has no member named ‘phase’
  435 |    perout_request.phase.sec = perout_phase / NSEC_PER_SEC;
      |                  ^
testptp.c:436:18: error: ‘struct ptp_perout_request’ has no member named ‘phase’
  436 |    perout_request.phase.nsec = perout_phase % NSEC_PER_SEC;
      |                  ^
make: *** [<builtin>: testptp] Error 1

저는 우분투 20.04를 실행하고 있습니다. Linux 커널 버전: 5.15.0-53-generic

이것이 다른 누구에게도 유용할까요?

답변1

/usr/include/linux/ptp_clock.h파일 덮어쓰기나를 위해 일하는 것 같습니다.

관련 정보