From 5549f874455928f293a651e158ed1e079f9924a8 Mon Sep 17 00:00:00 2001 From: Ali Bobi Date: Tue, 15 Oct 2024 09:40:54 -0400 Subject: [PATCH 01/10] root fs error state --- Dockerfile | 10 ++++ _in_container_build.sh | 118 +++++++++++++++++++++++++++++++++-------- build.sh | 9 ++-- 3 files changed, 111 insertions(+), 26 deletions(-) diff --git a/Dockerfile b/Dockerfile index c9b5201..9800002 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,3 +9,13 @@ RUN apt-get update && apt-get -y install gdb xonsh flex bison libssl-dev # Get panda for kernelinfo_gdb. Definitely a bit overkill to pull the whole repo RUN git clone --depth 1 https://github.com/panda-re/panda.git + +# Download and build GCC 4.6.2 +RUN echo "deb http://dk.archive.ubuntu.com/ubuntu/ xenial main" >> /etc/apt/sources.list +RUN echo "deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe" >> /etc/apt/sources.list +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 3B4FE6ACC0B21F32 +RUN apt-get update -y +RUN apt-get install -y gcc gcc-4.9 gcc-4.9-aarch64-linux-gnu gcc-4.9-arm-linux-gnueabi g++-4.9-arm-linux-gnueabi build-essential wget libncurses5-dev git vim && \ + update-alternatives --install /usr/bin/arm-linux-gnueabi-gcc arm-linux-gnueabi-gcc /usr/bin/arm-linux-gnueabi-gcc-4.9 60 && \ + update-alternatives --install /usr/bin/arm-linux-gnueabi-g++ arm-linux-gnueabi-g++ /usr/bin/arm-linux-gnueabi-g++-4.9 60 && \ + update-alternatives --install /usr/bin/aarch64-linux-gnu-gcc aarch64-linux-gnu-gcc /usr/bin/aarch64-linux-gnu-gcc-4.9 60 diff --git a/_in_container_build.sh b/_in_container_build.sh index 2adac74..3fd4187 100755 --- a/_in_container_build.sh +++ b/_in_container_build.sh @@ -19,26 +19,48 @@ echo "Targets: $TARGETS" get_cc() { local arch=$1 + local version=$2 local abi="" # Clear CFLAGS and KCFLAGS if they are set unset CFLAGS unset KCFLAGS - if [[ $arch == *"arm64"* ]]; then - abi="" - arch="aarch64" - elif [[ $arch == *"arm"* ]]; then - abi="eabi" - if [[ $arch == *"eb"* ]]; then - export CFLAGS="-mbig-endian" - export KCFLAGS="-mbig-endian" + if [[ $version == "4.10" ]] || [[ $version == "6.7" ]]; then + if [[ $arch == *"arm64"* ]]; then + abi="" + arch="aarch64" + elif [[ $arch == *"arm"* ]]; then + abi="eabi" + if [[ $arch == *"eb"* ]]; then + export CFLAGS="-mbig-endian" + export KCFLAGS="-mbig-endian" + fi + arch="arm" fi - arch="arm" + echo "/opt/cross/${arch}-linux-musl${abi}/bin/${arch}-linux-musl${abi}-" + elif [[ $version == "2.6" ]]; then + if [[ $arch == *"arm64"* ]]; then + echo "aarch64-linux-gnu-" + elif [[ $arch == *"arm"* ]]; then + echo "arm-linux-gnueabi-" + else + echo "gcc-4.9" #probably not this + fi + elif [[ $version == "3.14" ]]; then + if [[ $arch == *"arm64"* ]]; then + echo "aarch64-linux-gnu-" + elif [[ $arch == *"arm"* ]]; then + echo "arm-linux-gnueabi-" + else + echo "gcc-4.9" #probably not this + fi + else + echo "Unsupported version" fi - echo "/opt/cross/${arch}-linux-musl${abi}/bin/${arch}-linux-musl${abi}-" } + for VERSION in $VERSIONS; do for TARGET in $TARGETS; do BUILD_TARGETS="vmlinux" @@ -46,8 +68,6 @@ for TARGET in $TARGETS; do BUILD_TARGETS="vmlinux zImage" elif [ $TARGET == "arm64" ]; then BUILD_TARGETS="vmlinux Image.gz" - elif [ $TARGET == "x86_64" ]; then - BUILD_TARGETS="vmlinux bzImage" fi # Set short_arch based on TARGET @@ -69,13 +89,71 @@ for TARGET in $TARGETS; do # If updating configs, lint them with kernel first! This removes default options and duplicates. if $CONFIG_ONLY; then echo "Linting config for $TARGET to config_${VERSION}_${TARGET}.linted" - make -C /app/linux/$VERSION ARCH=${short_arch} CROSS_COMPILE=$(get_cc $TARGET) O=/tmp/build/${VERSION}/${TARGET}/ savedefconfig + make -C /app/linux/$VERSION ARCH=${short_arch} CROSS_COMPILE=$(get_cc $TARGET $VERSION) O=/tmp/build/${VERSION}/${TARGET}/ savedefconfig + #diff -u <(sort /tmp/build/${VERSION}/${TARGET}/.config) <(sort /tmp/build/${VERSION}/${TARGET}/defconfig | sed '/^[ #]/d') cp "/tmp/build/${VERSION}/${TARGET}/defconfig" "/app/config_${VERSION}_${TARGET}.linted" - diff -u <(sort /tmp/build/${VERSION}/${TARGET}/.config) <(sort /tmp/build/${VERSION}/${TARGET}/defconfig | sed '/^[ #]/d') else echo "Building kernel for $TARGET" - make -C /app/linux/$VERSION ARCH=${short_arch} CROSS_COMPILE=$(get_cc $TARGET) O=/tmp/build/${VERSION}/${TARGET}/ olddefconfig - make -C /app/linux/$VERSION ARCH=${short_arch} CROSS_COMPILE=$(get_cc $TARGET) O=/tmp/build/${VERSION}/${TARGET}/ $BUILD_TARGETS -j$(nproc) + echo "CONFIG_AEABI=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_OABI_COMPAT=n" >> /tmp/build/${VERSION}/${TARGET}/.config + # Add additional configuration options + echo "CONFIG_VIRTIO=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_VIRTIO_PCI=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_VIRTIO_BALLOON=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_VIRTIO_BLK=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_VIRTIO_NET=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_PCI=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_PCI_HOST_GENERIC=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_PCI_QUIRKS=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_BLK_DEV_SD=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_SCSI=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_SCSI_LOWLEVEL=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_DEVTMPFS=y" >> /tmp/build/${VERSION}/${TARGET}/.config + + echo "CONFIG_VIRTIO_CONSOLE=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_VIRTIO_FS=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_BLK_DEV_SD=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_SCSI_LSI53C895A=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_SCSI_SYM53C8XX_2=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_EXT2_FS=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_EXT3_FS=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_EXT4_FS=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_EXT4_USE_FOR_EXT23=y" >> /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_ATA=y" >> /tmp/build/${VERSION}/${TARGET}/config + echo "CONFIG_SATA=y" >> /tmp/build/${VERSION}/${TARGET}/config + echo "CONFIG_SCSI=y" >> /tmp/build/${VERSION}/${TARGET}/config + echo "CONFIG_SCSI_PROC_FS=y" >> /tmp/build/${VERSION}/${TARGET}/config + echo "CONFIG_BLK_DEV_SD=y" >> /tmp/build/${VERSION}/${TARGET}/config + echo "CONFIG_BLK_DEV_SR=y" >> /tmp/build/${VERSION}/${TARGET}/config + echo "CONFIG_CHR_DEV_SG=y" >> /tmp/build/${VERSION}/${TARGET}/config + echo "CONFIG_SCSI_MULTI_LUN=y" >> /tmp/build/${VERSION}/${TARGET}/config + echo "CONFIG_DEVTMPFS=y" >> /tmp/build/${VERSION}/${TARGET}/config + echo "CONFIG_DEVTMPFS_MOUNT=y" >> /tmp/build/${VERSION}/${TARGET}/config + + echo "CONFIG_PCI=y" >> /tmp/build/${VERSION}/${TARGET}/config + #echo "CONFIG_=y" >> /tmp/build/${VERSION}/${TARGET}/config + + echo "HI" + cat /tmp/build/${VERSION}/${TARGET}/.config | grep "VIRT" + cat /tmp/build/${VERSION}/${TARGET}/.config | grep "ATA" + sed -i '/^CONFIG_EXT4_USE_FOR_EXT23=y/d' /tmp/build/${VERSION}/${TARGET}/.config + echo "CONFIG_EXT4_USE_FOR_EXT23=n" >> /tmp/build/${VERSION}/${TARGET}/config + cat /tmp/build/${VERSION}/${TARGET}/.config | grep "EXT" + #tail /tmp/build/${VERSION}/${TARGET}/.config + wc -l /tmp/build/${VERSION}/${TARGET}/.config + if [ $VERSION == "2.6" ]; then + # No support for olddefconfig, need to use yes + oldconfig. The yes command is like pressing enter for each option + yes "" | make -C /app/linux/$VERSION ARCH=${short_arch} CROSS_COMPILE=$(get_cc $TARGET $VERSION) O=/tmp/build/${VERSION}/${TARGET}/ oldconfig >/dev/null + CFLAGS="" + elif [ $VERSION == "3.14" ]; then + yes "" | make -C /app/linux/$VERSION ARCH=${short_arch} CROSS_COMPILE=$(get_cc $TARGET $VERSION) O=/tmp/build/${VERSION}/${TARGET}/ vexpress_defconfig >/dev/null + CFLAGS="" + else + make -C /app/linux/$VERSION ARCH=${short_arch} CROSS_COMPILE=$(get_cc $TARGET $VERSION) O=/tmp/build/${VERSION}/${TARGET}/ olddefconfig + CFLAGS="" + fi + cp /tmp/build/${VERSION}/${TARGET}/.config /app/saveconfig.config + make -C /app/linux/$VERSION ARCH=${short_arch} CROSS_COMPILE=$(get_cc $TARGET $VERSION) O=/tmp/build/${VERSION}/${TARGET}/ $BUILD_TARGETS -j$(nproc) EXTRA_CFLAGS="$CFLAGS" mkdir -p /kernels/$VERSION @@ -83,10 +161,6 @@ for TARGET in $TARGETS; do if [ -f "/tmp/build/${VERSION}/${TARGET}/arch/${short_arch}/boot/zImage" ]; then cp "/tmp/build/${VERSION}/${TARGET}/arch/${short_arch}/boot/zImage" /kernels/$VERSION/zImage.${TARGET} fi - - if [ -f "/tmp/build/${VERSION}/${TARGET}/arch/${short_arch}/boot/bzImage" ]; then - cp "/tmp/build/${VERSION}/${TARGET}/arch/${short_arch}/boot/bzImage" /kernels/$VERSION/bzImage.${TARGET} - fi # Copy out Image.gz (if present) if [ -f "/tmp/build/${VERSION}/${TARGET}/arch/${short_arch}/boot/Image.gz" ]; then @@ -101,8 +175,8 @@ for TARGET in $TARGETS; do /kernels/$VERSION/vmlinux.${TARGET} /tmp/panda_profile.${TARGET} cat /tmp/panda_profile.${TARGET} >> /kernels/$VERSION/osi.config - # strip vmlinux - $(get_cc $TARGET)strip /kernels/$VERSION/vmlinux.${TARGET} + # Do not strip vmlinux + # $(get_cc $TARGET $VERSION)strip /kernels/$VERSION/vmlinux.${TARGET} fi done done diff --git a/build.sh b/build.sh index 3b6f3a9..3dada7e 100755 --- a/build.sh +++ b/build.sh @@ -24,7 +24,8 @@ EOF # Default options CONFIG_ONLY=false #VERSIONS="4.10 6.7" -VERSIONS="4.10" +#VERSIONS="4.10" +VERSIONS="3.14" TARGETS="armeb armel arm64 mipseb mipsel mips64eb mips64el x86_64" # Parse command-line arguments @@ -35,7 +36,7 @@ while [[ $# -gt 0 ]]; do exit ;; --clear-cache) - docker run --rm -v $PWD/cache:/tmp/build -v $PWD:/app pandare/kernel_builder /bin/bash -c "rm -r /tmp/build/*" + docker run --rm -v $PWD/cache:/tmp/build -v $PWD:/app build3.11 /bin/bash -c "rm -r /tmp/build/*" exit ;; --config-only) @@ -59,6 +60,6 @@ while [[ $# -gt 0 ]]; do esac done -docker build -t pandare/kernel_builder . +docker build -t build3.11 . mkdir -p cache -docker run --rm -v $PWD/cache:/tmp/build -v $PWD:/app pandare/kernel_builder bash /app/_in_container_build.sh "$CONFIG_ONLY" "$VERSIONS" "$TARGETS" +docker run --rm -v $PWD/cache:/tmp/build -v $PWD:/app build3.11 bash /app/_in_container_build.sh "$CONFIG_ONLY" "$VERSIONS" "$TARGETS" From 6b62efda19fc00f7b2dcb8bf3695aac2817de2fd Mon Sep 17 00:00:00 2001 From: Andrew Fasano Date: Tue, 15 Oct 2024 17:03:41 -0400 Subject: [PATCH 02/10] Add 3.14 submodule --- .gitmodules | 3 +++ linux/3.14 | 1 + 2 files changed, 4 insertions(+) create mode 160000 linux/3.14 diff --git a/.gitmodules b/.gitmodules index 392f845..909f02e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -6,3 +6,6 @@ path = linux/6.7 url = https://github.com/rehosting/linux.git branch = main_6.7 +[submodule "linux/3.14"] + path = linux/3.14 + url = git@github.com:rehosting/linux.git diff --git a/linux/3.14 b/linux/3.14 new file mode 160000 index 0000000..51fae17 --- /dev/null +++ b/linux/3.14 @@ -0,0 +1 @@ +Subproject commit 51fae1788325bc70bf006bbaf144b5e9b1081b6b From 326046551d216435adb081ac51f8239ed00346b8 Mon Sep 17 00:00:00 2001 From: Ali Bobi Date: Wed, 13 Nov 2024 16:09:11 -0500 Subject: [PATCH 03/10] set submodule to main_3.14 --- .gitmodules | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitmodules b/.gitmodules index 909f02e..17f8737 100644 --- a/.gitmodules +++ b/.gitmodules @@ -9,3 +9,4 @@ [submodule "linux/3.14"] path = linux/3.14 url = git@github.com:rehosting/linux.git + branch = main_3.14 From a5c34470852c883d3e2d3ee618ed3af5f32f1ddb Mon Sep 17 00:00:00 2001 From: Ali Bobi Date: Tue, 19 Nov 2024 16:03:27 -0500 Subject: [PATCH 04/10] clean container build and add armel config --- _in_container_build.sh | 69 ++---------- configs/3.14/armel | 238 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 245 insertions(+), 62 deletions(-) create mode 100644 configs/3.14/armel diff --git a/_in_container_build.sh b/_in_container_build.sh index 3fd4187..5be62ab 100755 --- a/_in_container_build.sh +++ b/_in_container_build.sh @@ -90,69 +90,14 @@ for TARGET in $TARGETS; do if $CONFIG_ONLY; then echo "Linting config for $TARGET to config_${VERSION}_${TARGET}.linted" make -C /app/linux/$VERSION ARCH=${short_arch} CROSS_COMPILE=$(get_cc $TARGET $VERSION) O=/tmp/build/${VERSION}/${TARGET}/ savedefconfig - #diff -u <(sort /tmp/build/${VERSION}/${TARGET}/.config) <(sort /tmp/build/${VERSION}/${TARGET}/defconfig | sed '/^[ #]/d') cp "/tmp/build/${VERSION}/${TARGET}/defconfig" "/app/config_${VERSION}_${TARGET}.linted" + diff -u <(sort /tmp/build/${VERSION}/${TARGET}/.config) <(sort /tmp/build/${VERSION}/${TARGET}/defconfig | sed '/^[ #]/d') else echo "Building kernel for $TARGET" - echo "CONFIG_AEABI=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_OABI_COMPAT=n" >> /tmp/build/${VERSION}/${TARGET}/.config - # Add additional configuration options - echo "CONFIG_VIRTIO=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_VIRTIO_PCI=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_VIRTIO_BALLOON=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_VIRTIO_BLK=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_VIRTIO_NET=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_PCI=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_PCI_HOST_GENERIC=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_PCI_QUIRKS=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_BLK_DEV_SD=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_SCSI=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_SCSI_LOWLEVEL=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_DEVTMPFS=y" >> /tmp/build/${VERSION}/${TARGET}/.config - - echo "CONFIG_VIRTIO_CONSOLE=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_VIRTIO_FS=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_BLK_DEV_SD=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_SCSI_LSI53C895A=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_SCSI_SYM53C8XX_2=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_EXT2_FS=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_EXT3_FS=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_EXT4_FS=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_EXT4_USE_FOR_EXT23=y" >> /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_ATA=y" >> /tmp/build/${VERSION}/${TARGET}/config - echo "CONFIG_SATA=y" >> /tmp/build/${VERSION}/${TARGET}/config - echo "CONFIG_SCSI=y" >> /tmp/build/${VERSION}/${TARGET}/config - echo "CONFIG_SCSI_PROC_FS=y" >> /tmp/build/${VERSION}/${TARGET}/config - echo "CONFIG_BLK_DEV_SD=y" >> /tmp/build/${VERSION}/${TARGET}/config - echo "CONFIG_BLK_DEV_SR=y" >> /tmp/build/${VERSION}/${TARGET}/config - echo "CONFIG_CHR_DEV_SG=y" >> /tmp/build/${VERSION}/${TARGET}/config - echo "CONFIG_SCSI_MULTI_LUN=y" >> /tmp/build/${VERSION}/${TARGET}/config - echo "CONFIG_DEVTMPFS=y" >> /tmp/build/${VERSION}/${TARGET}/config - echo "CONFIG_DEVTMPFS_MOUNT=y" >> /tmp/build/${VERSION}/${TARGET}/config - - echo "CONFIG_PCI=y" >> /tmp/build/${VERSION}/${TARGET}/config - #echo "CONFIG_=y" >> /tmp/build/${VERSION}/${TARGET}/config - - echo "HI" - cat /tmp/build/${VERSION}/${TARGET}/.config | grep "VIRT" - cat /tmp/build/${VERSION}/${TARGET}/.config | grep "ATA" - sed -i '/^CONFIG_EXT4_USE_FOR_EXT23=y/d' /tmp/build/${VERSION}/${TARGET}/.config - echo "CONFIG_EXT4_USE_FOR_EXT23=n" >> /tmp/build/${VERSION}/${TARGET}/config - cat /tmp/build/${VERSION}/${TARGET}/.config | grep "EXT" - #tail /tmp/build/${VERSION}/${TARGET}/.config - wc -l /tmp/build/${VERSION}/${TARGET}/.config - if [ $VERSION == "2.6" ]; then - # No support for olddefconfig, need to use yes + oldconfig. The yes command is like pressing enter for each option - yes "" | make -C /app/linux/$VERSION ARCH=${short_arch} CROSS_COMPILE=$(get_cc $TARGET $VERSION) O=/tmp/build/${VERSION}/${TARGET}/ oldconfig >/dev/null - CFLAGS="" - elif [ $VERSION == "3.14" ]; then - yes "" | make -C /app/linux/$VERSION ARCH=${short_arch} CROSS_COMPILE=$(get_cc $TARGET $VERSION) O=/tmp/build/${VERSION}/${TARGET}/ vexpress_defconfig >/dev/null - CFLAGS="" - else - make -C /app/linux/$VERSION ARCH=${short_arch} CROSS_COMPILE=$(get_cc $TARGET $VERSION) O=/tmp/build/${VERSION}/${TARGET}/ olddefconfig - CFLAGS="" - fi - cp /tmp/build/${VERSION}/${TARGET}/.config /app/saveconfig.config + + make -C /app/linux/$VERSION ARCH=${short_arch} CROSS_COMPILE=$(get_cc $TARGET $VERSION) O=/tmp/build/${VERSION}/${TARGET}/ olddefconfig + CFLAGS="" + make -C /app/linux/$VERSION ARCH=${short_arch} CROSS_COMPILE=$(get_cc $TARGET $VERSION) O=/tmp/build/${VERSION}/${TARGET}/ $BUILD_TARGETS -j$(nproc) EXTRA_CFLAGS="$CFLAGS" mkdir -p /kernels/$VERSION @@ -175,8 +120,8 @@ for TARGET in $TARGETS; do /kernels/$VERSION/vmlinux.${TARGET} /tmp/panda_profile.${TARGET} cat /tmp/panda_profile.${TARGET} >> /kernels/$VERSION/osi.config - # Do not strip vmlinux - # $(get_cc $TARGET $VERSION)strip /kernels/$VERSION/vmlinux.${TARGET} + # strip vmlinux + $(get_cc $TARGET $VERSION)strip /kernels/$VERSION/vmlinux.${TARGET} fi done done diff --git a/configs/3.14/armel b/configs/3.14/armel new file mode 100644 index 0000000..c720894 --- /dev/null +++ b/configs/3.14/armel @@ -0,0 +1,238 @@ +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_FHANDLE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_IKCONFIG=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_NAMESPACES=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS_ALL=y +CONFIG_EMBEDDED=y +CONFIG_SLAB=y +CONFIG_KPROBES=y +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_ARCH_VEXPRESS=y +CONFIG_ARCH_VEXPRESS_CA9X4=y +CONFIG_SWP_EMULATE=y +CONFIG_ARM_ERRATA_430973=y +CONFIG_PL310_ERRATA_588369=y +CONFIG_PL310_ERRATA_727915=y +CONFIG_ARM_ERRATA_754322=y +CONFIG_PL310_ERRATA_769419=y +CONFIG_ARM_ERRATA_775420=y +CONFIG_HAVE_ARM_ARCH_TIMER=y +CONFIG_ARM_PSCI=y +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +CONFIG_KSM=y +CONFIG_CPU_IDLE=y +CONFIG_FPE_NWFPE=y +CONFIG_FPE_NWFPE_XP=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_BINFMT_MISC=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM_USER=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_NET_IPIP=y +CONFIG_NET_IPGRE_DEMUX=y +CONFIG_NET_IPGRE=y +CONFIG_IP_MROUTE=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +CONFIG_SYN_COOKIES=y +CONFIG_INET_AH=y +CONFIG_INET_ESP=y +CONFIG_INET_IPCOMP=y +CONFIG_IPV6=y +CONFIG_INET6_AH=y +CONFIG_INET6_ESP=y +CONFIG_IPV6_SIT_6RD=y +CONFIG_IPV6_TUNNEL=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_PIMSM_V2=y +CONFIG_NETFILTER=y +CONFIG_NETFILTER_NETLINK_QUEUE=y +CONFIG_NETFILTER_NETLINK_LOG=y +CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_FTP=y +CONFIG_NF_CONNTRACK_NETBIOS_NS=y +CONFIG_NF_CONNTRACK_TFTP=y +CONFIG_NF_CT_NETLINK=y +CONFIG_NETFILTER_XT_MATCH_COMMENT=y +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +CONFIG_NETFILTER_XT_MATCH_ESP=y +CONFIG_NETFILTER_XT_MATCH_STATE=y +CONFIG_NETFILTER_XT_MATCH_STRING=y +CONFIG_NF_CONNTRACK_IPV4=y +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +CONFIG_NF_NAT_IPV4=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +CONFIG_IP_NF_TARGET_NETMAP=y +CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_IP_NF_MANGLE=y +CONFIG_IP_NF_RAW=y +CONFIG_IP_NF_ARPTABLES=y +CONFIG_IP_NF_ARPFILTER=y +CONFIG_IP_NF_ARP_MANGLE=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_IP6_NF_IPTABLES=y +CONFIG_IP6_NF_FILTER=y +CONFIG_IP6_NF_TARGET_REJECT=y +CONFIG_IP6_NF_MANGLE=y +CONFIG_IP6_NF_RAW=y +CONFIG_NF_NAT_IPV6=y +CONFIG_IP6_NF_TARGET_MASQUERADE=y +CONFIG_IP6_NF_TARGET_NPT=y +CONFIG_BRIDGE_NF_EBTABLES=y +CONFIG_BRIDGE_EBT_T_FILTER=y +CONFIG_BRIDGE_EBT_T_NAT=y +CONFIG_BRIDGE_EBT_ARP=y +CONFIG_BRIDGE_EBT_IP=y +CONFIG_BRIDGE_EBT_IP6=y +CONFIG_BRIDGE_EBT_PKTTYPE=y +CONFIG_BRIDGE_EBT_VLAN=y +CONFIG_BRIDGE_EBT_DNAT=y +CONFIG_BRIDGE_EBT_SNAT=y +CONFIG_BRIDGE=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_VLAN_8021Q=y +CONFIG_NETLINK_DIAG=y +CONFIG_CFG80211=y +CONFIG_CFG80211_WEXT=y +CONFIG_MAC80211=y +CONFIG_CONNECTOR=y +CONFIG_MTD=y +CONFIG_MTD_REDBOOT_PARTS=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_BLOCK2MTD=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_NANDSIM=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_BLK_DEV_XIP=y +CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_ATA=y +CONFIG_NETDEVICES=y +CONFIG_TUN=y +CONFIG_VIRTIO_NET=y +CONFIG_SMC91X=y +CONFIG_SMC911X=y +CONFIG_SMSC911X=y +CONFIG_PPP=y +CONFIG_PPP_BSDCOMP=y +CONFIG_PPP_DEFLATE=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=y +CONFIG_PPPOE=y +CONFIG_PPTP=y +CONFIG_SERIO_AMBAKMI=y +CONFIG_LEGACY_PTY_COUNT=16 +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_VIRTIO=y +CONFIG_NVRAM=y +CONFIG_SPI=y +CONFIG_SPI_PL022=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_PL061=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_VEXPRESS=y +CONFIG_FB=y +CONFIG_FB_ARMCLCD=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_HIDRAW=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y +CONFIG_USB=y +CONFIG_USB_DYNAMIC_MINORS=y +CONFIG_USB_STORAGE=y +CONFIG_MMC=y +CONFIG_MMC_ARMMMCI=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_RTC_DRV_CMOS=y +CONFIG_RTC_DRV_DS1286=y +CONFIG_RTC_DRV_PL030=y +CONFIG_RTC_DRV_PL031=y +CONFIG_DMADEVICES=y +CONFIG_AMBA_PL08X=y +CONFIG_VIRT_DRIVERS=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_MMIO=y +CONFIG_EXT2_FS=y +CONFIG_EXT3_FS=y +CONFIG_EXT4_FS=y +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RUBIN=y +CONFIG_CRAMFS=y +CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XZ=y +CONFIG_ROMFS_FS=y +CONFIG_ROMFS_BACKED_BY_BOTH=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_CODEPAGE_936=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_UTF8=y +CONFIG_PRINTK_TIME=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_MEMORY_INIT=y +CONFIG_LOCKUP_DETECTOR=y +CONFIG_FUNCTION_TRACER=y +CONFIG_SCHED_TRACER=y +CONFIG_FTRACE_SYSCALLS=y +CONFIG_STRICT_DEVMEM=y +CONFIG_DEBUG_USER=y +CONFIG_CRYPTO_ANSI_CPRNG=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_FONTS=y +CONFIG_VIRTUALIZATION=y +CONFIG_DEBUG_INFO=y From ac0f7550566ab42e7bf20734e69551ba16cffa2b Mon Sep 17 00:00:00 2001 From: Ali Bobi Date: Tue, 19 Nov 2024 16:09:34 -0500 Subject: [PATCH 05/10] revert build.sh --- build.sh | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/build.sh b/build.sh index 3dada7e..514bfc8 100755 --- a/build.sh +++ b/build.sh @@ -23,9 +23,8 @@ EOF # Default options CONFIG_ONLY=false -#VERSIONS="4.10 6.7" -#VERSIONS="4.10" -VERSIONS="3.14" +#VERSIONS="3.14 4.10 6.7" +VERSIONS="4.10" TARGETS="armeb armel arm64 mipseb mipsel mips64eb mips64el x86_64" # Parse command-line arguments @@ -36,7 +35,7 @@ while [[ $# -gt 0 ]]; do exit ;; --clear-cache) - docker run --rm -v $PWD/cache:/tmp/build -v $PWD:/app build3.11 /bin/bash -c "rm -r /tmp/build/*" + docker run --rm -v $PWD/cache:/tmp/build -v $PWD:/app pandare/kernel_builder /bin/bash -c "rm -r /tmp/build/*" exit ;; --config-only) @@ -60,6 +59,6 @@ while [[ $# -gt 0 ]]; do esac done -docker build -t build3.11 . +docker build -t pandare/kernel_builder . mkdir -p cache -docker run --rm -v $PWD/cache:/tmp/build -v $PWD:/app build3.11 bash /app/_in_container_build.sh "$CONFIG_ONLY" "$VERSIONS" "$TARGETS" +docker run --rm -v $PWD/cache:/tmp/build -v $PWD:/app pandare/kernel_builder bash /app/_in_container_build.sh "$CONFIG_ONLY" "$VERSIONS" "$TARGETS" From efd20ddfd74f6a95758c2a6a40a6cf15867231c2 Mon Sep 17 00:00:00 2001 From: Ali Bobi Date: Tue, 19 Nov 2024 16:17:12 -0500 Subject: [PATCH 06/10] include 3.14 workflow --- .github/workflows/build.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9a73e34..e292c2a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,7 +20,20 @@ jobs: strategy: matrix: target: [armel, arm64, mipsel, mipseb, mips64el, mips64eb, x86_64] - version: ["4.10"] # XXX: quotes are necessary, otherwise 4.10 -> 4.1 + version: ["4.10", "3.14"] # XXX: quotes are necessary, otherwise 4.10 -> 4.1 + exclude: + - target: arm64 + version: "3.14" + - target: mipsel + version: "3.14" + - target: mipseb + version: "3.14" + - target: mips64el + version: "3.14" + - target: mips64eb + version: "3.14" + - target: x86_64 + version: "3.14" steps: - uses: actions/checkout@v4 # Clones to $GITHUB_WORKSPACE From ef31e9b18daf52b27fc5f1374866cd51d6f688b0 Mon Sep 17 00:00:00 2001 From: Ali Bobi Date: Tue, 19 Nov 2024 16:30:37 -0500 Subject: [PATCH 07/10] change submodule to use https --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 17f8737..19f919c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,5 @@ branch = main_6.7 [submodule "linux/3.14"] path = linux/3.14 - url = git@github.com:rehosting/linux.git + url = https://github.com/rehosting/linux.git branch = main_3.14 From 160978b71f355df5bca7e36661f949e074c2b413 Mon Sep 17 00:00:00 2001 From: Ali Bobi Date: Wed, 20 Nov 2024 10:27:23 -0500 Subject: [PATCH 08/10] bump 3.14 --- linux/3.14 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/3.14 b/linux/3.14 index 51fae17..1c546c9 160000 --- a/linux/3.14 +++ b/linux/3.14 @@ -1 +1 @@ -Subproject commit 51fae1788325bc70bf006bbaf144b5e9b1081b6b +Subproject commit 1c546c958e95730b4266e0f4904e7e96fa2e9560 From c3ad85abbac17c8978eccf89b081c5b0bcdb21e2 Mon Sep 17 00:00:00 2001 From: Ali Bobi Date: Wed, 20 Nov 2024 12:01:16 -0500 Subject: [PATCH 09/10] extend workflow to allow for other kernel versions --- .github/workflows/build.yml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e292c2a..cbfa363 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -91,21 +91,34 @@ jobs: tar -xzf "$archive" -C combined-kernels done + ls -al downloaded-kernels + ls -al combined-kernels + # Combine OSI profiles for each kernel version # otherwise the extracted kernel configs willc lobber each other if [ -d combined-kernels/kernels/4.10 ] ; then for archive in $(find downloaded-kernels -name "*.tar.gz"); do - tar -O -xf "$archive" "kernels/4.10/osi.config"; + if tar -tzf "$archive" "kernels/4.10/osi.config" &>/dev/null; then + tar -O -xf "$archive" "kernels/4.10/osi.config"; + fi done > combined-kernels/kernels/4.10/osi.config fi if [ -d combined-kernels/kernels/6.7 ] ; then for archive in $(find downloaded-kernels -name "*.tar.gz"); do - tar -O -xf "$archive" "kernels/6.7/osi.config"; + if tar -tzf "$archive" "kernels/6.7/osi.config" &>/dev/null; then + tar -O -xf "$archive" "kernels/6.7/osi.config"; + fi done > combined-kernels/kernels/6.7/osi.config fi - + if [ -d combined-kernels/kernels/3.14 ] ; then + for archive in $(find downloaded-kernels -name "*.tar.gz"); do + if tar -tzf "$archive" "kernels/3.14/osi.config" &>/dev/null; then + tar -O -xf "$archive" "kernels/3.14/osi.config"; + fi + done > combined-kernels/kernels/3.14/osi.config + fi # Create a new single archive from the combined content tar -czvf kernels-latest.tar.gz -C combined-kernels . From e0bb6e478d7d74f14a223fd594870d9481106794 Mon Sep 17 00:00:00 2001 From: Ali Bobi Date: Wed, 20 Nov 2024 12:34:16 -0500 Subject: [PATCH 10/10] remove curiosity ls --- .github/workflows/build.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cbfa363..12495bb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -90,9 +90,6 @@ jobs: for archive in $(find downloaded-kernels -name "*.tar.gz"); do tar -xzf "$archive" -C combined-kernels done - - ls -al downloaded-kernels - ls -al combined-kernels # Combine OSI profiles for each kernel version # otherwise the extracted kernel configs willc lobber each other