igb 드라이버가 포함된 Intel I211 기가비트에서 PTP(Precision Time Protocol)를 비활성화하는 방법이 있습니까?

igb 드라이버가 포함된 Intel I211 기가비트에서 PTP(Precision Time Protocol)를 비활성화하는 방법이 있습니까?

AMD Ryzen 5700G, 온보드 Intel I211 이더넷, 드라이버 igb ver.을 실행하는 ASUS Pro WS X570-ACE 마더보드가 있습니다. 5.11.0-27. 여기에는 Realtek 온보드 이더넷도 있지만 BIOS에서는 비활성화되어 있습니다. OS는 커널 5.11.0-27-generic을 실행하는 Linux Mint 20.2입니다.

OS가 부팅될 때마다 'dmesg' 출력에 다음이 표시됩니다.

 pps_core: LinuxPPS API ver. 1 registered
 pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
 pps pps0: new PPS source ptp0
 pps_ldisc: PPS line discipline registered

그리고 2개의 장치가 나타납니다: /dev/pps0 및 /dev/ptp0

이 작업을 수행하는 것이 Intel I211 포트라는 것을 알고 있습니다. ethtool -T enp5s0어댑터에서 실행하면 다음과 같이 표시되기 때문입니다.

Time stamping parameters for enp5s0:
Capabilities:
    hardware-transmit     (SOF_TIMESTAMPING_TX_HARDWARE)
    software-transmit     (SOF_TIMESTAMPING_TX_SOFTWARE)
    hardware-receive      (SOF_TIMESTAMPING_RX_HARDWARE)
    software-receive      (SOF_TIMESTAMPING_RX_SOFTWARE)
    software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
    hardware-raw-clock    (SOF_TIMESTAMPING_RAW_HARDWARE)
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
    off                   (HWTSTAMP_TX_OFF)
    on                    (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:
    none                  (HWTSTAMP_FILTER_NONE)
    all                   (HWTSTAMP_FILTER_ALL)

이는 PTP Hardware Clock: 0 /dev/ptp0 및 /dev/pps0이 생성됨을 의미합니다. 다음은 /dev/에 있는 관련 장치 목록입니다.

/dev/port  /dev/ppp  /dev/pps0  /dev/pps1  /dev/psaux  /dev/ptmx  /dev/ptp0  /dev/ptp1  /dev/ptp2

이 PTP가 나에게 문제가 되는 이유는 GPS 수신기를 사용하여 시간을 설정하기 때문이다.

온보드 COM/직렬 DB9 커넥터를 통해 연결된 GPS 수신기가 있는데, 직렬을 통해 핀 1로 들어오는 PPS(Pulse Per Second)를 사용하여 컴퓨터의 시간을 마이크로초 정밀도로 설정하는 데 사용합니다. 나머지는 GPSD와 CHRONY가 처리합니다. 하지만 문제는 GPSD가 PTP로 인해 /dev/pps0이 아닌 /dev/pps1에 PPS 장치를 생성한다는 것입니다. GPSD는 일반적으로 PPS 소스가 /dev/pps0일 것으로 예상합니다. /dev/pps1을 PPS 소스로 참조하도록 명령줄에 지정하면 GPSD가 작동합니다. 하지만 PTP가 전혀 없는 컴퓨터에 비해 잠그고 동기화하는 데 몇 분이 더 걸립니다.

pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
pps pps0: new PPS source ptp0
pps_ldisc: PPS line discipline registered
pps pps1: new PPS source serial0
pps pps1: source "/dev/ttyS0" added

Ethtool 매뉴얼과 Intel IGB 드라이버 빌드 가이드를 살펴봤지만 HARDWARE_TIMESTAMPS를 끄도록 설정할 수 있는 매개변수가 없습니다. Ethtool에는 타임스탬프 기능을 표시하는 -T 스위치만 있지만 ethtool -T/-t를 통해 설정할 수 있는 실제 옵션은 없습니다.

질문: 이 PTP 시스템을 완전히 비활성화할 수 있는 방법이 있습니까?

답변1

일부 인텔 카드에서 HC를 지원하는 코드는 2011년경에 추가되었습니다.인텔® 이더넷 컨트롤러 I211-AT하드웨어 기반의 정밀한 시간 동기화를 지원합니다. 모듈 개발자가 다음과 같은 방식으로 생각하기 때문에 활성화됩니다.원천)

MAC에 PTP 기능이 있으면 사용자는 이 기능을 활성화하기를 원할 것입니다.

더 짧게: 당신의 결론은 정확합니다. 그래도 다음과 같은 여러 가지 작업을 수행할 수 있습니다.

  • 모듈 개발자에게 문의하여 사용 사례를 보여주세요. 일반적으로 원하는 것으로 간주되고 기본적으로 켜져 있는 기능이라도 비활성화해야 할 타당한 이유가 있다는 점을 고객에게 설득하십시오.
  • HC가 제거된 모듈을 다시 컴파일합니다.
  • 대신 Realtek NIC를 사용해 보십시오.
  • /dev/pps0다음 /dev/ptp0에 따라 장치를 무시하도록 gpsd를 구성해 보십시오.선적 서류 비치가능해야합니다 :

장치의 연결이 끊어져 더 이상 사용할 수 없음을 데몬에게 알리려면 빼기 기호('-'), 장치 이름, LF 또는 CR-LF를 차례로 보냅니다. 따라서 검색 목록에서 /dev/foo를 제거하려면 "-/dev/foo\n"을 보냅니다.

또한 아래의 파일을 수정하여 자동으로 작동해야 합니다 /etc/gpsd/device-hook.

관련 정보