我有一个运行 Linux 3.0.35 和 X.Org 1.14.4 的嵌入式板。我正在修改现有的帧缓冲区驱动程序以支持新的连接器类型。我正在读取 EDID,使用 fb_ 函数创建一个新的模型师,并且可以在 /sys/class/graphics/fb0/modes 中看到正确的模式列表。
然而,X 服务器似乎只在启动时才采用这些模式。如果我在连接显示器的情况下启动 X,它将看到正确的模式列表,并且 xrandr 将允许我切换模式。但是,如果我在没有显示器的情况下启动 X,则在连接它之后,帧缓冲区驱动程序会显示正确的 modelist,但不会显示 xrandr。后者仅显示我在未检测到监视器时设置的默认模式。
考虑到我正在使用的内核和 X 服务器的版本,是否有标准方法来通知 X 服务器重新加载其模式列表?大多数 X 驱动程序是否希望自己通过 i2c 读取 EDID 并生成自己的模式列表?
或者我是否需要执行一些操作,例如在监视器热插拔上执行的 udev 规则来运行使用 xrandr 的脚本来清除模式列表并根据帧缓冲区驱动程序中找到的模式添加新模式?
还有其他建议吗?谢谢。