Step1: build with busybox.
Signed-off-by: Chen Wang <wangchen20@iscas.ac.cn>
This commit is contained in:
74
package/linux/make.sh
Executable file
74
package/linux/make.sh
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/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."
|
||||
Reference in New Issue
Block a user