Збільшення розміру пам'яті ядра


14

У мене вбудована плата з 512 Мб оперативної пам’яті під управлінням Linux 2.6.29 та завантажувачем UBoot. Але ядро ​​здатне використовувати лише 128 Мб оперативної пам’яті.

Я спробував змінити значення XCODE_MEMSIZE, яке, на мою думку, визначає, скільки оперативної пам’яті використовує ядро.

Коли я встановив його на 512, ядро ​​виходить з ладу під час завантаження. Чи є інший параметр конфігурації, який потрібно змінити?


Чи можете ви бути більш конкретними щодо краху, про який ви згадали? Що ви бачите на екрані? Будь-які помилки?
Страфка


Дійсно потрібно надати більше подробиць про те, що "лише вміти використовувати 128 МБ". Здається, щось десь обмежене (розмір стека на користувача тощо).
многочлен

скільки пам'яті виявляє u-boot? Чи виявляє він цілих 512 Мб?
вільнодумник

Що cat /proc/cmdlineговорить вам на вашій дошці?
Анкур Агарвал

Відповіді:


3

Без більш конкретного знання вашої вбудованої дошки приходять у голову дві речі.

  1. Спробуйте mem=параметр завантаження ядра . (Я думаю, що іноді пам’ять може бути доступна з безмежної адреси, тому вам може знадобитися використовувати щось подібне, але адреси доведеться перевіряти на кожного мобо.

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

  2. У вас вбудована відеокарта? Це може зайняти частину наявного барана. Якщо ви можете дістатися до біосу або іншого еквівалента, перевірте це.

@see параметри Kernel для отримання додаткової інформації проmem=


Можливо, вам потрібно буде вказати значення менше 512M - можливо, на карті пам'яті плати є пристрій або щось подібне за фізичною адресою 0x20000000 (512M), і вам слід отримати копію, щоб знати, де знаходиться ОЗУ на вашій платі.
LawrenceC

1

Я думаю, ви повинні збільшити RAM Diskрозмір у вашому ядрі.


-1

На додаток до інших публікацій про конкретніше, я б також запропонував зняти /dev/shmйого, якщо він встановлений. Це файлова система ramdisk і харчується вашим операційним пристроєм.

Також подивіться на sysctlкоманду в Linux. Виконуючи щось подібне, sysctl -w kernel.shmmax="<some number>"ядро змінюється під час його роботи.


4
/ dev / shm використовує ледь будь-яку пам'ять, якщо її порожня. Він почне використовувати операційний модуль лише після завантаження в нього файлів.
Патрік

/ dev / shm - це не що інше, як реалізація традиційної концепції спільної пам'яті. Це ефективний засіб передачі даних між програмами. Одна програма створить частину пам'яті, до якої можуть отримати доступ інші процеси (якщо це дозволено). Це призведе до прискорення роботи в Linux.
Satish
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.