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.

Where is fbdev?

I want to write some code to display an image using fbdev, following the PSP docs, but I notice that /dev/fb0, /dev/fb1, and /dev/fb2 are missing from the target.  I also cannot find the appropriate include files for the driver.  Do I need to rebuild the linux kernel for fbdev?  Documentation for fbdev and vpss was include with the psp docs of the EZSDK of the c6a816x EVM.  Did these drivers come with the SDK or do I need to install them?  link?

 

I found this doc on the wiki:

http://processors.wiki.ti.com/index.php/TI816X-VPSS-Video-Driver-UserGuide_PSP_04.00.00.11

Do I need to build the drivers following the instructions presented under:

Build Linux VPSS, Fbdev and V4L2 Display Drivers?

Something is missing.  The Graphics SDK demos do not run on the target:

root@c6a816x-evm:/usr/bin/SGX/demos/Raw# ./OGLES2Coverflow
Exit message has been set to: "PVRShell: Unable to initialise EGL
".
PVRShell: EGL Error (EGL_NOT_INITIALIZED)
InitAPI failed!
PVRShell: Unable to initialise EGL

I wrote some code to attampt to open /dev/fb0 and the open attempt failed.  /dev/fb0 is definitely not installed on my target. On a related note, I see that there is a newer version of the Graphics SDK available. Worth the upgrade? 

In the PSP Video Driver User Guide, what is meant by:

  • Enable the VPSS and Fbdev in menuconfig ?

Lee Holeva

  • Lee Holeva said:

    In the above link, section 8.1 describes how to build uImage with fbdev support. follow the same.

  • I type:

    make ARCH=arm CROSS_COMPILE=${CSTOOL_PATH}/arm-none-linux-gnueabi-gcc menuconfig

    and make tells me that there is no rule to make menuconfig.  I am using SDK version 5 00 00 56 that came with the c6816x EVM.

    Oops!  I had the wrong make file.  The PSP make file generates menuconfig.  I'll get this embedded linux stuff figured-out eventually.

    I believe fbdev is contained with the Graphics SDK.  I have version 4 00 00 00 01 and the README.TXT says the following:

    "Please refer to Netra Linux-PSP EA2 User Guide for details on how to build and install the fbdev module."  I did not find vpss.ko.

    I don't think I have this document.  I may just go ahead and upgrade the Graphics SDK:

    http://processors.wiki.ti.com/index.php/Upgrading_Graphics_SDK_in_EZSDK

     I'm still do not have fbdev.  Upon restarting pvr I get:

    ./pvr-init start
    open /dev/fb0: No such file or directory
    open /dev/fb0: No such file or directory
    expr: syntax error
    Linux Frame Buffer Device Configuration Version 2.1 (23/06/1999)
    (C) Copyright 1995-1999 by Geert Uytterhoeven


    Usage: fbset [options] [mode]

    Valid options:
      General options:
        -h, --help         : display this usage information
        --test             : don't change, just test whether the mode is valid
        -s, --show         : display video mode settings
        -i, --info         : display all frame buffer information
        -v, --verbose      : verbose mode
        -V, --version      : print version information
        -x, --xfree86      : XFree86 compatibility mode
        -a, --all          : change all virtual consoles on this device
      Frame buffer special device nodes:
        -fb <device>       : processed frame buffer device
                             (default is /dev/fb0)
      Video mode database:
        -db <file>         : video mode database file
                             (default is /etc/fb.modes)
      Display geometry:
        -xres <value>      : horizontal resolution (in pixels)
        -yres <value>      : vertical resolution (in pixels)
        -vxres <value>     : virtual horizontal resolution (in pixels)
        -vyres <value>     : virtual vertical resolution (in pixels)
        -depth <value>     : display depth (in bits per pixel)
        -nonstd <value>    : select nonstandard video mode
        -g, --geometry ... : set all geometry parameters at once
        -match             : set virtual vertical resolution by virtual resolution
      Display timings:
        -pixclock <value>  : pixel clock (in picoseconds)
        -left <value>      : left margin (in pixels)
        -right <value>     : right margin (in pixels)
        -upper <value>     : upper margin (in pixel lines)
        -lower <value>     : lower margin (in pixel lines)
        -hslen <value>     : horizontal sync length (in pixels)
        -vslen <value>     : vertical sync length (in pixel lines)
        -t, --timings ...  : set all timing parameters at once
      Display flags:
        -accel <value>     : hardware text acceleration enable (false or true)
        -hsync <value>     : horizontal sync polarity (low or high)
        -vsync <value>     : vertical sync polarity (low or high)
        -csync <value>     : composite sync polarity (low or high)
        -gsync <value>     : synch on green (false or true)
        -extsync <value>   : external sync enable (false or true)
        -bcast <value>     : broadcast enable (false or true)
        -laced <value>     : interlace enable (false or true)
        -double <value>    : doublescan enable (false or true)
        -rgba <r,g,b,a>    : recommended length of color entries
        -grayscale <value> : grayscale enable (false or true)
      Display positioning:
        -move <direction>  : move the visible part (left, right, up or down)
        -step <value>      : step increment (in pixels or pixel lines)
                             (default is 8 horizontal, 2 vertical)
    Starting PVR
    FATAL: Error inserting omaplfb (/lib/modules/2.6.34/kernel/drivers/gpu/pvr/omapl
    fb.ko): Unknown symbol in module, or unknown parameter (see dmesg)
    /dev/mem opened.
    Memory mapped at address 0x40020000.
    Value at address 0x48180F04 (0x40020f04): 0x0
    Written 0x0; readback 0x0
    /dev/mem opened.
    Memory mapped at address 0x40020000.
    Value at address 0x48180900 (0x40020900): 0x102
    Written 0x2; readback 0x2
    /dev/mem opened.
    Memory mapped at address 0x40020000.
    Value at address 0x48180920 (0x40020920): 0x40002
    Written 0x2; readback 0x2

     I changed the NFS bootargs to include the vram settings and I now have fbdev and this is using the pre-built kernel.  This is what I use now:

     

    setenv bootargs 'console=ttyS2,115200n8 rw mem=166M earlyprintk vram=50M ti816xfb.vram=0:16M,1:16M,2:6M root=/dev/nfs nfsroot=192.168.1.100:/home/lholeva/targetfs,nolock ip=192.168.1.10:192.168.1.100: 192.168.1.100:255.255.255.0:c6a8168:eth0:off'

    setenv bootcmd 'tftp 0x81000000 uImage-c6a816x-evm.bin;bootm'

     

    Another undocumented setting.

    Lee Holeva