Primeiro, observe que o que você está tentando descobrir não é quando um driver é carregado - por exemplo, um driver embutido no kernel (em vez de carregado como um módulo) é carregado pelo bootloader. O que você está tentando descobrir é quando o driver executa sua inicialização, presumivelmente quando termina sua inicialização, para que os periféricos que usam esse driver sejam agora utilizáveis.
Se você quiser produzir algum tipo de sinal visível quando um driver terminar sua inicialização, você terá que corrigir o kernel. Não há um gancho de uso geral da terra do usuário.
Se você estiver interessado em um periférico em particular, em oposição a um driver de "camada inferior", como usbcore
, você poderá executar as regras do udev. Isso só entra em jogo assim que o kernel terminar de inicializar e o userland (especificamente o udev) tiver iniciado.
Dito isto, o que você realmente quer é o tempo na mensagem de log. Para “medir o tempo desde o momento em que ligou ao driver USB carregado”, o registro de data e hora na mensagem de registro é exatamente a informação correta. O registro de data e hora na mensagem é a hora em que o evento acontece, não a hora em que a mensagem de log é exibida (o que pode acontecer muito mais tarde, especialmente se o dispositivo de registro ainda não tiver sido inicializado ou se você o comando dmesg
).
Para realizar sua medição, você precisará saber o tempo de ativação em relação ao relógio do dispositivo. Se o dispositivo não tiver bateria, de modo que seu relógio sempre comece em uma origem específica ao ligar, o tempo decorrido será simplesmente o registro de data e hora em que você está interessado menos a origem. Se o dispositivo tiver um relógio persistente, primeiro sincronize esse relógio com outro computador (por exemplo, com NTP) e, em seguida, meça o tempo do evento de inicialização com a maior precisão possível.