|
|
|
@ -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 |
|
|
|
|