qemu and linux as submodlues, S98 vs S99, readme benefits of Ctrl + C

This commit is contained in:
Ciro Santilli
2017-07-08 09:17:36 +01:00
parent 2ff3648e8f
commit 9133fe023c
10 changed files with 26 additions and 6 deletions

2
.gitignore vendored
View File

@@ -4,6 +4,8 @@
*.o *.o
*.out *.out
*.tmp *.tmp
*~
.tmp_versions .tmp_versions
/rootfs_overlay/etc/init.d/S99
Module.symvers Module.symvers
modules.order modules.order

6
.gitmodules vendored
View File

@@ -1,3 +1,9 @@
[submodule "buildroot"] [submodule "buildroot"]
path = buildroot path = buildroot
url = https://github.com/buildroot/buildroot url = https://github.com/buildroot/buildroot
[submodule "qemu"]
path = qemu
url = https://github.com/cirosantilli/qemu
[submodule "linux"]
path = linux
url = https://github.com/cirosantilli/linux

View File

@@ -122,6 +122,8 @@ TODO: Ctrl + C kills the emulator, it is not sent to guest processes. See:
- <https://github.com/cloudius-systems/osv/issues/49> - <https://github.com/cloudius-systems/osv/issues/49>
- <https://unix.stackexchange.com/questions/167165/how-to-pass-ctrl-c-in-qemu> - <https://unix.stackexchange.com/questions/167165/how-to-pass-ctrl-c-in-qemu>
This is however fortunate when running QEMU with GDB, as the Ctrl + C reaches GDB and breaks.
## Automatic startup commands ## Automatic startup commands
When debugging a module, it becomes tedious to wait for build and re-type: When debugging a module, it becomes tedious to wait for build and re-type:
@@ -131,10 +133,14 @@ When debugging a module, it becomes tedious to wait for build and re-type:
Instead, you can add your test commands to: Instead, you can add your test commands to:
rootfs_overlay/etc/init.d/S99 cd rootfs_overlay/etc/init.d
cp S98 S99
vim S99
and they will be run automatically before the login prompt. and they will be run automatically before the login prompt.
`S99` is already gitignored for you.
## Debugging ## Debugging
To GDB the Linux kernel, first run: To GDB the Linux kernel, first run:

View File

@@ -2,6 +2,7 @@ BR2_GLOBAL_PATCH_DIR="../global_patch_dir"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="../kernel_config_fragment" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="../kernel_config_fragment"
BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="../busybox_config_fragment" BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="../busybox_config_fragment"
BR2_PACKAGE_KERNEL_MODULE=y BR2_PACKAGE_KERNEL_MODULE=y
BR2_PACKAGE_OVERRIDE_FILE=../buildroot_override
BR2_PACKAGE_STRACE=y BR2_PACKAGE_STRACE=y
BR2_ROOTFS_OVERLAY="../rootfs_overlay" BR2_ROOTFS_OVERLAY="../rootfs_overlay"

2
buildroot_override Normal file
View File

@@ -0,0 +1,2 @@
HOST_QEMU_OVERRIDE_SRCDIR = ../qemu
LINUX_OVERRIDE_SRCDIR = ../linux

1
linux Submodule

Submodule linux added at 54e66cc228

1
qemu Submodule

Submodule qemu added at 144ea94d71

6
rootfs_overlay/etc/init.d/S98 Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/sh
# For temparary test commands, first copy this file to to
# S99 which is already gitignored.
echo 'S98'
# insmod /hello.ko
exit 0

View File

@@ -1,4 +0,0 @@
#!/bin/sh
echo 'S99'
# insmod /hello.ko
exit 0

1
run
View File

@@ -43,7 +43,6 @@ env \
HOST_QEMU_OPTS="--enable-debug --enable-sdl --extra-cflags='-DDEBUG_PL061=1' --with-sdlabi=2.0" \ HOST_QEMU_OPTS="--enable-debug --enable-sdl --extra-cflags='-DDEBUG_PL061=1' --with-sdlabi=2.0" \
host-qemu-rebuild \ host-qemu-rebuild \
linux-rebuild \ linux-rebuild \
kernel_module-rebuild \
all \ all \
; ;
cd .. cd ..