This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Build Errors in Arago Project

Hi,

We are trying to build the Arago project with the support for Browser. For the same,  building ProseccorSDK was performed by making reference to http://processors.wiki.ti.com/index.php/Processor_SDK_Building_The_SDK.

To add the function of the browser,  "meta-browser" , "meta-gnome" have been added to "./build/conf/bblayers.conf".

and ."IMAGE_INSTALL_append = " chromium libgnome-keyring"" has been added to the last line of the "./build/conf/local.conf".

Then the following command was given:

"MACHINE=am57xx-evm bitbake arago-core-tisdk-image"

This command results in an error "configure:13302: error: possibly undefined macro: AM_NLS" 

Any clues to resolve this issue are higly appreciated.

Regards,
Abhiroop

  • Hi,

    I will forward this to the software team.
  • Hi,

    Have a look at the following mail-thread:
    lists.openembedded.org/.../101282.html

    It proposes a fix for this error.

    Best Regards,
    Yordan
  • Hi,

    I suffer from the same error, too.

    I tried by making reference to "lists.openembedded.org/.../101282.html", but an error wasn't evaded after all.

    Are there other measures?

    >...........
    >configure.in:21: warning: AM_NLS is m4_require'd but not m4_defun'd
    >/home/guest/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa15hf-vfp-neon-linux-gnueabi/libgnome-keyring/2.32.0-r3/build/aclocal-copy/intltool.m4:27: IT_PROG_INTLTOOL is expanded from...
    >configure.in:21: the top level
    >autoreconf: running: /home/guest/tisdk/build/arago-tmp-external-linaro-toolchain/sysroots/x86_64-linux/usr/bin/autoconf --force
    >configure.in:21: warning: AM_NLS is m4_require'd but not m4_defun'd
    >aclocal.m4:512: IT_PROG_INTLTOOL is expanded from...
    >configure.in:21: the top level
    >configure:13302: error: possibly undefined macro: AM_NLS
    >      If this token and others are legitimate, please use m4_pattern_allow.
    >      See the Autoconf documentation.
    >autoreconf: /home/guest/tisdk/build/arago-tmp-external-linaro-toolchain/sysroots/x86_64-linux/usr/bin/autoconf failed with exit status: 1
    >ERROR: autoreconf execution failed.
    >WARNING: /home/guest/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa15hf-vfp-neon-linux-gnueabi/libgnome-keyring/2.32.0-r3/temp/run.do_configure.46204:1 exit 1 from
    >  exit 1
    >ERROR: Function failed: do_configure (log file is located at /home/guest/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa15hf-vfp-neon-linux-gnueabi/libgnome-keyring/2.32.0-r3/temp/log.do_configure.46204)


    Best Regards,
    Masanori

  • Hi,

    I could evade an error by adding gettext-native to /home/guest/tisdk/sources/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_2.32.0.bb.

    but, different error occurred.

    Please tell me the means to evade a problem.

    >Log data follows:
    >| DEBUG: Executing python function sysroot_cleansstate
    >| DEBUG: Python function sysroot_cleansstate finished
    >| DEBUG: Executing shell function do_configure
    >| Updating projects from gyp files...
    >| Requested 'egl >= 9.1.3' but version of EGL is 7.10
    >| Requested 'wayland-egl >= 9.1.3' but version of pvr_wlegl is 7.10
    >| gyp: Call to 'pkg-config --cflags "egl >= 9.1.3" "wayland-client >= 1.4.0" "wayland-cursor >= 1.4.0" "wayland-egl >= 9.1.3" xkbcommon' returned exit status 1.
    >| WARNING: /home/guest/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa15hf-vfp-neon-linux-gnueabi/chromium/40.0.2214.91-r0/temp/run.do_configure.31835:1 exit 1 from
    >| build/gyp_chromium --depth=. -Dangle_use_commit_id=0 -Dclang=0 -Dhost_clang=0 -Ddisable_fatal_linker_warnings=1 -Dlinux_use_gold_binary=0 -Dlinux_use_gold_flags=0 -I /home/guest/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa15hf-vfp-neon-linux-gnueabi/chromium/40.0.2214.91-r0/oe-defaults.gypi -I /home/guest/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa15hf-vfp-neon-linux-gnueabi/chromium/40.0.2214.91-r0/include.gypi -f ninja
    >| ERROR: Function failed: do_configure (log file is located at /home/guest/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa15hf-vfp-neon-linux-gnueabi/chromium/40.0.2214.91-r0/temp/log.do_configure.31835)
    >ERROR: Task 201 (/home/guest/tisdk/sources/meta-browser/recipes-browser/chromium/chromium_40.0.2214.91.bb, do_configure) failed with exit code '1'


    Best Regards,
    Masanori
  • Hi Masanori,

    This chromium ozone/wayland error message is due to the graphic libraries that were installed for the TI arago SDK.

    For TI am437x machine type, the arago configuration file will sets the omap5-sgx-ddk-um-linux and libgbm packages to build and install the required graphic libraries (libGL, libEGL, libGLES, etc). The version of graphic libraries work fine with wayland, but are outdated for chromium's ozone/wayland browser.

    The simple solution would be to update the omap5-sgx-ddk-um-linux package recipe to compile & install updated graphic library versions. I don't know if updated graphic libraries will render the GPU or other graphic processes useless on the TISDK.

    Outside of the TI arago SDK, building chromium's ozone/wayland browser will, by default, look to the mesa package to provide the required graphic libraries. Using the fido branch of openembedded, we have access to build mesa v10.4.4 with our arago OpenEmbedded project.This versions should be up to date for chromium's ozone.

    Under your arago project's configuration file, you can add 'opengl' to the DISTRO_FEATURES variable and set PREFERRED_PROVIDERS for the graphic libraries:
    PREFERRED_PROVIDER_virtual/egl      = "mesa"
    PREFERRED_PROVIDER_virtual/libgles2 = "mesa"
    PREFERRED_PROVIDER_virtual/libgles1 = "mesa"
    PREFERRED_PROVIDER_virtual/libgl    = "mesa"
    However, the arago configuration distro is very precisely configured. Setting the above variables will break the build, because mesa still conflicts with omap5-sgx-ddk-um-linux when building libgbm. Mesa needs to be modified to work correctly with the tisdk arago image.

    Would be interested in collaborating together to get mesa, chromium ozone, and the tisdk all working together correctly? It would be great if a TI representative or developer could assist on this effort, but since a chromium browser is outside of the scope of the tisdk, I do not think this would be one of their development tasks.

    I have found a temporary fix that you can try. Under the chromium package work directory, you can modify the wayland.gyp file. Inside this file, set your current graphic library version in place of what is currently set. You can find the wayland.gyp file under this directory:
    build/arago-tmp-external-linaro-toolchain/work/<MACHINEARCH>/chromium/40.0.2214.91-r0/chromium-40.0.2214.91/ozone/wayland

    After modifying the wayland.gyp file, I had chromium ozone successfully build and installed with the tisdk image. However, on the hardware, I ran into an error message. I believe the error message is because the up to date graphic library versions were not used to build chromium.

    root@am437x-evm:~# [1139:1139:0502/134655:ERROR:gpu_child_thread.cc(145)] Exiting GPU process due to errors during initialization
    [1110:1110:0502/134655:ERROR:desktop_window_tree_host_ozone.cc(578)] Not implemented reached in virtual void views::DesktopWindowTreeHostOzone::SetWindowIcons(const gfx::ImageSkia&, const gfx::ImageSkia&)
    [1110:1110:0502/134655:ERROR:desktop_drag_drop_client_wayland.cc(14)] Not implemented reached in views::DesktopDragDropClientWayland::DesktopDragDropClientWayland(aura::Window*)
    [1110:1110:0502/134655:ERROR:desktop_window_tree_host_ozone.cc(599)] Not implemented reached in virtual void views::DesktopWindowTreeHostOzone::OnRootViewLayout()
    [1110:1110:0502/134655:ERROR:ozone_webui.cc(48)] Not implemented reached in virtual scoped_ptr<gfx::ScopedPangoFontDescription> views::OzoneWebUI::GetDefaultPangoFontDescription() const
    [1110:1110:0502/134655:ERROR:ozone_webui.cc(42)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRenderParams() const
    [1110:1110:0502/134655:ERROR:ozone_webui.cc(53)] Not implemented reached in virtual double views::OzoneWebUI::GetFontDPI() const
    [1110:1110:0502/134655:ERROR:desktop_window_tree_host_ozone.cc(620)] Not implemented reached in virtual void views::DesktopWindowTreeHostOzone::SizeConstraintsChanged()
    [1110:1110:0502/134655:ERROR:ozone_webui.cc(42)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRenderParams() const
    [1110:1110:0502/134655:ERROR:ozone_webui.cc(42)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRenderParams() const
    [1110:1110:0502/134655:ERROR:ozone_webui.cc(42)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRenderParams() const
    [1110:1110:0502/134655:ERROR:ozone_webui.cc(42)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRenderParams() const
    [1110:1110:0502/134655:ERROR:ozone_webui.cc(42)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRenderParams() const
    [1110:1110:0502/134655:ERROR:ozone_webui.cc(42)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRenderParams() const
    [1110:1110:0502/134655:ERROR:ozone_webui.cc(42)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRenderParams() const
    [1110:1110:0502/134655:ERROR:desktop_window_tree_host_ozone.cc(599)] Not implemented reached in virtual void views::DesktopWindowTreeHostOzone::OnRootViewLayout()
    [1110:1110:0502/134655:ERROR:desktop_window_tree_host_ozone.cc(599)] Not implemented reached in virtual void views::DesktopWindowTreeHostOzone::OnRootViewLayout()
    [1110:1110:0502/134655:ERROR:ozone_webui.cc(42)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRenderParams() const
    [1110:1110:0502/134655:ERROR:ozone_webui.cc(42)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRenderParams() const
    [1110:1110:0502/134655:ERROR:ozone_webui.cc(42)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRenderParams() const
    [1110:1110:0502/134656:ERROR:surface_factory_ozone.cc(53)] Not implemented reached in virtual scoped_ptr<ui::SurfaceOzoneCanvas> ui::SurfaceFactoryOzone::CreateCanvasForWidget(gfx::AcceleratedWidget)
    [1110:1110:0502/134656:FATAL:software_output_device_ozone.cc(22)] Failed to initialize canvas
    /usr/bin/google-chrome: line 11:  1110 Aborted                 /usr/bin/chromium/chrome ${CHROME_EXTRA_ARGS} $@



    Following the Linux Foundation's Yocto Project build systems conventions, we could create a new DISTRO. The DISTRO could activate bitbake append files to mesa, libgbm, and omap5-sgx-ddk-um-linux package recipes. The append files would have each package install only what is needed from each package and none of the duplicate/conflicting library files.

    If we are able to modify the graphic libraries that are installed onto the hardware to work with the tisdk's wayland, qt, and the chromium ozone browser, we will have no guarantee that the TI GPU is running correctly. In my previous experience with running chromium on TI products, the GPU needs to be working to get the expected performance. This is why X11 chromium/firefox browsers are useless with TI products.

    It would be great to have assistance from a developer or dev team of the TI community to help modify, test, and verify that changes in the ti arago openembedded project still allow the GPU to run correctly with the changes to the graphic libraries.

    Let me know if you have any success or results with getting chromium built with the tisdk.

    Cheers,
    -Eric Z

  • Eric Zaluzec said:
    The simple solution would be to update the omap5-sgx-ddk-um-linux package recipe to compile & install updated graphic library versions.

    A few weeks ago Proc SDK 2.00.02 was released, which included a major graphics upgrade to DDK 1.14.  Have you tried the updated graphics?

    Can you provide more details on why you were trying to pull in mesa?  What specific components from mesa are needed?  Specific components from Mesa such as libgbm are implemented by the TI graphics driver.

  • Hey Brad,

    I do not believe MESA is providing anything that the TISDK is not, with regards to what chromium needs to build. The only issue seems to be with version of the library files.

    Updating projects from gyp files...
    Requested 'egl >= 9.1.3' but version of EGL is 8.14
    Requested 'wayland-egl >= 9.1.3' but version of pvr_wlegl is 8.14
    gyp: Call to 'pkg-config --cflags "egl >= 9.1.3" "wayland-client >= 1.4.0" "wayland-cursor >= 1.4.0" "wayland-egl >= 9.1.3" xkbcommon' returned exit status 1.

    I will look at the Proc SDK 2.00.02 and use these updated graphic files to build. 

    Thank you.

    -Eric Z

  • You'll still need to bypass the version check to get it to build, though given the graphics drivers are years newer I'm hopeful that will make a difference. If not, I'll try to get some help from the graphics team to see if we can get passed whatever issues come up. Getting to the latest graphics drivers is definitely the first step along the way.
  • Hi Eric/Brad,

    I am trying to add chrome browser support to AM437X platform.

    My environment is -
    1. Hardware - AM437X EVM.
    2. Build environment ---- Krogoth branch --- The config file is "arago-krogoth-config.txt"
    3 The chrome browser sources are taken from the following link -
    meta-browser,github.com/.../meta-browser,krogoth,393d2aa15da21ffa532c3cd77d8cb91de997cd31,layers=
    [chromium_48.0.2548.0]

    I am also stuck in the same issue. The chrome is built, but when I try to run the browser, I get the following error --

    root@am437x-evm:~# google-chrome

    [982:982:0902/122856:ERROR:ozone_webui.cc(51)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRendet
    [1013:1013:0902/122856:ERROR:sandbox_linux.cc(338)] InitializeSandbox() called with multiple threads in process gpu-process
    [1013:1013:0902/122856:ERROR:gpu_child_thread.cc(257)] Exiting GPU process due to errors during initialization
    [982:982:0902/122856:ERROR:desktop_window_tree_host_ozone.cc(572)] Not implemented reached in virtual void views::DesktopWindowTreeHostOzone::)
    [982:982:0902/122856:ERROR:ozone_webui.cc(60)] Not implemented reached in virtual void views::OzoneWebUI::GetDefaultFontDescription(std::__cxxt
    [982:982:0902/122856:ERROR:ozone_webui.cc(51)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRendet
    [982:982:0902/122856:ERROR:ozone_webui.cc(51)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRendet
    [982:982:0902/122856:ERROR:ozone_webui.cc(51)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRendet
    [982:982:0902/122856:ERROR:ozone_webui.cc(51)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRendet
    [982:982:0902/122856:ERROR:ozone_webui.cc(51)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRendet
    [982:982:0902/122856:ERROR:ozone_webui.cc(51)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRendet
    [982:982:0902/122856:ERROR:ozone_webui.cc(51)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRendet
    [982:982:0902/122856:ERROR:ozone_webui.cc(51)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRendet
    [982:982:0902/122856:ERROR:ozone_webui.cc(51)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRendet
    [982:982:0902/122856:ERROR:desktop_window_tree_host_ozone.cc(572)] Not implemented reached in virtual void views::DesktopWindowTreeHostOzone::)
    [982:982:0902/122856:ERROR:ozone_webui.cc(51)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRendet
    [982:982:0902/122856:ERROR:ozone_webui.cc(51)] Not implemented reached in virtual gfx::FontRenderParams views::OzoneWebUI::GetDefaultFontRendet
    [982:1000:0902/122856:ERROR:browser_gpu_channel_host_factory.cc(132)] Failed to launch GPU process.
    [982:982:0902/122856:FATAL:display.cc(254)] The browser process has attempted to start the GPU process in software rendering mode. Software re'
    #0 0x00007fcb2b5e <unknown>
    #1 0x00007fcc222e <unknown>
    #2 0x00008030e09e <unknown>
    #3 0x0000817210ca <unknown>
    #4 0x00008171f09e <unknown>
    #5 0x00008171dc92 <unknown>
    #6 0x00008169ece6 <unknown>
    #7 0x00008169f8ba <unknown>
    #8 0x00007fcf592a <unknown>
    #9 0x00007fcc5e46 <unknown>
    #10 0x00007fcc63c2 <unknown>
    #11 0x00007fcc6692 <unknown>
    #12 0x00007fcaca1e <unknown>
    #13 0x00007fcd36bc <unknown>
    #14 0x00007fb2ccf6 <unknown>
    #15 0x000081658c0e <unknown>
    #16 0x000081500d8a <unknown>
    #17 0x000081500c74 <unknown>
    #18 0x00007fc842b0 <unknown>
    #19 0x00007fc83b0a <unknown>
    #20 0x00007f9b3194 ChromeMain
    #21 0x0000b65dc776 __libc_start_main
    /usr/bin/google-chrome: line 11: 982 Aborted (core dumped) /usr/bin/chromium/chrome ${CHROME_EXTRA_ARGS} $@

    As I understand fro your post, you were also stuck at a similar problem. Were you able to solve this?

    Can you please let me know the fix for this problem.

    Regards,
    Vijay
  • For a stand-alone Chromium browser, we're working with the GPU vendor on some driver updates.  I expect it will take a while (6 months?) to get the updated graphics libraries integrated into an SDK where we can have the stand-alone browser.

    In the interim, Qt has a component called QtWebEngine which integrates the complete chromium browser.  For right now, we're looking to add that into our upcoming SDKs.  One of our developers managed to get it working on top of the SDK 3.00 release with the following steps:

    1. Used processor-sdk-03.00.00.04-linux-config.txt for a configuration.
    2. Built the arago-core-tisdk-image.
    3. Applied one patch: https://codereview.qt-project.org/#/c/159856/
    4. Built qtwebengine.
    5. Built qtwebchannel.
    6. Copied images to file system.
    7. Started Weston.
    8. export SSL_CERT_FILE="/etc/ssl/certs/ca-certificates.crt"
    9. Run /usr/share/qt5/examples/webenginewidgets/demobrowser/demobrowser.

  • Thansk a lot for the detailed steps. I was able to get it working.