Skip to content
Ciro Santilli 包子露宪 六四事件 法轮功 edited this page Dec 11, 2018 · 166 revisions

test baremetal and userland automatically. Already outputting lkmc_test_fail to terminal, now must check for that.

test-gdb: move to python

select config file from cli

kvm on raspberry pi

break up --prebuilt into --qemu-source (host|lkmc) and --toolchain-source (host|bruildroot|crosstool-ng)

global option to force rebuild, especially for kernel modules that rely on linux kernel? currently --clean + build

review prebuilt section. Explain GCC search algorithm.

fix initrd and initramfs after moving out of buildroot for kernel build...

test bisect-linux-boot-gem5

factor ./download-dependencies component selection with ./build

make it possible to select which toolchain to use or which qemu to use (host vs our own), don't fall back under users back

kernel module build variants to match multiple linux kernel builds, and for host

Explain how to do: Find Buildroot options with make menuconfig: make awesome with savedefconfig. Maybe explain that on the Linux kernel itself when that is split out of Buildroot.

aarch64 newlib _exit semihost connect status from C

review buildroot section, it's crap

test in docker and prebuilt getting started. Add a tested on marker on the Docker.

finer script argument factoring, e.g. no --run-id on ./build-* ...

Linux __builtin_expect make test with gem5 https://stackoverflow.com/questions/7346929/why-do-we-use-builtin-expect-when-a-straightforward-way-is-to-use-if-else/31540623#31540623

Do a Linux kernel config bisection detailed example with ktest, possibly Tests for --paramcopy setup from: https://github.com/satoru-takeuchi/elkdat

Decouple port selection from directory selection when using -n, use two separate flags. Otherwise, if you run, checkpoint, start another, then you can't restore gem5 (needs new port but old checkpoint dir).

debug build for QEMU, gem5 already exists with -t debug

go nuts and get xen running on QEMU with buildroot guests, failed attempt: http://mgalgs.github.io/2012/03/12/running-xen-under-qemu.html

benchmark gem5.fast

python: trace-boot, allow taking ALL run options, just set some defaults differently

gem5: expose running the tests: scons build/ARM/tests/opt/quick/se, etc.

Integrate UML properly in the scripts: https://github.com/cirosantilli/linux-kernel-module-cheat#user-mode-linux

get rid of trace2line.sh.

serialize multiple commands into sh, so e.g. we can get a script that does all the Linux build steps. also handle newline formatting nicely to group option value pairs e.g. --key my-value.

prebuilt gem5: reverse qemu-img on the distributed qcow2 :-)

Ctrl + C not killing bootstrap in ./build-crosstool-ng, why?

common.run_cmd let it pipe properly, e.g.:

./run-toolchain -aA --baremetal all objdump -- -S ./out/baremetal/aarch64/qemu/virt/main.elf | less

gives after closing:

Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>
BrokenPipeError: [Errno 32] Broken pipe

android. yes, my desire to suffer is that great

add a --dry-run option to run that prints the command to run, but does not actually run it. Ideally also does not create any directories or files.

make testing more granular, document how to test just qemu or just gem5 kernel boots for example

gem5 cannot build while another one is running, because m5term is being executed and we try to overwrite

automate gdb testing

./run -aa -gu --gem5-worktree master does not pass worktree to ./gem5-shell

play around with v4.19 HAVE_KERNEL_UNCOMPRESSED and see if we can get more visibility: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f16466af385b985f8d56f3fc50146ab41ec0dd89 edit section:

kernel cli treat as array, allow add and remove default options

docker build: provide sample host one CLI that just works, with the build commands.

Userland

Assembly examples. Replicate baremetal tree/

Add --static flag.

Test

bench-boot: run in parallel... likely convert to python first.

Images

Docker or some other setup for the Ubuntu image https://github.com/cirosantilli/linux-kernel-module-cheat/issues/35

Kernel modules

build-modules: install to make available to modprobe

Benchmark

benchmark gem5 single file rebuild (link time)

add dhrystone on full system and userland

baremetal

baremetal c++

prebuilts for baremetal examples

no_bootloader: don't link to lib C files to make it more minimal, in particular starts at exact address, and disassembly is cleaner

build only given targets

HW architecture

https://github.com/Kobzol/hardware-effects observe all on gem5 bare metal

Clone this wiki locally