내 Linux Buildroot 시스템에 X11을 어떻게 설치합니까?

내 Linux Buildroot 시스템에 X11을 어떻게 설치합니까?

나는 나만의 작은 Linux 파일 시스템을 개발했습니다.루트 디렉터리 구축그리고바쁜 상자. 필요에 따라 대상 시스템(X86)에 대해 구성되고 크로스 컴파일된 linux-2.6.38.8 커널을 사용했습니다. 이제 파일 시스템이 구축되었지만 비지박스 쉘만 있고 GUI는 지원하지 않습니다. 이제 패키지 관리자가 없습니다. 이제 GUI를 활성화하고 싶습니다. 나는 확인했다/등하지만 아무것도 없어x11디렉토리 또는x11.conf문서. 지원하지 않음시작 x또한.

How can I install x11(XFree86 or Xorg) on my system Explicitly.

I also want to install a package-manager for my system.

이것이 어떻게 달성될 수 있습니까?

답변1

Ubuntu 16.04 호스트, Buildroot 2017.02

여기에 이미지 설명을 입력하세요.

현재 Buildroot에는 X11 패키지가 있어 작업을 "쉽게" 해줍니다.https://github.com/buildroot/buildroot/tree/2016.05/package/x11r7

이 저장소는 단일 명령으로 전체 시스템을 구축합니다.https://github.com/cirosantilli/linux-kernel-module-cheat/tree/b134f3958884ce1fce2dd9d31d19ab0c0fbe9089#x11

또는 미리 준비된 .config파일은 다음과 같습니다.https://github.com/cirosantilli/buildroot-configs/blob/44b45b5c7f68e44abcda360a2b980f8301901a9a/qemu_x86_64_x11_defconfig

제가 제거한 최소한의 X11 특정 구성은 다음과 같습니다.

BR2_PACKAGE_XAPP_TWM=y
BR2_PACKAGE_XAPP_XCALC=y
BR2_PACKAGE_XAPP_XCLOCK=y
BR2_PACKAGE_XAPP_XEYES=y
BR2_PACKAGE_XAPP_XINIT=y
BR2_PACKAGE_XDRIVER_XF86_INPUT_KEYBOARD=y
BR2_PACKAGE_XDRIVER_XF86_INPUT_MOUSE=y
BR2_PACKAGE_XDRIVER_XF86_VIDEO_CIRRUS=y
BR2_PACKAGE_XDRIVER_XF86_VIDEO_FBDEV=y
BR2_PACKAGE_XDRIVER_XF86_VIDEO_VESA=y
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_XSERVER_XORG_SERVER=y
BR2_PACKAGE_XTERM=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
BR2_USE_WCHAR=y

기존 옵션에 이러한 옵션을 추가하는 방법은 다음과 같습니다 .config.Buildroot의 .config에서 구성 조각을 사용할 수 있습니까? |스택 오버플로

옵션을 찾은 방법: make menuconfig옵션 이름을 검색한 /다음 dependes거꾸로 작업합니다 xeyes.

불행히도 여전히 두 개의 다른 패키지가 인터페이스를 구현하는 상황(예: X.Org Modular와 KDrive 모두 X11 서버를 구현함) 때문에 현재 수행 중인 작업을 알아야 하며 기본적으로 아무것도 선택되어 있지 않습니다.

이 글이 큰 도움이 되었습니다: Buildroot를 사용하여 소규모 X.Org Linux 시스템 구축하기 agentoss.wordpress.com

그리고 일반적인 시나리오는 다음과 같습니다.

make BR2_JLEVEL=$(nproc)
qemu-system-x86_64 \
    -enable-kvm \
    -M pc \
    -m 512 \
    -kernel output/images/bzImage \
    -drive file=output/images/rootfs.ext2,if=virtio,format=raw \
    -append root=/dev/vda \
    -net nic,model=virtio \
    -net user

QEMU 내에서:

root
startx

이미지 크기: 28M.

결과

고대 X11 시스템!

이 비디오와 같이 작동합니다.https://upload.wikimedia.org/wikipedia/commons/transcoded/5/52/TWM_without_configuration.ogv/TWM_without_configuration.ogv.480p.webm

특히 이 고대 창 관리자에는 메뉴 표시줄에 X 닫기 버튼이 없습니다. 다음을 수행해야 합니다.

  • 바탕화면을 클릭하세요
  • 메뉴에서 "죽이기"를 선택하세요
  • 죽이고 싶은 창을 선택하세요

startx그런 다음 GUI를 시작한 후 호출되는 /etc/X11/xinit/xinitrc에 전달됩니다 . xinit기본적 으로 다음을 포함합니다 xinitrc.

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login

창 관리자 twm(Buildroot에 패키지가 있는 다른 관리자 중 하나로 변경해 보세요)와 화면에 표시되는 프로그램이 시작됩니다. TODO 그 exec xterm부분은 무엇인가요? 왜 exec?

x11vnc

여기에 이미지 설명을 입력하세요.

에뮬레이터에서 실제 장치로 이동할 때 x11vnc모니터를 구입할 필요가 없습니다. 모니터는 호스트 컴퓨터에서 화면을 창으로 열고 마우스 클릭을 장치로 보낼 수도 있습니다.

Buildroot에서 패키지를 활성화 x11vnc하고 다시 빌드합니다.

QEMU에서 먼저 테스트하려면 옵션을 사용하십시오(참조:QEMU를 사용하여 호스트에서 게스트로 SSH를 어떻게 연결하나요? Unix 및 Linux 스택 교환 | ):

-net nic,model=virtio \
-net user,hostfwd=tcp::5901-:5900

그런 다음 게스트에서 실행하십시오 startx.

x11vnc

호스트로 돌아가기:

sudo apt-get install vinagre
vinagre localhost::5901

결과:

  • 왼쪽에서 QEMU는 X11, x11vnc 및 glmark2를 실행합니다.
  • 오른쪽에는 호스트 시스템의 vinagre가 정확히 동일한 내용을 표시합니다.
  • 하나를 클릭하고 상호작용하면 다른 하나가 즉시 업데이트됩니다.

또한보십시오:모니터 없이 라즈베리파이를 설정하는 방법은 무엇입니까? 라즈베리 파이 스택 교환 |

디스플레이 관리자(시도 실패)

여기에 이미지 설명을 입력하세요.

터미널을 완전히 잊어버리고 싶다면 다음을 활성화할 수도 있습니다.

  • 대상 패키지
    • 그래픽 라이브러리 및 애플리케이션
      • X.Org X Window System: 둘 다 클릭 y한 후 enterEnter
        • X11R7 Applications
          • xconsole( xdm기본적으로 실행)
          • xdm

이제 QEMU를 시작하면 "최신" 배포판과 유사한 그래픽 로그인 화면이 표시됩니다.

TODO: 로그인할 수 없습니다. 모든 X11 패키지가 설치된 다른 테스트에서는 사용자 이름 root/빈 비밀번호가 효과적이었습니다. xdm아래에 로그를 입력 /var/log/xdm.log하면 TTY 쉘을 사용하여 확인할 수 있습니다.ctrl-alt-f#을 눌러 QEMU 세션에서 TTY에 액세스하는 방법은 무엇입니까? |우분투에 물어보세요

디스플레이 관리자를 시작하는 호출 체인은 다음과 같습니다.

  • /init(비지박스 제공)
  • /etc/inittab철사::sysinit:/etc/init.d/rcS
  • /etc/init.d/rcS
  • /etc/init.d/S99xdm
  • /usr/bin/xdm

답변2

X를 직접 빌드해야 합니다. 독서부터 시작하세요이 X.Org 위키 항목.

이 가이드는 소스 코드에서 X Window System을 구축하려는 개발자를 위한 것입니다. 관심 분야가 드라이버나 애플리케이션 등 단일 소프트웨어 패키지로 제한되어 있는 경우 먼저 운영 체제에서 개발 기능을 문의하세요.

패키지 관리자의 경우 하나를 선택하고 필요한 모든 종속성을 충족한 다음 해당 내용을 패키지해야 합니다(단지 dpkg/rpm/무엇이든 선택했다고 해서 deb/RPM/... 패키지가 당신의 배포판과 마술처럼). Arch Linux의 Pacman은 구축하기 쉬워 보입니다.

관련 정보