mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-23 02:05:57 +01:00
Uber easy arch swap
This commit is contained in:
@@ -225,11 +225,6 @@ And then tell GDB where the module was loaded with:
|
||||
|
||||
The portability of the kernel and toolchains is amazing.
|
||||
|
||||
If you already have an x86 build present, first:
|
||||
|
||||
cd buildroot
|
||||
mv output output.x86~
|
||||
|
||||
First ARM build:
|
||||
|
||||
./run -a arm
|
||||
|
||||
6
run
6
run
@@ -1,6 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
cd buildroot
|
||||
arch='x86_64'
|
||||
while getopts a: OPT > /dev/null 2>&1; do
|
||||
case "$OPT" in
|
||||
@@ -19,6 +18,9 @@ case "$arch" in
|
||||
defconfig=qemu_arm_versatile_defconfig
|
||||
;;
|
||||
esac
|
||||
|
||||
./setoutarch "$arch"
|
||||
cd buildroot
|
||||
for p in $(find '../buildroot_patches/' -maxdepth 1 -name '*.patch' -print); do
|
||||
patch -N -r - -p 1 <"$p" || :
|
||||
done
|
||||
@@ -26,7 +28,6 @@ make 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 >> .config
|
||||
|
||||
# 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:
|
||||
@@ -43,6 +44,5 @@ env \
|
||||
kernel_module-rebuild \
|
||||
all \
|
||||
;
|
||||
|
||||
cd ..
|
||||
./runqemu "$@"
|
||||
|
||||
2
runqemu
2
runqemu
@@ -43,6 +43,7 @@ done
|
||||
shift "$(($OPTIND - 1))"
|
||||
extra_flags="$extra_flags $@"
|
||||
|
||||
./setoutarch "$arch"
|
||||
buildroot_out_dir='./buildroot/output'
|
||||
images_dir="$buildroot_out_dir/images"
|
||||
qemu_common="\
|
||||
@@ -83,7 +84,6 @@ case "$arch" in
|
||||
"
|
||||
;;
|
||||
esac
|
||||
echo "$cmd"
|
||||
if "$debug" && ! "$nographic" && [ ! "$arch" = 'arm' ]; then
|
||||
eval "$cmd" &>/dev/null &
|
||||
# TODO: Ctrl +C gets sent to QEMU? Why? Does not happen if I run
|
||||
|
||||
10
setoutarch
Executable file
10
setoutarch
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
# Maintain different buildroot/output archs with symlinks.
|
||||
if [ "$#" -ne 1 ]; then
|
||||
exit 1
|
||||
fi
|
||||
arch="$1"
|
||||
dst="output.${arch}~"
|
||||
src='buildroot/output'
|
||||
mkdir -p "buildroot/$dst"
|
||||
ln -fns "$dst" "$src"
|
||||
Reference in New Issue
Block a user