작동 중인 Linux 커널이 있는 평가 보드에 Xorg를 추가하려고 합니다. 평가 보드에는 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를 통해 마운트한 후 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
.
내가 올바르게 이해한다면 이것은 Xorg 서버로 TinyX/kdrive가 선택될 때 buildroot에 의해 활성화되는 Xfbdev
작은 빌드가 될 것입니다 . 그렇다면 에 실행 파일은 없고 이를 가리키는 심볼릭 링크만 X11
있는 이유는 무엇입니까 ?/usr/bin