Skip to content
Ciro Santilli,Opinions and content are my own, not my employer's,2018新疆改造中心,1989六四事件,1999法轮功 ,2019 996.ICU, 2018包子露宪,2015 710律师劫,2015巴拿马文件 邓家贵,2017低端人口,2008西藏骚乱scriptalert(1)/script edited this page Jun 23, 2019 · 166 revisions

use relative paths as much as possible, especially to produce nicer commands when reporting upstream bugs. consts['root_dir'] = '.' worked for run, but other scripts have some crappy things like ./run-gdb that require changing directory, currently encapsulated by sh.run(cwd=, so each command can have a different relative path requried. Likely the best way to go is to convert everything to pathlib.

break up --prebuilt into --qemu-source (host|lkmc) and --toolchain-source (host|bruildroot|crosstool-ng). 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

destroy ./build, properly track and resolve dependencies, use ./lkmc run emulator=qemu dependencies=1 as interface.

kvm on raspberry pi

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

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

fix bisect-linux-boot-gem5

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

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-. Hard.

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

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

get rid of trace2line.sh.

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

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

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

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

Imagemagick dependency for test-gem5-graphics.

Add --terminal to ./build-buildroot --terminal -- menuconfig and linux. 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.

network test: automate by downloading a known github raw page that we create. #test-the-internet

gdb

automate gdb linux kernel boot testing: #test-gdb-linux-kernel

gem5

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

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

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

Userland

bst-vs-heap: finish migration. Achieve, beauty.

move asm_main return to int

x86_64

Migrate stuff that I use a lot:

  • jcc
  • .word vs .long etc.

Test

test-boot: preserve all logs. Currently overwrite if another thread with same ID comes along. We should just keep incrementing the --run-id all the time? Maybe this will lead QEMU to blow up due to port issues. Again this leads me to want to separate ports... 139c344c7900beea104c05ab891f6f32520d8bc2

Images

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

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

android. yes, my desire to suffer is that great

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

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

arch/arm move to syntax unified. Does not seem possible from CLI... so need an include? -masm-syntax-unified is GCC only. glsf|g '\.S$' |mrr '#(\d)/\1/g' D

baremetal c++

HW architecture

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

Clone this wiki locally