81 lines
2.4 KiB
Bash
Executable File
81 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Bash script to run linux-menuconfig for a specific arch
|
|
|
|
set -e
|
|
|
|
ARCH=$1
|
|
MAKECMD=${2:-"linux-menuconfig"}
|
|
if [ -n "$ARCH" ]; then
|
|
if [ "$ARCH" != "armv6" ] && [ "$ARCH" != "armv7" ] && [ "$ARCH" != "armv7l" ]; then
|
|
echo "ARCH must be armv6 or armv7 or armv7l">&2
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "Missing ARCH parameter">&2
|
|
exit 1
|
|
fi
|
|
|
|
|
|
function get_kernel_version {
|
|
CONFIG_FILE=.config
|
|
CONFIG_VAR=BR2_LINUX_KERNEL_VERSION
|
|
grep -E "^$CONFIG_VAR=\".+\"$" "$CONFIG_FILE" | tr -d '"' | cut -d= -f2
|
|
}
|
|
|
|
|
|
#function select_kernelconfig {
|
|
# ARCH=$1
|
|
# CONFIG_FILE=.config
|
|
# CONFIG_VAR=BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
|
|
# VAR_PREFIX=kernelconfig-recovery
|
|
# sed -ri "s/(^$CONFIG_VAR=\"$VAR_PREFIX\.).+(\")$/\1$ARCH\2/" "$CONFIG_FILE"
|
|
#}
|
|
|
|
function select_kernelconfig {
|
|
ARCH=$1
|
|
CONFIG_FILE=.config
|
|
CONFIG_VAR=BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
|
|
VAR_PREFIX=kernelconfig-recovery
|
|
sed -ri "s/(^$CONFIG_VAR=\"$VAR_PREFIX\.).+(\")$/\1$ARCH\2/" "$CONFIG_FILE"
|
|
|
|
# if [ "$ARCH" == "armv6" ]; then
|
|
# REPO="git:\/\/github.com\/raspberrypi\/linux.git"
|
|
# VERSION="c7eb400f2fca1ce06d1778c7b9adc9687aeed148"
|
|
# elif [ "$ARCH" == "armv7" ]; then
|
|
# REPO="git:\/\/github.com\/raspberrypi\/linux.git"
|
|
# VERSION="c7eb400f2fca1ce06d1778c7b9adc9687aeed148"
|
|
# elif [ "$ARCH" == "armv7l" ]; then
|
|
# REPO="git:\/\/github.com\/raspberrypi\/linux.git"
|
|
# VERSION="c7eb400f2fca1ce06d1778c7b9adc9687aeed148"
|
|
# fi
|
|
# CONFIG_VAR=BR2_LINUX_KERNEL_CUSTOM_REPO_URL
|
|
# sed -ri "s/(^$CONFIG_VAR=\").+(\")$/\1$REPO\2/" "$CONFIG_FILE"
|
|
# CONFIG_VAR=BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION
|
|
# sed -ri "s/(^$CONFIG_VAR=\").+(\")$/\1$VERSION\2/" "$CONFIG_FILE"
|
|
# CONFIG_VAR=BR2_LINUX_KERNEL_VERSION
|
|
# sed -ri "s/(^$CONFIG_VAR=\").+(\")$/\1$VERSION\2/" "$CONFIG_FILE"
|
|
}
|
|
|
|
function get_kernelconfig {
|
|
CONFIG_FILE=.config
|
|
CONFIG_VAR=BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
|
|
VAR_PREFIX=kernelconfig-recovery
|
|
grep -E "^$CONFIG_VAR=\".+\"$" "$CONFIG_FILE" | tr -d '"' | cut -d= -f2 | sed "s/^$VAR_PREFIX\.//"
|
|
}
|
|
|
|
|
|
cd buildroot
|
|
|
|
# Setup kernel for specific arch
|
|
if [ "$(get_kernelconfig)" != "$ARCH" ]; then
|
|
select_kernelconfig $ARCH
|
|
KERNEL_BUILD_DIR=output/build/linux-$(get_kernel_version)
|
|
#rm "$KERNEL_BUILD_DIR/.stamp_patched"
|
|
rm "$KERNEL_BUILD_DIR/.stamp_configured"
|
|
fi
|
|
|
|
# Run specific command
|
|
make "$MAKECMD"
|
|
make linux-update-defconfig
|