Zauważ, że ostatecznie nie możesz wiele zrobić z tą wiedzą, chyba że piszesz narzędzie do zmiany plików startowych lub po prostu chcesz poinformować użytkownika, co on ma lub jeśli ich bieżąca konfiguracja rozruchowa w pełni wykorzystuje sprzęt. Aplikacja na ARM pod jądrem Linuksa nie może faktycznie korzystać z dodatkowej pamięci, chyba że została przyznana przez kod startowy GPU.
Chris Stratton
Odpowiedzi:
10
Jak powiedziałeś, cat /proc/cpuinfo | grep Revisionpolecenie da ci poprawkę tablicy. Uwaga: wersja jest wartością szesnastkową. Aby wyświetlić ekwiwalent dziesiętny, uruchom to polecenie printf '%d\n' 0x#, gdzie #jest wartość szesnastkowa wyświetlana z poprzednim poleceniem.
Zgodnie z poniższą tabelą kody 13 , 14 i 15 oznaczają płytę 512 MB .
Model and revision Decimal code(s) Hexadecimal equivalent
Model B Revision 1.0 2 0x2
Model B Revision 1.0 + ECN0001 (no fuses, D14 removed) 3 0x3
Model B Revision 2.0 4, 5, 6 0x4, 0x5, 0x6
Model B Revision 2.0 (512 MB) 13, 14, 15 0xd, 0xe, 0xf
Pamiętaj, że może się to zmienić w przyszłości. Jestem pewien, że kody 13,14,15 zawsze będą oznaczać, że masz 512 MB pamięci RAM, ale mogą być też inne. A zatem nie jest dobrym pomysłem założenie, że wszystkie kody> 13 mają 512 MB, ponieważ po prostu nie wiemy, czy to będzie prawda. Nie należy go zatem używać w skryptach itp.
Krzysztof Adamski,
1
Moja Pi przyszedł w pudełku z naklejka z napisem „512MB RAM” dużymi literami, ale /proc/cpuinfomówi Revision : 0005. Uruchamiam z obrazu 2012-09-18-wheezy-raspbian.zipzhttp://www.raspberrypi.org/downloads
RedGrittyBrick
@RedGrittyBrick: Dla mnie to samo. Właśnie otrzymałem swoje Pi wczoraj i zgodnie z oficjalnym blogiem mam wersję 512 MB pamięci RAM (na chipie widzę „4G”). Ale cat /proc/cpuinfozwraca wersję 5. Czy wersja nie jest zapisana w SoC? Czy Raspian potrzebuje aktualizacji, aby „rozpoznać” 512 MB pamięci RAM?
Morgan Courbet
@ Organ: Podobnie jak twój, najwyższy układ (RAM) procesora na moim Pi jest oznaczony jako Samsung K4P4G324EB, a informacje Samsunga potwierdzają, że jest to „128Mx32” = 4 GBit = 512 MB. Czytałem gdzieś na forum element, który sugerował, że konieczna jest aktualizacja oprogramowania układowego (wydaje mi się, że jest to jeden z plików na karcie SD)
RedGrittyBrick
@RedGrittyBrick: Mam teraz Revision: 000f. Prawdopodobnie nowy dist-upgrade.
Morgan Courbet
7
W nowoczesnym systemie operacyjnym, takim jak Linux, naprawdę musisz sprawdzić, ile pamięci zostało udostępnione do użytku ogólnego; może to być mniej niż całkowita fizycznie zainstalowana. Na przykład 512 MB pi z uruchomioną instalacją przeznaczoną na 256 MB nie udostępni tej pamięci.
Następnie na pi pojawia się kolejny problem podziału pamięci procesora na procesor graficzny - coś znacznie mniejszego niż obecna pamięć byłaby nawet dostępna do użycia procesora ARM do czasu rozruchu systemu Linux, ponieważ proces uruchamiania GPU już zażądał znacznej kwoty, jak określono w pliku start.elf.
Aby odpowiedzieć na bezpośrednie pytanie, pierwszy wiersz /proc/meminfolub freepolecenie powinno powiedzieć, ile pamięci fizycznej jest ogólnie dostępne dla Linuksa.
Ilość pamięci dostępnej dla danej aplikacji jest jeszcze bardziej skomplikowana - jądro, bufory i inne aplikacje zajmą pamięć. I choć być może nie jest powszechnie używany z kartą SD jako jedynym „dyskiem”, partycja wymiany może sprawić, że dostępna pamięć wirtualna przekroczy fizyczną pamięć RAM.
Odpowiedzi:
Jak powiedziałeś,
cat /proc/cpuinfo | grep Revision
polecenie da ci poprawkę tablicy. Uwaga: wersja jest wartością szesnastkową. Aby wyświetlić ekwiwalent dziesiętny, uruchom to polecenieprintf '%d\n' 0x#
, gdzie#
jest wartość szesnastkowa wyświetlana z poprzednim poleceniem.Zgodnie z poniższą tabelą kody 13 , 14 i 15 oznaczają płytę 512 MB .
Źródło: Dokumentacja społeczności Element14
źródło
/proc/cpuinfo
mówiRevision : 0005
. Uruchamiam z obrazu2012-09-18-wheezy-raspbian.zip
zhttp://www.raspberrypi.org/downloads
cat /proc/cpuinfo
zwraca wersję 5. Czy wersja nie jest zapisana w SoC? Czy Raspian potrzebuje aktualizacji, aby „rozpoznać” 512 MB pamięci RAM?Revision: 000f
. Prawdopodobnie nowydist-upgrade
.W nowoczesnym systemie operacyjnym, takim jak Linux, naprawdę musisz sprawdzić, ile pamięci zostało udostępnione do użytku ogólnego; może to być mniej niż całkowita fizycznie zainstalowana. Na przykład 512 MB pi z uruchomioną instalacją przeznaczoną na 256 MB nie udostępni tej pamięci.
Następnie na pi pojawia się kolejny problem podziału pamięci procesora na procesor graficzny - coś znacznie mniejszego niż obecna pamięć byłaby nawet dostępna do użycia procesora ARM do czasu rozruchu systemu Linux, ponieważ proces uruchamiania GPU już zażądał znacznej kwoty, jak określono w pliku start.elf.
Aby odpowiedzieć na bezpośrednie pytanie, pierwszy wiersz
/proc/meminfo
lubfree
polecenie powinno powiedzieć, ile pamięci fizycznej jest ogólnie dostępne dla Linuksa.Ilość pamięci dostępnej dla danej aplikacji jest jeszcze bardziej skomplikowana - jądro, bufory i inne aplikacje zajmą pamięć. I choć być może nie jest powszechnie używany z kartą SD jako jedynym „dyskiem”, partycja wymiany może sprawić, że dostępna pamięć wirtualna przekroczy fizyczną pamięć RAM.
źródło