在 Buildroot 中包含 X (tinyx/kdrive) 后未找到 Xfbdev

在 Buildroot 中包含 X (tinyx/kdrive) 后未找到 Xfbdev

我正在尝试将 Xorg 添加到评估板,我已经为其提供了一个可用的 Linux 内核。该评估板有一个 LCD 显示屏,我可以通过运行一个简单的 qt4 演示应用程序来确认硬件和驱动程序正在工作。

为此,我启用了“图形应用程序”下的 X11 选项。这些是相关的配置选项:

BR2_PACKAGE_XORG7=y

#
# X11R7 Servers
#
BR2_PACKAGE_XSERVER_XORG_SERVER=y
BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI_24=y
BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI=24
BR2_PACKAGE_XSERVER_XORG_SERVER_V_1_20=y
# BR2_PACKAGE_XSERVER_XORG_SERVER_V_1_17 is not set
# BR2_PACKAGE_XSERVER_XORG_SERVER_V_1_14 is not set
BR2_PACKAGE_XSERVER_XORG_SERVER_VERSION="1.20.5"
# BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR is not set
BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE=y
BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_EVDEV=y
BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_KBD=y
BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_MOUSE=y

编译顺利结束。该板已包含 uboot、linux 内核和闪存上的文件系统;为了测试我的修改,我更新了 linux 内核,然后在通过 nfs 挂载后,chroot 到由 buildroot 创建的新文件系统。

从那里,我期望运行xinit xterm并在 LCD 上看到一些输出。不幸的是,服务器失败并出现以下错误:

# xinit xterm

xinit: unable to run server "X": No such file or directory
Use the -- option, or make sure that /usr/bin is in your path and
that "X" is a program or a link to the right type of server
for your display.  Possible server names include:

    Xorg        Common X server for most displays
    Xvfb        Virtual frame buffer
    Xfake       kdrive-based virtual frame buffer
    Xnest       X server nested in a window on another X server
    Xephyr      kdrive-based nested X server
    Xvnc        X server accessed over VNC's RFB protocol
    Xdmx        Distributed Multi-head X server

现在,在 buildroot 生成的 rootfs 中有/usr/bin/X,但它只是一个链接Xfbdev

$ ls usr/bin/X -l
lrwxrwxrwx 1 root root 6 Oct  1 14:44 usr/bin/X -> Xfbdev

Xfbdev不幸的是,同一个文件夹中没有这样的东西;当通过 nfs 安装文件系统时,X链接会消失,因为找不到其目的地。

我意识到我在这里跳过了很多步骤(假设帧缓冲区驱动程序可以工作,因为我可以看到 qt4 独立应用程序),但我无法Xfbdev理解rootfs.

如果我理解正确的话,Xfbdev这将是一个微型版本X11,在选择tinyX/kdrive作为Xorg服务器时由buildroot启用。那么为什么 中没有可执行文件/usr/bin,而只有指向它的符号链接呢?

相关内容