क्यूटी एप्लिकेशन libEGL के कारण काम नहीं करते हैं


10

मैं Qt5 में RPi2 के लिए कुछ (सरल) GUI एप्लिकेशन विकसित कर रहा हूं। सेटअप: कोड का विकास विंडोज लैपटॉप पर Netbeans + Qt डिज़ाइनर का उपयोग करके किया जाता है और आरपीआई पर चलने वाले आरपीआई पर बनाए गए उपकरण जो इसके साथ आते हैं (g ++ 4.9.2, Qt 5.3.2, पैकेज qt5-default) के साथ। यहाँ वर्णित है । यह सेटअप सामान्य रूप से ठीक काम करता है।

हालांकि, यहां तक ​​कि एक न्यूनतम उदाहरण भी काम नहीं करता है, हालांकि ठीक बनाता है। यह शुरू करने में विफल रहता है, और libEGL warning: DRI2: failed to authenticateप्रकट होता है कि क्या आवेदन टर्मिनल से शुरू किया गया है।

आरपी पर क्यूटी नहीं चल सकता है? अन्यथा कृपया इस समस्या को हल करने में मेरी मदद करें।

EDIT1: यहां मेरे पास findएलेक्सी वेस्नीन की तरह कमांड करने के बाद क्या सुझाव दिया गया है:

/usr/lib/arm-linux-gnueabihf/libEGL.so
/usr/lib/arm-linux-gnueabihf/libEGL.so.1
/usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0
/usr/lib/chromium-browser/libs/libEGL.so
/usr/lib/chromium-browser/libs/libEGL.so.TOC
/opt/vc/lib/libEGL.so
/opt/vc/lib/libEGL_static.a


/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2
/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
/usr/lib/arm-linux-gnueabihf/libGLESv2.so
/usr/lib/chromium-browser/libs/libGLESv2.so
/usr/lib/chromium-browser/libs/libGLESv2.so.TOC
/opt/vc/lib/libGLESv2_static.a
/opt/vc/lib/libGLESv2.so

EDIT2: अतिरिक्त जानकारी के साथ सूची:

-rw-r--r-- 1 pi pi 171312 Nov 11 14:20 /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0
-rwxr-xr-x 1 root root 107880 Nov  2 22:27 /usr/lib/chromium-browser/libs/libEGL.so
-rw-r--r-- 1 root root 14189 Nov  2 22:27 /usr/lib/chromium-browser/libs/libEGL.so.TOC
-rw-r--r-- 1 root root 202072 Dec 19 21:01 /opt/vc/lib/libEGL.so
-rw-r--r-- 1 root root 245356 Dec 19 21:19 /opt/vc/lib/libEGL_static.a



-rw-r--r-- 1 pi pi 29996 Jan 12  2016 /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
-rwxr-xr-x 1 root root 2632816 Nov  2 22:27 /usr/lib/chromium-browser/libs/libGLESv2.so
-rw-r--r-- 1 root root 29617 Nov  2 22:27 /usr/lib/chromium-browser/libs/libGLESv2.so.TOC
-rw-r--r-- 1 root root 100008 Dec 19 21:19 /opt/vc/lib/libGLESv2_static.a
-rw-r--r-- 1 root root 105768 Nov 25 17:35 /opt/vc/lib/libGLESv2.so

EDIT3:

linux-vdso.so.1 (0x7ecef000)
    /usr/lib/arm-linux-gnueabihf/libarmmem.so (0x76f53000)
    libQt5Widgets.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5 (0x76a25000)
    libQt5Gui.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Gui.so.5 (0x76655000)
    libQt5Core.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5 (0x761d0000)
    libGLESv2.so => /opt/vc/lib/libGLESv2.so (0x761ab000)
    libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x76183000)
    libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x760a6000)
    libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x7602b000)
    libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x75ffe000)
    libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x75ebd000)
    libgobject-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgobject-2.0.so.0 (0x75e63000)
    libglib-2.0.so.0 => /lib/arm-linux-gnueabihf/libglib-2.0.so.0 (0x75d5f000)
    libX11.so.6 => /usr/lib/arm-linux-gnueabihf/libX11.so.6 (0x75c49000)
    libGLESv2.so.2 => /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2 (0x75c31000)
    /lib/ld-linux-armhf.so.3 (0x54b67000)
    libpng12.so.0 => /lib/arm-linux-gnueabihf/libpng12.so.0 (0x75c01000)
    libharfbuzz.so.0 => /usr/lib/arm-linux-gnueabihf/libharfbuzz.so.0 (0x75ba5000)
    libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x75b7d000)
    libicui18n.so.52 => /usr/lib/arm-linux-gnueabihf/libicui18n.so.52 (0x759bd000)
    libicuuc.so.52 => /usr/lib/arm-linux-gnueabihf/libicuuc.so.52 (0x75874000)
    libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x75861000)
    librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x7584a000)
    libEGL.so => /opt/vc/lib/libEGL.so (0x75810000)
    libbcm_host.so => /opt/vc/lib/libbcm_host.so (0x757ea000)
    libvchiq_arm.so => /opt/vc/lib/libvchiq_arm.so (0x757d4000)
    libvcos.so => /opt/vc/lib/libvcos.so (0x757ba000)
    libffi.so.6 => /usr/lib/arm-linux-gnueabihf/libffi.so.6 (0x757aa000)
    libpcre.so.3 => /lib/arm-linux-gnueabihf/libpcre.so.3 (0x75736000)
    libxcb.so.1 => /usr/lib/arm-linux-gnueabihf/libxcb.so.1 (0x75717000)
    libdrm.so.2 => /usr/lib/arm-linux-gnueabihf/libdrm.so.2 (0x756fa000)
    libglapi.so.0 => /usr/lib/arm-linux-gnueabihf/libglapi.so.0 (0x756c1000)
    libfreetype.so.6 => /usr/lib/arm-linux-gnueabihf/libfreetype.so.6 (0x75629000)
    libgraphite2.so.3 => /usr/lib/arm-linux-gnueabihf/libgraphite2.so.3 (0x755fb000)
    libicudata.so.52 => /usr/lib/arm-linux-gnueabihf/libicudata.so.52 (0x73f7e000)
    libXau.so.6 => /usr/lib/arm-linux-gnueabihf/libXau.so.6 (0x73f73000)
    libXdmcp.so.6 => /usr/lib/arm-linux-gnueabihf/libXdmcp.so.6 (0x73f67000)

क्या आप एप्लिकेशन को दूरस्थ रूप से चलाने का प्रयास कर रहे हैं?
गोल्डीलॉक्स

नहीं, मैं इसे आरपीआई से चलाता हूं
एंड्री प्रो

दूरदराज के मामले में @goldilocks एक त्रुटि संदेशों चल अलग होगा
एलेक्सी Vesnin

जवाबों:


7

यह एक सामान्य लिनक्स और यूनिक्स समस्या है, कुछ भी पीआई-संबंधी नहीं है। यहाँ समस्या यह है: आपके कामों की सहानुभूति रखने की आवश्यकता है। sudo -sइस तरह के ऑपरेशन के लिए एक रूट बनें और करें । और इसका निवारण करते हैं!

सबसे पहले, उन्हें इस तरह खोजें:

# find / -name libEGL* -type f
# find / -name libGLESv2* -type f

और इस तरह से फ़ाइलों को पूर्ण पथ से जोड़ना है :

# ln -fs /path/to/lib/libEGL.so /usr/lib/arm-linux-gnueabihf/libEGL.so
# ln -fs /path/to/lib/libEGL.so /usr/lib/arm-linux-gnueabihf/libEGL.so.1
# ln -fs /path/to/lib/libGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so
# ln -fs /path/to/lib/libGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2

और ओएस को बताएं कि आपने क्या किया है और इसे इस तरह ध्यान में रखें:

# ldconfig

जिस /path/to/libहिस्से को आपको पूरे रास्ते से बदलना चाहिए वह findकमांड आपको दिखाएगा। और अगर अनपेक्षित उपयोगकर्ता से चल रहा है - सुनिश्चित करें कि यह videoसमूह में है - कभी-कभी अनुमति सेटिंग्स का यह पुराना हिस्सा फ़्लोट करता है। किस प्रकार जांच करें:

# getent group video | cut -d: -f3

यदि यह कुछ नहीं देता है - तो यह ऐसा मामला नहीं है, लेकिन यदि यह एक नंबर देता है, तो अपना उपयोगकर्ता नाम groupsकमांड में टाइप करें - उपयोगकर्ता के लिए एक उदाहरण pi:

# groups pi

यदि यह videoसमूह को नहीं दिखाता है - इसे एक पूरक समूह के रूप में जोड़ें , इस तरह से मुख्य नहीं:

# usermod -a -G video pi

यह उपयोगकर्ता piको videoचीजों को तोड़ने के बिना समूह में जोड़ देगा

अद्यतन: अतिरिक्त जाँच आदेश यह पता लगाने के लिए कि क्या फाइलें हैं:

# find / -name libEGL* -type f -exec ls -la {} \;
# find / -name libGLESv2* -type f -exec ls -la {} \;

अद्यतन # 2: इसे रूट से करने का प्रयास करें:

# ln -fs /opt/vc/lib/libEGL.so /usr/lib/arm-linux-gnueabihf/libEGL.so
# ln -fs /opt/vc/lib/libGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so
# ldconfig

अद्यतन # 3: स्रोत से बगफिक्स के साथ Qt5 का निर्माण।

  • जाना यहां , (-dev संकुल) apt-get के माध्यम से निर्भरता स्थापित
  • जड़ के रूप में apt-get build-dep qt5-default
  • जैसे रूट करते हैं apt-get install libxcb-xinerama0-dev flex bison gperf libicu-dev libxslt-dev ruby libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libdbus-1-dev libfontconfig1-dev libcap-dev libxtst-dev libpulse-dev libudev-dev libpci-dev libnss3-dev libasound2-dev libxss-dev libegl1-mesa-dev gperf bison libasound2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev, उसके बादapt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev

इसके बाद ऐसा करें:

 # git clone https://code.qt.io/qt/qt5.git
 # cd qt5
 # git submodule update --init

उसके बाद ./configure --helpआपके मामले के लिए लिंक आउटपुट और हम जारी रखेंगे

अंतिम अद्यतन: स्रोत निर्माण ने चाल चली, समस्या संकुल में एक पुराने क्यूटी के साथ थी। कॉन्फ़िगरेशन स्ट्रिंग:

 # mkdir qt-build
 # cd qt-build
 # ../configure -opensource -static -confirm-license -release -nomake examples -openssl-runtime -prefix /usr

रास्पबेरी पाई बिल्ड में लगभग 40 घंटे और 6 + जीबी की स्टोरेज स्पेस थी। निर्धारित समस्या


टिप्पणियाँ विस्तारित चर्चा के लिए नहीं हैं; इस वार्तालाप को बातचीत में स्थानांतरित कर दिया गया है ।
स्टीव रोबिलार्ड

1
लगभग 46 घंटे अधिक सटीक होने के लिए
एंड्री प्रो

लेकिन जीत हमारी है, आखिरकार!
एलेक्सी वेसनिन

1
मैं इसे उभारना चाहता हूं - लेकिन 2 साल बाद, पैकेज
मेंटेनर्स के

@UKMonkey न केवल इस मामले ने मुझे अपने स्वाद के लिए लिनक्स डिस्ट्रो बनाने के लिए मजबूर किया है - समस्या अभी भी कई गुना है :(
एलेक्सी वेसिन

0

मेरे मामले में यह मुद्दा तय हो गया

sudo ln -s /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2 /usr/lib/arm-linux-gnueabihf/libGLESv2.so
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.