Changes between Version 12 and Version 13 of troubleshooting

02/18/19 14:14:19 (4 years ago)
Sanahuja Guillaume



  • troubleshooting

    v12 v13  
    2121* check if ''/dev/shm'' is clean. It should not contain files like ''sem.simu_*'' or ''simu_*''. The files are shared memories between control and simulation part; they should be destroyed when all programs are closed. You can safely remove it manually if not.
    2222* if problem is still present, make [ a new ticket] describing your problem and the output message of the simulator.
     24== Simulator does not start (libGL error) ==
     26If you have a message like this one at executing the simulator:
     28libGL error: unable to load driver:
     31The idea is that we're using the system video card driver since it's not included in robomap3.
     33The driver itself (eg: should be loaded automatically (from /usr/lib/x86_64-linux-gnu/dri/). But this driver may not succesfully load since it requires some specific library versions that may not match robomap3's.
     35To debug this you should launch your 3D graphic program (eg: simulator) with the LIBGL_DEBUG environment variable set to verbose.
     36For example
     38$ LIBGL_DEBUG=verbose ./LineFollower_simulator_nrt -n x4_0 -t x4 -a -p 9000 -x setup_x4.xml (...)
     40Notice the line that look like {{{ version `CXXABI_1.3.9' not found (required by /usr/lib/x86_64-linux-gnu/dri/ }}}.
     41This means that the local system driver needs a version of that defines the symbol CXXABI_1.3.9 (meaning application binary interface version 1.3.9).
     42The version of libstdc++ included in robomap3 probably doesn't define this symbol. You can make sure with
     44strings /.../robomap3/1.7.3/core2-64/sysroots/core2-64-poky-linux/usr/lib/ | grep CXXABI_
     46So we need to preload the libstdc++ library of the system to avoid robomap3 one to be loaded.
     47To achieve this we need to set the LD_PRELOAD environment variable like this
     49LD_PRELOAD=/usr/lib/x86_64-linux-gnu/ ./LineFollower_simulator_nrt ...
     53Stopping here may be enough, but you then can see errors like {{{ undefined symbol: nouveau_drm_new }}}.
     55Same problem: the driver needs a version of a library (here which defines a specific symbol that doesn't exist in robomap3 version (yet).
     57Same solution: preload the local system library.
     58Repeat this until all unresolved symbols are gone.
     60* On ubuntu 16.10 with robomap3 1.7.3, I ended up with the following
     62LD_PRELOAD=/usr/lib/x86_64-linux-gnu/  ./LineFollower_simulator_nrt -n x4_0 -t x4 ...
     65* On mint 19.1 with robomap 2.1.3, I ended up with the following
     67LD_PRELOAD=/lib/x86_64-linux-gnu/ ./LineFollower_simulator_nrt -n x4_0 -t x4 ...
     71To avoid setting this variable every time, you can modify the script used to launch the program (usually in build/bin, eg: and add this line __after__ the first one
     73export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/
    2476== Problem when updating the repositories ==