Bagaimana suatu program memeriksa apakah ia berjalan pada RPi 512MB?


12

Apakah RPI 512MB memiliki revisi papan yang berbeda?

yaitu, dapatkah Anda melihat revisi /proc/cpuinfountuk menentukan apakah Anda memiliki RPi 512MB?

Kalau tidak, apa cara termudah untuk memeriksa?


Perhatikan bahwa pada akhirnya Anda tidak dapat berbuat banyak dengan pengetahuan, kecuali jika Anda menulis alat untuk mengubah file startup, atau hanya ingin memberi tahu pengguna apa yang mereka miliki atau jika konfigurasi boot mereka saat ini mengambil keuntungan penuh dari perangkat keras. Program aplikasi pada ARM di bawah kernel Linux tidak dapat benar-benar menggunakan memori tambahan kecuali telah diberikan oleh kode startup GPU.
Chris Stratton

Jawaban:


10

Seperti yang Anda katakan, cat /proc/cpuinfo | grep Revisionperintah itu akan memberi Anda revisi papan. Harap perhatikan bahwa revisinya adalah nilai heksadesimal. Untuk menampilkan setara desimal, jalankan perintah ini printf '%d\n' 0x#, di mana #nilai heksadesimal ditampilkan dengan perintah sebelumnya.

Menurut bagan berikut, kode 13 , 14 dan 15 adalah papan 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

Sumber: dokumentasi komunitas Element14


1
Perlu diingat bahwa ini dapat berubah di masa mendatang. Saya yakin kode 13,14,15 akan selalu berarti Anda memiliki RAM 512 MB tetapi mungkin ada yang lain. Dan kemudian itu bukan ide yang baik untuk menganggap semua kode> 13 memiliki 512MB karena kita tidak tahu apakah itu benar. Jadi itu tidak boleh digunakan dalam skrip dll.
Krzysztof Adamski

1
Pi saya datang dalam sebuah kotak dengan stiker yang mengatakan "RAM 512MB" dalam huruf besar tetapi /proc/cpuinfomengatakan Revision : 0005. Saya mem-boot dari gambar 2012-09-18-wheezy-raspbian.zipdarihttp://www.raspberrypi.org/downloads
RedGrittyBrick

@RedGrittyBrick: Hal yang sama untuk saya. Saya baru saja menerima Pi saya kemarin, dan menurut blog resmi , saya memiliki versi RAM 512MB (saya bisa melihat "4G" pada chip). Tetapi cat /proc/cpuinfomengembalikan revisi 5. Bukankah revisi tersebut ditulis dengan keras dalam SoC? Apakah Raspian perlu pembaruan untuk "mengenali" versi RAM 512MB?
Morgan Courbet

@Morgan: Seperti milik Anda, chip (RAM) teratas pada CPU pada Pi saya ditandai Samsung K4P4G324EB dan info Samsung menegaskan ini "128Mx32" = 4 GBit = 512 MB. Saya memang membaca item forum di suatu tempat yang menyarankan pembaruan firmware diperlukan (saya kira ini adalah salah satu file pada kartu SD)
RedGrittyBrick

@RedGrittyBrick: Saya punya sekarang Revision: 000f. Mungkin yang terbaru dist-upgrade.
Morgan Courbet

7

Dalam sistem operasi modern seperti Linux, yang benar-benar perlu Anda periksa adalah berapa banyak memori yang telah tersedia untuk penggunaan tujuan umum; yang mungkin kurang dari total yang terpasang secara fisik. Jadi misalnya, pi 512 MB yang menjalankan instalasi yang ditujukan untuk 256 MB tidak akan membuat memori itu tersedia untuk Anda.

Kemudian, pada pi ada masalah lebih lanjut dari perpecahan memori CPU vs GPU - sesuatu yang secara substansial kurang dari memori sekarang bahkan akan tersedia untuk penggunaan CPU ARM pada saat Linux dinyalakan, karena proses boot GPU sudah mengklaim sejumlah besar sebagaimana ditentukan file start.elf digunakan.

Untuk menjawab pertanyaan langsung, baris pertama /proc/meminfoatau freeperintah akan memberi tahu Anda berapa banyak memori fisik yang tersedia untuk Linux secara keseluruhan.

How much memory is available to a given application is again more complicated - the kernel, buffers, and other applications will claim memory. And while perhaps not commonly used with an SD card as the only "disk", a swap partition could make the available virtual memory exceed the physical RAM.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.