From e4aa2b75499e04405fdefcbf2798ad4b6c240d45 Mon Sep 17 00:00:00 2001 From: Roman Stratiienko Date: Tue, 29 Jan 2019 13:35:17 +0200 Subject: [PATCH] build.sh: add optional embedding into the kernel This allows adding mali into the kernel and compile it as built-in driver embedding example: $ export KDIR= $ build.sh -r r8p1 -e building example: $ cd $ export ARCH=arm32 $ export CROSS_COMPILE=arm-linux-gnueabihf- $ make sunxi_defconfig $ ./scripts/config -e MALI400 Profiling support wasn't ported correctly and doesn't support the latest kernel, and it should be disabled to get success build $ ./scripts/config -d MALI400_PROFILING $ make olddefconfig $ make Signed-off-by: Roman Stratiienko --- build.sh | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/build.sh b/build.sh index d1fedffd..0e9464a1 100755 --- a/build.sh +++ b/build.sh @@ -46,6 +46,21 @@ build_driver() { cp $driver_dir/mali.ko . } +embed_driver() { + local driver_dir=$(pwd)/$RELEASE/src/devicedrv/mali/ + local kernel_driver_dir=$KDIR/drivers/gpu/drm/mali/ + local Kconfig_append='source "drivers/gpu/drm/mali/Kconfig"' + local Makefile_append="obj-y += mali/" + + rm -rf $kernel_driver_dir/* + mkdir -p $kernel_driver_dir + + cp -r $driver_dir/* $kernel_driver_dir + + fgrep -q "$Kconfig_append" $kernel_driver_dir../Kconfig || echo -e "\n$Kconfig_append" >> $kernel_driver_dir../Kconfig + fgrep -q "$Makefile_append" $kernel_driver_dir../Makefile || echo $Makefile_append >> $kernel_driver_dir../Makefile +} + install_driver() { local driver_dir=$(pwd)/$RELEASE/src/devicedrv/mali/ @@ -58,7 +73,7 @@ clean_driver() { make JOBS=$JOBS $BUILD_OPTS -C $driver_dir clean } -while getopts "j:r:aubcit" opt +while getopts "j:r:aubcite" opt do case $opt in a) @@ -75,6 +90,11 @@ do unapply_patches $(pwd)/patches $RELEASE clean_driver $RELEASE ;; + e) + echo "embedding into the kernel..." + apply_patches $(pwd)/patches $RELEASE + embed_driver $RELEASE + ;; i) echo "installing..." install_driver $RELEASE