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.
Прежде чем публиковать этот вопрос, мне следовало провести дополнительные исследования, но я подумал, что, возможно, я что-то упускаю. Для справки, проблема связана с исходным кодом моего ядра. Разработчик пользовательского ядра применил исправление , чтобы всегда включать более старую конфигурацию в двоичный файл ядра. Так что это должно быть отменено (с учетом рисков, если таковые имеются):
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
Опцией ядра, которая выдает /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
перед тем, как начать сборку ядра?