Tenho um sistema embarcado com um chip ft200xd que faz conexão USB para i2c. Gostaria de observar os dados.
Eu tenho o driver que /dev/ttyFT200XD0
eu estava planejando usar strace, algo assim,
strace -r read=0
mas isso exigiu encontrar o descritor de arquivo, o que não consegui descobrir como fazer. Se eu tentar
# dmesg | grep -i FT200X
[ 16.916980] ft200xd 0-0022: Probing ft200xd_probe:407:
[ 16.945958] ft200xd 0-0022: Probed, id: 000000
mas infelizmente não vejo nada /proc/tty/driver
que possa ajudar.
Tenho o driver carregado.
/proc/tty/driver
Como posso encontrar o descritor de arquivo para uso com o strace ou devo usar um método diferente para visualizar os dados?
Obrigado por qualquer dica
Os descritores de arquivo não são atribuídos por driver e, em geral, não são globalmente exclusivos – são individuais para cada processo que realiza a leitura/escrita. Ou seja, vários processos podem ter seu fd#3 aberto para arquivos ou dispositivos diferentes, e o mesmo arquivo ou dispositivo pode ser aberto com fd#s diferentes por processos diferentes.
Se você souber o ID do processo, anexe-o com
strace -p <pid>
, possivelmente com--decode-fds
para mostrar os nomes, e se você vir as leituras/gravações de tty lá, restrinja-o ao número fd que você vê. Como alternativa, executelsfd -p <pid>
oulsof -p <pid>
ouls -l /proc/<pid>/fd
para ver os descritores de arquivo mantidos por esse processo.