Skip to content

Commit

Permalink
Merge pull request #4 from nixgoat/stoney-6.6-upstream
Browse files Browse the repository at this point in the history
build: Add packaging and remove variants
  • Loading branch information
WeirdTreeThing authored Feb 8, 2024
2 parents d53b5bd + 09a8191 commit 1deaf54
Show file tree
Hide file tree
Showing 10 changed files with 145 additions and 21,964 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,8 @@
build/
source/
packaging/alpine/pkg/
packaging/alpine/keys/
packaging/alpine/src/community/linux-chrultrabook-stoney/APKBUILD
packaging/alpine/src/community/linux-chrultrabook-stoney/kernel.tar.gz
packaging/alpine/src/community/linux-chrultrabook-stoney/src/
packaging/alpine/src/community/linux-chrultrabook-stoney/pkg/
127 changes: 71 additions & 56 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,79 +6,55 @@ kernel_config_dir=$PWD/config
source_dir=$PWD/source
build_dir=$PWD/build
patches_dir=$PWD/patches
packaging_dir=$PWD/packaging

kernel_version="6.6.16"
tarball_url="https://cdn.kernel.org/pub/linux/kernel/v${kernel_version:0:1}.x/linux-${kernel_version}.tar.xz"
tarball_name="$(echo $tarball_url | cut -f 8 -d '/')"

# each variant has a different config, branch, arch, patch set, etc
variants=('stoney' 'avs' 'mt8173')
distros=('alpine' 'none')

function build_kernel {
variant=$1
case $variant in
stoney)
arch=x86_64

# Install amdgpu firmware
firmware_dir=${source_dir}/${variant}/stoney_firmware
mkdir -p ${firmware_dir}/amdgpu
cp -r /lib/firmware/amdgpu/stoney* ${firmware_dir}/amdgpu
# doesn't matter if decompression fails
xz_count=`ls -1 ${firmware_dir}/amdgpu/stoney*.xz 2>/dev/null | wc -l`
zst_count=`ls -1 ${firmware_dir}/amdgpu/stoney*.zst 2>/dev/null | wc -l`
if [ $xz_count != 0 ]; then
xz -d ${firmware_dir}/amdgpu/stoney*.xz &> /dev/null || true
fi
if [ $zst_count != 0 ]; then
zstd -d ${firmware_dir}/amdgpu/stoney*.zst &> /dev/null || true
fi
;;
avs)
arch=x86_64
;;
mt8173)
tarball_url=""
arch=arm64
;;
esac

kernel_source_dir=${source_dir}/${variant}/linux-${kernel_version}
output_dir=${build_dir}/${variant}
arch=x86_64

# Install amdgpu firmware
firmware_dir=${source_dir}/stoney_firmware
mkdir -p ${firmware_dir}/amdgpu
cp -r /lib/firmware/amdgpu/stoney* ${firmware_dir}/amdgpu
# doesn't matter if decompression fails
xz_count=`ls -1 ${firmware_dir}/amdgpu/stoney*.xz 2>/dev/null | wc -l`
zst_count=`ls -1 ${firmware_dir}/amdgpu/stoney*.zst 2>/dev/null | wc -l`
if [ $xz_count != 0 ]; then
xz -d ${firmware_dir}/amdgpu/stoney*.xz &> /dev/null || true
fi
if [ $zst_count != 0 ]; then
zstd -d ${firmware_dir}/amdgpu/stoney*.zst &> /dev/null || true
fi

kernel_source_dir=${source_dir}/linux-${kernel_version}
output_dir=${build_dir}
module_dir=${output_dir}/modules
header_dir=${output_dir}/headers
case $arch in
arm*) dtbs_dir=${output_dir}/dtbs ;;
esac

echo "Building $variant kernel"
echo "Building kernel"

mkdir -p ${source_dir}/${variant}
curl -L $tarball_url -o ${source_dir}/${variant}/${tarball_name}
tar xf ${source_dir}/${variant}/${tarball_name} -C ${source_dir}/${variant}/
curl -L $tarball_url -o ${source_dir}/${tarball_name}
tar xf ${source_dir}/${tarball_name} -C ${source_dir}/
cd $kernel_source_dir
for f in ${patches_dir}/${variant}/*; do
for f in ${patches_dir}/*; do
patch -p1 < $f &> /dev/null || true;
done

case $arch in
arm64) cross="aarch64-linux-gnu-";;
esac

# install config for variant
cp ${kernel_config_dir}/${variant}.config .config
# install config
cp ${kernel_config_dir}/config .config
make CROSS_COMPILE=$cross ARCH=$arch olddefconfig

# build kernel and modules
make CROSS_COMPILE=$cross ARCH=$arch -j$(nproc)

# install build files to output dir
mkdir -p $output_dir
case $arch in
arm*) install_cmd="zinstall dtbs_install";;
*) install_cmd="install";;
esac
make modules_install $install_cmd \
make modules_install install \
ARCH=$arch \
INSTALL_MOD_PATH=$module_dir \
INSTALL_MOD_STRIP=1 \
Expand Down Expand Up @@ -142,12 +118,51 @@ function build_kernel {
cd $output_dir; tar -caf kernel.tar.gz *; cd -
}

# if an argument is passed to the script, build that variant. otherwise build each variant
function package_kernel {
distro=$1

# determine which container tools are available
if command -v podman &> /dev/null; then
container=podman
elif command -v docker &> /dev/null; then
container=docker
if [ "$EUID" -e 0 ] || id -nG "$USER" | grep -qw "docker"; then
elevate=""
elif command -v sudo &> /dev/null; then
elevate=sudo
elif command -v doas &> /dev/null; then
elevate=doas
else
echo "Can't elevate to root privileges and user is not in the Docker group. Skipping packaging"
return
fi
else
echo "No suitable container tool found. Skipping packaging"
return
fi

case $distro in
alpine)
package_dir=${packaging_dir}/alpine/pkg/community/linux-chrultrabook-stoney/
cp ${build_dir}/kernel.tar.gz ${package_dir}
cp ${package_dir}/APKBUILD.template ${package_dir}/APKBUILD
sed -i "s/KERNELVER/${kernel_version}/g" ${package_dir}/APKBUILD
$elevate $container run --rm \
--platform linux/x86_64 \
-v ${packaging_dir}/alpine:/stoney:z \
-it alpine \
/stoney/steps.sh $USER
$elevate chown -R $USER:$USER packaging/
;;
}

build_kernel
# if an argument is passed to the script, package for that distro. otherwise package for each distro
if [[ -n $1 ]]; then
variant=$1
build_kernel $variant
distro=$1
package_kernel $distro
else
for variant in ${variants[@]}; do
build_kernel $variant
for distro in ${distros[@]}; do
package_kernel $distro;
done
fi
52 changes: 20 additions & 32 deletions config/stoney.config → config
Original file line number Diff line number Diff line change
@@ -1,24 +1,23 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 6.4.0-rc7 Kernel Configuration
# Linux/x86 6.4.3 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.1.1 20230429"
CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.1.1 20230614 (Red Hat 13.1.1-4)"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=130101
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=24000
CONFIG_AS_VERSION=23900
CONFIG_LD_IS_BFD=y
CONFIG_LD_VERSION=24000
CONFIG_LD_VERSION=23900
CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
CONFIG_TOOLS_SUPPORT_RELR=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
CONFIG_PAHOLE_VERSION=125
CONFIG_PAHOLE_VERSION=0
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
CONFIG_THREAD_INFO_IN_TASK=y
Expand Down Expand Up @@ -491,9 +490,9 @@ CONFIG_EFI_MIXED=y
CONFIG_EFI_RUNTIME_MAP=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
CONFIG_HZ_300=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=300
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_SCHED_HRTICK=y
CONFIG_KEXEC=y
CONFIG_KEXEC_FILE=y
Expand Down Expand Up @@ -907,8 +906,6 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
# end of GCOV-based kernel profiling

CONFIG_HAVE_GCC_PLUGINS=y
CONFIG_GCC_PLUGINS=y
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
CONFIG_FUNCTION_ALIGNMENT_4B=y
CONFIG_FUNCTION_ALIGNMENT_16B=y
CONFIG_FUNCTION_ALIGNMENT=16
Expand Down Expand Up @@ -1163,6 +1160,7 @@ CONFIG_LRU_GEN_ENABLED=y
# CONFIG_LRU_GEN_STATS is not set
CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
CONFIG_PER_VMA_LOCK=y
CONFIG_LOCK_MM_AND_FIND_VMA=y

#
# Data Access Monitoring
Expand Down Expand Up @@ -4135,7 +4133,7 @@ CONFIG_INPUT_LEDS=y
CONFIG_INPUT_FF_MEMLESS=m
CONFIG_INPUT_SPARSEKMAP=m
CONFIG_INPUT_MATRIXKMAP=m
CONFIG_INPUT_VIVALDIFMAP=m
CONFIG_INPUT_VIVALDIFMAP=y

#
# Userland interfaces
Expand All @@ -4157,14 +4155,14 @@ CONFIG_KEYBOARD_ADP5520=m
CONFIG_KEYBOARD_ADP5588=m
CONFIG_KEYBOARD_ADP5589=m
CONFIG_KEYBOARD_APPLESPI=m
CONFIG_KEYBOARD_ATKBD=m
CONFIG_KEYBOARD_ATKBD=y
CONFIG_KEYBOARD_QT1050=m
CONFIG_KEYBOARD_QT1070=m
CONFIG_KEYBOARD_QT2160=m
CONFIG_KEYBOARD_DLINK_DIR685=m
CONFIG_KEYBOARD_LKKBD=m
CONFIG_KEYBOARD_GPIO=m
CONFIG_KEYBOARD_GPIO_POLLED=m
CONFIG_KEYBOARD_GPIO=y
CONFIG_KEYBOARD_GPIO_POLLED=y
CONFIG_KEYBOARD_TCA6416=m
CONFIG_KEYBOARD_TCA8418=m
CONFIG_KEYBOARD_MATRIX=m
Expand Down Expand Up @@ -4312,7 +4310,7 @@ CONFIG_TOUCHSCREEN_MTOUCH=m
# CONFIG_TOUCHSCREEN_NOVATEK_NVT_TS is not set
CONFIG_TOUCHSCREEN_IMAGIS=m
CONFIG_TOUCHSCREEN_INEXIO=m
CONFIG_TOUCHSCREEN_MK712=m
# CONFIG_TOUCHSCREEN_MK712 is not set
CONFIG_TOUCHSCREEN_PENMOUNT=m
CONFIG_TOUCHSCREEN_EDT_FT5X06=m
CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
Expand Down Expand Up @@ -4451,14 +4449,14 @@ CONFIG_RMI4_F55=y
#
# Hardware I/O ports
#
CONFIG_SERIO=m
CONFIG_SERIO=y
CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
CONFIG_SERIO_I8042=m
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=m
CONFIG_SERIO_CT82C710=m
CONFIG_SERIO_PARKBD=m
CONFIG_SERIO_PCIPS2=m
CONFIG_SERIO_LIBPS2=m
CONFIG_SERIO_LIBPS2=y
CONFIG_SERIO_RAW=m
CONFIG_SERIO_ALTERA_PS2=m
CONFIG_SERIO_PS2MULT=m
Expand Down Expand Up @@ -5964,8 +5962,7 @@ CONFIG_VIDEO_PVRUSB2=m
CONFIG_VIDEO_PVRUSB2_SYSFS=y
CONFIG_VIDEO_PVRUSB2_DVB=y
# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_STK1160=m
# CONFIG_VIDEO_STK1160_COMMON is not set

#
# Analog/digital TV USB devices
Expand Down Expand Up @@ -8940,7 +8937,7 @@ CONFIG_MXM_WMI=m
CONFIG_NVIDIA_WMI_EC_BACKLIGHT=m
CONFIG_XIAOMI_WMI=m
CONFIG_GIGABYTE_WMI=m
CONFIG_YOGABOOK_WMI=m
# CONFIG_YOGABOOK_WMI is not set
CONFIG_ACERHDF=m
CONFIG_ACER_WIRELESS=m
CONFIG_ACER_WMI=m
Expand Down Expand Up @@ -10586,16 +10583,13 @@ CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
# CONFIG_INIT_STACK_NONE is not set
# CONFIG_INIT_STACK_ALL_PATTERN is not set
CONFIG_INIT_STACK_ALL_ZERO=y
# CONFIG_GCC_PLUGIN_STACKLEAK is not set
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
# CONFIG_ZERO_CALL_USED_REGS is not set
# end of Memory initialization

CONFIG_RANDSTRUCT_NONE=y
# CONFIG_RANDSTRUCT_FULL is not set
# CONFIG_RANDSTRUCT_PERFORMANCE is not set
# end of Kernel hardening options
# end of Security options

Expand Down Expand Up @@ -10723,7 +10717,7 @@ CONFIG_CRYPTO_RMD160=m
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SHA3=y
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM3_GENERIC=m
CONFIG_CRYPTO_STREEBOG=m
Expand Down Expand Up @@ -11093,13 +11087,7 @@ CONFIG_DEBUG_INFO_DWARF5=y
# CONFIG_DEBUG_INFO_REDUCED is not set
CONFIG_DEBUG_INFO_COMPRESSED_NONE=y
# CONFIG_DEBUG_INFO_COMPRESSED_ZLIB is not set
# CONFIG_DEBUG_INFO_COMPRESSED_ZSTD is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
CONFIG_DEBUG_INFO_BTF=y
CONFIG_PAHOLE_HAS_SPLIT_BTF=y
CONFIG_PAHOLE_HAS_LANG_EXCLUDE=y
CONFIG_DEBUG_INFO_BTF_MODULES=y
# CONFIG_MODULE_ALLOW_BTF_MISMATCH is not set
# CONFIG_GDB_SCRIPTS is not set
CONFIG_FRAME_WARN=2048
CONFIG_STRIP_ASM_SYMS=y
Expand Down
Loading

0 comments on commit 1deaf54

Please sign in to comment.