카테고리

asm (27) bootloader_x86_grub (1) C (92) compile (11) config (76) CPP (13) CSS (1) debugging (7) gimp (1) Go (1) html (1) Java (1) JavaScript (1) kernel (19) LibreOffice (3) Linux system progamming (21) MFC (1) opencv (4) OpenGL (1) PHP (1) Python (4) qemu (29) shell (3) socket (7) troubleshooting (2) ubuntu18.04 (2) windows (1)

2019/01/05

qemu x11 설치

X11 패키지 모음 사이트
https://github.com/buildroot/buildroot/tree/2016.05/package/x11r7
https://github.com/buildroot/buildroot/tree/2018.02.x/package/x11r7
https://github.com/buildroot/buildroot/tree/2018.11.x/package/x11r7

시작 명령어.
startx 

qemu_x86_64_x11_defconfig
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 추가 방법.
cat configs/qemu_x86_64_defconfig br_config_frag > .config
make olddefconfig

선택 옵션 발견: 
make menuconfig
커널 체크 박스 에서 검색 / 
xeyes에 대한 dependes 확인. 

두개의 서로 다른 인터페이스 패키지가 구현되는 상황. (X.Org 모듈과 KDrive 둘 다 X11 서버 구현하는 경우) 기본적으로 선택되지 않는 상황 때문에 어떻한 작업을 할 것인지에 대해 알고 있어야 한다. 

윈도우메니지먼트 참고: https://nautiluslee.blogspot.com/2019/01/x11-blackbox-qemu.html

동작 구현 
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

startx 명령어 실행 후 /etc/X11/xinit/xinitrc 파일를 참고해 GUI 호출 

vi 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

윈도우 메니지먼트 시작됨. 

QEMU SSH 사용해 게스트 접근 방법.
-net nic,model=virtio \
-net user,hostfwd=tcp::5901-:5900

추가 후 게스트에서 startx 실행
x11vnc 

호스트 환경으로 넘어와: 
sudo apt-get install vinagre
vinagre localhost::5901

x로만 로그인 할 경우
대상 패키지 -> 그래픽 라이브러리 및 응용프로그램 -> 
X.Org X Window System : y 클릭 
X11R7 Application -> xconsole(xdm 기본 설정)
xdm

루트 로그인 할 수 없음.
xdm 로그: /var/log/sdm.log 

x 메니지먼트 호출 체인 방식 
/init (BysyBox 사용)
/etc/inittab 내용 :: sysinit:/etc/init.d/rcS
/etc/init.d/rcS
/etc/init.d/S99xdm
/usr/bin/xdm

댓글 없음:

댓글 쓰기