Raspberry pi 3 B z serwerem Ubuntu 18.04 arm64: jaka wersja pi

8

Jak znaleźć posiadany układ (jaką wersję Raspberry Pi) z serwerem Ubuntu 18.04 dla arm64? Jaki plik mogę sprawdzić lub jakie polecenie mogę uruchomić? / proc / cpuinfo nie ma użytecznych informacji, tylko niektóre ogólne szczegóły bez wzmianki o pi.

faktura
źródło
cat /proc/cpuinfoPowinna produkować numer wersji, która odpowiada planszy. Zobacz: raspberrypi.org/documentation/hardware/raspberrypi/…
Terrance
Tak nie jest, przynajmniej w przypadku serwera Ubuntu 18.04. Mówi tylko „wersja: 4”.
faktura
Być może znajdujesz się w impasie, ponieważ RP nie obsługuje SMBIOS ani DMI, które pozwalają na odczyt informacji z tablicy. Może to być również coś, co możesz zgłosić jako błąd, aby odczytać wersję w cpuinfo.
Terrance
Myślę, że masz rację, że kwalifikuje się jako błąd. Jednak właśnie znalazłem co najmniej jedno obejście. Jest krótki, ale dołączę go jako odpowiedź na wypadek, gdyby ludzie uznali to za pomocne.
faktura
Wygląda na to, że twoje aktualne pytanie brzmiało: „na którym Raspberry Pi używam?”; mając na uwadze, że twój tytuł wydaje się pytać „jaki procesor ma mój Raspberry Pi?”; stąd zamieszanie w odpowiedziach. Sugeruję edycję pytania w celu zmiany tytułu.
Roger Lipscombe,

Odpowiedzi:

10

Przynajmniej na serwerze Ubuntu 18.04 dla arm64 i z Raspberry Pi 3 B, następujące polecenie podaje płytę, łącznie z wersją:

lshw

Mniej szczegółowe informacje, które są łatwiejsze do odczytania, dają:

lshw -short

To dało mi moją płytę jako „Raspberry Pi 3 B Rev 1.2”, co jest dokładnie tym, co było potrzebne w tym przypadku.

faktura
źródło
9

Polecenie lscpujest tym, czego szukasz. Oto przykładowy wynik polecenia (pobrany na moim Raspberry Pi 3B +):

lscpu

co daje następujące dane wyjściowe:

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

Inną opcją jest inxipolecenie (może być konieczne jego zainstalowanie, jeśli nie jest dostępne sudo apt install inxi). Użyj flagi -Cw następujący sposób:

inxi -C

co daje następujące dane wyjściowe:

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

Jeśli chodzi o określenie, który układ ma Twoja tablica, możesz sprawdzić chip na płycie, a także stronę internetową producenta, aby uzyskać informacje, a także różne punkty sprzedaży, aby uzyskać szczegóły techniczne.

Videonauth
źródło
Dziękuję, to zdecydowanie daje dodatkowe informacje. Jednak nazwa modelu, gdy uruchamiam lscpu, jest wymieniona jako Cortex A-53, który, jak sądzę, dotyczy zarówno pi 2, jak i 3. Czy zdarza ci się wiedzieć o bardziej szczegółowym poleceniu / pliku, który może rozróżnić te dwie tablice?
faktura
Zwykle na planszy drukowany jest również typ planszy i wersja, więc możesz to sprawdzić, w przeciwnym razie nie mam żadnych wskazówek.
Videonauth,
Widzę. Wiem, jaka jest moja tablica, ale opiekun biblioteki potrzebuje tych informacji, aby dostosować swoją bibliotekę do pracy z moim sprzętem i oprogramowaniem. Wypróbowany inxi, daje również tylko ogólny wynik. Naprawdę doceniam pomoc.
faktura
1
Jeśli chodzi o bibliotekę, której chcesz użyć, jest tylko jedno pytanie. czy istnieje biblioteka zapewniająca tę samą funkcję, której potrzebujesz, czy nie. Są to informacje, które możesz uzyskać od swojego programu maszynowego. Na komputerach stacjonarnych może być więcej informacji na temat wersji procesora, malinom brakuje w tym względzie nieco, ponieważ umieszczenie wszystkich tych informacji w niektórych układach zwiększa koszty.
Videonauth,
1
Obecny inxi (3.0.xx) ma znacznie lepszą obsługę ARM niż starsze inxi (2.xx.yy), co, jak sądzę, znajduje się w 18-4. To zrobi wszystko, co w jego mocy, aby dostarczyć sporo informacji o samym urządzeniu SBC. Na rasberry pi 3 jedyną rzeczą, której nie łapie, jest urządzenie wifi mmc, które jest zbyt skomplikowane, aby pobierać dane, ale w przeciwnym razie raport dla pi 3 jest całkiem kompletny w nowym inxi. Legacy inxi miał jedynie podstawowe wsparcie ARM. Porównaj inxi -Fxxx lub -v7 na starszych i obecnych urządzeniach dowolnego urządzenia pi, a zobaczysz, co mam na myśli.
Lizardx
2

Próbowałem przenieść Pigpio na Debian Arm64, w końcu moja próba się nie powiodła, ponieważ odkryłem, że jądro Debian Arm64 nie obsługuje interfejsu skrzynki pocztowej przestrzeni użytkownika, na którym opiera się Pigpio, ale robiąc to, przeprowadziłem badania, jak wykryć Pis podczas działające jądra Debiana arm64. Podejrzewam, że to zadziała również dla Ubuntu Arm64.

Jak odkryłeś / proc / cpuinfo ma tylko informacje o rdzeniu procesora w tych jądrach. Na szczęście informacje można znaleźć gdzie indziej w / proc

Po pierwsze, aby sprawdzić, czy urządzenie to Pi, czy nie, sprawdziłem / proc / device-tree / model, ma on ciąg tekstowy opisujący urządzenie, więc fałszywe pozytywy są mało prawdopodobne.

Aby uzyskać kod wersji użyłem / proc / device-tree / system / linux, wersja, zawiera on kod wersji jako binarna liczba całkowita big-endian. Więc musi być odczytany z pliku jako binarna liczba całkowita, a następnie przekonwertowany na little-endian (użyłem do tego ntohl).

Możesz zobaczyć mój kod na https://github.com/joan2937/pigpio/pull/255/commits/2e229d667fde8a2a881d5aa8482b2bb936b09f26

Peter Green
źródło
Dziękuję, właśnie tego szukałem.
faktura