I'm trying to add Xorg to an evaluation board for which I've already been provided with a working linux kernel. The evaluation board has an LCD display and I can confirm hardware & drivers are working by running a simple qt4 demo application.
To do so I have enabled the X11 option under "Graphical applications". These are the relevant configuration options:
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
The compilation concludes without issues. The board already contains uboot, linux kernel and a file system on flash; to test my modifications I update the linux kernel and then I chroot into the new file system created by buildroot after mounting it via nfs.
From there, I'd expect to run
xinit xterm and see some output on the LCD. Unfortunately the server fails with the following error:
# 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
Now, in the rootfs generated by buildroot there is
/usr/bin/X, but it's just a link to
$ ls usr/bin/X -l lrwxrwxrwx 1 root root 6 Oct 1 14:44 usr/bin/X -> Xfbdev
Unfortunately there is no such thing as
Xfbdev in the same folder; when mounting the file system via nfs the
X link simply disappears because its destination is not found.
I realize I'm skipping a lot of steps here (assuming the framebuffer driver works because I can see an qt4 standalone application), but I can't wrap my head around the fact that
Xfbdev is not present in the
If I understand correctly
Xfbdev would be a tiny version of
X11, enabled by buildroot when selecting tinyX/kdrive as Xorg server. So why is there no executable in
/usr/bin, but just the symbolic link to it?