2017-04-01 1 views
0

J'essaye d'installer Oracle JDK sur ma compilation yocto car c'est nécessaire pour construire l'API Java OpenCV.Installation d'Oracle JDK sur Yocto build

Ceci est mon fichier de configuration:

MACHINE ??= "intel-corei7-64" 

DISTRO ?= "poky" 

PACKAGE_CLASSES ?= "package_deb" 

SDKMACHINE ?= "x86_64" 

EXTRA_IMAGE_FEATURES ?= "debug-tweaks" 

USER_CLASSES ?= "buildstats image-mklibs image-prelink" 

PATCHRESOLVE = "noop" 

BB_DISKMON_DIRS = "\ 
    STOPTASKS,${TMPDIR},1G,100K \ 
    STOPTASKS,${DL_DIR},1G,100K \ 
    STOPTASKS,${SSTATE_DIR},1G,100K \ 
    STOPTASKS,/tmp,100M,100K \ 
    ABORT,${TMPDIR},100M,1K \ 
    ABORT,${DL_DIR},100M,1K \ 
    ABORT,${SSTATE_DIR},100M,1K \ 
    ABORT,/tmp,10M,1K" 


PACKAGECONFIG_append_pn-qemu-native = " sdl" 
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" 

CONF_VERSION = "1" 

# Modify the following line accoring to your Host Machine setup 
# Example: CPU with 6 core 12 threads use the following configuration. 
BB_NUMBER_THREADS = '12' 
PARALLEL_MAKE = '-j 12' 

# Java installation 
IMAGE_INSTALL_append += " gtkperf libxslt oracle-jse-jre " 
LICENSE_FLAGS_WHITELIST += "oracle_java" 
PREFERRED_VERSION_xserver-nodm-init = "1.0" 


# OpenCV installation 
CORE_IMAGE_EXTRA_INSTALL += "opencv opencv-samples libopencv-core-dev libopencv-highgui-dev libopencv-imgproc-dev libopencv-objdetect-dev libopencv-ml-dev" 

bblayers.conf est correctement réglé. J'utilise une branche morty pour chaque couche. Pour la construction, je lance simplement la commande:

bitbake core-image-sato

La fin de la construction avec succès, mais je me retrouve avec l'erreur suivante sur la machine cible:

[email protected]:~# java -version 
-sh: /usr/bin/java: No such file or directory 

Mais

[email protected]:/usr/bin# ls -l | grep java 
lrwxrwxrwx 1 root root  31 Apr 1 11:40 java -> /usr/share/jre1.8.0_91/bin/java 

Et en regardant dans ledit répertoire

[email protected]:/usr/share/jre1.8.0_91/bin# ls -l 
total 388 
lrwxrwxrwx 1 root root  8 Apr 1 11:40 ControlPanel -> jcontrol 
-rwxr-xr-x 1 1001 1001 5080 Apr 1 09:14 java 
-rwxr-xr-x 1 1001 1001 103920 Apr 1 09:14 javaws 
-rwxr-xr-x 1 1001 1001 6264 Apr 1 2016 jcontrol 
-rwxr-xr-x 1 1001 1001 5208 Apr 1 09:14 jjs 
-rwxr-xr-x 1 1001 1001 5208 Apr 1 09:14 keytool 
-rwxr-xr-x 1 1001 1001 5416 Apr 1 09:14 orbd 
-rwxr-xr-x 1 1001 1001 5224 Apr 1 09:14 pack200 
-rwxr-xr-x 1 1001 1001 5264 Apr 1 09:14 policytool 
-rwxr-xr-x 1 1001 1001 5208 Apr 1 09:14 rmid 
-rwxr-xr-x 1 1001 1001 5216 Apr 1 09:14 rmiregistry 
-rwxr-xr-x 1 1001 1001 5232 Apr 1 09:14 servertool 
-rwxr-xr-x 1 1001 1001 5448 Apr 1 09:14 tnameserv 
-rwxr-xr-x 1 1001 1001 200400 Apr 1 09:14 unpack200 

Dois-je faire quelque chose de plus pour construire correctement l'image? Y at-il un problème avec mes fichiers de configuration? Quelqu'un a rencontré la même erreur?

Répondre

0

je suis tombé sur le même problème, et avec une aide généreuse donnée par Fabio Berton de O.S. Systems, nous avons découvert que le problème est lié au fait que /usr/bin/java dépend de /lib64/ld-linux-x86-64.so.2.

Vous pouvez vérifier cela en ouvrant un shell à l'intérieur de la cible et en faisant strings /usr/lib/jvm/java-8-oracle/bin/java.

Nous avons également constaté que /lib/ld-linux-x86-64.so.2 est un lien symbolique vers /lib/ld-2.26.so.

Donc, tout ce que vous avez à faire est de créer un oracle-jse-jdk_1.7.0.bbappend comme ceci:

FILES_${PN} += "/lib64/ld-linux-x86-64.so.2" 

do_install_append() { 
    install -d ${D}/lib64 
    cd ${D}/lib64 
    ln -s ../lib/ld-2.26.so ld-linux-x86-64.so.2 
} 

Cordialement, Bernardo.

0

Je ne pouvais pas installer Oracle JDK mais j'ai réussi à installer openjdk-8 et activer avec succès l'API Java OpenCV.

I made a guide sur la façon d'accomplir cela.

+0

Ce lien est cassé! – Skynet