2016-04-30 2 views
0

Я пытаюсь построить ядро ​​для компактного следующего Sony Xperia Tablet Z3 это руководство:ошибка компиляции ядра для Sony Z3 таблетки прессовки - доска-8974-gpiomux.c - 'gpio_spi_config'

http://developer.sonymobile.com/knowledge-base/open-source/open-devices/how-to-build-and-flash-a-linux-kernel/how-to-build-and-flash-a-linux-kernel-for-aosp-supported-devices/

ошибка я получаю является следующим по make ARCH=arm CROSS_COMPILE=$CROSS_COMPILE -j4

... 
    CC  kernel/exec_domain.o 
    CC  arch/arm/mach-msm/board-8974-gpiomux.o 
    AS  arch/arm/mm/tlb-v7.o 
    AS  arch/arm/mm/proc-v7.o 
    CC  mm/mempool.o 
arch/arm/mach-msm/board-8974-gpiomux.c:692:24: error: 'gpio_spi_config' undeclared here (not in a function) 
    [GPIOMUX_ACTIVE] = &gpio_spi_config, 
         ^
    LD  arch/arm/mm/built-in.o 
scripts/Makefile.build:308: die Regel für Ziel „arch/arm/mach-msm/board-8974-gpiomux.o“ scheiterte 
make[1]: *** [arch/arm/mach-msm/board-8974-gpiomux.o] Fehler 1 
Makefile:815: die Regel für Ziel „arch/arm/mach-msm“ scheiterte 
make: *** [arch/arm/mach-msm] Fehler 2 
make: *** Auf noch nicht beendete Prozesse wird gewartet … 
    CC  mm/oom_kill.o 
    CC  kernel/panic.o 
    CC  kernel/printk.o 
    CC  kernel/cpu.o 
    CC  mm/fadvise.o 
... 

как предложено в HowTo я следующие шаги:

  1. установлен 4.8 перекрестных набора инструментов компиляции и экспортируется CROSS_COMPILE вара
  2. клонировать репозиторий ядра
  3. взял aosp_shinano_scorpion_defconfig из AOSP хранилища
  4. обновляли конфигурацию
  5. RAN вышеупомянутой команды сборки

В I мог видеть в board-8974-gpiomux.c объявление структуры gpio_spi_config внутри ifdef, но вызов, где произошла ошибка, - это ou в зависимости от состояния ifdef.

Так что мне кажется логичным, что компилятор жалуется на это. Но я также сомневаюсь в ошибке в источнике, потому что я совершенно уверен, что я не первый, кто следит за этим руководством.

Любые идеи?

Спасибо и уважением, Тимо

+0

Что такое '# ifdef' проверка? Является ли условие «true» в файле конфигурации? – user3629249

+0

Он проверяет '#if определенный (CONFIG_KS8851) || определен (CONFIG_KS8851_MODULE) '. Они не определены в файле конфигурации. – TimoG

+0

Так как это аппаратно ориентированные элементы конфигурации, возможно, они должны быть определены в файле конфигурации. – user3629249

ответ

-1

Он прав. В файле "board-8974-gpiomux.c" мы видим "#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)". Это означает, что если хотя бы один из них был включен, gcc увидит определения в этом разделе. включение "CONFIG_KS8851=y" в файле конфигурации передало это для меня.