• Register
    • Login
    • Search
    • Recent
    • Wiki
    • Github
    • 百度网盘
    • Onedrive
    • Official
    • Shop
    1. Home
    2. george
    3. Posts
    G
    • Profile
    • Following 0
    • Followers 4
    • Topics 67
    • Posts 851
    • Best 73
    • Controversial 4
    • Groups 2

    Posts made by george

    • RE: ubuntu 0306 有时桌面卡死

      @jugg 数据格式NV12是没有问题的,这里主要是Esmart图层本身不支持AFBC的格式。可以尝试图层切换到Cluster显示,但是我查了一下AFBC的格式,好像也没有AFBC_FORMAT_MOD_SC这种,你可以先尝试一下.
      9eda420c-c1dc-4da7-822d-43884be6ce28-274de117dff815ce51de32d087e0e37.png

      posted in Pi 4B
      G
      george
    • RE: ubuntu 0306 有时桌面卡死

      @george 刚才查了一下0351对应如下格式,这种格式RK3588 VOP是支持不了的,所以画面会异常。确认一下SDL过来的数据格式是否可以修改为VOP支持的格式。
      0909e5e4-2fb0-47bc-a557-83f43b9ac34f-99949e5ccdfdc78232c1b66ce611e3f.png

      posted in Pi 4B
      G
      george
    • RE: ubuntu 0306 有时桌面卡死

      @jugg 这个问题是底层VOP格式支持的问题,我们跟踪一下,尽快回复。

      posted in Pi 4B
      G
      george
    • RE: How to install OpenCL/Kronos/OpenGL on CM5-EVB

      @tmb68 The OpenCL library file has been updated. Run the following command to update it:

      sudo apt-get update
      sudo apt-get upgrade
      
      posted in Pi CM5
      G
      george
    • OpenCL driver works on CM5/4B
      • Install package
      sudo apt-get update
      sudo apt install opencl-headers 
      sudo apt install ocl-icd-libopencl1 
      sudo apt install ocl-icd-opencl-dev
      sudo apt install clinfo
      
      • Checkout clpeak
        sudo apt-get update && sudo apt-get install cmake git g++
        git clone https://github.com/krrishnarraj/clpeak
        mkdir clpeak/build
        cd clpeak/build
        cmake ..
        make -j$(nproc)
        ./clpeak
      
      • Test result
      coolpi@Ubuntu:~/share/clpeak/build$ ./clpeak 
      arm_release_ver: g13p0-01eac0, rk_so_ver: 3
      
      Platform: ARM Platform
        Device: Mali-G610 r0p0
          Driver version  : 3.0 (Linux ARM64)
          Compute units   : 4
          Clock frequency : 1000 MHz
      
          Global memory bandwidth (GBPS)
            float   : 22.23
            float2  : 23.83
            float4  : 24.41
            float8  : 19.66
            float16 : 11.79
      
          Single-precision compute (GFLOPS)
            float   : 447.13
            float2  : 476.05
            float4  : 471.84
            float8  : 440.87
            float16 : 415.77
      
          Half-precision compute (GFLOPS)
            half   : 447.20
            half2  : 888.10
            half4  : 922.15
            half8  : 897.12
            half16 : 857.05
      
          No double precision support! Skipped
      
          Integer compute (GIOPS)
            int   : 126.60
            int2  : 127.16
            int4  : 126.57
            int8  : 125.25
            int16 : 125.70
      
          Integer compute Fast 24bit (GIOPS)
            int   : 126.62
            int2  : 127.18
            int4  : 126.67
            int8  : 125.28
            int16 : 125.77
      
          Transfer bandwidth (GBPS)
            enqueueWriteBuffer              : 7.76
            enqueueReadBuffer               : 8.84
            enqueueWriteBuffer non-blocking : 7.79
            enqueueReadBuffer non-blocking  : 8.87
            enqueueMapBuffer(for read)      : 63.02
              memcpy from mapped ptr        : 10.38
            enqueueUnmap(after write)       : 63.96
              memcpy to mapped ptr          : 10.39
      
          Kernel launch latency : 19.68 us
      
      
      • Test source code
      #include <stdio.h>  
      #include <stdlib.h>  
      #include <string.h>  
       
      #ifdef MAC  
      #include <OpenCL/cl.h>  
      #else  
      #include <CL/cl.h>  
      #endif  
       
      int main() {  
       
          /* Host data structures */  
          cl_platform_id *platforms;  
          //每一个cl_platform_id 结构表示一个在主机上的OpenCL执行平台,就是指电脑中支持OpenCL的硬件,如nvidia显卡,intel CPU和显卡,AMD显卡和CPU等  
          cl_uint num_platforms;  
          cl_int i, err, platform_index = -1;  
       
          /* Extension data */  
          char* ext_data;                           
          size_t ext_size;     
          const char icd_ext[] = "cl_khr_icd";  
       
          //要使platform工作,需要两个步骤。1 需要为cl_platform_id结构分配内存空间。2 需要调用clGetPlatformIDs初始化这些数据结构。一般还需要步骤0:询问主机上有多少platforms  
       
          /* Find number of platforms */  
          //返回值如果为-1就说明调用函数失败,如果为0标明成功  
          //第二个参数为NULL代表要咨询主机上有多少个platform,并使用num_platforms取得实际flatform数量。  
          //第一个参数为1,代表我们需要取最多1个platform。可以改为任意大如:INT_MAX整数最大值。但是据说0,否则会报错,实际测试好像不会报错。下面是步骤0:询问主机有多少platforms  
          err = clGetPlatformIDs(5, NULL, &num_platforms);          
          if(err < 0) {          
              perror("Couldn't find any platforms.");           
              exit(1);                              
          }                                     
       
          printf("I have platforms: %d\n", num_platforms); //本人计算机上显示为2,有intel和nvidia两个平台  
       
          /* Access all installed platforms */  
          //步骤1 创建cl_platform_id,并分配空间  
          platforms = (cl_platform_id*)                     
              malloc(sizeof(cl_platform_id) * num_platforms);   
          //步骤2 第二个参数用指针platforms存储platform  
          clGetPlatformIDs(num_platforms, platforms, NULL);         
       
          /* Find extensions of all platforms */  
          //获取额外的平台信息。上面已经取得了平台id了,那么就可以进一步获取更加详细的信息了。  
          //一个for循环获取所有的主机上的platforms信息  
          for(i=0; i<num_platforms; i++)   
          {  
              /* Find size of extension data */  
              //也是和前面一样,先设置第三和第四个参数为0和NULL,然后就可以用第五个参数ext_size获取额外信息的长度了。  
              err = clGetPlatformInfo(platforms[i],             
                  CL_PLATFORM_EXTENSIONS, 0, NULL, &ext_size);      
              if(err < 0)   
              {  
                  perror("Couldn't read extension data.");              
                  exit(1);  
              }     
       
              printf("The size of extension data is: %d\n", (int)ext_size);//我的计算机显示224.  
       
              /* Access extension data */    
              //这里的ext_data相当于一个缓存,存储相关信息。  
              ext_data = (char*)malloc(ext_size);   
              //这个函数就是获取相关信息的函数,第二个参数指明了需要什么样的信息,如这里的CL_PLATFORM_EXTENSIONS表示是opencl支持的扩展功能信息。我计算机输出一大串,机器比较新(专门为了学图形学而购置的电脑),支持的东西比较多。  
              clGetPlatformInfo(platforms[i], CL_PLATFORM_EXTENSIONS,       
                  ext_size, ext_data, NULL);                
              printf("Platform %d supports extensions: %s\n", i, ext_data);  
       
              //这里是输出生产商的名字,比如我显卡信息是:NVIDIA CUDA  
              char *name = (char*)malloc(ext_size);  
              clGetPlatformInfo(platforms[i], CL_PLATFORM_NAME,     
                  ext_size, name, NULL);                
              printf("Platform %d name: %s\n", i, name);  
       
              //这里是供应商信息,我显卡信息:NVIDIA Corporation  
              char *vendor = (char*)malloc(ext_size);  
              clGetPlatformInfo(platforms[i], CL_PLATFORM_VENDOR,       
                  ext_size, vendor, NULL);                  
              printf("Platform %d vendor: %s\n", i, vendor);  
       
              //最高支持的OpenCL版本,本机显示:OpenCL1.1 CUDA 4.2.1  
              char *version = (char*)malloc(ext_size);  
              clGetPlatformInfo(platforms[i], CL_PLATFORM_VERSION,      
                  ext_size, version, NULL);                 
              printf("Platform %d version: %s\n", i, version);  
       
              //这个只有两个值:full profile 和 embeded profile  
              char *profile = (char*)malloc(ext_size);  
              clGetPlatformInfo(platforms[i], CL_PLATFORM_PROFILE,      
                  ext_size, profile, NULL);                 
              printf("Platform %d full profile or embeded profile?: %s\n", i, profile);  
       
              /* Look for ICD extension */     
              //如果支持ICD这一扩展功能的platform,输出显示,本机的Intel和Nvidia都支持这一扩展功能  
              if(strstr(ext_data, icd_ext) != NULL)   
                  platform_index = i;  
              //std::cout<<"Platform_index = "<<platform_index<<std::endl;  
              printf("Platform_index is: %d\n", platform_index);  
              /* Display whether ICD extension is supported */  
              if(platform_index > -1)  
                  printf("Platform %d supports the %s extension.\n",   
                  platform_index, icd_ext);  
       
       
              //释放空间  
              free(ext_data);  
              free(name);  
              free(vendor);  
              free(version);  
              free(profile);  
          }  
       
          if(platform_index <= -1)  
              printf("No platforms support the %s extension.\n", icd_ext);  
       
          /* Deallocate resources */  
          free(platforms);  
          return 0;  
      }   
      
      gcc opencl_hello.c -o opencl_hello -lOpenCL
      
      coolpi@Ubuntu:~/share$ ./opencl_hello
      I have platforms: 1
      arm_release_ver: g13p0-01eac0, rk_so_ver: 3
      The size of extension data is: 1364
      Platform 0 supports extensions: cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_3d_image_writes cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_fp16 cl_khr_icd cl_khr_egl_image cl_khr_image2d_from_buffer cl_khr_depth_images cl_khr_subgroups cl_khr_subgroup_extended_types cl_khr_subgroup_non_uniform_vote cl_khr_subgroup_ballot cl_khr_subgroup_non_uniform_arithmetic cl_khr_subgroup_shuffle cl_khr_subgroup_shuffle_relative cl_khr_subgroup_clustered_reduce cl_khr_subgroup_rotate cl_khr_il_program cl_khr_priority_hints cl_khr_create_command_queue cl_khr_spirv_no_integer_wrap_decoration cl_khr_extended_versioning cl_khr_device_uuid cl_khr_suggested_local_work_size cl_khr_extended_bit_ops cl_khr_integer_dot_product cl_khr_semaphore cl_khr_external_semaphore cl_khr_external_semaphore_sync_fd cl_khr_command_buffer cl_arm_core_id cl_arm_printf cl_arm_non_uniform_work_group_size cl_arm_import_memory cl_arm_import_memory_dma_buf cl_arm_import_memory_host cl_arm_integer_dot_product_int8 cl_arm_integer_dot_product_accumulate_int8 cl_arm_integer_dot_product_accumulate_saturate_int8 cl_arm_scheduling_controls cl_arm_controlled_kernel_termination cl_ext_cxx_for_opencl cl_ext_image_tiling_control cl_ext_image_requirements_info cl_ext_image_from_buffer
      Platform 0 name: ARM Platform
      Platform 0 vendor: ARM
      Platform 0 version: OpenCL 3.0 v1.g13p0-01eac0.a8b6f0c7e1f83c654c60d1775112dbe4
      Platform 0 full profile or embeded profile?: FULL_PROFILE
      Platform_index is: 0
      Platform 0 supports the cl_khr_icd extension.
      
      posted in Pi CM5
      G
      george
    • RE: CSI支持

      @wuming 这个接口意义非常大,直接驱动4个摄像头可以做360环视。再加转换芯片以后可以做到8个摄像头同时工作。后续如果有这方面需求可以提出来,我们会有针对性的出一些转接小板。

      posted in Pi CM5
      G
      george
    • RE: CSI支持

      @wuming 如果需求比较多,可以做一批出来。主要是需要贴片,数量少成本太高。

      posted in Pi CM5
      G
      george
    • RE: CSI支持

      @jugg 这种出来就是2个独立摄像头。上午做了一条排线,预计10天左右可以出来。这种就可以直接接2个树莓派标准15PIN的摄像头。
      e75ddcba-9134-423d-b690-9f918770d1cb-image.png

      posted in Pi CM5
      G
      george
    • RE: CSI支持

      @jugg 这个没有现成的,需要重新做。

      posted in Pi CM5
      G
      george
    • RE: CSI支持

      @jugg 你买CM5板子以后需要做一条排线才能支持2个或者4个摄像头。默认的排线只能支持1个。

      posted in Pi CM5
      G
      george
    • RE: CSI支持

      @jugg CM5的核心板最多可以出6个CSI接口,CM5的底板目前引出了4个CSI接口,这四个接口在同一个连接器上面。

      posted in Pi CM5
      G
      george
    • RE: CSI支持

      @jugg CM5的机器就可以支持2个CSI的,4B的机器兼容树莓派所以只能1个。

      posted in Pi CM5
      G
      george
    • RE: CSI支持

      @jugg CM5-EVB最多可以支持4个IMX219同时工作。有4个独立的2line通道。
      b924858b-08f2-448e-82a3-035affb822bd-image.png

      posted in Pi CM5
      G
      george
    • RE: CSI支持

      @jugg 4B只能支持一个MIPI接口sensor。如果要支持更多sensor可以使用USB接口扩展。

      posted in Pi CM5
      G
      george
    • RE: How to install OpenCL/Kronos/OpenGL on CM5-EVB

      @tmb68 The following figure shows the test results of OpenCl, and the testing method will be provided later.

      coolpi@Ubuntu:~/share/clpeak/build$ ./clpeak 
      
      Platform: ARM Platform
      arm_release_ver of this libmali is 'g6p0-01eac0', rk_so_ver is '7'.
        Device: Mali-LODX r0p0
          Driver version  : 2.1 (Linux ARM64)
          Compute units   : 4
          Clock frequency : 1000 MHz
      
          Global memory bandwidth (GBPS)
            float   : 21.35
            float2  : 23.18
            float4  : 24.05
            float8  : 12.08
            float16 : 11.06
      
          Single-precision compute (GFLOPS)
            float   : 447.12
            float2  : 476.20
            float4  : 472.35
            float8  : 440.72
            float16 : 416.19
      
          Half-precision compute (GFLOPS)
            half   : 447.25
            half2  : 888.31
            half4  : 921.77
            half8  : 897.50
            half16 : 856.49
      
          No double precision support! Skipped
      
          Integer compute (GIOPS)
            int   : 126.55
            int2  : 127.18
            int4  : 126.64
            int8  : 125.27
            int16 : 125.79
      
          Integer compute Fast 24bit (GIOPS)
            int   : 126.64
            int2  : 127.23
            int4  : 126.79
            int8  : 125.30
            int16 : 125.76
      
          Transfer bandwidth (GBPS)
            enqueueWriteBuffer              : 7.31
            enqueueReadBuffer               : 8.25
            enqueueWriteBuffer non-blocking : 7.30
            enqueueReadBuffer non-blocking  : 8.26
            enqueueMapBuffer(for read)      : 61.83
              memcpy from mapped ptr        : 9.57
            enqueueUnmap(after write)       : 61.21
              memcpy to mapped ptr          : 9.40
      
          Kernel launch latency : 19.97 us
      
      posted in Pi CM5
      G
      george
    • RE: CSI支持

      @jugg 可以支持2个4line或者4个2line的摄像头模组,比如IMX219接口可以支持4个同时工作。

      posted in Pi CM5
      G
      george
    • RE: Micro DisplayPort question

      @murraytodd Insert your DP cable and print the mesg upload.

      posted in Pi 4B
      G
      george
    • RE: Coolpi 4B not booting!

      @Pharizna Please upgrade the loader to the latest version, format EMMC or TF card, and remake the boot image.

      posted in Pi 4B
      G
      george
    • RE: cool pi 4b RebornOS support

      @Pharizna Can other systems, such as ubuntu, be connected properly

      posted in News
      G
      george
    • RE: How to install OpenCL/Kronos/OpenGL on CM5-EVB

      @tmb68 said in How to install OpenCL/Kronos/OpenGL on CM5-EVB:

      Can anyone provide the steps required to install OpenCL/Kronos/OpenGL on the CM5-EVB?
      Looking for support for the Mali-G610, not seeing UserSpace files on ARM or Rockchip sites.
      Thanks,
      TMB

      The released Ubuntu system image is already integrated with G610 driver by default

      posted in Pi CM5
      G
      george
    • RE: cool pi 4b RebornOS support

      @Pharizna Please take a photo of the front of your machine.

      posted in News
      G
      george
    • A Method for Dynamically Hiding the Status Bar on Android 11
      diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
      index c1d54b7..6228ef0 100755
      --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
      +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
      @@ -202,6 +202,8 @@ import java.util.Map;
       public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
               DragDownHelper.DragDownCallback, ActivityStarter, OnUnlockMethodChangedListener {
           static final String TAG = "PhoneStatusBar";
      +    static final String HIDE_NAVIGATION_BAR = "android.intent.action.HIDE_NAVIGATION_BAR";
      +    static final String SHOW_NAVIGATION_BAR = "android.intent.action.SHOW_NAVIGATION_BAR";
           public static final boolean DEBUG = BaseStatusBar.DEBUG;
           public static final boolean SPEW = false;
           public static final boolean DUMPTRUCK = true; // extra dumpsys info
      @@ -1090,6 +1092,8 @@ final Object mScreenshotLock = new Object();
                   filter.addAction("fake_artwork");
               }
               filter.addAction(ACTION_DEMO);
      +		    filter.addAction(HIDE_NAVIGATION_BAR);
      +        filter.addAction(SHOW_NAVIGATION_BAR);
               context.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL, filter, null, null);
       
               // listen for USER_SETUP_COMPLETE setting (per-user)
      @@ -1381,6 +1385,12 @@ final Object mScreenshotLock = new Object();
                    return false;
                }
            };
      +	 
      +	    private void removeNavigationBar() {
      +        if (mNavigationBarView == null) return;
      +        		mWindowManager.removeView(mNavigationBarView);
      +        		mNavigationBarView = null;
      +      }	
             //$_rbox_$_modify_$_huangjc,add add/remove bar button	
             private View.OnTouchListener mHidebarPreloadOnTouchListener = new View.OnTouchListener() {
       
      @@ -1475,6 +1485,32 @@ final Object mScreenshotLock = new Object();
               mWindowManager.addView(mNavigationBarView, getNavigationBarLayoutParams());
           }
       
      +	  private void addNavigationBarInnerLocked(){
      +	      if(mNavigationBarView == null){
      +		       mNavigationBarView = (NavigationBarView) View.inflate(mContext, R.layout.navigation_bar, null);	
      +			     mNavigationBarView.setDisabledFlags(mDisabled);
      +			     mNavigationBarView.setBar(this);
      +			     mNavigationBarView.setOnTouchListener(new View.OnTouchListener() {
      +				@Override
      +				public boolean onTouch(View v, MotionEvent event) {
      +					checkUserAutohide(v, event);
      +					return false;
      +				}});
      +		    if (mNavigationBarView == null) return;
      +		
      +		       prepareNavigationBarView();
      +		      try {
      +		           mWindowManager.addView(mNavigationBarView, getNavigationBarLayoutParams());
      +		            } catch (Exception e) {
      +                  }	
      +	      }
      +    }
      +    public void displayNavigation(){
      +    	addNavigationBarInnerLocked();
      +    }
      +    public void hideNavigation(){
      +    	removeNavigationBar();
      +    }
           private void repositionNavigationBar() {
               if (mNavigationBarView == null || !mNavigationBarView.isAttachedToWindow()) return;
       
      @@ -3436,7 +3472,11 @@ final Object mScreenshotLock = new Object();
                       if (DEBUG_MEDIA_FAKE_ARTWORK) {
                           updateMediaMetaData(true);
                       }
      -            }
      +            }else if(HIDE_NAVIGATION_BAR.equals(action)){
      +               hideNavigation();
      +            }else if(SHOW_NAVIGATION_BAR.equals(action)){
      +               displayNavigation();
      +		}
               }
           };
      
      posted in Pi 4B
      G
      george
    • RE: Introduction to COOL PI CM5 interface

      @wuming 可以尝试按照下面帖子步骤处理:
      https://askubuntu.com/questions/1326386/ubuntu-20-04-lts-driver-intel-wi-fi-6e-ax210-160mhz

      posted in Pi CM5
      G
      george
    • RE: Introduction to COOL PI CM5 interface

      @wuming dmesg| grep hci0

      posted in Pi CM5
      G
      george
    • RE: Introduction to COOL PI CM5 interface

      @wuming
      IMX219
      【淘宝】https://m.tb.cn/h.UtvVLeM?tk=xKy7dm9s4XE CZ3457 「英伟达Jetson Nano摄像头模组 800万像素 IMX219芯片广角160度」
      点击链接直接打开 或者 淘宝搜索直接打开
      OV5647
      【淘宝】https://m.tb.cn/h.Utv42LD?tk=6mA3dm9HRea CZ3457 「OV5647摄像头 OV5647模块适用于Raspberry Pi 500万像素 广角65度」
      点击链接直接打开 或者 淘宝搜索直接打开
      除了摄像头模组以外,CM5的机器还需要增加一根转接排线,预计下周各个店铺会上线转接排线。

      posted in Pi CM5
      G
      george
    • RE: 桌面抓取

      @jugg 还可以参考下图方法直接dump出buffer
      4576f6c9-670c-4d3e-a852-edb90eb4874f-image.png

      posted in Ubuntu
      G
      george
    • RE: 桌面抓取

      @jugg
      可以参考这个:
      https://gitee.com/andyshrk/drm/blob/master/tests/ovltest/ovltest.c
      或者 drm 下面writeback 的使用方法参考:
      https://patchwork.kernel.org/project/dri-devel/patch/20220812231757.1454-3-quic_rohiiyer@quicinc.com/

      posted in Ubuntu
      G
      george
    • RE: CoolPi 4B硬件如何扩展 CAN接口

      @Tourists-0 下面这个帖子有介绍GPIO的功能复用,40PIN 可以扩展两路CAN出来。
      https://www.cool-pi.com/topic/68/coolpi-4b硬件扩展一-40pin接口介绍?_=1682384241578

      posted in Hardware
      G
      george
    • RE: Introduction to COOL PI CM5 interface

      @wuming 机器的40pin排针旁边有版本号

      posted in Pi CM5
      G
      george
    • RE: Introduction to COOL PI CM5 interface

      @wuming 你手上是V10的机器吗?V10的暂时不支持蓝牙!可以联系一下代理更换一下V11的底板。

      posted in Pi CM5
      G
      george
    • 1
    • 2
    • 20
    • 21
    • 22
    • 23
    • 24
    • 28
    • 29
    • 22 / 29