Для изменений я удалил CONFIG_SLUB_TINY и добавил CONFIG_KASAN через make nconfig. Когда я попытался собрать ядро обычным способом, имея более чем достаточно оперативной памяти, я получил ошибку компоновщика: ld: образ ядра больше KERNEL_IMAGE_SIZE.
Я поискал в источнике, где там написано:
Код: Выделить всё
/*
...
* This can be at most 1 GiB, due to the fixmap living in the next 1 GiB (see
* level2_kernel_pgt in arch/x86/kernel/head_64.S).
...
*/
#ifdef CONFIG_RANDOMIZE_BASE
#define KERNEL_IMAGE_SIZE (1024 * 1024 * 1024)
#else
Это поднимает вопрос, были ли внесенные мной изменения огромными (по размеру) или уже был установлен alliesconfig использует близкое к максимальному KERNEL_IMAGE_SIZE?
В любом случае, мне, вероятно, придется удалить некоторые вещи, чтобы иметь возможность снова скомпилировать/связать ссылку. Однако мне нужно сохранить как можно больше доступных пользователю функций и кода в ядре, сохраняя при этом базовые принципы ядра по умолчанию (например, сохраняя стандартный распределитель SLUB и другие основные механизмы).
Я использую это как образец, однако я не могу применить все эти предложения и не знаю, компенсируют ли они объем памяти, необходимой мне для KASAN.
Есть ли у вас дополнительные предложения, что удалить? (также, например, большие нестандартные компоненты)
Могу ли я еще что-нибудь сделать в этой ситуации?
Подробнее здесь: https://stackoverflow.com/questions/784 ... lyesconfig
Мобильная версия