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.

AM335X omapdrm_pvr.ko

Hi, 

Previously I'm sorry for my English.

I have some trouble. 

I'm use ti-processor-sdk-linux-am335x-evm-02.00.00.00 at BB white. 

In prebuild filesystem tisdk-rootfs-image-am335x-evm I found sgx driver based on omapdrm_pvr.ko and run via  pvrsrvinit. It work fine.

Your prebuild modules omapdrm_pvr.ko size is 239.7kB. 

pvrsrvinit is located in /usr/bin. 

In board-support/extra-drivers/omapdrm-pvr-1.9.2253347 placed sourses only omapdrm-pvr.ko. No found source of pvrsrvinit. 

After build omapdrm-pvr-1.9.2253347, omapdrm_pvr.ko have size 3.9MB. 

Module build  with the ti-linux-kernel/ti-linux-4.1.y Linux kernel from SDK. 

After install module to arago-base-tisdk-image-am335x-evm they won't work. 

-----------------------------------------------------------------------------------------------------------

If use Graphics-SDK-05.01.01.02. and istall modules follow instructions install 8.x SGX release user libraries and kernel modules, I see error

/usr/local/bin/pvrsrvctl: SrvInit failed (already initialized?) (err=4).

#modprobe omaplfb
[ 1716.280620] omaplfb: Unknown symbol register_vsync_cb (err 0)
[ 1716.287136] omaplfb: Unknown symbol unregister_vsync_cb (err 0)

I try  follow this way, "https://github.com/RobertCNelson/bb-kernel/commit/181731e134d23a0fd8275db32fc085f7502d0437

--------------------------------------------------------------------------------------------------------------------

How fix this:

  •  /usr/local/bin/pvrsrvctl: SrvInit failed (already initialized?) (err=4)
  •  omaplfb: Unknown symbol register_vsync_cb (err 0)
  •  omaplfb: Unknown symbol unregister_vsync_cb (err 0)

?

Why kernel from processor-sdk won't work with Graphic SDK 5? 

Where to find pvrsrvinit and libraries to it if you use the "omapdrm" module

Where can I find the instructions to launch the graphic component for the latest ti-processor-sdk-linux-am335x-evm-02.00.00.00 

Best Regards, 

Igor

  • I will ask the Linux team to look at this.
  • Hello Igor,

    You've gotten the same errors as in this thread e2e.ti.com/.../483575, please check it.

    Best regards,
    Kemal
  • Thanks for the quick response.

    depmod -a not fix problem with Graphics_SDK_5_01_01_02.

    still have:
    /usr/local/bin/pvrsrvctl: SrvInit failed (already initialized?) (err=4).
    #modprobe omaplfb
    omaplfb: Unknown symbol register_vsync_cb (err 0)
    omaplfb: Unknown symbol unregister_vsync_cb (err 0)

    With omapdrm_pvr.ko still have problem:
    pvrsrvinit and lib's not found in SDK.

    processors.wiki.ti.com/.../Processor_Linux_SDK_Graphics_and_Display

    Say's that lib's are part of SDK. but it is not clear where to find them.

    In the second reference question was not able to run the demo application. You could say the question is not answered.

    Help me please.

    Best Regards,
    Igor
  • Seems the pvrsrvctl was already initialized and the register_vsync_cb, unregister_vsync_cb has not exported by tilcdc_crtc. Could you create one txt file and paste the output of these commands ps, lsmod, lsof and attach the log?

  • Hi, 

    Here my log.

    I'm use: 

    ti-processor-sdk-linux-am335x-evm-02.00.01.07

    • Graphics_SDK_5_01_01_02
    • arago-base-tisdk-image-am335x-evm
    • kernel linux-4.1.13+gitAUTOINC+8dc66170d9-g8dc6617

    Best Regards, 
    Igor

    root@am335x-evm:/etc/init.d# ./335x-demo 
    0x10205
    release8.x
    installing 8.x SGX release user libraries
    
    Installing PowerVR Consumer/Embedded DDK 'sgxddk_1.10@2359475' on target
    
    File system installation root is /
    
    Nothing to un-install.
    boot script rc.pvr -> /etc/init.d/rc.pvr
    kernel module pvrsrvkm.ko -> /lib/modules/4.1.13-g8dc6617/extra/pvrsrvkm.ko
    kernel module omaplfb.ko -> /lib/modules/4.1.13-g8dc6617/extra/omaplfb.ko
    shared library libGLES_CM.so -> /usr/lib/libGLES_CM.so.1.10.2359475
    shared library libusc.so -> /usr/lib/libusc.so.1.10.2359475
    shared library libGLESv2.so -> /usr/lib/libGLESv2.so.1.10.2359475
    shared library libglslcompiler.so -> /usr/lib/libglslcompiler.so.1.10.2359475
    shared library libIMGegl.so -> /usr/lib/libIMGegl.so.1.10.2359475
    shared library libEGL.so -> /usr/lib/libEGL.so.1.10.2359475
    shared library libpvr2d.so -> /usr/lib/libpvr2d.so.1.10.2359475
    shared library libpvrPVR2D_BLITWSEGL.so -> /usr/lib/libpvrPVR2D_BLITWSEGL.so.1.10.2359475
    shared library libpvrPVR2D_FLIPWSEGL.so -> /usr/lib/libpvrPVR2D_FLIPWSEGL.so.1.10.2359475
    shared library libpvrPVR2D_FRONTWSEGL.so -> /usr/lib/libpvrPVR2D_FRONTWSEGL.so.1.10.2359475
    shared library libpvrPVR2D_LINUXFBWSEGL.so -> /usr/lib/libpvrPVR2D_LINUXFBWSEGL.so.1.10.2359475
    shared library libsrv_um.so -> /usr/lib/libsrv_um.so.1.10.2359475
    shared library libsrv_init.so -> /usr/lib/libsrv_init.so.1.10.2359475
    shared library libPVRScopeServices.so -> /usr/lib/libPVRScopeServices.so.1.10.2359475
    binary pvrsrvctl -> /usr/local/bin/pvrsrvctl
    binary sgx_init_test -> /usr/local/bin/sgx_init_test
    binary services_test -> /usr/local/bin/services_test
    binary sgx_blit_test -> /usr/local/bin/sgx_blit_test
    binary sgx_clipblit_test -> /usr/local/bin/sgx_clipblit_test
    binary sgx_flip_test -> /usr/local/bin/sgx_flip_test
    binary sgx_render_flip_test -> /usr/local/bin/sgx_render_flip_test
    binary pvr2d_test -> /usr/local/bin/pvr2d_test
    shader glsltest1_vertshader.txt -> /usr/local/bin/glsltest1_vertshader.txt
    shader glsltest1_fragshaderA.txt -> /usr/local/bin/glsltest1_fragshaderA.txt
    shader glsltest1_fragshaderB.txt -> /usr/local/bin/glsltest1_fragshaderB.txt
    
    Installation complete!
    You may now reboot your target.
    
    Module pvrsrvkm failed to load. Retrying.
    Running /sbin/depmod
    /usr/local/bin/pvrsrvctl: SrvInit failed (already initialized?) (err=4)
    -------------------------------------------------------------------------------
    
    root@am335x-evm:/etc/init.d# ps 
      PID USER       VSZ STAT COMMAND
        1 root      1384 S    init [5]
        2 root         0 SW   [kthreadd]
        3 root         0 SW   [ksoftirqd/0]
        4 root         0 SW   [kworker/0:0]
        5 root         0 SW<  [kworker/0:0H]
        6 root         0 SW   [kworker/u2:0]
        7 root         0 SW   [rcu_preempt]
        8 root         0 SW   [rcu_sched]
        9 root         0 SW   [rcu_bh]
       10 root         0 SW<  [khelper]
       11 root         0 SW   [kdevtmpfs]
       12 root         0 SW<  [netns]
       13 root         0 SW<  [perf]
       14 root         0 SW   [kworker/0:1]
       15 root         0 SW<  [writeback]
       16 root         0 SW<  [crypto]
       17 root         0 SW<  [bioset]
       18 root         0 SW<  [kblockd]
       19 root         0 SW<  [rpciod]
       20 root         0 SW   [kswapd0]
       21 root         0 SW   [fsnotify_mark]
       22 root         0 SW<  [nfsiod]
       51 root         0 SW   [kworker/0:2]
       52 root         0 SW<  [deferwq]
       53 root         0 SW   [kworker/u2:1]
       54 root         0 SW   [irq/156-44e0b00]
       56 root         0 SW   [irq/30-48060000]
       57 root         0 SW   [kworker/u2:2]
       58 root         0 SW   [mmcqd/0]
       59 root         0 SW<  [kworker/0:1H]
       60 root         0 SW   [kworker/0:3]
       61 root         0 SW   [jbd2/mmcblk0p2-]
       62 root         0 SW<  [ext4-rsv-conver]
       89 root      2792 S    /lib/udev/udevd -d
      734 root      1956 S    udhcpc -R -b -p /var/run/udhcpc.eth0.pid -i eth0
      741 messageb  2592 S    /usr/bin/dbus-daemon --system
      744 root      1956 S    /usr/sbin/telnetd
      752 root         0 SW<  [ipv6_addrconf]
      753 rpc       2136 S    /usr/sbin/rpcbind
      758 rpcuser   1900 S    /usr/sbin/rpc.statd
      766 root      1956 S    /sbin/syslogd -n -O /var/log/messages
      769 root      1956 S    /sbin/klogd -n
      771 nobody    2476 S    /usr/sbin/thttpd -d /srv/www -p 8080
      787 root      3396 S    /bin/login --
      788 root      1960 S    /sbin/getty 38400 tty1
      789 root      2776 S    -sh
     1062 root         0 SW<  [pvr_timer]
     1080 root      2372 R    ps
    root@am335x-evm:/etc/init.d# 
    
    -------------------------------------------------------------------------------
    
    root@am335x-evm:/etc/init.d# lsof
    1	/sbin/init.sysvinit	/dev/initctl
    89	/lib/udev/udevd	/dev/null
    89	/lib/udev/udevd	/dev/null
    89	/lib/udev/udevd	/dev/null
    89	/lib/udev/udevd	socket:[1211]
    89	/lib/udev/udevd	socket:[1212]
    89	/lib/udev/udevd	/run/udev/queue.bin
    89	/lib/udev/udevd	anon_inode:inotify
    89	/lib/udev/udevd	anon_inode:[signalfd]
    89	/lib/udev/udevd	socket:[1217]
    89	/lib/udev/udevd	socket:[1218]
    89	/lib/udev/udevd	anon_inode:[eventpoll]
    734	/bin/busybox.nosuid	/dev/null
    734	/bin/busybox.nosuid	/dev/null
    734	/bin/busybox.nosuid	/dev/null
    734	/bin/busybox.nosuid	pipe:[2438]
    734	/bin/busybox.nosuid	pipe:[2438]
    734	/bin/busybox.nosuid	socket:[2461]
    741	/usr/bin/dbus-daemon	/dev/null
    741	/usr/bin/dbus-daemon	/dev/null
    741	/usr/bin/dbus-daemon	/dev/null
    741	/usr/bin/dbus-daemon	anon_inode:[eventpoll]
    741	/usr/bin/dbus-daemon	socket:[2494]
    741	/usr/bin/dbus-daemon	anon_inode:inotify
    741	/usr/bin/dbus-daemon	socket:[2497]
    741	/usr/bin/dbus-daemon	socket:[2498]
    744	/bin/busybox.nosuid	/dev/null
    744	/bin/busybox.nosuid	/dev/null
    744	/bin/busybox.nosuid	/dev/null
    744	/bin/busybox.nosuid	socket:[2515]
    753	/usr/sbin/rpcbind	/dev/null
    753	/usr/sbin/rpcbind	/dev/null
    753	/usr/sbin/rpcbind	/dev/null
    753	/usr/sbin/rpcbind	/run/rpcbind.lock
    753	/usr/sbin/rpcbind	socket:[2574]
    753	/usr/sbin/rpcbind	socket:[2548]
    753	/usr/sbin/rpcbind	socket:[2550]
    753	/usr/sbin/rpcbind	socket:[2553]
    753	/usr/sbin/rpcbind	socket:[2554]
    753	/usr/sbin/rpcbind	socket:[2555]
    753	/usr/sbin/rpcbind	socket:[2566]
    753	/usr/sbin/rpcbind	socket:[2567]
    758	/usr/sbin/rpc.statd	/dev/null
    758	/usr/sbin/rpc.statd	/dev/null
    758	/usr/sbin/rpc.statd	/dev/null
    758	/usr/sbin/rpc.statd	socket:[2591]
    758	/usr/sbin/rpc.statd	/run/rpc.statd.pid
    758	/usr/sbin/rpc.statd	socket:[2601]
    758	/usr/sbin/rpc.statd	socket:[2604]
    766	/bin/busybox.nosuid	socket:[2628]
    766	/bin/busybox.nosuid	/dev/null
    766	/bin/busybox.nosuid	/dev/null
    766	/bin/busybox.nosuid	/var/volatile/log/messages
    769	/bin/busybox.nosuid	/dev/null
    769	/bin/busybox.nosuid	/dev/null
    769	/bin/busybox.nosuid	/dev/null
    769	/bin/busybox.nosuid	socket:[2631]
    771	/usr/sbin/thttpd	socket:[2652]
    771	/usr/sbin/thttpd	socket:[2647]
    787	/bin/login.shadow	/dev/ttyS0
    787	/bin/login.shadow	/dev/ttyS0
    787	/bin/login.shadow	/dev/ttyS0
    787	/bin/login.shadow	socket:[2690]
    788	/bin/busybox.nosuid	/dev/tty1
    788	/bin/busybox.nosuid	/dev/tty1
    788	/bin/busybox.nosuid	/dev/tty1
    789	/bin/bash	/dev/ttyS0
    789	/bin/bash	/dev/ttyS0
    789	/bin/bash	/dev/ttyS0
    789	/bin/bash	/dev/ttyS0
    
    ------------------------------------------------------------------------------
    
    root@am335x-evm:/etc/init.d# lsmod
    Module                  Size  Used by
    pvrsrvkm              179449  0 
    ipv6                  305284  22 
    musb_dsps               7807  0 
    musb_hdrc              68793  1 musb_dsps
    udc_core               11604  1 musb_hdrc
    usbcore               189449  1 musb_hdrc
    pm33xx                  4633  0 
    omap_rng                4470  0 
    rng_core                7464  1 omap_rng
    musb_am335x             1240  0 
    rtc_omap                7578  1 
    omap_wdt                4347  0 
    leds_gpio               3445  0 
    root@am335x-evm:/etc/init.d# 
    
    
    ----------------------------------------------------------------------------------------
    
    root@am335x-evm:/lib/modules/4.1.13-g8dc6617/extra# insmod ./omaplfb.ko 
    [  365.602799] omaplfb: Unknown symbol register_vsync_cb (err 0)
    [  365.609086] omaplfb: Unknown symbol unregister_vsync_cb (err 0)
    insmod: ERROR: could not insert module ./omaplfb.ko: Unknown symbol in module
    
    
    ----------------------------------------------------------------------------------------
    
    /*
     * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License version 2 as
     * published by the Free Software Foundation.
     */
    /dts-v1/;
    
    #include "am33xx.dtsi"
    #include "am335x-bone-common.dtsi"
    
    / {
    	model = "TI AM335x BeagleBone";
    	compatible = "ti,am335x-bone", "ti,am33xx";
    
    //*****************************************************************************mycode-start
    	cpus {
    	 	cpu@0 {
    			cpu0-supply = <&dcdc2_reg>;
    		};
    	};
    
    	memory {
    		device_type = "memory";
    		reg = <0x80000000 0x10000000>; /* 256 MB */
    	};
    
    	panel {
            compatible = "ti,tilcdc,panel";
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&lcd_pins_default>;
            panel-info {
                    ac-bias           = <255>;
                    ac-bias-intrpt    = <0>;
                    dma-burst-sz      = <16>;
                    bpp               = <16>;
                    fdd               = <0x80>;
    	            fifo-th           = <0>;
    				tft-alt-mode      = <0>;
    				stn-565-mode      = <0>;
    				mono-8bit-mode    = <0>;
                    sync-edge         = <0>;
                    sync-ctrl         = <1>;
                    raster-order      = <0>;
                    };
    
                    display-timings {
                            800x480p62 {
                                    clock-frequency = <30000000>;
                                    hactive = <800>;
                                    vactive = <480>;
                                    hfront-porch = <41>;
                                    hback-porch = <40>;
                                    hsync-len = <49>;
                                    vback-porch = <29>;
                                    vfront-porch = <14>;
                                    vsync-len = <3>;
                                    hsync-active = <0>;
                                    vsync-active = <0>;
                            };
                    };
            };
        //*****************************************************************************mycode-end
    
    };
    //*****************************************************************************mycode-start
    &am33xx_pinmux {
    	lcd_pins_default: lcd_pins_default {
    		pinctrl-single,pins = <
    			0x20 (PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad8.lcd_data23 */
    			0x24 (PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad9.lcd_data22 */
    			0x28 (PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad10.lcd_data21 */
    			0x2c (PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad11.lcd_data20 */
    			0x30 (PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad12.lcd_data19 */
    			0x34 (PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad13.lcd_data18 */
    			0x38 (PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad14.lcd_data17 */
    			0x3c (PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad15.lcd_data16 */
    			0xa0 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data0.lcd_data0 */
    			0xa4 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data1.lcd_data1 */
    			0xa8 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data2.lcd_data2 */
    			0xac (PIN_OUTPUT | MUX_MODE0)		/* lcd_data3.lcd_data3 */
    			0xb0 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data4.lcd_data4 */
    			0xb4 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data5.lcd_data5 */
    			0xb8 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data6.lcd_data6 */
    			0xbc (PIN_OUTPUT | MUX_MODE0)		/* lcd_data7.lcd_data7 */
    			0xc0 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data8.lcd_data8 */
    			0xc4 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data9.lcd_data9 */
    			0xc8 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data10.lcd_data10 */
    			0xcc (PIN_OUTPUT | MUX_MODE0)		/* lcd_data11.lcd_data11 */
    			0xd0 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data12.lcd_data12 */
    			0xd4 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data13.lcd_data13 */
    			0xd8 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data14.lcd_data14 */
    			0xdc (PIN_OUTPUT | MUX_MODE0)		/* lcd_data15.lcd_data15 */
    			0xe0 (PIN_OUTPUT | MUX_MODE0)		/* lcd_vsync.lcd_vsync */
    			0xe4 (PIN_OUTPUT | MUX_MODE0)		/* lcd_hsync.lcd_hsync */
    			0xe8 (PIN_OUTPUT | MUX_MODE0)		/* lcd_pclk.lcd_pclk */
    			0xec (PIN_OUTPUT | MUX_MODE0)		/* lcd_ac_bias_en.lcd_ac_bias_en */
    		>;
    	};
    };
    //*****************************************************************************mycode-end
    
    &ldo3_reg {
    	regulator-min-microvolt = <1800000>;
    	regulator-max-microvolt = <3300000>;
    	regulator-always-on;
    };
    
    &mmc1 {
    	vmmc-supply = <&ldo3_reg>;
    };
    
    &sgx {
    	status = "okay";
    };
    
    &lcdc 
    {
    	status = "okay";
    };
    
    
    

  • Hi,
    I found answer.
    Thank you so much.
    A way to solve and additions are described by reference:
    e2e.ti.com/.../1753065

    Best Regards,
    Igor
  • Thank you for sharing the solution.