尝试arm交叉编译

This commit is contained in:
gfdgd xi 2024-05-17 22:57:31 +08:00
parent 90dab83865
commit 69d7617e83
3 changed files with 5303 additions and 3975 deletions

31
.github/workflows/build-0-aarch64.yml vendored Normal file
View File

@ -0,0 +1,31 @@
name: Build kernel deb packages(0, arm64)
on:
schedule:
- cron: '30 0 * * *'
workflow_dispatch:
jobs:
build:
name: Build kernel
runs-on: ubuntu-latest
steps:
# 由于默认的 Ubuntu 环境只有 17G 左右的剩余空间,所以我们需要先利用如下 action 对编译环境进行扩容
- name: Maximize build space
uses: easimon/maximize-build-space@master
with:
# 这个值是保留给系统的空间大小,之前设置太小,总会在安装依赖或者编译过程中报设备空间不足的错误而导致编译失败
root-reserve-mb: 4096
swap-size-mb: 512
remove-dotnet: 'true'
remove-android: 'true'
- name: Checkout
uses: actions/checkout@v3
- name: Build
env:
PASSWORD: ${{ secrets.PASSWORD }}
KEYPASSWORD: ${{ secrets.KEYPASSWORD }}
KEY: ${{ secrets.KEY }}
run: bash build_action-aarch64.sh 0

View File

@ -1,30 +1,35 @@
#!/usr/bin/env bash #!/usr/bin/env bash
sed -i "/deb-src/s/# //g" /etc/apt/sources.list sed -i "/deb-src/s/# //g" /etc/apt/sources.list
sudo apt update sudo apt update
sudo apt install python3-pyquery -y sudo apt install gpg python3-pyquery -y
python3 get-newest-version.py $1
aria2c $KEY aria2c $KEY
gpg --import --pinentry-mode loopback --batch --passphrase "$KEYPASSWORD" private-file.key gpg --import --pinentry-mode loopback --batch --passphrase "$KEYPASSWORD" private-file.key
python3 get-newest-version.py $1
#VERSION=$(grep 'Kernel Configuration' < config | awk '{print $3}') #VERSION=$(grep 'Kernel Configuration' < config | awk '{print $3}')
# add deb-src to sources.list # add deb-src to sources.list
VERSION=`cat /tmp/kernelversion.txt` VERSION=`cat /tmp/kernelversion.txt`
URL=`cat /tmp/kernelurl.txt` URL=`cat /tmp/kernelurl.txt`
MAINVERSION=`expr substr $VERSION 1 1` MAINVERSION=`expr substr $VERSION 1 1`
SHOWVERSION=$VERSION-arm64 SHOWVERSION=$VERSION
curl https://github.com/gfdgd-xi/gxde-linux-kernel/raw/main/l/linux-headers-$VERSION-arm64-gfdgdxi-desktop/lock | grep 404 # 使用 deepin hwe config编译
result=$? if [[ $2 == 1 ]]; then
SHOWVERSION=$VERSION-hwe
fi
if [[ $2 == 1 ]]; then
curl https://github.com/gfdgd-xi/gxde-linux-kernel/raw/main/l/linux-kernel-gxde-gfdgdxi-$1-hwe/linux-kernel-gxde-gfdgdxi-$1-hwe_${VERSION}_arm64.deb | grep 404
result=$?
else
curl https://github.com/gfdgd-xi/gxde-linux-kernel/raw/main/l/linux-kernel-gxde-gfdgdxi-$1/linux-kernel-gxde-gfdgdxi-${1}_${VERSION}_arm64.deb | grep 404
result=$?
fi
if [[ $result != 0 ]]; then if [[ $result != 0 ]]; then
exit exit
fi fi
# install dep # install dep
sudo apt install -y wget xz-utils make gcc flex bison dpkg-dev bc rsync kmod cpio libssl-dev git lsb vim libelf-dev sudo apt install -y wget xz-utils make gcc flex bison dpkg-dev bc rsync kmod cpio libssl-dev git lsb vim libelf-dev
sudo apt install -y gcc-aarch64-linux-gnu
sudo apt build-dep -y linux sudo apt build-dep -y linux
wget http://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
sudo mkdir /usr/bin/toolchain
sudo cp gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu /usr/bin/toolchain/ -rfv
export PATH=$PATH:/usr/bin/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/
echo $PATH
# change dir to workplace # change dir to workplace
cd "${GITHUB_WORKSPACE}" || exit cd "${GITHUB_WORKSPACE}" || exit
@ -45,7 +50,16 @@ fi
cd linux-"$VERSION" || exit cd linux-"$VERSION" || exit
# copy config file # copy config file
cp ../config-arm64 .config # 使用 deepin hwe config编译
if [[ $2 == 1 ]]; then
cp ../config-6.1.11-arm64-desktop-hwe .config
else
cp ../config-arm64 .config
fi
echo $VERSION | grep 4.14
if [[ $? == 0 ]]; then
cp ../config-4.19.0-10-arm64 .config
fi
# #
# disable DEBUG_INFO to speedup build # disable DEBUG_INFO to speedup build
# scripts/config --disable DEBUG_INFO # scripts/config --disable DEBUG_INFO
@ -56,29 +70,104 @@ scripts/config --undefine DEBUG_INFO_COMPRESSED
scripts/config --undefine DEBUG_INFO_REDUCED scripts/config --undefine DEBUG_INFO_REDUCED
scripts/config --undefine DEBUG_INFO_SPLIT scripts/config --undefine DEBUG_INFO_SPLIT
scripts/config --undefine GDB_SCRIPTS scripts/config --undefine GDB_SCRIPTS
scripts/config --disable DEBUG_INFO
scripts/config --set-val DEBUG_INFO_DWARF5 n scripts/config --set-val DEBUG_INFO_DWARF5 n
scripts/config --set-val DEBUG_INFO_NONE y scripts/config --set-val DEBUG_INFO_NONE y
# build deb packages # build deb packages
CPU_CORES=$(($(grep -c processor < /proc/cpuinfo)*2)) CPU_CORES=$(($(grep -c processor < /proc/cpuinfo)*2))
sudo env DEBEMAIL="gfdgd xi <3025613752@qq.com>" make bindeb-pkg ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j"$CPU_CORES" sudo env DEBEMAIL="gfdgd xi <3025613752@qq.com>" make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bindeb-pkg -j"$CPU_CORES"
# 移动 deb
mkdir /tmp/deb-result
cp ../*.deb /tmp/deb-result
rm /tmp/deb-result/linux-libc-dev*.deb
rm /tmp/deb-result/*dbg*.deb
# move deb packages to artifact dir if [[ $2 == 1 ]]; then
cd .. # move deb packages to artifact dir
mkdir "artifact" cd ..
#cp ./*.deb artifact/ mkdir "artifact"
git clone https://gfdgd-xi:$PASSWORD@github.com/gfdgd-xi/gxde-linux-kernel #cp ./*.deb artifact/
#cd dclc-kernel rm -rfv "${GITHUB_WORKSPACE}/linux-$VERSION*"
mkdir dclc-kernel git clone https://gfdgd-xi:$PASSWORD@github.com/gfdgd-xi/gxde-linux-kernel --depth=1
mkdir dclc-kernel/$VERSION-aarch64 mkdir dclc-kernel
mkdir dclc-kernel/head mkdir dclc-kernel/$SHOWVERSION
rm -rfv *dbg*.deb mkdir dclc-kernel/head
mv ./*.deb dclc-kernel/$VERSION-aarch64 rm -rfv *dbg*.deb
cd dclc-kernel/$VERSION-aarch64 mv ./*.deb dclc-kernel/$SHOWVERSION
cd .. cd dclc-kernel/$SHOWVERSION
cd head cd ..
mkdir deb/DEBIAN -vp cd head
cat > deb-/DEBIAN/control <<EOF mkdir deb/DEBIAN -vp
cat > deb/DEBIAN/control <<EOF
Package: linux-kernel-gxde-gfdgdxi-hwe
Version: $VERSION
Maintainer: gfdgd xi <3025613752@qq.com>
Homepage: https://github.com/gfdgd-xi/dclc-kernel
Architecture: arm64
Severity: serious
Certainty: possible
Check: binaries
Type: binary, udeb
Priority: optional
Depends: linux-headers-$VERSION-arm64-gfdgdxi-desktop-hwe, linux-image-$VERSION-arm64-gfdgdxi-desktop-hwe
Section: utils
Installed-Size: 0
Description: 内核 $VERSION
EOF
if [[ ! -d deb-$MAINVERSION ]]; then
mkdir -pv deb-$MAINVERSION/DEBIAN
fi
cat > deb-$MAINVERSION/DEBIAN/control <<EOF
Package: linux-kernel-gxde-gfdgdxi-$1-hwe
Version: $VERSION
Maintainer: gfdgd xi <3025613752@qq.com>
Homepage: https://github.com/gfdgd-xi/dclc-kernel
Architecture: arm64
Severity: serious
Certainty: possible
Check: binaries
Type: binary, udeb
Priority: optional
Depends: linux-headers-$VERSION-arm64-gfdgdxi-desktop-hwe, linux-image-$VERSION-arm64-gfdgdxi-desktop-hwe
Section: utils
Installed-Size: 0
Description: 内核 HWE $VERSION
EOF
dpkg-deb -Z xz -b deb linux-kernel-gxde-gfdgdxi-hwe_${VERSION}_arm64.deb
dpkg-deb -Z xz -b deb-$MAINVERSION linux-kernel-gxde-gfdgdxi-$1-hwe_${VERSION}_arm64.deb
cd ../../gxde-linux-kernel
#bash ./repack-zstd --scan .
#./build.py
./move-letter-path.py ../dclc-kernel/$SHOWVERSION/*.deb
./move-letter-path.py ../dclc-kernel/head/*.deb
./move-letter-path.py /tmp/deb-result/*.deb
touch l/linux-headers-$VERSION-arm64-gfdgdxi-desktop-hwe/lock
rm -rfv l/linux-libc-dev/
git add .
#git pull
git config --global user.email 3025613752@qq.com
git config --global user.name gfdgd-xi
git commit -m 提交$VERSION
git push
else
# move deb packages to artifact dir
cd ..
mkdir "artifact"
#cp ./*.deb artifact/
rm -rfv "${GITHUB_WORKSPACE}/linux-$VERSION*"
git clone https://gfdgd-xi:$PASSWORD@github.com/gfdgd-xi/gxde-linux-kernel --depth=1
#cd dclc-kernel
mkdir dclc-kernel
mkdir dclc-kernel/$VERSION
mkdir dclc-kernel/head
rm -rfv *dbg*.deb
mv ./*.deb dclc-kernel/$VERSION
cd dclc-kernel/$VERSION
cd ..
cd head
mkdir deb/DEBIAN -vp
cat > deb/DEBIAN/control <<EOF
Package: linux-kernel-gxde-gfdgdxi Package: linux-kernel-gxde-gfdgdxi
Version: $VERSION Version: $VERSION
Maintainer: gfdgd xi <3025613752@qq.com> Maintainer: gfdgd xi <3025613752@qq.com>
@ -94,7 +183,10 @@ Section: utils
Installed-Size: 0 Installed-Size: 0
Description: 内核(虚包) Description: 内核(虚包)
EOF EOF
cat > deb-$MAINVERSION/DEBIAN/control <<EOF if [[ ! -d deb-$MAINVERSION ]]; then
mkdir -pv deb-$MAINVERSION/DEBIAN
fi
cat > deb-$MAINVERSION/DEBIAN/control <<EOF
Package: linux-kernel-gxde-gfdgdxi-$1 Package: linux-kernel-gxde-gfdgdxi-$1
Version: $VERSION Version: $VERSION
Maintainer: gfdgd xi <3025613752@qq.com> Maintainer: gfdgd xi <3025613752@qq.com>
@ -110,17 +202,20 @@ Section: utils
Installed-Size: 0 Installed-Size: 0
Description: 内核(虚包) Description: 内核(虚包)
EOF EOF
dpkg -b deb linux-kernel-gxde-gfdgdxi_${VERSION}_arm64.deb dpkg-deb -Z xz -b deb linux-kernel-gxde-gfdgdxi_${VERSION}_arm64.deb
dpkg -b deb-$MAINVERSION linux-kernel-gxde-gfdgdxi-${1}_${VERSION}_arm64.deb dpkg-deb -Z xz -b deb-$MAINVERSION linux-kernel-gxde-gfdgdxi-${1}_${VERSION}_arm64.deb
cd ../../gxde-linux-kernel cd ../../gxde-linux-kernel
#bash ./repack-zstd --scan . #bash ./repack-zstd --scan .
#./build.py #./build.py
./move-letter-path.py ../dclc-kernel/$VERSION-aarch64/*.deb ./move-letter-path.py ../dclc-kernel/$VERSION/*.deb
./move-letter-path.py ../dclc-kernel/head/*.deb ./move-letter-path.py ../dclc-kernel/head/*.deb
touch l/linux-headers-$VERSION-arm64-gfdgdxi-desktop/lock ./move-letter-path.py /tmp/deb-result/*.deb
rm -rfv l/linux-libc-dev/ rm -rfv l/linux-libc-dev/
git add . touch l/linux-headers-$VERSION-arm64-gfdgdxi-desktop/lock
git config --global user.email 3025613752@qq.com git add .
git config --global user.name gfdgd-xi #git pull
git commit -m 提交$VERSION git config --global user.email 3025613752@qq.com
git push git config --global user.name gfdgd-xi
git commit -m 提交$VERSION
git push
fi

File diff suppressed because it is too large Load Diff