mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-25 19:21:35 +01:00
move all our stuff into /lkmc in guest
Motivation: userland is getting several new subdirectories, it would be too insane to just dump all of that in the guest root filesystem. To alleviate the cd pain, .profile puts user inside /lkmc by default.
This commit is contained in:
84
run
84
run
@@ -58,15 +58,8 @@ which is what you usually want.
|
||||
help='''\
|
||||
Replace the normal init with a minimal init that just evals the given string.
|
||||
See: https://github.com/cirosantilli/linux-kernel-module-cheat#replace-init
|
||||
'''
|
||||
)
|
||||
self.add_argument(
|
||||
'--kernel-cli',
|
||||
help='''\
|
||||
Pass an extra Linux kernel command line options, and place them before
|
||||
the dash separator `-`. Only options that come before the `-`, i.e.
|
||||
"standard" options, should be passed with this option.
|
||||
Example: `./run --arch arm --kernel-cli 'init=/poweroff.out'`
|
||||
chdir into lkmc_home before running the command:
|
||||
https://github.com/cirosantilli/linux-kernel-module-cheat#lkmc_home
|
||||
'''
|
||||
)
|
||||
self.add_argument(
|
||||
@@ -75,16 +68,8 @@ Example: `./run --arch arm --kernel-cli 'init=/poweroff.out'`
|
||||
Pass a base64 encoded command line parameter that gets evalled at the end of
|
||||
the normal init.
|
||||
See: https://github.com/cirosantilli/linux-kernel-module-cheat#init-busybox
|
||||
'''
|
||||
)
|
||||
self.add_argument(
|
||||
'--kernel-cli-after-dash',
|
||||
help='''\
|
||||
Pass an extra Linux kernel command line options, add a dash `-`
|
||||
separator, and place the options after the dash. Intended for custom
|
||||
options understood by our `init` scripts, most of which are prefixed
|
||||
by `lkmc_`.
|
||||
Example: `./run --kernel-cli-after-dash 'lkmc_eval="wget google.com" lkmc_lala=y'`
|
||||
chdir into lkmc_home before running the command:
|
||||
https://github.com/cirosantilli/linux-kernel-module-cheat#lkmc_home
|
||||
'''
|
||||
)
|
||||
self.add_argument(
|
||||
@@ -108,16 +93,6 @@ gem.op5 --debug-flags=Exec fs.py --cpu-type=HPI --caches
|
||||
'--gem5-readfile', default='',
|
||||
help='Set the contents of m5 readfile to this string.'
|
||||
)
|
||||
self.add_argument(
|
||||
'-K', '--kvm', default=False,
|
||||
help='Use KVM. Only works if guest arch == host arch'
|
||||
)
|
||||
self.add_argument(
|
||||
'--kgdb', default=False,
|
||||
)
|
||||
self.add_argument(
|
||||
'--kdb', default=False,
|
||||
)
|
||||
self.add_argument(
|
||||
'--gem5-restore', type=int,
|
||||
help='''\
|
||||
@@ -125,6 +100,35 @@ Restore the nth most recently taken gem5 checkpoint according to directory
|
||||
timestamps.
|
||||
'''
|
||||
)
|
||||
self.add_argument(
|
||||
'--kdb', default=False,
|
||||
)
|
||||
self.add_argument(
|
||||
'--kernel-cli',
|
||||
help='''\
|
||||
Pass an extra Linux kernel command line options, and place them before
|
||||
the dash separator `-`. Only options that come before the `-`, i.e.
|
||||
"standard" options, should be passed with this option.
|
||||
Example: `./run --arch arm --kernel-cli 'init=/poweroff.out'`
|
||||
'''
|
||||
)
|
||||
self.add_argument(
|
||||
'--kernel-cli-after-dash',
|
||||
help='''\
|
||||
Pass an extra Linux kernel command line options, add a dash `-`
|
||||
separator, and place the options after the dash. Intended for custom
|
||||
options understood by our `init` scripts, most of which are prefixed
|
||||
by `lkmc_`.
|
||||
Example: `./run --kernel-cli-after-dash 'lkmc_eval="wget google.com" lkmc_lala=y'`
|
||||
'''
|
||||
)
|
||||
self.add_argument(
|
||||
'--kgdb', default=False,
|
||||
)
|
||||
self.add_argument(
|
||||
'-K', '--kvm', default=False,
|
||||
help='Use KVM. Only works if guest arch == host arch'
|
||||
)
|
||||
self.add_argument(
|
||||
'-m', '--memory', default='256M',
|
||||
help='''\
|
||||
@@ -149,6 +153,15 @@ Setup a kernel init parameter that makes the emulator quit immediately after boo
|
||||
'-r', '--record', default=False,
|
||||
help='Record a QEMU run record for later replay with `-R`'
|
||||
)
|
||||
self.add_argument(
|
||||
'--terminal', default=False,
|
||||
help='''\
|
||||
Output to the terminal, don't pipe to tee as the default.
|
||||
Does not save the output to a file, but allows you to use debuggers.
|
||||
Set automatically by --debug-vm, but you still need this option to debug
|
||||
gem5 Python scripts with pdb.
|
||||
'''
|
||||
)
|
||||
self.add_argument(
|
||||
'-T', '--trace',
|
||||
help='''\
|
||||
@@ -171,15 +184,6 @@ Output trace to stdout instead of a file. Only works for gem5 currently.
|
||||
default=False,
|
||||
help='''\
|
||||
Trace instructions run to stdout. Shortcut for --trace --trace-stdout.
|
||||
'''
|
||||
)
|
||||
self.add_argument(
|
||||
'--terminal', default=False,
|
||||
help='''\
|
||||
Output to the terminal, don't pipe to tee as the default.
|
||||
Does not save the output to a file, but allows you to use debuggers.
|
||||
Set automatically by --debug-vm, but you still need this option to debug
|
||||
gem5 Python scripts with pdb.
|
||||
'''
|
||||
)
|
||||
self.add_argument(
|
||||
@@ -232,7 +236,7 @@ Run QEMU with VNC instead of the default SDL. Connect to it with:
|
||||
kernel_cli += ' {}'.format(self.env['kernel_cli'])
|
||||
if self.env['quit_after_boot']:
|
||||
kernel_cli += ' {}'.format(self.env['quit_init'])
|
||||
kernel_cli_after_dash = ''
|
||||
kernel_cli_after_dash = ' lkmc_home={}'.format(self.env['guest_lkmc_home'])
|
||||
extra_emulator_args = []
|
||||
extra_qemu_args = []
|
||||
if self.env['tmux_args'] is not None:
|
||||
@@ -252,7 +256,7 @@ Run QEMU with VNC instead of the default SDL. Connect to it with:
|
||||
else:
|
||||
vnc = []
|
||||
if self.env['eval'] is not None:
|
||||
kernel_cli += ' {}=/eval_base64.sh'.format(self.env['initarg'])
|
||||
kernel_cli += ' {}=/lkmc/eval_base64.sh'.format(self.env['initarg'])
|
||||
kernel_cli_after_dash += ' lkmc_eval="{}"'.format(self.sh.base64_encode(self.env['eval']))
|
||||
if not self.env['graphic']:
|
||||
extra_qemu_args.extend(['-nographic', LF])
|
||||
|
||||
Reference in New Issue
Block a user