отмена
Отображаются результаты для 
Вместо этого искать 
Вы имели в виду: 
Ответить
Lenovo Employee 7M
Lenovo Employee
Сообщения: 168
Зарегистрированный: ‎10-29-2015
Страна: RU
Просмотров: 2 502
Сообщение 1 из 2

Ошибки в процессе компиляции ядра и способы их решения.

error.png

Всех приветсвую!

Предлагаю в этой теме делиться ошибками, возникающими в процессе компилирования ядра, и способами их решения (если таковывые имеются).

В шапку данной темы буду добавлять написанные вами ошибки и способы их устранения.

 

При написание сообщения обязательно указываейте:

1. Модейль устройства

2. Ссылку на исходники или хотя бы версию

3. Используемый GNU Toolchain

4. Дистрибутив на котором производится процесс компиляции.

5. Прочие важные моменты (по вашему мнению)

 

Актуальные ошибки:

Спойлер
 №1.

Устраненные ошибки:

Спойлер
№1. Ошибка при очистке исходников ядра

 

Lenovo Employee 7M
Lenovo Employee
Сообщения: 168
Зарегистрированный: ‎10-29-2015
Страна: RU
Просмотров: 2 478
Сообщение 2 из 2

Ошибка при очистке исходников ядра

По личному опыту могу сказать, что послe компиляции ядра из исходников на базе версии Linux Kernel 3.10.Х возникает ошибка при попытке очитить рабочию папку покамдой make clean

Как правило бывает вот токае сообщение:

sevenmaxs@USSR:~/Android/kernel/S90A/kernel$ export PATH=~/Android/cm-13.0/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/:$PATH
sevenmaxs@USSR:~/Android/kernel/S90A/kernel$ export ARCH=arm64
sevenmaxs@USSR:~/Android/kernel/S90A/kernel$ make clean
  CLEAN   arch/arm64/kernel/vdso
  CLEAN   arch/arm64/kernel
  CLEAN   crypto/asymmetric_keys
  CLEAN   firmware
  CLEAN   kernel
  CLEAN   lib
  CLEAN   net/wireless
  CLEAN   security/selinux
  CLEAN   usr
scripts/Makefile.clean:17: /home/sevenmaxs/Android/kernel/S90A/kernel/arch/arm64/boot/qcom/Makefile: Нет такого файла или каталога
make[2]: *** Нет правила для сборки цели «/home/sevenmaxs/Android/kernel/S90A/kernel/arch/arm64/boot/qcom/Makefile».  Останов.
scripts/Makefile.clean:94: ошибка выполнения рецепта для цели «arch/arm64/boot/qcom»
make[1]: *** [arch/arm64/boot/qcom] Ошибка 2
/home/sevenmaxs/Android/kernel/S90A/kernel/arch/arm64/Makefile:87: ошибка выполнения рецепта для цели «archclean»
make: *** [archclean] Ошибка 2
sevenmaxs@USSR:~/Android/kernel/S90A/kernel$ 

Вариантов устанения этой ошибки несколько:

№1. Использование для очистки команды make mrproper, при этом строит учитывать, что данная команда вернет исходники к "первоисходному" состоянию (в том числе будет удален и файл ".config", поэтому лучше предварительно его сохранить)

№2. При компиляции указывать парку в которой будет спроисходить создание объектных файлов и их линковка..

Осуществляется путем добавления в команды преременной O= , в которой после знака "равно" указывается путь к папке, которую вы будете использовать как рабочую.

Например,

make x3_defconfig ARCH=arm64 CROSS_COMPILE=aarch64-linux-android- -j16 O=../out/kernel/
make menuconfig ARCH=arm64 CROSS_COMPILE=aarch64-linux-android- -j16 O=../out/kernel/
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-android- -j16 O=../out/kernel/

Данную папку можно будет в ручную очистить (не шик, но как вариант гоже).

№3. Можно внести непольщую правку в файл /kernel/scripts/Makefile.clean, а если быть точнее закоментировать следующую строку, вот таким образом:

#include $(if $(wildcard $(kbuild-dir)/Kbuild), $(kbuild-dir)/Kbuild, $(kbuild-dir)/Makefile)

№4. Ну и пожалуй самый долгий, но более парвильный вариант - искать проблемные места в коде и латать их. Но в этом случае унивирсальных решений не может быть.

 

Shop Lenovo

Интернет-магазин Леново в России

Перейти на сайт магазина