Meningkatkan ukuran memori kernel

14

Saya memiliki papan tertanam dengan 512MB RAM yang menjalankan Linux 2.6.29 dan bootloader UBoot. Tetapi kernel hanya mampu memanfaatkan 128MB RAM.

Saya mencoba mengubah nilai XCODE_MEMSIZE, yang menurut saya menentukan berapa banyak RAM yang digunakan kernel.

Ketika saya mengaturnya ke 512, kernel lumpuh saat boot. Apakah ada parameter konfigurasi lain yang perlu diubah?

Tim
sumber
Bisakah Anda lebih spesifik mengenai kecelakaan yang Anda sebutkan? Apa yang kamu lihat di layar? Ada kesalahan?
Straphka
Dan papan apa itu?
Gilles 'SANGAT berhenti menjadi jahat'
Benar-benar perlu memberikan rincian lebih lanjut tentang 'hanya dapat menggunakan 128MB'. Sepertinya ada sesuatu yang terbatas di suatu tempat (ukuran tumpukan per pengguna, dll).
jumlahnya banyak
berapa banyak memori yang mendeteksi u-boot? Apakah ini mendeteksi keseluruhan 512MB?
pemikir bebas
Apa yang cat /proc/cmdlinememberitahumu di papan tulismu?
Ankur Agarwal

Jawaban:

3

Tanpa pengetahuan yang lebih spesifik tentang board tertanam Anda, dua hal muncul di benak Anda.

  1. Coba mem=parameter boot kernel . (Saya pikir kadang-kadang memori mungkin tersedia dari alamat yang tidak berkelanjutan sehingga Anda mungkin harus menggunakan sesuatu seperti ini, tetapi alamat tersebut harus diperiksa per Anda mobo.

    mem = 512M @ 0 mem = 256M @ 0x80000000 mem = 256M = 0xc0000000

  2. Apakah Anda sudah menyematkan kartu grafis? Itu mungkin mengambil sepotong ram yang tersedia. Jika Anda bisa mendapatkan bios atau yang setara, periksa itu.

@lihat parameter kernel untuk informasi lebih lanjut tentangmem=

Manwe
sumber
Anda mungkin perlu menentukan nilai kurang dari 512M - mungkin ada perangkat atau sesuatu di atau dekat alamat fisik 0x20000000 (512M) di peta memori papan, yang, Anda harus mendapatkan salinan untuk mengetahui di mana RAM tinggal di papan Anda.
LawrenceC
1

Saya kira Anda harus menambah RAM Diskukuran di kernel Anda.

Satish
sumber
-1

Selain postingan lain yang lebih spesifik, saya juga menyarankan unmount /dev/shmjika sudah di-mount. Itu adalah sistem file ramdisk dan memakan ram Anda.

Lihat juga sysctlperintah di linux. Melakukan sesuatu seperti sysctl -w kernel.shmmax="<some number>"mengubah kernel ketika sedang berjalan.

Freddie
sumber
4
/ dev / shm hampir tidak menggunakan memori apa pun jika kosong. Itu hanya akan mulai menggunakan ram setelah file dimuat ke dalamnya.
Patrick
/ dev / shm tidak lain adalah implementasi dari konsep memori bersama tradisional. Ini adalah cara yang efisien untuk mengirimkan data antar program. Satu program akan membuat bagian memori, yang dapat diakses oleh proses lain (jika diizinkan). Ini akan mempercepat hal-hal di Linux.
Satish