У меня есть встроенная плата с 512 МБ оперативной памяти под управлением Linux 2.6.29 и загрузчик UBoot. Но ядро может использовать только 128 МБ оперативной памяти.
Я попытался изменить значение XCODE_MEMSIZE
, которое, я думаю, определяет, сколько оперативной памяти использует ядро.
Когда я установил его на 512, ядро вылетает при загрузке. Есть ли другой параметр конфигурации, который нужно изменить?
cat /proc/cmdline
говорит вам на вашей доске?Ответы:
Без более конкретного знания вашей встроенной платы на ум приходят две вещи.
Попробуйте
mem=
параметр загрузки ядра . (Я думаю, что иногда память может быть доступна с неконтинентального адреса, поэтому вам, возможно, придется использовать что-то вроде этого, но адреса нужно будет проверять в зависимости от вашего состояния.mem = 512M @ 0 mem = 256M @ 0x80000000 mem = 256M = 0xc0000000
У вас есть встроенная видеокарта? Это может убрать кусок вашего доступного барана. Если вы можете добраться до биоса или аналогичного, проверьте это.
@ смотрите параметры ядра для получения дополнительной информации о
mem=
источник
Я думаю , вы должны увеличить
RAM Disk
размер в вашем ядре.источник
В дополнение к другим постам о том, чтобы быть более конкретным, я бы также предложил размонтировать,
/dev/shm
если он смонтирован. Это файловая система ramdisk и съедает ваш ram.Также взгляните на
sysctl
команду в Linux. Делая что-то подобное, выsysctl -w kernel.shmmax="<some number>"
меняете ядро, пока оно работает.источник