У меня в VMWARE виртуальный machince, Lubuntu17-32bit, он может работать на 500 Мб ОЗУ легко (даже 300 Мб достаточно). Я скомпилировал ядро «linux-4.12.3.tar» и установил его внутри VM i.e Lubuntu. Когда я перезапущен с новым ядром, я получаю:
End kernel panic not syncing out of memory and no killable processes
Мне пришлось увеличить ОЗУ для виртуальной машины до VMWARE , чтобы избежать этой ошибки, и когда система хватается и достигает
Примечание: жестким диском, назначенным этой виртуальной машине, является 300mb .
Так зачем нужна вся эта RAM!
Обновление:
Обратите внимание, что ребята: я Обновление: сказал, что я столкнулся с проблемами при компиляции, проблемами при установке , ни проблемы в работе над новым ядром. Единственная проблема заключается в загрузке из нового ядра, для которого требуется 1500 МБ только для загрузки, и когда загрузка завершена и доходит до экрана входа в систему и рабочего стола, ОС (Lubuntu) вместе требует меньше 300 МБ. Итак, почему этот 1500mb и как его уменьшить?
Ответ:
В файле /boot/initrd.img возникла проблема, он имеет огромный размер. Чтобы уменьшить его размер:
cd /lib/modules/<version>
sudo find . -name *.ko -exec strip --strip-unneeded {} +
sudo update-initramfs -c -k <version>
Reboot
Спасибо за ребята, которые это указали.
Я думаю, что паника ядра произошла по одной из следующих причин или может быть больше
1. Компиляция ядра в основном устанавливает ядро, поэтому вместо замены старого ядра он вместо этого застрял в тупике, где ни один из ядер не смог использовать память, таким образом, панику.
Новое ядро входило в какой-то вид цикла, думаю, что так «он пытался называть себя», или просто он стал вилкой с бомбой, таким образом, из-за ошибки памяти и паники. Раздел, выделенный для нового ядра, не был достаточным. Попробуйте сделать другой раздел, смонтируйте его, sys свяжите его так, чтобы другие программы могли его выполнить. Теперь перекомпилируйте его с помощью gcc и цепей (компоновщик) Вместо того, чтобы заменить ядро, он убил себя. Если вы извлекаете tar-архив ядра, размер которого первоначально составляет 300 мб, после извлечения i.e «tar -xvf kernel.zip» он становится гигантским размером в 900 мб. После установки таких пакетов, как gcc, g ++, gnu-make и т. Д. И компиляции, скомпилированное ядро может стать мамотом в 2 ГБ пространства. Так что если в этом разделе не так много места из памяти. Вы не предоставляли область подкачки. Поскольку построение ядра требует ресурсов, оно требует как достаточного объема пространства, так и подкачки. Во время установки он создает дополнительную папку, например / mount, / proc, / boot, / dev и т. Д. Таким образом, каждая часть получает соответствующее местоположение, а некоторые из них потерпели неудачу из-за нехватки памяти. Обычно ядро скомпилировано в chroot как среда, но если chroot не настроен должным образом, он может не получить такой ресурс, как proc, mnt, dev, таким образом, панику. Если вам по-прежнему нужна помощь, проверьте эти две группы # 1 для команды ubuntu, # 2 для отладки ядра для ubuntuНовое обновление:
Поскольку ваше обновление, похоже, подразумевает компиляцию Ядро работало.
Это могло означать только то, что вы скомпилировали все ядро.
Обычно ядро имеет все, что может быть важно для одного, но пустая трата пространства и времени для других.
Итак, либо вы можете использовать новые ядра из ядра ubuntu. В моем случае его v4.14-rc1.Загрузить ядро, которое соответствует вашей арке. У меня x86_64, поэтому я бы выбрал 64 бита. Я бы загрузил эти
linux-headers-4.14.0-041400rc1_4.14.0-041400rc1.201709162031_all.deb linux-headers-4.14.0-041400rc1-generic_4.14.0-041400rc1.201709162031_amd64.deb linux-image -4.14.0-041400rc1-generic_4.14.0-041400rc1.201709162031_amd64.debи затем выдает «sudo dpkg -i * .deb» для компиляции всех.
Теперь кажется что ядро, которое вы скомпилировали, имеет более 1 ГБ, таким образом, оно использует больше ресурсов.
Ядро ubuntu имеет много частей, изъятых из-за его низкого размера i и использует тяжелое сжатие.
Ваше ядро может иметь все в нем и может использоваться IOT, серверами, рабочим столом и может быть совместим с arm 64, amd64 и т. д., так как у него могут быть все имеющиеся модули для их запуска.
Итак, чтобы уменьшить его, вам нужно удалить все части, бесполезные в вашем случае, например, драйверы для оборудования, о котором вы никогда не слышали.
Отличная работа в качестве компиляции ядра - это головная боль, поскольку она использует интенсивный ресурс, время и терпение
Обновление № 2:
Как вы уже упоминали, ваш файл initrd.img был огромным. Не могли бы вы опубликовать снимок экрана с вашей / boot / или в терминале, используя «ls -l», чтобы указать размер всего.
Ядро - это сердце любого дистрибутива Linux.
Я бы все же предложил вам вырезать ненужные модули из вашего ядра и затем скомпилировать его.
Я думаю, что паника ядра произошла по одной из следующих причин или может быть больше
1. Компиляция ядра в основном устанавливает ядро, поэтому вместо замены старого ядра он вместо этого застрял в тупике, где ни один из ядер не смог использовать память, таким образом, панику.
Новое ядро входило в какой-то вид цикла, думаю, что так «он пытался называть себя», или просто он стал вилкой с бомбой, таким образом, из-за ошибки памяти и паники. Раздел, выделенный для нового ядра, не был достаточным. Попробуйте сделать другой раздел, смонтируйте его, sys свяжите его так, чтобы другие программы могли его выполнить. Теперь перекомпилируйте его с помощью gcc и цепей (компоновщик) Вместо того, чтобы заменить ядро, он убил себя. Если вы извлекаете tar-архив ядра, размер которого первоначально составляет 300 мб, после извлечения i.e «tar -xvf kernel.zip» он становится гигантским размером в 900 мб. После установки таких пакетов, как gcc, g ++, gnu-make и т. Д. И компиляции, скомпилированное ядро может стать мамотом в 2 ГБ пространства. Так что если в этом разделе не так много места из памяти. Вы не предоставляли область подкачки. Поскольку построение ядра требует ресурсов, оно требует как достаточного объема пространства, так и подкачки. Во время установки он создает дополнительную папку, например / mount, / proc, / boot, / dev и т. Д. Таким образом, каждая часть получает соответствующее местоположение, а некоторые из них потерпели неудачу из-за нехватки памяти. Обычно ядро скомпилировано в chroot как среда, но если chroot не настроен должным образом, он может не получить такой ресурс, как proc, mnt, dev, таким образом, панику. Если вам по-прежнему нужна помощь, проверьте эти две группы # 1 для команды ubuntu, # 2 для отладки ядра для ubuntuНовое обновление:
Поскольку ваше обновление, похоже, подразумевает компиляцию Ядро работало.
Это могло означать только то, что вы скомпилировали все ядро.
Обычно ядро имеет все, что может быть важно для одного, но пустая трата пространства и времени для других.
Итак, либо вы можете использовать новые ядра из ядра ubuntu. В моем случае его v4.14-rc1.Загрузить ядро, которое соответствует вашей арке. У меня x86_64, поэтому я бы выбрал 64 бита. Я бы загрузил эти
linux-headers-4.14.0-041400rc1_4.14.0-041400rc1.201709162031_all.deb linux-headers-4.14.0-041400rc1-generic_4.14.0-041400rc1.201709162031_amd64.deb linux-image -4.14.0-041400rc1-generic_4.14.0-041400rc1.201709162031_amd64.debи затем выдает «sudo dpkg -i * .deb» для компиляции всех.
Теперь кажется что ядро, которое вы скомпилировали, имеет более 1 ГБ, таким образом, оно использует больше ресурсов.
Ядро ubuntu имеет много частей, изъятых из-за его низкого размера i и использует тяжелое сжатие.
Ваше ядро может иметь все в нем и может использоваться IOT, серверами, рабочим столом и может быть совместим с arm 64, amd64 и т. д., так как у него могут быть все имеющиеся модули для их запуска.
Итак, чтобы уменьшить его, вам нужно удалить все части, бесполезные в вашем случае, например, драйверы для оборудования, о котором вы никогда не слышали.
Отличная работа в качестве компиляции ядра - это головная боль, поскольку она использует интенсивный ресурс, время и терпение
Обновление № 2:
Как вы уже упоминали, ваш файл initrd.img был огромным. Не могли бы вы опубликовать снимок экрана с вашей / boot / или в терминале, используя «ls -l», чтобы указать размер всего.
Ядро - это сердце любого дистрибутива Linux.
Я бы все же предложил вам вырезать ненужные модули из вашего ядра и затем скомпилировать его.