2017-02-21 13 views
0

Я пытаюсь создать изображения для Raspberry pi 3 с помощью yocto, обратившись к this, во время выполнения команды bitbake. Я получаю следующую ошибку.Ошибка анализа при создании изображений для Raspberry pi 3 с использованием yocto

В журнале ошибок, это говорит об ошибке при выполнении функции питона, но никаких подробностей об ошибке, я не мог видеть исключение «Исключение: TypeError: GETVAR() принимает по крайней мере 3-х аргументов (2 дано)» , Но в yocto во многих местах я видел, что getVar принимает только два аргумента.

Можете ли вы руководствоваться при решении этой проблемы. Я мог видеть d.getVar() во многих местах, можете ли вы сказать мне, что здесь, я искал в документации yocto, но не нашел никакой информации, объясняющей, что такое d.

ERROR: /home/ubuntu/raspberryYocto/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.9.bb: Error executing a python function in <code>: 

The stack trace of python calls that resulted in this exception/failure was: File: '<code>', lineno: 17, function: <module> 
    0013:__anon_146__home_ubuntu_raspberryYocto_poky_meta_classes_siteinfo_bbclass(d) 
    0014:__anon_381__home_ubuntu_raspberryYocto_poky_meta_classes_kernel_yocto_bbclass(d) 
    0015:__anon_6__home_ubuntu_raspberryYocto_poky_meta_recipes_kernel_linux_linux_dtb_inc(d) 
    0016:__anon_148__home_ubuntu_raspberryYocto_meta_raspberrypi_recipes_kernel_linux_linux_rpi_inc(d) *** 0017:__anon_39__home_ubuntu_raspberryYocto_meta_raspberrypi_recipes_kernel_linux_linux_raspberrypi_inc(d) File: '/home/ubuntu/raspberryYocto/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc', lineno: 38, function: 
__anon_39__home_ubuntu_raspberryYocto_meta_raspberrypi_recipes_kernel_linux_linux_raspberrypi_inc 
    0034:# See http://www.yoctoproject.org/docs/current/bitbake-user-manual/bitbake-user-manual.html#anonymous-python-functions 
    0035:python __anonymous() { 
    0036: kerneltype = d.getVar('KERNEL_IMAGETYPE', True) 
    0037: kerneldt = get_dts(d, d.getVar('LINUX_VERSION', True)) *** 0038: d.setVar("KERNEL_DEVICETREE", kerneldt) 
    0039:} 
    0040: 
    0041:do_kernel_configme_prepend() { 
    0042: install -m 0644 ${S}/arch/${ARCH}/configs/${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig || die "No default configuration for ${MACHINE}/${KERNEL_DEFCONFIG} available." File: '/home/ubuntu/raspberryYocto/meta-raspberrypi/classes/linux-raspberrypi-base.bbclass', lineno: 6, function: get_dts 
    0002: 
    0003:def get_dts(d, ver=None): 
    0004: import re 
    0005: *** 0006: staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR") 
    0007: dts = d.getVar("KERNEL_DEVICETREE") 
    0008: 
    0009: # d.getVar() might return 'None' as a normal string 
    0010: # leading to 'is None' check isn't enough. Exception: TypeError: getVar() takes at least 3 arguments (2 given) 

ERROR: Failed to parse recipe: /home/ubuntu/raspberryYocto/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.9.bb ERROR: /home/ubuntu/raspberryYocto/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.4.bb: Error executing a python function in <code>: 

The stack trace of python calls that resulted in this exception/failure was: File: '<code>', lineno: 17, function: <module> 
    0013:__anon_146__home_ubuntu_raspberryYocto_poky_meta_classes_siteinfo_bbclass(d) 
    0014:__anon_381__home_ubuntu_raspberryYocto_poky_meta_classes_kernel_yocto_bbclass(d) 
    0015:__anon_6__home_ubuntu_raspberryYocto_poky_meta_recipes_kernel_linux_linux_dtb_inc(d) 
    0016:__anon_148__home_ubuntu_raspberryYocto_meta_raspberrypi_recipes_kernel_linux_linux_rpi_inc(d) *** 0017:__anon_39__home_ubuntu_raspberryYocto_meta_raspberrypi_recipes_kernel_linux_linux_raspberrypi_inc(d) File: '/home/ubuntu/raspberryYocto/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc', lineno: 38, function: 
__anon_39__home_ubuntu_raspberryYocto_meta_raspberrypi_recipes_kernel_linux_linux_raspberrypi_inc 
    0034:# See http://www.yoctoproject.org/docs/current/bitbake-user-manual/bitbake-user-manual.html#anonymous-python-functions 
    0035:python __anonymous() { 
    0036: kerneltype = d.getVar('KERNEL_IMAGETYPE', True) 
    0037: kerneldt = get_dts(d, d.getVar('LINUX_VERSION', True)) *** 0038: d.setVar("KERNEL_DEVICETREE", kerneldt) 
    0039:} 
    0040: 
    0041:do_kernel_configme_prepend() { 
    0042: install -m 0644 ${S}/arch/${ARCH}/configs/${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig || die "No default configuration for ${MACHINE}/${KERNEL_DEFCONFIG} available." File: '/home/ubuntu/raspberryYocto/meta-raspberrypi/classes/linux-raspberrypi-base.bbclass', lineno: 6, function: get_dts 
    0002: 
    0003:def get_dts(d, ver=None): 
    0004: import re 
    0005: *** 0006: staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR") 
    0007: dts = d.getVar("KERNEL_DEVICETREE") 
    0008: 
    0009: # d.getVar() might return 'None' as a normal string 
    0010: # leading to 'is None' check isn't enough. Exception: TypeError: getVar() takes at least 3 arguments (2 given) 

ERROR: /home/ubuntu/raspberryYocto/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_dev.bb: Error executing a python function in <code>: 

The stack trace of python calls that resulted in this exception/failure was: File: '<code>', lineno: 17, function: <module> 
    0013:__anon_146__home_ubuntu_raspberryYocto_poky_meta_classes_siteinfo_bbclass(d) 
    0014:__anon_381__home_ubuntu_raspberryYocto_poky_meta_classes_kernel_yocto_bbclass(d) 
    0015:__anon_6__home_ubuntu_raspberryYocto_poky_meta_recipes_kernel_linux_linux_dtb_inc(d) 
    0016:__anon_148__home_ubuntu_raspberryYocto_meta_raspberrypi_recipes_kernel_linux_linux_rpi_inc(d) *** 0017:__anon_39__home_ubuntu_raspberryYocto_meta_raspberrypi_recipes_kernel_linux_linux_raspberrypi_inc(d) File: '/home/ubuntu/raspberryYocto/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc', lineno: 38, function: 
__anon_39__home_ubuntu_raspberryYocto_meta_raspberrypi_recipes_kernel_linux_linux_raspberrypi_inc 
    0034:# See http://www.yoctoproject.org/docs/current/bitbake-user-manual/bitbake-user-manual.html#anonymous-python-functions 
    0035:python __anonymous() { 
    0036: kerneltype = d.getVar('KERNEL_IMAGETYPE', True) 
    0037: kerneldt = get_dts(d, d.getVar('LINUX_VERSION', True)) *** 0038: d.setVar("KERNEL_DEVICETREE", kerneldt) 
    0039:} 
    0040: 
    0041:do_kernel_configme_prepend() { 
    0042: install -m 0644 ${S}/arch/${ARCH}/configs/${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig || die "No default configuration for ${MACHINE}/${KERNEL_DEFCONFIG} available." File: '/home/ubuntu/raspberryYocto/meta-raspberrypi/classes/linux-raspberrypi-base.bbclass', lineno: 6, function: get_dts 
    0002: 
    0003:def get_dts(d, ver=None): 
    0004: import re 
    0005: *** 0006: staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR") 
    0007: dts = d.getVar("KERNEL_DEVICETREE") 
    0008: 
    0009: # d.getVar() might return 'None' as a normal string 
    0010: # leading to 'is None' check isn't enough. Exception: TypeError: getVar() takes at least 3 arguments (2 given) 
+0

Функция getVar {getVar (var, d, exp = False)} определена в data.py (доступной @ битбоке/lib/bb), которая внутренне вызывает {d.getVar (var, exp)}. Я добавил «данные импорта» в bb-файле, но он дает синтаксический анализ при импорте. тот же вопрос, когда я пытаюсь добавить в файл inc также. Можете ли вы помочь импортировать этот data.py в слой «meta-raspberrypi». – Ravi

ответ

2

Я столкнулся с той же проблемой и фиксируется переход на Морти ветви на мета-raspberrypi слой, который так же, как ветвь моей убогая среды.

+0

Спасибо за информацию. это помогло в решении проблемы. Я переключился на кроготную ветвь, так как ядовитая ветка - это крогот, и это сработало. – Ravi