diff --git a/README.md b/README.md index 44c166a..a22aac8 100644 --- a/README.md +++ b/README.md @@ -501,6 +501,16 @@ Just make sure that you never click inside the QEMU window when doing that, othe You can still send key presses to QEMU however even without the mouse capture, just either click on the title bar, or alt tab to give it focus. +## X11 + +x86 has X11 support, simply run: + + startx + +More details: + +Not sure how well the graphics stack represents real systems, but if it does it would be a good way to understand how it works. + ## Table of contents 1. [Introduction](introduction.md) diff --git a/buildroot_config_fragment b/buildroot_config_fragment index 9b19172..63b6757 100644 --- a/buildroot_config_fragment +++ b/buildroot_config_fragment @@ -7,7 +7,7 @@ BR2_PACKAGE_STRACE=y BR2_ROOTFS_OVERLAY="../rootfs_overlay" BR2_ROOTFS_USERS_TABLES="../user_table" -## Host GDB +# Host GDB BR2_GDB_VERSION="7.11.1" BR2_GDB_VERSION_7_10=n BR2_GDB_VERSION_7_11=y @@ -17,24 +17,20 @@ BR2_PACKAGE_HOST_GDB_PYTHON=y BR2_PACKAGE_HOST_GDB_SIM=y BR2_PACKAGE_HOST_GDB_TUI=y -## QEMU. +# gdbserver +BR2_DEBUG_3=y +BR2_ENABLE_DEBUG=y +BR2_OPTIMIZE_0=y +BR2_PACKAGE_GDB=y +BR2_PTHREAD_DEBUG=y + +# QEMU BR2_PACKAGE_HOST_QEMU=y # False because otherwise we need the host to be as recent as guest. BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE=n BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y BR2_PACKAGE_HOST_QEMU_VDE2=y -## Target GDB -# This is preparation for target GDB / gdbserver. -# But those options require a toolchain with threads like glibc, -# which I'm afraid will make compilation slower, so let's leave it -# at that for now since our focus is kernel debug. -#BR2_DEBUG_1=n -#BR2_DEBUG_2=n -#BR2_DEBUG_3=y -#BR2_ENABLE_DEBUG=y -#BR2_OPTIMIZE_0=y - # ftrace BR2_PACKAGE_TRACE_CMD=y @@ -76,3 +72,22 @@ BR2_PACKAGE_HOST_DTC=y # which for our pci_min device fires interrupts. # BR2_PACKAGE_PCIUTILS=y + +# X11 +# https://unix.stackexchange.com/questions/70931/how-to-install-x11-on-my-own-linux-buildroot-system/306116#306116 +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 diff --git a/run b/run index 797b613..83cee6c 100755 --- a/run +++ b/run @@ -40,6 +40,7 @@ make O="$outdir" BR2_EXTERNAL="$(pwd)/../kernel_module" "$defconfig" # TODO Can't get rid of this for now. # http://stackoverflow.com/questions/44078245/is-it-possible-to-use-config-fragments-with-buildroots-config cat ../buildroot_config_fragment >> "${outdir}/.config" +make O="$outdir" olddefconfig # HOST_QEMU_OPTS is a hack that happens to work because the QEMU package luckly uses += at all times. # It shouldn't be necessary in the first place: https://bugs.busybox.net/show_bug.cgi?id=9936 # Even if were an autotools package, there is no general way currently to pass extra configs to it: