Образ ядра Linux больше KERNEL_IMAGE_SIZE при сборке с помощью alliesconfig+Linux

Anonymous
Образ ядра Linux больше KERNEL_IMAGE_SIZE при сборке с помощью alliesconfig+

Сообщение Anonymous »

Я пытаюсь собрать ядро ​​Linux 6.8.9 с поддержкой alliesconfig с небольшими дополнениями.
Для изменений я удалил 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

Вернуться в «Linux»