【问题标题】:How to enable etnaviv drivers without using Yocto build?如何在不使用 Yocto 构建的情况下启用 etnaviv 驱动程序?
【发布时间】:2019-11-19 14:25:16
【问题描述】:

我有内核 4.14 和 vivante 驱动程序 6.2.4p4.0(飞思卡尔官方的)的定制板。 我想使用台面驱动程序而不是飞思卡尔的驱动程序来测试我的 Qt 应用程序。 我已经下载并手动编译并安装了启用 kmsroetnaviv 驱动程序选项的 mesa 驱动程序,但这些步骤似乎还不够。

安装台面驱动程序以启用它们后要执行哪些步骤?

我无法访问我的板子的 Yocto 层,因此重建图像不是一种选择。

谢谢!

【问题讨论】:

    标签: qt linux-kernel mesa


    【解决方案1】:

    为了启用 etnaviv 内核模块,我执行了以下操作:

    下载并编译内核源 v4.14,启用以下选项:

    • 设备驱动程序-> 图形支持-> [M]ETNAVIV
    • MXC支持驱动->MXC Vivante GPU支持->[*]MXC Vivante GPU support

    然后安装或编译 MESA。如果您选择编译 MESA,请记住在 meson_options.txt 文件中启用选项 kmsroetnaviv

    最后,要检查 etnaviv 是否已成功加载,请执行以下操作:

    # dmesg | grep etnaviv
    

    应该输出如下内容:

    [    6.249793] etnaviv gpu-subsystem: bound 134000.gpu (ops gpu_ops [etnaviv])
    [    6.249866] etnaviv gpu-subsystem: bound 130000.gpu (ops gpu_ops [etnaviv])
    [    6.249919] etnaviv gpu-subsystem: bound 2204000.gpu (ops gpu_ops [etnaviv])
    [    6.249934] etnaviv-gpu 134000.gpu: model: GC320, revision: 5007
    [    6.332274] etnaviv-gpu 130000.gpu: model: GC2000, revision: 5108
    [    6.402442] etnaviv-gpu 2204000.gpu: model: GC355, revision: 1215
    [    6.402474] etnaviv-gpu 2204000.gpu: Ignoring GPU with VG and FE2.0
    [    6.416880] [drm] Initialized etnaviv 1.1.0 20151214 for gpu-subsystem on minor 1
    

    还要检查你的 dtb 文件是否正确初始化,我的有以下关于 gpu 的条目:

            gpu@00130000 {
                compatible = "vivante,gc";
                reg = <0x130000 0x4000>;
                interrupts = <0x0 0x9 0x4>;
                clocks = <0x2 0x1b 0x2 0x7a 0x2 0x4a>;
                clock-names = "bus", "core", "shader";
                power-domains = <0x9>;
                linux,phandle = <0x82>;
                phandle = <0x82>;
        };
    
        gpu@00134000 {
                compatible = "vivante,gc";
                reg = <0x134000 0x4000>;
                interrupts = <0x0 0xa 0x4>;
                clocks = <0x2 0x1a 0x2 0x79>;
                clock-names = "bus", "core";
                power-domains = <0x9>;
                linux,phandle = <0x81>;
                phandle = <0x81>;
        };
    
        gpu@02204000 {
            compatible = "vivante,gc";
            reg = <0x2204000 0x4000>;
            interrupts = <0x0 0xb 0x4>;
            clocks = <0x2 0x8f 0x2 0x79>;
            clock-names = "bus", "core";
            power-domains = <0x9>;
            linux,phandle = <0x83>;
            phandle = <0x83>;
        };
    
       gpu-subsystem {
            compatible = "fsl,imx-gpu-subsystem";
            cores = <0x81 0x82 0x83>;
        };
    

    注意:如果您收到类似“有效内存窗口之外的命令缓冲区”的 dmesg 错误输出,则可能是您需要增加保留的 cma。您必须通过内核参数来完成,在我的情况下,我必须通过 uboot 设置以下内容:cma=256M@2G

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      • 1970-01-01
      • 2020-02-15
      • 1970-01-01
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      相关资源
      最近更新 更多