4. 模块加载¶
4.1. 原理介绍¶
某些 Linux Framebuffer 驱动(如 versa)不支持在运行期间更改分辨率、颜色深度、时序等显示属性。 对此,Linux 系统提供一种机制,允许在内核启动或模块加载时,通过参数将相应选项传递给 Linux Framebuffer。 通过这种机制,用户可以在系统启动之前,预先配置显示相关的参数,以满足特定的应用需求。 可以在内核加载器中配置内核启动参数,例如指定分辨率、刷新率或颜色深度等。 需要注意的是,GFBG 驱动在加载时只能设置物理显存的大小,不允许设置其它选项。 因此,在使用 GFBG 驱动时,用户需要根据实际需求提前规划显存大小,并在模块加载时正确传递参数。 这意味着用户需要在系统设计阶段充分考虑应用场景的需求,例如是否需要支持高分辨率显示或多层叠加图形的渲染。 通过合理规划显存大小,可以确保系统在运行时能够满足性能和功能的要求,同时避免因显存不足导致的显示异常或性能下降。
4.2. 参数设置¶
GFBG 可配置其管理的叠加图形层物理显存的大小。物理显存大小决定了 GFBG 可使用的最大物理显存和系统的可设置虚拟分辨率。 在加载 GFBG 驱动时通过参数传递设置物理显存大小,物理显存的大小一经设置就不会改变。 这意味着用户在配置显存大小时需要充分考虑应用的实际需求,例如是否需要支持高分辨率的显示内容或复杂的图形叠加效果。 显存大小的设置直接影响到系统的显示能力和性能,因此建议用户在配置时根据具体的应用场景进行测试和验证。 此外,合理的显存规划不仅可以提高系统的稳定性,还可以避免资源浪费,从而优化系统的整体性能。
4.2.1. 参数video¶
video=”gfbg:vram0_size:xxx, vram1_size:xxx, …”
gfbg: 表示加载 GFBG 驱动。
vram0_size: 表示 GFBG 管理的图形层0物理显存大小,CV184X 仅有图形层0,仅支持 vram0_size。
vram1_size: 表示 GFBG 管理的图形层1物理显存大小。
xxx: 表示物理显存的大小,单位为 KB。
如果图层不配置物理显存大小,目前驱动默认分配为8100KB。
4.2.2. 物理显存大小与虚拟内存关系¶
对于GFBG的标准模式,vramn_size 和虚拟分辨率的关系如下: vramn_size * 1024 >= xres_virtual * yres_virtual * bpp; 其中xres_virtual * yres_virtual 是虚拟分辨率,bpp 是每个像素所占字节数。
4.2.3. 参数默认值¶
CV184X GFBG 驱动的默认参数为: video=”gfbg:vram0_size:8100”,即1080p分辨率,32位色深需要的最小显存。 用户需要从全局的角度出发配置 GFBG 需要管理的叠加图形层,并且为每个叠加图形层分配适当的显存。