From 146f99a7b607f32014abedaa568fb680ef51a40b Mon Sep 17 00:00:00 2001 From: zyb Date: Sat, 13 Jul 2024 17:44:17 +0800 Subject: [PATCH] modified: .github/workflows/mikrotik_patch.yml --- .github/workflows/mikrotik_patch.yml | 31 +++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/.github/workflows/mikrotik_patch.yml b/.github/workflows/mikrotik_patch.yml index 96ab239..3d8e18d 100644 --- a/.github/workflows/mikrotik_patch.yml +++ b/.github/workflows/mikrotik_patch.yml @@ -143,6 +143,7 @@ jobs: run: | sudo wget -nv -O mikrotik.iso https://download.mikrotik.com/routeros/$LATEST_VERSION/mikrotik-$LATEST_VERSION$ARCH.iso + - name: Patch mikrotik-${{ env.LATEST_VERSION }}${{ env.ARCH }}.iso run: | sudo apt-get install -y mkisofs > /dev/null @@ -192,7 +193,6 @@ jobs: sudo cp ./efiboot/EFI/BOOT/BOOTAA64.EFI ./BOOTAA64.EFI sudo umount ./efiboot sudo rm -rf ./efiboot - sudo mkisofs -o mikrotik-$LATEST_VERSION$ARCH.iso \ -V "MikroTik $LATEST_VERSION ${{ matrix.arch }}" \ -sysid "" -preparer "MiKroTiK" \ @@ -276,6 +276,20 @@ jobs: sudo zip install-image-$LATEST_VERSION.zip ./install-image-$LATEST_VERSION.img sudo rm ./install-image-$LATEST_VERSION.img + - name: Cache chr-${{ env.LATEST_VERSION }}${{ env.ARCH }}.img.zip + if: matrix.arch == 'arm64' + id: cache-chr-img + uses: actions/cache@v4 + with: + path: | + chr.img + key: chr-${{ env.LATEST_VERSION }}-${{ matrix.arch }}.img + + - name: Get mikrotik-${{ env.LATEST_VERSION }}${{ env.ARCH }}.iso + if: steps.cache-mikrotik.outputs.cache-hit != 'true' && matrix.arch == 'arm64' + run: | + sudo wget -nv -O chr.img https://download.mikrotik.com/routeros/$LATEST_VERSION/chr-$LATEST_VERSION$ARCH.img.zip + - name: Create chr-${{ env.LATEST_VERSION }}${{ env.ARCH }}.img run: | @@ -295,25 +309,32 @@ jobs: chr-$LATEST_VERSION$ARCH.img dd if=mbr.bin of=chr-$LATEST_VERSION$ARCH.img bs=1 count=446 conv=notrunc dd if=pt.bin of=chr-$LATEST_VERSION$ARCH.img bs=1 count=66 seek=446 conv=notrunc - sudo qemu-nbd -c /dev/nbd0 -f raw chr-$LATEST_VERSION$ARCH.img sudo mkfs.vfat -n "Boot" /dev/nbd0p1 sudo mkfs.ext4 -F -L "RouterOS" -m 0 /dev/nbd0p2 sudo mkdir -p ./img/{boot,routeros} sudo mount /dev/nbd0p1 ./img/boot/ - sudo mkdir -p ./img/boot/{BOOT,EFI/BOOT} if [ "${{ matrix.arch }}" == "x86_64" ]; then + sudo mkdir -p ./img/boot/{BOOT,EFI/BOOT} sudo cp BOOTX64.EFI ./img/boot/EFI/BOOT/BOOTX64.EFI sudo ./extlinux --install -H 64 -S 32 ./img/boot/BOOT echo -e "default system\nlabel system\n\tkernel /EFI/BOOT/BOOTX64.EFI\n\tappend load_ramdisk=1 root=/dev/ram0 quiet" > syslinux.cfg sudo cp syslinux.cfg ./img/boot/BOOT/ sudo rm syslinux.cfg elif [ "${{ matrix.arch }}" == "arm64" ]; then - sudo cp BOOTAA64.EFI ./img/boot/EFI/BOOT/BOOTAA64.EFI + sudo mkdir -p ./img/boot/EFI/BOOT + sudo qemu-nbd -c /dev/nbd1 -f raw chr.img + sudo mkdir -p ./chr/boot + sudo mount /dev/nbd1p1 ./chr/boot/ + sudo -E python3 patch.py kernel ./chr/boot/EFI/BOOT/BOOTAA64.EFI + sudo cp ./chr/boot/EFI/BOOT/BOOTAA64.EFI ./img/boot/EFI/BOOT/BOOTAA64.EFI + sudo umount /dev/nbd1p1 + sudo rm -rf ./chr + sudo qemu-nbd -d /dev/nbd1 fi sudo umount /dev/nbd0p1 sudo mount /dev/nbd0p2 ./img/routeros/ - sudo mkdir -p ./img/routeros/{var/pdb/{system,option},boot} + sudo mkdir -p ./img/routeros/{var/pdb/{system,option},boot,rw} sudo cp ./all_packages/option-$LATEST_VERSION$ARCH.npk ./img/routeros/var/pdb/option/image sudo cp ./all_packages/routeros-$LATEST_VERSION$ARCH.npk ./img/routeros/var/pdb/system/image sudo umount /dev/nbd0p2