Tentei portar o pigpio para o Debian arm64; no final, minha tentativa falhou porque descobri que o kernel do Debian arm64 não suporta a interface de caixa de correio do espaço do usuário em que o pigpio se baseia, mas ao fazer isso, fiz algumas pesquisas sobre como detectar Pis enquanto rodando kernels Debian arm64. Eu suspeito que isso também funcione para o ubuntu arm64.
Como você descobriu / proc / cpuinfo, apenas existem informações principais da CPU nesses kernels. Felizmente, as informações podem ser encontradas em outros lugares em / proc
Em primeiro lugar, para verificar se o dispositivo é um Pi ou não, verifiquei / proc / device-tree / model, esta possui uma sequência de texto que descreve o dispositivo, portanto, falsos positivos são improváveis.
Para obter o código de revisão que usei / proc / device-tree / system / linux, revision, ele contém o código de revisão como um número inteiro binário big-endian. Portanto, ele precisa ser lido no arquivo como um número inteiro binário e convertido em little-endian (usei ntohl para isso).
Você pode ver meu código em https://github.com/joan2937/pigpio/pull/255/commits/2e229d667fde8a2a881d5aa8482b2bb936b09f26
cat /proc/cpuinfo
deve produzir um número de edições que corresponde à bordo. Veja: raspberrypi.org/documentation/hardware/raspberrypi/...