%20en%20el%20controlador%20Intel%20I211%20Gigabit%20con%20igb%3F.png)
Tengo una placa base ASUS Pro WS X570-ACE, con AMD Ryzen 5700G, con Intel I211 Ethernet integrado, ejecutando el controlador igb ver. 5.11.0-27. Esto también tiene una Ethernet integrada Realtek, pero está deshabilitada en BIOS. El sistema operativo es Linux Mint 20.2 con el kernel 5.11.0-27-generic.
Cada vez que se inicia el sistema operativo, se muestra lo siguiente en la salida '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
Y aparecen 2 dispositivos: /dev/pps0 y /dev/ptp0
Sé que es el puerto Intel I211 el que hace esto porque si ejecuto ethtool -T enp5s0
el adaptador, dice:
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)
Esto PTP Hardware Clock: 0
significa que esto crea el archivo /dev/ptp0 y por lo tanto /dev/pps0. Aquí hay una lista de dispositivos relevantes en /dev/:
/dev/port /dev/ppp /dev/pps0 /dev/pps1 /dev/psaux /dev/ptmx /dev/ptp0 /dev/ptp1 /dev/ptp2
La razón por la cual este PTP es un problema para mí es porque uso un receptor GPS para configurar la hora.
Tengo un receptor GPS conectado a través del conector COM/Serial DB9 integrado, que uso para configurar la hora en la computadora con una precisión de microsegundos usando el pulso por segundo (PPS) que ingresa al Pin 1 a través del serial. GPSD y CHRONY se encargan del resto... pero el problema es que GPSD crea su dispositivo PPS en /dev/pps1, en lugar de /dev/pps0 debido al PTP. GPSD normalmente espera que su fuente PPS sea /dev/pps0. GPSD funciona si especifico en la línea de comando hacer referencia a /dev/pps1 como fuente de PPS... pero tarda varios minutos más en bloquearse y sincronizarse en comparación con una computadora que no tiene ningún 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
Miré el manual de Ethtool y la guía de compilación del controlador Intel IGB, pero no hay ningún parámetro que pueda configurarse para desactivar HARDWARE_TIMESTAMPS. Ethtool solo tiene el modificador -T, que muestra la capacidad de marca de tiempo... pero no hay opciones reales que pueda configurar a través de ethtool -T/-t.
Pregunta: ¿Hay alguna manera de desactivar completamente este sistema PTP?
Respuesta1
El código para admitir HC en algunas tarjetas Intel se agregó alrededor de 2011.Controlador Ethernet Intel® I211-ATadmite sincronización horaria de precisión basada en hardware. Está habilitado porque los desarrolladores del módulo lo ven de la siguiente manera: (fuente)
Si una MAC tiene funciones PTP, los usuarios seguramente querrán habilitarlas.
Más breve: su conclusión es correcta. Aún así, puedes hacer varias cosas:
- Póngase en contacto con los desarrolladores del módulo y muestre su caso de uso. Convéncelos de que existen buenas razones para desactivar una funcionalidad incluso si generalmente se considera deseada y está activada de forma predeterminada.
- Vuelva a compilar el módulo sin el HC.
- Intente utilizar la NIC Realtek en su lugar.
- Intente configurar gpsd para ignorar los dispositivos como
/dev/pps0
o/dev/ptp0
, según eldocumentaciónEsto debería ser posible:
Para decirle al demonio que un dispositivo ha sido desconectado y ya no está disponible, envíe un signo menos ('-') seguido del nombre del dispositivo seguido de LF o CR-LF. Por lo tanto, para eliminar /dev/foo de la lista de búsqueda, envíe "-/dev/foo\n".
Esto también debería funcionar de forma automática, modificando los archivos en /etc/gpsd/device-hook
.