75 lines
3.9 KiB
Bash
Executable File
75 lines
3.9 KiB
Bash
Executable File
#!/usr/bin/bash
|
|
source $(dirname "$0")/../common.sh
|
|
|
|
PKGNAME=linux
|
|
PKGVERSION=6.12.47
|
|
PKGSOURCE_DIR=linux
|
|
PKGSOURCE=linux-6.12.47.tar.xz
|
|
PKGURL=http://mirrors.ustc.edu.cn/kernel.org/linux/kernel/v6.x/linux-6.12.47.tar.xz
|
|
|
|
PKGBUILDNAME=${PKGNAME}
|
|
PKGBUILD_DIR=${BUILD_DIR}/${PKGBUILDNAME}-${PKGVERSION}
|
|
|
|
echo "----> Building ${PKGBUILDNAME} ..."
|
|
|
|
stamp_downloaded
|
|
|
|
step_start extract
|
|
mkdir -p ${PKGBUILD_DIR}
|
|
xzcat ${DL_DIR}/${PKGSOURCE_DIR}/${PKGSOURCE} | tar --strip-components=1 -C ${PKGBUILD_DIR} -xf -
|
|
chmod -R +rw ${PKGBUILD_DIR}
|
|
step_end extract
|
|
|
|
stamp_patched
|
|
|
|
# Before running configure, the configuration file should be present and fixed
|
|
eval "${HOST_MAKE_ENV} /usr/bin/make -j${MAXNUM_CPUS} -C ${PKGBUILD_DIR} ARCH=riscv KCFLAGS=\"-Wno-attribute-alias\" INSTALL_MOD_PATH=${TARGET_DIR} CROSS_COMPILE=\"${CROSS_COMPILE}\" WERROR=0 REGENERATE_PARSERS=1 DEPMOD=${HOST_DIR}/sbin/depmod INSTALL_MOD_STRIP=1 HOSTCC=\"/usr/bin/gcc\" defconfig"
|
|
touch ${PKGBUILD_DIR}/.stamp_dotconfig
|
|
echo ">>> ${PKGBUILDNAME} ${PKGVERSION} Updating kernel config with fixups"
|
|
kconfig_enable_option CONFIG_KERNEL_GZIP
|
|
kconfig_enable_option CONFIG_CPU_LITTLE_ENDIAN
|
|
kconfig_enable_option CONFIG_DEVTMPFS
|
|
kconfig_enable_option CONFIG_DEVTMPFS_MOUNT
|
|
kconfig_disable_option CONFIG_KERNEL_LZ4
|
|
kconfig_disable_option CONFIG_KERNEL_LZMA
|
|
kconfig_disable_option CONFIG_KERNEL_LZO
|
|
kconfig_disable_option CONFIG_KERNEL_XZ
|
|
kconfig_disable_option CONFIG_KERNEL_ZSTD
|
|
kconfig_disable_option CONFIG_KERNEL_UNCOMPRESSED
|
|
kconfig_disable_option CONFIG_GCC_PLUGINS
|
|
kconfig_disable_option CONFIG_WERROR
|
|
eval "${HOST_MAKE_ENV} /usr/bin/make -j${MAXNUM_CPUS} -C ${PKGBUILD_DIR} ARCH=riscv KCFLAGS=\"-Wno-attribute-alias\" INSTALL_MOD_PATH=${TARGET_DIR} CROSS_COMPILE=\"${CROSS_COMPILE}\" WERROR=0 REGENERATE_PARSERS=1 DEPMOD=${HOST_DIR}/sbin/depmod INSTALL_MOD_STRIP=1 HOSTCC=\"/usr/bin/gcc\" olddefconfig"
|
|
touch ${PKGBUILD_DIR}/.stamp_kconfig_fixup_done
|
|
|
|
# 对于 linux 来说没有使用 configure 脚本
|
|
stamp_configured
|
|
|
|
step_start build
|
|
eval "${HOST_MAKE_ENV} /usr/bin/make -j${MAXNUM_CPUS} HOSTCC=\"/usr/bin/gcc -O2 -isystem ${HOST_DIR}/include -L${HOST_DIR}/lib -Wl,-rpath,${HOST_DIR}/lib\" ARCH=riscv KCFLAGS=\"-Wno-attribute-alias\" INSTALL_MOD_PATH=${TARGET_DIR} CROSS_COMPILE=\"${CROSS_COMPILE}\" WERROR=0 REGENERATE_PARSERS=1 DEPMOD=${HOST_DIR}/sbin/depmod INSTALL_MOD_STRIP=1 -C ${PKGBUILD_DIR} all"
|
|
eval "${HOST_MAKE_ENV} /usr/bin/make -j${MAXNUM_CPUS} HOSTCC=\"/usr/bin/gcc -O2 -isystem ${HOST_DIR}/include -L${HOST_DIR}/lib -Wl,-rpath,${HOST_DIR}/lib\" ARCH=riscv KCFLAGS=\"-Wno-attribute-alias\" INSTALL_MOD_PATH=${TARGET_DIR} CROSS_COMPILE=\"${CROSS_COMPILE}\" WERROR=0 REGENERATE_PARSERS=1 DEPMOD=${HOST_DIR}/sbin/depmod INSTALL_MOD_STRIP=1 -C ${PKGBUILD_DIR} Image"
|
|
step_end build
|
|
|
|
step_start install-target
|
|
# Install modules and remove symbolic links pointing to build
|
|
# directories, not relevant on the target
|
|
if grep -q "CONFIG_MODULES=y" ${PKGBUILD_DIR}/.config; then
|
|
eval "${HOST_MAKE_ENV} /usr/bin/make -j${MAXNUM_CPUS} HOSTCC=\"/usr/bin/gcc -O2 -isystem ${HOST_DIR}/include -L${HOST_DIR}/lib -Wl,-rpath,${HOST_DIR}/lib\" ARCH=riscv KCFLAGS=\"-Wno-attribute-alias\" INSTALL_MOD_PATH=${TARGET_DIR} CROSS_COMPILE=\"${CROSS_COMPILE}\" WERROR=0 REGENERATE_PARSERS=1 DEPMOD=${HOST_DIR}/sbin/depmod INSTALL_MOD_STRIP=1 -C ${PKGBUILD_DIR} modules_install" ;
|
|
rm -f ${TARGET_DIR}/lib/modules/${PKGVERSION}/build ;
|
|
rm -f ${TARGET_DIR}/lib/modules/${PKGVERSION}/source ;
|
|
fi
|
|
# Installing dtc (device tree compiler) as host tool, if selected
|
|
if grep -q "CONFIG_DTC=y" ${PKGBUILD_DIR}/.config; then
|
|
/usr/bin/install -D -m 0755 ${PKGBUILD_DIR}/scripts/dtc/dtc ${HOST_DIR}/bin/linux-dtc ;
|
|
ln -sf linux-dtc ${HOST_DIR}/bin/dtc;
|
|
fi
|
|
step_end install-target
|
|
|
|
# Image Install
|
|
step_start install-image
|
|
/usr/bin/install -m 0644 -D ${PKGBUILD_DIR}/arch/riscv/boot/Image ${IMAGES_DIR}/Image
|
|
step_end install-image
|
|
|
|
stamp_installed
|
|
|
|
echo "<---- ${PKGBUILDNAME} build complete."
|