Skip to content
Snippets Groups Projects
Commit 2c242f92 authored by ab0027's avatar ab0027 :speech_balloon:
Browse files

Move base image from bullseye to bookworm

parent a17442a5
No related branches found
No related tags found
No related merge requests found
Pipeline #9212 failed
...@@ -11,10 +11,14 @@ build-zynthbox-image-armhf: ...@@ -11,10 +11,14 @@ build-zynthbox-image-armhf:
- if: $CI_PIPELINE_SOURCE == "web" - if: $CI_PIPELINE_SOURCE == "web"
script: script:
- set -x - set -x
- source ./common.sh
- image_name="zynthbox_rpi4_bullseye_$(date "+%F_%H%M").img" - debian_release_name="bookworm"
- image_name_miko="zynthbox_miko_bullseye_$(date "+%F_%H%M").img" - image_name="zynthbox_rpi4_${debian_release_name}_$(date "+%F_%H%M").img"
- image_name_miko="zynthbox_miko_${debian_release_name}_$(date "+%F_%H%M").img"
- log_file_name="$image_name.build.log" - log_file_name="$image_name.build.log"
- KERN=5.15.65-llat-v7l+
- mountdir=$(mktemp -d)
# Ensuring key security # Ensuring key security
- echo "Ensuring key security" - echo "Ensuring key security"
...@@ -25,33 +29,45 @@ build-zynthbox-image-armhf: ...@@ -25,33 +29,45 @@ build-zynthbox-image-armhf:
- apt-get update - apt-get update
- apt-get install -y coreutils p7zip-full qemu-user-static sudo git wget curl python3 lsof fdisk xz-utils openssh-client jq zip - apt-get install -y coreutils p7zip-full qemu-user-static sudo git wget curl python3 lsof fdisk xz-utils openssh-client jq zip
# Build custom base image with Low Latency Kernel with PREEMPT_RT patch # Build custom base image with Low Latency Kernel
- git clone https://github.com/guysoft/CustomPiOS.git - wget -c --trust-server-names 'https://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2023-05-03/2023-05-03-raspios-bullseye-armhf-lite.img.xz' -O ./raspios-${debian_release_name}-armhf-lite.img.xz
- cd CustomPiOS && git checkout 11023e5 && cd .. - xz -dv ./raspios-${debian_release_name}-armhf-lite.img.xz
- git clone https://github.com/zynthbox/RealtimePi.git - sudo mount -o loop,offset=$(get_partition_start_offset root ./raspios-${debian_release_name}-armhf-lite.img),sizelimit=$(get_partition_size root ./raspios-${debian_release_name}-armhf-lite.img) ./raspios-${debian_release_name}-armhf-lite.img $mountdir
- cd RealtimePi/src - sudo mount -o loop,offset=$(get_partition_start_offset boot ./raspios-${debian_release_name}-armhf-lite.img),sizelimit=$(get_partition_size boot ./raspios-${debian_release_name}-armhf-lite.img) ./raspios-${debian_release_name}-armhf-lite.img $mountdir/boot
- wget -c --trust-server-names 'https://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2023-02-22/2023-02-21-raspios-bullseye-armhf-lite.img.xz' -P ./image - sudo mount --bind /dev $mountdir/dev
- ../../CustomPiOS/src/update-custompios-paths - sudo mount --bind /dev/pts $mountdir/dev/pts
- bash -x ./build_dist - sudo mount --bind /proc $mountdir/proc
- prefix=$(ls workspace/*.img | sed "s|workspace/||;s|-raspios-bullseye-armhf-lite.img||") - sudo mount --bind /sys $mountdir/sys
- mv workspace/*.img "/${prefix}_$(date +"%d-%m-%Y")-realtimepi-bullseye-armhf-lite.img" - sudo chroot $mountdir sed -i "s/bullseye/bookworm/g" /etc/apt/sources.list
- cd / - sudo chroot $mountdir sed -i "s/bullseye/bookworm/g" /etc/apt/sources.list.d/*
- zip ${prefix}_$(date +"%d-%m-%Y")-realtimepi-bullseye-armhf-lite.img.zip *.img - sudo chroot $mountdir wget https://github.com/kdoren/linux/releases/download/rpi_5.15.65/linux-image-5.15.65-llat-v7l+_5.15.65-1_armhf.deb
- rm -rf CustomPiOS RealtimePi *.img - sudo chroot $mountdir wget https://github.com/kdoren/linux/releases/download/rpi_5.15.65/linux-libc-dev_5.15.65-1_armhf.deb
- sudo chroot $mountdir dpkg -i *.deb
- sudo chroot $mountdir rm -v *.deb
- sudo chroot $mountdir mkdir -p /boot/$KERN/overlays/
- sudo chroot $mountdir cp -d /usr/lib/linux-image-$KERN/overlays/* /boot/$KERN/overlays/
- sudo chroot $mountdir cp -dr /usr/lib/linux-image-$KERN/* /boot/$KERN/
- sudo chroot $mountdir touch /boot/$KERN/overlays/README
- sudo chroot $mountdir mv /boot/vmlinuz-$KERN /boot/$KERN/
- sudo chroot $mountdir mv /boot/System.map-$KERN /boot/$KERN/
- sudo chroot $mountdir cp /boot/config-$KERN /boot/$KERN/
- sudo umount $mountdir/boot/ $mountdir/dev/pts $mountdir/dev/ $mountdir/proc/ $mountdir/sys/
- sudo umount $mountdir
- zip ./raspios-${debian_release_name}-armhf-lite.img.zip ./raspios-${debian_release_name}-armhf-lite.img
# Clone repositories required to generate image # Clone repositories required to generate zynthbox image
- echo "# Clone repositories required to generate image" - echo "# Clone repositories required to generate zynthbox image"
- git clone https://github.com/zynthbox/CustomPiOS.git - git clone https://github.com/zynthbox/CustomPiOS.git
- git clone https://github.com/zynthbox/ZynthianOS.git - git clone https://github.com/zynthbox/ZynthianOS.git
# Setup Zynthbox Repo sourceline # Setup Zynthbox Repo sourceline
- echo "# Setup Zynthbox Repo sourceline" - echo "# Setup Zynthbox Repo sourceline"
- echo "ZYNTHIANOS_ZYNTHBOX_REPO_KEY_URL='https://repo.zynthbox.io/repo_key.pub'" >> ZynthianOS/src/modules/zynthianos/config - echo "ZYNTHIANOS_ZYNTHBOX_REPO_KEY_URL='https://repo.zynthbox.io/repo_key.pub'" >> ZynthianOS/src/modules/zynthianos/config
- echo "ZYNTHIANOS_ZYNTHBOX_REPO_SOURCELINE='deb http://repo.zynthbox.io/testing-bullseye bullseye main'" >> ZynthianOS/src/modules/zynthianos/config - echo "ZYNTHIANOS_ZYNTHBOX_REPO_SOURCELINE='deb http://repo.zynthbox.io/testing-${debian_release_name} ${debian_release_name} main'" >> ZynthianOS/src/modules/zynthianos/config
# Use custom base image from above # Use custom base image from above
- echo "# Using custom base image" - echo "# Using custom base image"
- mv *.zip ./ZynthianOS/src/image - mv ./raspios-${debian_release_name}-armhf-lite.img.zip ./ZynthianOS/src/image
# Build rpi4 image # Build rpi4 image
- echo "# Build rpi4 image" - echo "# Build rpi4 image"
...@@ -72,13 +88,8 @@ build-zynthbox-image-armhf: ...@@ -72,13 +88,8 @@ build-zynthbox-image-armhf:
- echo "# Build Miko image" - echo "# Build Miko image"
- cp -v ./workspace/$image_name ./workspace/$image_name_miko - cp -v ./workspace/$image_name ./workspace/$image_name_miko
- fdisk -lu ./workspace/$image_name_miko - fdisk -lu ./workspace/$image_name_miko
- root_start=$(fdisk -lu ./workspace/$image_name_miko | grep ${image_name_miko}2 | awk '{print $2}') - sudo mount -o loop,offset=$(get_partition_start_offset root ./workspace/$image_name_miko),sizelimit=$(get_partition_size root ./workspace/$image_name_miko) ./workspace/$image_name_miko $mountdir
- root_size=$(fdisk -lu ./workspace/$image_name_miko | grep ${image_name_miko}2 | awk '{print $4}') - sudo mount -o loop,offset=$(get_partition_start_offset boot ./workspace/$image_name_miko),sizelimit=$(get_partition_size boot ./workspace/$image_name_miko) ./workspace/$image_name_miko $mountdir/boot
- boot_start=$(fdisk -lu ./workspace/$image_name_miko | grep ${image_name_miko}1 | awk '{print $2}')
- boot_size=$(fdisk -lu ./workspace/$image_name_miko | grep ${image_name_miko}1 | awk '{print $4}')
- mountdir=$(mktemp -d)
- sudo mount -o loop,offset=$(($root_start * 512)),sizelimit=$(($root_size * 512)) ./workspace/$image_name_miko $mountdir
- sudo mount -o loop,offset=$(($boot_start * 512)),sizelimit=$(($boot_size * 512)) ./workspace/$image_name_miko $mountdir/boot
- sudo mount --bind /dev $mountdir/dev - sudo mount --bind /dev $mountdir/dev
- sudo mount --bind /dev/pts $mountdir/dev/pts - sudo mount --bind /dev/pts $mountdir/dev/pts
- sudo mount --bind /proc $mountdir/proc - sudo mount --bind /proc $mountdir/proc
......
#!/bin/bash
###
# A Helper function to get partition start offset and total size
# ARG 1 : Partition type
# Accepted Values : 'root', 'boot'
# ARG 2 : Image path
###
get_partition_start_offset() {
if [ $1 = "root" ]; then
partnum=2
elif [ $1 = "boot" ]; then
partnum=1
else
echo "Invalid partition type $1"
exit 1
fi
echo $(($(fdisk -lu $2 | grep $(basename $2)$partnum | awk '{print $2}') * 512))
}
###
# A Helper function to get partition start offset and total size
# ARG 1 : Partition type
# Accepted Values : 'root', 'boot'
# ARG 2 : Image path
###
get_partition_size() {
if [ $1 = "root" ]; then
partnum=2
elif [ $1 = "boot" ]; then
partnum=1
else
echo "Invalid partition type $1"
exit 1
fi
echo $(($(fdisk -lu $2 | grep $(basename $2)$partnum | awk '{print $4}') * 512))
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment