Raspberry pi 3 B com Ubuntu 18.04 server arm64: qual versão pi

8

Como posso encontrar o chip que tenho (que versão do raspberry pi) com o servidor Ubuntu 18.04 para arm64? Que arquivo posso verificar ou que comando posso executar? / proc / cpuinfo não possui informações úteis, apenas alguns detalhes genéricos sem mencionar o pi.

fatura
fonte
A cat /proc/cpuinfodeve produzir um número de edições que corresponde à bordo. Veja: raspberrypi.org/documentation/hardware/raspberrypi/...
Terrance
Não, pelo menos para o servidor Ubuntu 18.04. Diz apenas "revisão: 4".
anvoice
Você pode estar em um impasse com isso porque o RP não suporta SMBIOS ou DMI que permite a leitura de informações da placa. Também pode ser algo que você precise arquivar como um bug para obter a revisão lida no cpuinfo.
Terrance
Eu acho que você está certo que se qualifica como um bug. No entanto, acabei de encontrar pelo menos uma solução alternativa. É curto, mas vou incluí-lo como resposta, caso as pessoas o considerem útil.
anvoice
Ele olha como sua pergunta real era "que Raspberry Pi estou rodando em?"; considerando que seu título parece estar perguntando "qual CPU meu Raspberry Pi possui?"; daí a confusão nas respostas. Sugiro que você edite sua pergunta para alterar o título.
22420 Roger

Respostas:

10

Pelo menos no servidor Ubuntu 18.04 para arm64 e com um Raspberry Pi 3 B, o seguinte comando fornece ao conselho, incluindo a revisão:

lshw

Uma saída menos detalhada e mais fácil de ler é fornecida por:

lshw -short

Isso me deu meu conselho como um "Raspberry Pi 3 B Rev 1.2", que é exatamente o que era necessário nesse caso.

fatura
fonte
9

O comando lscpué o que você está procurando. Aqui está um exemplo de saída do comando (tirada no meu Raspberry Pi 3B +):

lscpu

que produz a seguinte saída:

Architecture:          armv7l
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
Model:                 4
Model name:            ARMv7 Processor rev 4 (v7l)
CPU max MHz:           1200,0000
CPU min MHz:           600,0000
BogoMIPS:              38.40
Flags:                 half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32

Outra opção é o inxicomando (pode ser necessário instalá-lo se não estiver presente sudo apt install inxi). Use a bandeira da -Cseguinte maneira:

inxi -C

que produz a seguinte saída:

CPU:       Quad core ARMv7 rev 4 (v7l) (-MCP-) (ARM) 
           clock speeds: max: 1200 MHz 1: 1200 MHz 2: 1200 MHz 3: 1200 MHz 4: 1200 MHz

Quanto à identificação de qual chip sua placa possui, você pode verificar o chip na placa e também o site do fabricante para obter informações e também os diferentes pontos de venda para obter detalhes técnicos.

Videonauth
fonte
Obrigado, isso definitivamente fornece informações extras. No entanto, o nome do modelo quando executo o lscpu está listado como Cortex A-53, que está no pi 2 e no 3 que acredito. Você conhece um comando / arquivo mais específico que pode distinguir entre essas duas placas?
anvoice
Normalmente, o tipo e a revisão do quadro também estão impressos no quadro, para que você possa verificar isso; caso contrário, estou sem pistas.
Videonauth 01/04/19
Eu vejo. Eu sei qual é o meu quadro, mas um mantenedor da biblioteca precisa dessas informações para ajustar sua biblioteca para trabalhar com meu hardware e software. Tentado inxi, ele também fornece apenas saída genérica. Realmente aprecio a ajuda.
anvoice
1
Quanto à biblioteca que você deseja usar, há apenas uma pergunta. existe uma biblioteca que fornece a mesma função que você precisa ou não. Esta é a informação que você pode obter do seu programa de máquina. Em computadores de mesa, pode haver mais informações sobre a versão da CPU, o framboesa carece nesse aspecto, pois colocar todas essas informações em alguns chips está aumentando os custos.
Videonauth
1
O inxi atual (3.0.xx) tem um suporte ARM muito melhor que o inxi herdado (2.xx.yy), que eu acho que é o que você encontra em 18-4. Isso fará o possível para fornecer algumas informações sobre o próprio dispositivo SBC. No rasberry pi 3, a única coisa que não está pegando é o dispositivo mmc wifi, que é muito complicado para obter dados, mas, caso contrário, o relatório para pi 3 é bastante completo no novo inxi. O inxi herdado tinha apenas suporte rudimentar ao ARM. Compare inxi -Fxxx ou -v7 no legado e atual em qualquer dispositivo pi e você verá o que quero dizer.
Lizardx
2

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

Peter Green
fonte
Obrigado, isso é realmente o que eu estava procurando.
anvoice