Почему «/proc/config.gz» показывает неправильную конфигурацию?

Sí, también se deben citar los acentos graves.

Esto puede ser una cuestión de estilo bash preferido para los casos en que la salida del comando no contiene espacios. Aquí hay una cita del autor de la utilidad shellharden, de " cómo hacer las cosas de forma segura en bash ":

Should I use backticks?
Command substitutions also come in this form:

Correct: "`cmd`"
Bad: `cmd`
While it is possible to use this style correctly, it looks even more awkward in quotes and is less readable when nested. The consensus around this one is pretty clear: Avoid.

Shellharden rewrites these into the dollar-parenthesis form.

También creo que es una buena forma citar acentos graves con ", o (mejor )reescribirlo para usar $(). Si la salida del comando contiene espacios o caracteres especiales al usar acentos graves, puede ser problemático si no se cita la expresión.

2
28.06.2019, 14:38
2 ответа

Прежде чем публиковать этот вопрос, мне следовало провести дополнительные исследования, но я подумал, что, возможно, я что-то упускаю. Для справки, проблема связана с исходным кодом моего ядра. Разработчик пользовательского ядра применил исправление , чтобы всегда включать более старую конфигурацию в двоичный файл ядра. Так что это должно быть отменено (с учетом рисков, если таковые имеются):

ifeq ($(CONFIG_MACH_XIAOMI_MIDO),y)
    $(obj)/config_data.gz: arch/arm64/configs/mido_defconfig FORCE
else ifeq ($(CONFIG_MACH_XIAOMI_TISSOT),y)
    $(obj)/config_data.gz: arch/arm64/configs/tissot_defconfig FORCE
else
    $(obj)/config_data.gz: $(KCONFIG_CONFIG) FORCE
endif
3
27.01.2020, 22:17

Опцией ядра, которая выдает /proc/config.gz, является IKCONFIG _PROC, а не просто IKCONFIG. И IKCONFIG _PROC не может быть модулем.

Также обратите внимание, что есть kernel/configs/android-base.configи kernel/configs/android-recommended.config. Их можно использовать для переопределения некоторых параметров конфигурации ядра, см. https://lore.kernel.org/linux-arm-kernel/1466708235-28593-1-git-send-email-robh@kernel.org/

.

Если в вашей процедуре компиляции ядра используется команда, подобная этой (пример, упомянутый в посте со списком ядер Linux -ARM -по ссылке выше)

make ARCH=arm multi_v7_defconfig android-base.config android-recommended.config

, то эти файлы действительно используются. И android-base.configвключает установку для CONFIG_IKCONFIGи CONFIG_IKCONFIG_PROCзначения y.

Вы уверены, что ваш тулчейн не делает что-то вроде

make ARCH=arm <oldconfig or some other config target> android-base.config 

перед тем, как начать сборку ядра?

1
27.01.2020, 22:17

Теги

Похожие вопросы