Вопрос или проблема
Ранее у меня была та же ошибка, связанная с файлом: arch/arm64/boot/dts/qcom/apq8016-sbc.dtb
, но я решил ее, удалив строку subdir-y += qcom
из arch/arm64/boot/dts/Makefile
. Теперь появляется новая аналогичная ошибка, и я не знаю, как ее исправить. Совет в интернете не помог.
Ошибка:
make[3]: *** Нет правила для создания цели 'arch/arm64/boot/dts/kona-rumi.dtb', необходимой для '__build'. Остановка.
make[3]: *** Ожидание незавершенных заданий....
make[2]: *** [../scripts/Makefile.build:642: arch/arm64/boot/dts] Ошибка 2
make[1]: *** [arch/arm64/Makefile:172: dtbs] Ошибка 2
make[1]: *** Ожидание незавершенных заданий....
Ошибка с make V=1
:
make -f ../scripts/Makefile.build obj=arch/arm64/boot/dts/ti need-builtin=
(cat /dev/null; ) > arch/arm64/boot/dts/ti/modules.order
make -f ../scripts/Makefile.build obj=arch/arm64/boot/dts/vendor need-builtin=
make -f ../scripts/Makefile.build obj=arch/arm64/boot/dts/vendor/qcom need-builtin=
(cat /dev/null; ) > arch/arm64/boot/dts/vendor/qcom/modules.order
make[4]: *** Нет правила для создания цели 'arch/arm64/boot/dts/vendor/qcom/kona-rumi.dtb', необходимой для '__build'. Остановка.
make[4]: *** Ожидание незавершенных заданий....
make[3]: *** [../scripts/Makefile.build:642: arch/arm64/boot/dts/vendor/qcom] Ошибка 2
make[2]: *** [../scripts/Makefile.build:642: arch/arm64/boot/dts/vendor] Ошибка 2
make[1]: *** [arch/arm64/Makefile:172: dtbs] Ошибка 2
make[1]: *** Ожидание незавершенных заданий....
MyKernel:
Мой код сборки:
export ARCH=arm64
export SUBARCH=arm64
export HEADER_ARCH=arm64
export DTC_EXT=dtc
PATH="/home/hehe/Downloads/clang/bin:/home/hehe/Downloads/aarch64-linux-android-4.9/bin:/home/hehe/Downloads/arm-linux-androideabi-4.9/bin:${PATH}"
rm -rf out
make O=out clean && make mrproper
make O=out ARCH=arm64 kona_defconfig
make -j$(nproc --all) O=out ARCH=arm64 CC=clang CLANG_TRIPLE=aarch64-linux-gnu- CROSS_COMPILE=aarch64-linux-android- CROSS_COMPILE_ARM32=arm-linux-androideabi-
вам нужен дерево устройств для устройства kona/sm8250, посмотрите в oneplus oss, как и другие вендоры, они не включают это в ядро, а в другом репозитории, как дерево устройств, после этого дерево устройств вендора было перемещено в kernelsource/arch/arm64/boot/dts (вендор) здесь
Ответ или решение
Ошибка "No rule to make target ‘arch/arm64/boot/dts/kona-rumi.dtb’, needed by ‘__build’. Stop" возникает в процессе сборки ядра, когда система не может найти необходимый файл Device Tree Blob (DTB). Эта проблема подобна предыдущей ошибке, связанной с файлом apq8016-sbc.dtb
, но в данном случае отсутствует файл kona-rumi.dtb
. Рассмотрим шаги по устранению этой ошибки.
1. Проверка наличия файла Device Tree
Первоначально убедитесь, что файл kona-rumi.dtb
действительно отсутствует в каталоге arch/arm64/boot/dts/vendor/qcom
. Если его нет, следует проверить репозитории, чтобы понять, где он может находиться. В большинстве случаев файлы Device Tree находятся в отдельных репозиториях, таких как device tree или vendor.
2. Получение файлов Device Tree
Как указано в предоставленной информации, необходимо получить файлы Device Tree для устройства kona/SM8250. Это можно сделать одним из следующих способов:
- Найдите подходящий репозиторий на GitHub или другом хостинге кода, где разработчики сохранили необходимые файлы для ваших устройств.
- Например, проверьте официальные репозитории OnePlus или другие проекты с поддержкой вашей платформы на GitHub. Обратите внимание на наличие папок, относящихся к vendor или device tree для устройств SM8250.
3. Корректировка Makefile
Если у вас нет возможности найти необходимый файл DTB, вы можете удалить соответствующую строку из Makefile, аналогично тому, как вы это сделали с apq8016-sbc.dtb
. Найдите строку, где указывается kona-rumi.dtb
, возможно, в arch/arm64/boot/dts/Makefile
или в соответствующем subdir-y
в Makefile. Удалите или закомментируйте эту строку, чтобы избежать ошибок при сборке:
# subdir-y += qcom
4. Завершение сборки
После выполнения вышеописанных действий, выполните полную очистку сборки и повторите процесс. Команды:
make O=out clean && make mrproper
make O=out ARCH=arm64 kona_defconfig
make -j$(nproc --all) O=out ARCH=arm64 CC=clang CLANG_TRIPLE=aarch64-linux-gnu- CROSS_COMPILE=aarch64-linux-android- CROSS_COMPILE_ARM32=arm-linux-androideabi-
5. Проверка других зависимостей
Если ошибка сохраняется, стоит проверить дополнительные зависимые файлы и их наличие. Убедитесь, что у вас установлены все необходимые инструменты и библиотеки, которые могут требоваться для компиляции ядра с использованием Clang.
6. Заключение
Ошибки компиляции могут быть сложными, но следуя этим шагам, вы сможете устранить большинство проблем, связанных с отсутствующими целевыми файлами. Если проблема не удается решить, рекомендуется обратиться на специализированные форумы, такие как XDA Developers, где вы можете получить помощь от сообщества разработчиков, работающих над аналогичными проектами.