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?


Bisakah Anda lebih spesifik mengenai kecelakaan yang Anda sebutkan? Apa yang kamu lihat di layar? Ada kesalahan?
Straphka


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=


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.


-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.


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
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.