Permiso denegado en el comando de instalación para recetas de Yocto

Permiso denegado en el comando de instalación para recetas de Yocto

Estoy intentando familiarizarme con el proceso de creación de Yocto y actualmente estoy trabajando con recetas. tengo una receta muy sencilla

DESCRIPTION = "Hello world"

S = "${WORKDIR}"
SRC_URI="file://bye.sh"
LICENSE = "CLOSED"

LIC_FILES_CHKSUM = "file://${S}/README;md5=e584df0feead52ed7de9b60172adc0cf "

#${D} is /usr and ${bindir} is bin 
    do_install() {
         install  -d /test 
        install -m 0777 bye.sh /test
}

Me dijeron que si install no encuentra el directorio, lo creará por usted, ¡pero en este caso no lo hace! El error que me esta dando es

Log data follows:
| DEBUG: Executing shell function do_install
| install: cannot create regular file ‘/usr/bin/bye.sh’: Permission denied
| WARNING: /home/builder/project/runqeme_qemux86/build/tmp/work/i586-poky-linux/directory/1.0-r0/temp/run.do_install.22136:1 exit 1 from 'install -m 0777 bye.sh /usr/bin'
| ERROR: Function failed: do_install (log file is located at /home/builder/project/runqeme_qemux86/build/tmp/work/i586-poky-linux/directory/1.0-r0/temp/log.do_install.22136)

No es que no pueda crear un directorio allí, la receta se niega a almacenar el archivo bash en cualquier lugar a menos que esté en un directorio específico.

Respuesta1

Consulte el amplio pero completoManual de referencia de Yoctoy elejemplo sencilloallá. Muestra que un script de instalación típico moverá archivos a un subdirectorio de ${D}, por ejemplo

install -d ${D}${bindir}

Debes utilizar una táctica similar, por ejemplo install -d ${D}/test, etc. Esta variable se explicaaquí.

Leer sección5.3.13. Instalaciónpara lo que se espera que suceda durante la etapa de instalación.

Respuesta2

No tiene permiso para crear archivos en su directorio de destino, que probablemente sea propiedad del root. Quizás pueda configurar la Dvariable en algún lugar de su directorio personal y luego llamar a do_install.

información relacionada