%20no%20Intel%20I211%20Gigabit%20com%20driver%20igb%3F.png)
Eu tenho uma placa-mãe ASUS Pro WS X570-ACE, com AMD Ryzen 5700G, com Ethernet Intel I211 integrada, rodando driver igb ver. 5.11.0-27. Ele também possui Ethernet integrada Realtek, mas está desabilitada no BIOS. O sistema operacional é Linux Mint 20.2 executando kernel 5.11.0-27-genérico.
Sempre que o sistema operacional é inicializado, o seguinte é mostrado na saída '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
E 2 dispositivos aparecem: /dev/pps0 e /dev/ptp0
Eu sei que é a porta Intel I211 que está fazendo isso porque se eu rodar ethtool -T enp5s0
no adaptador, ele diz:
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)
Isso PTP Hardware Clock: 0
significa que isso cria o /dev/ptp0 e, portanto, /dev/pps0. Aqui está uma lista de dispositivos relevantes em /dev/:
/dev/port /dev/ppp /dev/pps0 /dev/pps1 /dev/psaux /dev/ptmx /dev/ptp0 /dev/ptp1 /dev/ptp2
A razão pela qual este PTP é um problema para mim é porque eu uso um receptor GPS para definir a hora.
Eu tenho um receptor GPS conectado através do conector COM/Serial DB9 integrado, que uso para definir a hora no computador com precisão de microssegundos usando o Pulse Per Second (PPS) entrando no Pino 1 pela serial. GPSD e CHRONY cuidam do resto... mas o problema é que GPSD cria seu dispositivo PPS em /dev/pps1, em vez de /dev/pps0 devido ao PTP. O GPSD normalmente espera que sua fonte PPS seja /dev/pps0. O GPSD funciona se eu especificar na linha de comando para me referir a /dev/pps1 como a fonte PPS... mas leva mais alguns minutos para bloquear e sincronizar em comparação com um computador que não possui nenhum 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
Eu olhei o manual do Ethtool e o guia de construção do driver Intel IGB, mas não há nenhum parâmetro que possa ser definido para desligar o HARDWARE_TIMESTAMPS. Ethtool possui apenas a opção -T, que mostra a capacidade de carimbo de data / hora ... mas nenhuma opção real que você possa definir via ethtool -T/-t.
Pergunta: Existe uma maneira de desabilitar completamente este sistema PTP?
Responder1
O código para suportar HC em algumas placas Intel foi adicionado por volta de 2011. OControlador Ethernet Intel® I211-ATsuporta sincronização de tempo de precisão baseada em hardware. Ele está habilitado porque os desenvolvedores do módulo pensam nisso da seguinte maneira: (fonte)
Se um MAC tiver recursos PTP, os usuários certamente desejarão ativá-lo.
Mais curto: sua conclusão está correta. Ainda assim, você pode fazer várias coisas:
- Entre em contato com os desenvolvedores do módulo e mostre seu caso de uso. Convença-os de que há bons motivos para desativar uma funcionalidade, mesmo que ela seja geralmente considerada desejada e ativada por padrão.
- Recompile o módulo com o HC removido.
- Tente usar a NIC Realtek.
- Tente configurar o gpsd para ignorar dispositivos como
/dev/pps0
ou/dev/ptp0
- de acordo com odocumentaçãoisso deveria ser possível:
Para informar ao daemon que um dispositivo foi desconectado e não está mais disponível, envie um sinal de menos ('-') seguido do nome do dispositivo seguido de LF ou CR-LF. Assim, para remover /dev/foo da lista de pesquisa, envie "-/dev/foo\n".
Isso também deve funcionar de forma automatizada, modificando os arquivos em /etc/gpsd/device-hook
.