Troubleshooting

Here are some common problems you might encounter after applying your configuration.

Why is screen (or my Screen application) not running?

It's possible that there was an invalid configuration parameter set or that some of the libraries required for your configuration could not be found. There are two ways to help find out why screen or your Screen application is not running:

  1. Ensure that screen is no longer running on your platform by checking the processes that are running; use the following command:

    pidin ar

    From the output of pidin ar, look for the screen process.

    # pidin ar
         pid Arguments
           1 procnto-smp-instr -v
        4098 devc-seromap -e -p -F -b115200 -c48000000/16 0x48020000^2,106
        4099 slogger
        4100 pipe
        4101 i2c-omap35xx-omap4 -p 0x48070000 -i 88
        4102 i2c-omap35xx-omap4 -p 0x48072000 -i 89
        4103 i2c-omap35xx-omap4 -p 0x48060000 -i 93
        4104 i2c-omap35xx-omap4 -p 0x48350000 -i 94
        8201 io-audio -d omap4pdm
       16394 devb-mmcsd-blaze cam silent blk noatime,cache=8m mmcsd ioport=0x4809c100,ioport=0x4a056000,irq=115,dma=30,dma=61,dma=62 dos exe=all
       16395 spi-master -u 0 -d omap4430 base=0x48098100,irq=97,sdma=0
       16396 spi-master -u 3 -d omap4430 base=0x480ba100,irq=80,sdma=0
       16397 io-usb -domap4430-mg ioport=0x4a0ab000,irq=124 -dehci-omap3 ioport=0x4a064c00,irq=109
       20494 io-pkt-v4 -ptcpip -dsmsc9500 mac=004460515624
       24591 dhcp.client
       32784 devc-pty
       32786 inetd
       36881 qconn
       36883 sh
       57364 fs-cifs 10.222.109.24:/test /t screen
     5799960 /t/650SDP/B999/daily/nto/armle-v7/sbin/screen
     6815765 pidin ar
    
  2. If screen is running, slay the screen process by using the following command:

    slay screen

    Use pidin ar again to confirm that the screen process has shut down. It is possible that you will have to slay screen more than once before the process shuts down.

  3. Set up your environment for debugging; you can do either one or both of the following:
    • Option 1: Set the LD_DEBUG environment variable to use debugging symbols:

      export LD_DEBUG=libs

      This will display information on missing libraries, if any, when you are running screen or your Screen application.
    • Option 2: Use sloginfo by first clearing the logs with the command: sloginfo -c and then starting sloginfo with the -w option: sloginfo -w &. The -w option will display logs from sloginfo as events arrive.
  4. Restart screen by using the following command:

    SCREEN-DIR/sbin/screen

  5. If you had trouble running your Screen application, try running it again; you should be able to see if the problem involves missing libraries.
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.
Why is screen (or my Screen application) not displaying what I'm expecting?

There can be many reasons why what you see on the display isn't what you're expecting. It's possible that some of your configuration values aren't compatible. The best way to confirm that you're using the correct configuration values, or that Screen is using the values you are expecting, is to look at the files under /dev/screen/.

Under /dev/screen/ on your target, you can use the following files to help you see what values Screen is applying to your application at the time you cat the file.
/dev/screen/0/dpy-display_id
The configuration for each of your displays (e.g., /dev/screen/0/dpy-1).
/dev/screen/0/win-window_id /win-window_id
The configuration for each of your framebuffers (e.g., /dev/screen/0/win-0/win-0).
/dev/screen/0/win-window_id /win-window_id-bmp_id.bmp
The bitmap of what's drawn into your framebuffer at the moment when you touch this file (e.g., /dev/screen/1564694/win-1/win-1-1.bmp, /dev/screen/1564694/win-1/win-1-2.bmp, etc.).
/dev/screen/pid /win-window_id /win-window_id
The configuration for each of your windows (e.g., /dev/screen/1564694/win-1/win-1).
/dev/screen/pid /win-window_id /win-window_id-bmp_id.bmp
The bitmap of what is drawn into your window buffers at the moment when you touch these files (e.g., /dev/screen/1564694/win-1/win-1-1.bmp, /dev/screen/1564694/win-1/win-1-2.bmp, etc.).

You can capture all relevant information to your current Screen configuration by doing the following from your target:

  1. Make a copy of your /dev/screen directory into your file system; for example:

    cp -r /dev/screen /dev-screen-copy

  2. Tar the copied directory to capture the status of your system:

    tar czvf screen-log.tgz /dev-screen-copy