Troubleshooting

Here are some common problems you might encounter while trying to apply a Screen and Windowing patch.

Why do I get a "sh: /sbin/screen: cannot execute - Permission denied" message when I run screen?

It's likely that you have extracted your Screen and Windowing patch onto a DOS-formatted device, but did not set the appropriate option when starting your devb process. You will need to do the following:

  1. Kill your devb process:

    slay devb-TARGET-SPECIFIC

  2. Restart your devb process with the dos exe=all option:

    devb-TARGET-SPECIFIC blk automount=hd0@dos:SCREEN-DIR dos exe=all

    For example, if you have an OMAP3 board, your Screen and Windowing patch directories were extracted to a DOS-formatted device, and you want to specify the mount of /, then your commands would be:

    slay devb-mmcsd-omap3

    devb-mmcsd-omap3 blk automount=hd0@dos:/ dos exe=all

  3. Restart screen by using the following command:

    SCREEN-DIR/sbin/screen

Why do I get still get "sh: /sbin/screen: cannot execute - No such file or directory" or "sh: /sbin/screen: cannot execute - Permission denied" messages even after I've started my devb process with my SCREEN-DIR and dos exe=all option?

It's possible that you have multiple devb processes running, one of which has the incorrect mount or is missing the dos exe=all option. You will need to do the following:

  1. Check the processes you are running using the following command:

    pidin ar

    From the output of pidin ar, look for the devb processes.

    pid Arguments
    1 procnto-instr -v
    4098 devc-seromap -e -F -p -b115200 -c48000000/16 0x49020000^2,74
    4099 slogger
    4100 pipe
    4101 i2c-omap35xx -a2 -i57 -p0x48072000
    4102 i2c-omap35xx -a1 -i56 -p0x48070000
    4103 io-audio -domap35xx-twl4030
    4104 devb-mmcsd-omap3 cam quiet blk cache=2m mmcsd noac12
    4105 spi-master -d omap3530
    16394 io-usb -d ehci-omap3 ioport=0x48064800,irq=77
    16395 io-pkt-v4 -dsmsc9500 -ptcpip
    20492 sh
    28685 devb-mmcsd-omap3 blk automount=hd0@dos:/ dos exe=all
                                    
    In this example, you can see that there are mutliple devb processes running:
    4104 devb-mmcsd-omap3 cam quiet blk cache=2m mmcsd noac12
    and
    28685 devb-mmcsd-omap3 blk automount=hd0@dos:/ dos exe=all
  2. Kill ALL running devb processes; use the following command on each running devb process:

    slay devb-TARGET-SPECIFIC

  3. Restart your devb process with the correct screendirectory location and option:

    devb-TARGET-SPECIFIC blk automount=hd0@dos:SCREEN-DIR dos exe=all

  4. Restart screen by using the following command:

    SCREEN-DIR/sbin/screen

Why do I get a "ldd:FATAL: Could not load library libWFD.so.1" message when I run screen?

It's likely that you don't have your LD_LIBRARY_PATH environment variable set with the location of the screen and graphics libraries. You will need to do the following:

  1. Set your LD_LIBRARY_PATH environment variable:

    export LD_LIBRARY_PATH= SCREEN-DIR/usr/lib :SCREEN-DIR/lib :SCREEN-DIR/lib/dll :$LD_LIBRARY_PATH

  2. Restart screen by using the following command:

    SCREEN-DIR/sbin/screen

Why do I get a "ldd:FATAL: Could not load library libdisputil.so.2" message when I run screen?
You may also see these simliar messages :
  • ldd:FATAL: Could not load library libhiddi.so.1
  • ldd:FATAL: Could not load library libm.so.2

It's likely that you don't have your LD_LIBRARY_PATH environment variable set with the location of these shared libraries. You will need to do the following:

  1. Set your LD_LIBRARY_PATH environment variable to add the directory location of where these shared libraries reside on your target system. In this example, the location of the shared libraries is denoted by SO-LIBRARY-DIR.

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:SO-LIBRARY-DIR

  2. Restart screen by using the following command:

    SCREEN-DIR/sbin/screen

Why do I only get a "eglGetDisplay: function succeeded" message when I run my application?
It's likely that you haven't set your GRAPHICS_ROOT environment variable. You will need to do the following:
  1. Stop screen by using the following command:

    slay screen

  2. Set your GRAPHICS_ROOT environment variable:

    export GRAPHICS_ROOT=SCREEN-DIR/usr/lib/graphics/TARGET-SPECIFIC

  3. Restart screen by using the following command:

    SCREEN-DIR/sbin/screen

  4. Try running your application again.
Why do I get only a solid colored screen when I run my OpenGL ES 2.x application on my i.MX 6 board?

It's likely that, due to a known issue, you don't have libGLSLC.so in your LD_LIBRARY_PATH environment variable.

If running SCREEN-DIR/usr/bin/gles1-gears works, but running SCREEN-DIR/usr/bin/gles2-gears doesn't, then chances are you'll need to do the following:
  1. Stop screen by using the following command:

    slay screen

  2. Copy libGLSLC.so from

    SCREEN-DIR/usr/lib/graphics/TARGET-SPECIFIC

    to

    SCREEN-DIR/usr/lib/

    For example, for an i.MX 6 board with the screen directory location mounted to /, the command would be:

    cp /usr/lib/graphics/imx6/libGLSLC.so /usr/lib/

  3. Restart screen by using the following command:

    SCREEN-DIR/sbin/screen

  4. Try running your OpenGL ES 2.x application again.