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.

graphics programming on omap35x

Hello.  Using the Mistral OMAP35x and a 2.6.26 kernel, is it possible to make a graphics program with a resolution of 800 x 600 on the LCD display or on the DVI output?  Since I am new to Linux graphics don't know if I would use a frame buffer or a graphics library?  Are there resources you can suggest to get me started?

Thank you. 

  • The thing about Linux is it gives you great flexibility to program at any software level you may want, but it brings many decision complexities due to the number of choices available.  To illustrate, lets take the Linux graphics architecture.  From a bottom-up approach, you have your Linux drivers (e.g. frame buffer is one option), then at the user level you have your x-windows system, on top you have widget tool kits (GTK+, QT...), then windows managers (Metacity, KWin...), then Desktop Managers (GNOME, KDE...).  These are the most general programing levels, depending on what route you choose, some of these levels muya expand into other sublevels.....  As you can see, you have plenty of flexibility, but also a big decision to make.  I would suggest you search for some wiki articles on the web to familiarize yourself with these terminologies before deciding on a solution which works for you.  I believe getting support for frame buffer driver (in our kernel) and GTK+ might be the easier route on our platforms (not sure if free version of full-QT environment is widely available yet).

  • Is the 800 x 600 resolution supported on the Mistral OMAP 35x with the 2.6.26 kernel?   If so,  how do I set it?

    Thanks

     

  • where did you get the 2.6.26 kernel?  I just checked our software update site (www.ti.com/omapsoftwareupdates requires EVM registration) and it appears our latest release for Mistral is based on 2.6.22 kernel. 

    That said, I believe our software drivers support VGA LCD output and DVI supports NTSC/720p, though the hardware can support 800x600 via either interface.  Please note that I am not all that familiar with our driver source code, just going by what is in the documents; maybe someone more familiar with the drivers can chime in

    Also, my previous description was based on general Linux graphics system, but in addition our OMAP35x also comes with a graphics SDK (available via software update site).

  • the ti PSP 2.0 based on 2.6.26 is here https://www-a.ti.com/downloads/sds_support/targetcontent/psp/omap35x/index.html

    I am actually using a Timesys 2.6.26 now but may need to go to the TI psp2.0 for graphics.  It appears the graphics SDK was made for the PSP1.0.  You wouldn't happen to know if the graphics SDK it will work with psp2.0?

    Thanks

     

  • I believe work is being done to test the next Graphics SDK with the 1.0.x and 2.x PSP releases.

    Steve K.

  • If your desired resolution is not already supported then new "modes" can be easily added by modifying the mode tables in "display.c" and re-compiling the Kernel.

    I believe that the new DSS2 framework will make this process much simpler to arbitrarily change the resolution on the fly rather than pre-defined resolutions, but I have not looked at this yet.

    For the moment the "simple" way is just to add new entries in the table. These can then be selected at run time by executing

    'echo "DVI" >/sys/class/display_control/omap_disp_control/ch0_output'
    'echo "VGA" > >/sys/class/display_control/omap_disp_control/ch0_mode'

    where "VGA" would be replaced by the new mode tag you created in the table for example.

    Kind regards,

    Steve

  • Is there a guess on when a newer Graphics SDK for 2.x PSP might be released?

     

    I ran across this description for building BeagleBoard, which seems like it might work for the OMAP35x EVM (have not tried yet):

    http://code.google.com/p/beagleboard/wiki/HowtoUseSGXunderAngstrom

     

  • Hi,

    Since I would like to visualize some data on my OMAP35xx EVM's LCD I'm looking out for some tools/libraries/User Guide's that help me getting started to build my first GUI applications. The OMAP_35x_SDK_0.97 provided some sample applications with source code that use the frame buffer device to draw some bars in different colors.

    But that's way too much low level stuff.
    So my question actually is: What is the best approach to develop some GUI applications? By the way,  what actually is that Graphics SDK? I never heard about it.

    Do you know whether there exists a x-server or something comparable that might run on the board?

     

    Thanks for clearing things up
    Maik

  • Depending on which OMAP35x device you are using, your part may contain a graphics accelarator; the graphics SDK is a software layer that allows you to exercise this graphics accelerator.  Normally, you want to use this if you are doing graphics intensive work such as games, or apps such as the ones you would find in iphones or palm-pre... If you are doing simple grahics such as text overlays, the coretx-A8 ARM processor should be able to handle that without the need of an accelerator and perhaps using x-windows system would be preferred.

    That said, I do not believe our OMAP35x SDK software supports x-server out of the box, though I have seen ir running Angstrom which I assume requires x-server underneath, so people have done this.  If it is not included on our SDK, you are likely to find a solution via open source community (www.beagleboard.org is a good place to start).  I also understand we have k-drive (subset of x-windows) support via graphics SDK mentioned above.

  • Hi Maik,
    I've not used X11 on the EVM, but I do use arago/OpenEmbedded for building the OpenGL ES modules and libraries from the Graphics SDK.

    My app uses texture mapped rectangles for all font and graphics display.  I was not able to get commonly used GL font libraries working (ftgl, oglft, etc), mostly due to dependency on desktop OpenGL
    features (display lists, etc).  For data display, I just created a texture and render with glDrawElements(GL_TRIANGLES, ...).

    If you want a UI with menus and buttons, you might try Qt, which has a package in OpenEmbedded.

    ,

    John

  • Hey John,

    Thanks for you reply first. I just got Android working on my Omap3EVM. So graphical stuff should be quite easy to implement. Nonetheless, I already heard of Qt.
    Here at University I shall implement some kind of gateway. It's main purpose is to receive serial data from an FTDI-USB2Serial Chip. Moreover I have to manipulate and to visualize that data. Therefore, it's quite important to me that

    1. The FTDI Chip is working (that means the particular kernel-driver is included).
      I already succeeded to build a kernel that has these drivers included. TI helped me out with this issue
      http://e2e.ti.com/forums/p/6652/26718.aspx#26718
    2. I can easily implement some graphical stuff... (plotting some 2D-graphs, ECG's, texts, etc)

    This gateway has already been programmed in C++ on a windows-desktop, based on Qt libraries. (And now my task actually is to do that on Omap3EVM).So it would be relatively convenient if i could use these Qt libraries as well. But, what would be the best way to use these Qt libraries on my Omap3EVM? They do require an x-server working right? Do you already used them on the board? Is it possible to implement these Qt libraries without any linux-distro working on the board?

    Well, with reference to my main aims I think it's best to use some linux distributions likewise Angstrom, Android, etc... ?! Would you agree?

    Regards,

    Maik

  • Hi Maik,

    Qt embedded does not require X11 since it works on the Linux framebuffer.  I've not used Qt on the EVM, but I do use Arago/OpenEmbedded which has a package for Qt4.  I have no idea how you might use Qt without a distro, and it's relatively easy to build a kernel+filesystem with arago.

     

    Good luck!

    ,

    John

  • Ok, thanks for that tip with qt. I gave that a try and
    downloaded QT for embedded linux at http://www.qtsoftware.com/downloads but I'm stuck again at setting the whole thing up. [:(]
    I found a nice step-by-step install guide at http://tiexpressdsp.com/index.php/Building_Qt but when running

    #configure -prefix /opt/qt/ -platform /qws/linux-x86-g++ -xplatform /qws/linux-omap3-g++ -embedded arm -no-openssl -no-cups -qt-mouse-pc -no-qt3support -plugin-mouse-tslib -qt-libjpeg -no-phonon -no-largefile

    as supposed for our OMAP3 board I always get the following error:

    make: Nothing to be done for 'first'
    The tslib functionality test failed!
    You might need to modify the include and library search paths by editing QMAKE_INCDIR and QMAKE_LIBDIR in /home/administrator/temp/qt-embedded-linux-opensource-src-4.5.2/mkspecs/qws/linux-omap3-g++

    So, this seems to be an issue about some missing tslib libraries. This little article (http://tiexpressdsp.com/index.php/Qt_Tips) also states to install the touchscreen libraries first.

    You provided the link to the tslibs here http://tiexpressdsp.com/index.php/Tslib
    I downloaded the sources but don't really know how to go on. (Running ./configure ... does not work [:S], i always get a command not found).

    Can someone help me to install these libraries? Actually I just have to crosscompile them for the OMAP3 board right? I would have assumed that these libraries would already exist somewhere in my target-kernel. So why actually does QT searches for them?!

     

    Thanks in advance!

    Maik

  • Ok, I got my problems fixed.

     

    Maik Pflugradt said:
    So, this seems to be an issue about some missing tslib libraries

    Yep, that was indeed the problem. The tslib functionality test was successful after installing the libraries correctly. You should run ts_calibrate and ts_test....

     

     

    Maik Pflugradt said:
    Running ./configure ... does not work

    run ./autogen first....

     

    Maik Pflugradt said:
    Actually I just have to crosscompile them for the OMAP3 board right?

    Yep

     

    Maik Pflugradt said:
    I would have assumed that these libraries would already exist somewhere in my target-kernel

    I actually think so. I dont know why one has to compile the TS-libs again. cannot answer the question myself...
    it simply works [:P]

  • so,did u try running the QT demos on the OMAP3 EVM.

    Cheers,

    Dharshan

  • Maik,

    I have the same problem with TSLIB test failing:

    The tslib functionality test failed!
     You might need to modify the include and library search paths by editing
     QMAKE_INCDIR and QMAKE_LIBDIR in
     /home/goran/gumstix/gumstix-oe/tmp/cross/arm-angstrom-linux-gnueabi/qt-embedded-linux-opensource-src-4.5.0/mkspecs/qws/linux-arm-g++.

    Can you please help me fix the issue.

    I have downloaded the tslib from the URL provided in your post, but I get an error when running ./autogen.sh

    I wanted to run ./configure bet there is not one in the folder.

    I tried with ./autogen.sh: but I got the following error:

    ./autogen.sh: line 4: autoreconf: command not found

    I do have a compiled tslib in my target kernel folders - but how do I set the QMAKE_INCDIR and QMAKE_LIBDIR variables? What should they be pointing to?

    Thanks!