From 9d1a042ea03da9224ec7f539e3b565c45a4dac44 Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Sat, 7 Nov 2020 12:50:27 +0100 Subject: [PATCH 01/15] Create image in artifacts folder --- build-rpi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-rpi.sh b/build-rpi.sh index 36948e61a..d50636c41 100755 --- a/build-rpi.sh +++ b/build-rpi.sh @@ -8,7 +8,7 @@ apt-get install -y --no-install-recommends ubuntu-keyring debootstrap qemu-user- update-binfmts --enable rootdir=`pwd` -basedir=`pwd`/elementary-rpi +basedir=`pwd`/artifacts/elementary-rpi # Size of .img file to build in MB. Approx 4GB required at this time, the rest is free space on / size=5000 From bdfea125912f41827106b7473121022125dafc86 Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Sat, 7 Nov 2020 12:53:27 +0100 Subject: [PATCH 02/15] Build for arm64 --- build-rpi.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build-rpi.sh b/build-rpi.sh index d50636c41..cac695769 100755 --- a/build-rpi.sh +++ b/build-rpi.sh @@ -11,10 +11,10 @@ rootdir=`pwd` basedir=`pwd`/artifacts/elementary-rpi # Size of .img file to build in MB. Approx 4GB required at this time, the rest is free space on / -size=5000 +size=8000 export packages="elementary-minimal elementary-desktop elementary-standard" -export architecture="armhf" +export architecture="arm64" export codename="focal" export channel="daily" From f9e833fa4f18b66cc8bb0fbe78b245426bc47101 Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Sat, 7 Nov 2020 12:55:34 +0100 Subject: [PATCH 03/15] Compress image --- build-rpi.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build-rpi.sh b/build-rpi.sh index cac695769..6001f306c 100755 --- a/build-rpi.sh +++ b/build-rpi.sh @@ -2,7 +2,7 @@ # Install dependencies in host system apt-get update -apt-get install -y --no-install-recommends ubuntu-keyring debootstrap qemu-user-static qemu-utils qemu-system-arm binfmt-support parted kpartx rsync dosfstools +apt-get install -y --no-install-recommends ubuntu-keyring debootstrap qemu-user-static qemu-utils qemu-system-arm binfmt-support parted kpartx rsync dosfstools xz-utils # Make sure cross-running ARM ELF executables is enabled update-binfmts --enable @@ -21,6 +21,8 @@ export channel="daily" mkdir -p ${basedir} cd ${basedir} +rm -rf elementary-rpi.img* + # Bootstrap an ubuntu minimal system debootstrap --foreign --arch $architecture $codename elementary-$architecture http://ports.ubuntu.com/ubuntu-ports @@ -194,3 +196,4 @@ umount $rootp kpartx -dv $loopdevice losetup -d $loopdevice +xz -0 ${basedir}/elementary-rpi.img From 5032a263818e6cd7c9b96ed18755e9655b20057c Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Sat, 7 Nov 2020 12:56:06 +0100 Subject: [PATCH 04/15] Use labels for partitions --- build-rpi.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/build-rpi.sh b/build-rpi.sh index 6001f306c..116d18ab0 100755 --- a/build-rpi.sh +++ b/build-rpi.sh @@ -62,8 +62,8 @@ EOF cat << EOF > elementary-${architecture}/etc/fstab # proc /proc proc nodev,noexec,nosuid 0 0 -/dev/mmcblk0p2 / ext4 errors=remount-ro 0 1 -/dev/mmcblk0p1 /boot/firmware vfat noauto 0 0 +LABEL=writable / ext4 defaults,x-systemd.growfs 0 0 +LABEL=system-boot /boot/firmware vfat defaults 0 1 EOF export LC_ALL=C @@ -92,8 +92,8 @@ LANG=C chroot elementary-$architecture /third-stage echo "Creating image file for Raspberry Pi" dd if=/dev/zero of=${basedir}/elementary-rpi.img bs=1M count=$size parted elementary-rpi.img --script -- mklabel msdos -parted elementary-rpi.img --script -- mkpart primary fat32 0 128 -parted elementary-rpi.img --script -- mkpart primary ext4 128 -1 +parted elementary-rpi.img --script -- mkpart primary fat32 0 256 +parted elementary-rpi.img --script -- mkpart primary ext4 256 -1 # Set the partition variables loopdevice=`losetup -f --show ${basedir}/elementary-rpi.img` @@ -103,8 +103,8 @@ bootp=${device}p1 rootp=${device}p2 # Create file systems -mkfs.vfat $bootp -mkfs.ext4 $rootp +mkfs.vfat -n system-boot $bootp +mkfs.ext4 -L writable $rootp # Create the dirs for the partitions and mount them mkdir -p ${basedir}/bootp ${basedir}/root @@ -125,7 +125,7 @@ dtparam=spi=on EOF cat << EOF > elementary-$architecture/boot/firmware/cmdline.txt -net.ifnames=0 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait fixrtc +net.ifnames=0 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc EOF # Install an RPi kernel and firmware From d69fe6a67595c908d083728799f4898c55ad411e Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Sat, 7 Nov 2020 13:01:40 +0100 Subject: [PATCH 05/15] Add instructions to build for Raspberry Pi 4 --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 69292c213..c492531c1 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,16 @@ The following example uses Docker and assumes you have Docker correctly installe 4) When done, your image will be in the `builds` folder. +## Raspberry Pi 4 + +``` +docker run --privileged -i -v /proc:/proc \ + -v ${PWD}:/working_dir \ + -w /working_dir \ + debian:unstable \ + ./build-rpi.sh +``` + ## Further Information More information about the concepts behind `live-build` and the technical decisions made to arrive at this set of tools to build an .iso can be found [on the wiki](https://github.com/elementary/os/wiki/Building-iso-Images). From f234574d7d716825dbbce0a463f8778497cbf4b7 Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Sat, 7 Nov 2020 13:44:00 +0100 Subject: [PATCH 06/15] Enable support for ARM --- build-rpi.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build-rpi.sh b/build-rpi.sh index 116d18ab0..d65c25403 100755 --- a/build-rpi.sh +++ b/build-rpi.sh @@ -116,6 +116,7 @@ mount -o bind ${basedir}/bootp/ elementary-$architecture/boot/firmware # RPi specific config files to configure bootloader cat << EOF > elementary-$architecture/boot/firmware/config.txt +arm_64bit=1 kernel=vmlinuz initramfs initrd.img followkernel From 5b2448ad0689315f3bb02254f167bdcdba44f8b2 Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Sun, 8 Nov 2020 12:03:05 +0100 Subject: [PATCH 07/15] Use Raspberry Pi specific packages from latest Ubuntu version --- build-rpi.sh | 67 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 60 insertions(+), 7 deletions(-) diff --git a/build-rpi.sh b/build-rpi.sh index d65c25403..f3a7d7ddb 100755 --- a/build-rpi.sh +++ b/build-rpi.sh @@ -16,6 +16,7 @@ size=8000 export packages="elementary-minimal elementary-desktop elementary-standard" export architecture="arm64" export codename="focal" +export codename_latest="groovy" export channel="daily" mkdir -p ${basedir} @@ -43,10 +44,60 @@ for f in ${rootdir}/etc/config/archives/*.list; do cp -- "$f" "elementary-$archi for f in ${rootdir}/etc/config/archives/*.key; do cp -- "$f" "elementary-$architecture/etc/apt/trusted.gpg.d/$(basename -- $f).asc"; done for f in ${rootdir}/etc/config/archives/*.pref; do cp -- "$f" "elementary-$architecture/etc/apt/preferences.d/$(basename -- $f)"; done +# Add ubuntu latest repos to get the newest packages to support Raspberry Pi 4 +cat << EOF > elementary-$architecture/etc/apt/sources.list.d/latest.list +deb http://ports.ubuntu.com/ubuntu-ports $codename_latest main restricted universe multiverse +deb http://ports.ubuntu.com/ubuntu-ports $codename_latest-updates main restricted universe multiverse +EOF + +cat << EOF > elementary-$architecture/etc/apt/preferences.d/raspi.pref +Package: linux-firmware-raspi2 +Pin: release n=@LATESTCODENAME +Pin-Priority: 990 + +Package: linux*-raspi* +Pin: release n=@LATESTCODENAME +Pin-Priority: 990 + +Package: ubuntu-raspi-settings +Pin: release n=@LATESTCODENAME +Pin-Priority: 990 + +Package: rpi-eeprom +Pin: release n=@LATESTCODENAME +Pin-Priority: 990 + +Package: libraspberrypi* +Pin: release n=@LATESTCODENAME +Pin-Priority: 990 + +Package: u-boot-rpi +Pin: release n=@LATESTCODENAME +Pin-Priority: 990 + +Package: grub* +Pin: release n=@LATESTCODENAME +Pin-Priority: 990 + +Explanation: Uninstall or do not install any Ubuntu-originated +Explanation: package versions other than those in the @BASECODENAME release +Package: * +Pin: release n=@BASECODENAME +Pin-Priority: 900 + +Package: * +Pin: release o=Ubuntu +Pin-Priority: -10 +EOF + # Set codename/channel in added repos sed -i "s/@CHANNEL/$channel/" elementary-$architecture/etc/apt/sources.list.d/*.list* sed -i "s/@BASECODENAME/$codename/" elementary-$architecture/etc/apt/sources.list.d/*.list* +# Set codename in added preferences +sed -i "s/@BASECODENAME/$codename/" elementary-$architecture/etc/apt/preferences.d/*.pref* +sed -i "s/@LATESTCODENAME/$codename_latest/" elementary-$architecture/etc/apt/preferences.d/*.pref* + echo "elementary" > elementary-$architecture/etc/hostname cat << EOF > elementary-${architecture}/etc/hosts @@ -129,22 +180,24 @@ cat << EOF > elementary-$architecture/boot/firmware/cmdline.txt net.ifnames=0 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc EOF -# Install an RPi kernel and firmware -cat << EOF > elementary-$architecture/kernel +# Install Raspberry Pi specific packages +cat << EOF > elementary-$architecture/hardware #!/bin/bash -apt-get --yes install linux-image-raspi linux-firmware-raspi2 u-boot-rpi +apt-get --yes install linux-image-raspi linux-firmware-raspi2 u-boot-rpi grub-efi-arm64 rpi-eeprom ubuntu-raspi-settings cp /boot/vmlinuz /boot/firmware/vmlinuz cp /boot/initrd.img /boot/firmware/initrd.img # Copy device-tree blobs to fat32 partition -cp -r /lib/firmware/*-raspi/device-tree/* /boot/firmware/ +cp -r /lib/firmware/*-raspi/device-tree/broadcom/* /boot/firmware/ +cp -r /lib/firmware/*-raspi/device-tree/overlays /boot/firmware/ +cp -r /usr/lib/*-raspi2/* /boot/firmware/ -rm -f kernel +rm -f hardware EOF -chmod +x elementary-$architecture/kernel -LANG=C chroot elementary-$architecture /kernel +chmod +x elementary-$architecture/hardware +LANG=C chroot elementary-$architecture /hardware # Copy in any file overrides cp -r ${rootdir}/etc/config/includes.chroot/* elementary-$architecture/ From 60761a903cf0a67239cd4f3488a88ed633e31a5b Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Sun, 8 Nov 2020 12:04:37 +0100 Subject: [PATCH 08/15] Set OEM info --- build-rpi.sh | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/build-rpi.sh b/build-rpi.sh index f3a7d7ddb..7c5d16761 100755 --- a/build-rpi.sh +++ b/build-rpi.sh @@ -2,7 +2,7 @@ # Install dependencies in host system apt-get update -apt-get install -y --no-install-recommends ubuntu-keyring debootstrap qemu-user-static qemu-utils qemu-system-arm binfmt-support parted kpartx rsync dosfstools xz-utils +apt-get install -y --no-install-recommends ubuntu-keyring debootstrap qemu-user-static qemu-utils qemu-system-arm binfmt-support parted kpartx rsync dosfstools xz-utils wget # Make sure cross-running ARM ELF executables is enabled update-binfmts --enable @@ -109,6 +109,19 @@ ff02::1 ip6-allnodes ff02::2 ip6-allrouters EOF +mkdir -p elementary-$architecture/etc/oem + +wget https://www.raspberrypi.org/app/uploads/2018/03/RPi-Logo-Reg-SCREEN.png \ + -O elementary-$architecture/etc/oem/logo.png + +cat > elementary-$architecture/etc/oem.conf << EOF +[OEM] +Manufacturer=Raspberry Pi Foundation +Product=Raspberry Pi +Logo=/etc/oem/logo.png +URL=https://www.raspberrypi.org/ +EOF + # Configure mount points cat << EOF > elementary-${architecture}/etc/fstab # From 1c020f711bee937e6833110c31e66b8b6d74500c Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Sun, 8 Nov 2020 12:27:44 +0100 Subject: [PATCH 09/15] Use timestamp for image name --- build-rpi.sh | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/build-rpi.sh b/build-rpi.sh index 7c5d16761..2354b7a1b 100755 --- a/build-rpi.sh +++ b/build-rpi.sh @@ -19,11 +19,13 @@ export codename="focal" export codename_latest="groovy" export channel="daily" +version=6.0 +YYYYMMDD="$(date +%Y%m%d)" +imagename=elementaryos-$version-$channel-rpi-$YYYYMMDD + mkdir -p ${basedir} cd ${basedir} -rm -rf elementary-rpi.img* - # Bootstrap an ubuntu minimal system debootstrap --foreign --arch $architecture $codename elementary-$architecture http://ports.ubuntu.com/ubuntu-ports @@ -154,13 +156,13 @@ LANG=C chroot elementary-$architecture /third-stage # Create the disk and partition it echo "Creating image file for Raspberry Pi" -dd if=/dev/zero of=${basedir}/elementary-rpi.img bs=1M count=$size -parted elementary-rpi.img --script -- mklabel msdos -parted elementary-rpi.img --script -- mkpart primary fat32 0 256 -parted elementary-rpi.img --script -- mkpart primary ext4 256 -1 +dd if=/dev/zero of=${basedir}/${imagename}.img bs=1M count=$size +parted ${imagename}.img --script -- mklabel msdos +parted ${imagename}.img --script -- mkpart primary fat32 0 256 +parted ${imagename}.img --script -- mkpart primary ext4 256 -1 # Set the partition variables -loopdevice=`losetup -f --show ${basedir}/elementary-rpi.img` +loopdevice=`losetup -f --show ${basedir}/${imagename}.img` device=`kpartx -va $loopdevice| sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1` device="/dev/mapper/${device}" bootp=${device}p1 @@ -263,4 +265,5 @@ umount $rootp kpartx -dv $loopdevice losetup -d $loopdevice -xz -0 ${basedir}/elementary-rpi.img +echo "Compressing ${imagename}.img" +xz -z ${basedir}/${imagename}.img From d388afbc3fc8d8a82e5373022a559a920d86036c Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Sun, 8 Nov 2020 12:28:20 +0100 Subject: [PATCH 10/15] Use config.txt of Ubuntu 20.10 --- build-rpi.sh | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/build-rpi.sh b/build-rpi.sh index 2354b7a1b..8d17ca696 100755 --- a/build-rpi.sh +++ b/build-rpi.sh @@ -182,13 +182,38 @@ mount -o bind ${basedir}/bootp/ elementary-$architecture/boot/firmware # RPi specific config files to configure bootloader cat << EOF > elementary-$architecture/boot/firmware/config.txt +[pi4] +max_framebuffers=2 + +[all] arm_64bit=1 kernel=vmlinuz +cmdline=cmdline.txt initramfs initrd.img followkernel -enable_uart=1 +# Enable the audio output, I2C and SPI interfaces on the GPIO header +dtparam=audio=on dtparam=i2c_arm=on dtparam=spi=on + +# Enable the FKMS ("Fake" KMS) graphics overlay, enable the camera firmware +# and allocate 128Mb to the GPU memory +dtoverlay=vc4-fkms-v3d +gpu_mem=128 +start_x=1 + +# Comment out the following line if the edges of the desktop appear outside +# the edges of your display +disable_overscan=1 + +# If you have issues with audio, you may try uncommenting the following line +# which forces the HDMI output into HDMI mode instead of DVI (which doesn't +# support audio output) +#hdmi_drive=2 + +# If you have a CM4, uncomment the following line to enable the USB2 outputs +# on the IO board (assuming your CM4 is plugged into such a board) +#dtoverlay=dwc2,dr_mode=host EOF cat << EOF > elementary-$architecture/boot/firmware/cmdline.txt From 25dcf4cadfb101fc86291716b218775215fb2908 Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Sun, 8 Nov 2020 12:32:27 +0100 Subject: [PATCH 11/15] Create checksums for compressed image --- build-rpi.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build-rpi.sh b/build-rpi.sh index 8d17ca696..c5b496e85 100755 --- a/build-rpi.sh +++ b/build-rpi.sh @@ -292,3 +292,8 @@ losetup -d $loopdevice echo "Compressing ${imagename}.img" xz -z ${basedir}/${imagename}.img + +cd "${basedir}" + +md5sum ${imagename}.img.xz > ${imagename}.md5.txt +sha256sum ${imagename}.img.xz > ${imagename}.sha256.txt From 6ddf8eee6b764a02725fa7f2ed27752ca0a8c95d Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Sun, 8 Nov 2020 16:19:14 +0100 Subject: [PATCH 12/15] Add Raspberry Pi specific files --- build-rpi.sh | 105 +----------------- rpi/rootfs/boot/firmware/cmdline.txt | 1 + rpi/rootfs/boot/firmware/config.txt | 32 ++++++ rpi/rootfs/etc/apt/preferences.d/rpi.pref | 37 ++++++ .../etc/apt/sources.list.d/ubuntu-latest.list | 2 + rpi/rootfs/etc/oem.conf | 5 + rpi/rootfs/etc/oem/logo.png | Bin 0 -> 14507 bytes 7 files changed, 82 insertions(+), 100 deletions(-) create mode 100644 rpi/rootfs/boot/firmware/cmdline.txt create mode 100644 rpi/rootfs/boot/firmware/config.txt create mode 100644 rpi/rootfs/etc/apt/preferences.d/rpi.pref create mode 100644 rpi/rootfs/etc/apt/sources.list.d/ubuntu-latest.list create mode 100644 rpi/rootfs/etc/oem.conf create mode 100644 rpi/rootfs/etc/oem/logo.png diff --git a/build-rpi.sh b/build-rpi.sh index c5b496e85..d9f44a39e 100755 --- a/build-rpi.sh +++ b/build-rpi.sh @@ -2,7 +2,7 @@ # Install dependencies in host system apt-get update -apt-get install -y --no-install-recommends ubuntu-keyring debootstrap qemu-user-static qemu-utils qemu-system-arm binfmt-support parted kpartx rsync dosfstools xz-utils wget +apt-get install -y --no-install-recommends ubuntu-keyring debootstrap qemu-user-static qemu-utils qemu-system-arm binfmt-support parted kpartx rsync dosfstools xz-utils # Make sure cross-running ARM ELF executables is enabled update-binfmts --enable @@ -35,6 +35,9 @@ cp /usr/bin/qemu-arm-static elementary-$architecture/usr/bin/ # Run the second stage of the bootstrap in QEMU LANG=C chroot elementary-$architecture /debootstrap/debootstrap --second-stage +# Copy Raspberry Pi specific files +rsync -HPavz -q ${rootdir}/rpi/rootfs/* elementary-${architecture}/ + # Add the rest of the ubuntu repos cat << EOF > elementary-$architecture/etc/apt/sources.list deb http://ports.ubuntu.com/ubuntu-ports $codename main restricted universe multiverse @@ -46,55 +49,10 @@ for f in ${rootdir}/etc/config/archives/*.list; do cp -- "$f" "elementary-$archi for f in ${rootdir}/etc/config/archives/*.key; do cp -- "$f" "elementary-$architecture/etc/apt/trusted.gpg.d/$(basename -- $f).asc"; done for f in ${rootdir}/etc/config/archives/*.pref; do cp -- "$f" "elementary-$architecture/etc/apt/preferences.d/$(basename -- $f)"; done -# Add ubuntu latest repos to get the newest packages to support Raspberry Pi 4 -cat << EOF > elementary-$architecture/etc/apt/sources.list.d/latest.list -deb http://ports.ubuntu.com/ubuntu-ports $codename_latest main restricted universe multiverse -deb http://ports.ubuntu.com/ubuntu-ports $codename_latest-updates main restricted universe multiverse -EOF - -cat << EOF > elementary-$architecture/etc/apt/preferences.d/raspi.pref -Package: linux-firmware-raspi2 -Pin: release n=@LATESTCODENAME -Pin-Priority: 990 - -Package: linux*-raspi* -Pin: release n=@LATESTCODENAME -Pin-Priority: 990 - -Package: ubuntu-raspi-settings -Pin: release n=@LATESTCODENAME -Pin-Priority: 990 - -Package: rpi-eeprom -Pin: release n=@LATESTCODENAME -Pin-Priority: 990 - -Package: libraspberrypi* -Pin: release n=@LATESTCODENAME -Pin-Priority: 990 - -Package: u-boot-rpi -Pin: release n=@LATESTCODENAME -Pin-Priority: 990 - -Package: grub* -Pin: release n=@LATESTCODENAME -Pin-Priority: 990 - -Explanation: Uninstall or do not install any Ubuntu-originated -Explanation: package versions other than those in the @BASECODENAME release -Package: * -Pin: release n=@BASECODENAME -Pin-Priority: 900 - -Package: * -Pin: release o=Ubuntu -Pin-Priority: -10 -EOF - # Set codename/channel in added repos sed -i "s/@CHANNEL/$channel/" elementary-$architecture/etc/apt/sources.list.d/*.list* sed -i "s/@BASECODENAME/$codename/" elementary-$architecture/etc/apt/sources.list.d/*.list* +sed -i "s/@LATESTCODENAME/$codename/" elementary-$architecture/etc/apt/sources.list.d/*.list* # Set codename in added preferences sed -i "s/@BASECODENAME/$codename/" elementary-$architecture/etc/apt/preferences.d/*.pref* @@ -111,19 +69,6 @@ ff02::1 ip6-allnodes ff02::2 ip6-allrouters EOF -mkdir -p elementary-$architecture/etc/oem - -wget https://www.raspberrypi.org/app/uploads/2018/03/RPi-Logo-Reg-SCREEN.png \ - -O elementary-$architecture/etc/oem/logo.png - -cat > elementary-$architecture/etc/oem.conf << EOF -[OEM] -Manufacturer=Raspberry Pi Foundation -Product=Raspberry Pi -Logo=/etc/oem/logo.png -URL=https://www.raspberrypi.org/ -EOF - # Configure mount points cat << EOF > elementary-${architecture}/etc/fstab # @@ -180,46 +125,6 @@ mount $rootp ${basedir}/root mkdir -p elementary-$architecture/boot/firmware mount -o bind ${basedir}/bootp/ elementary-$architecture/boot/firmware -# RPi specific config files to configure bootloader -cat << EOF > elementary-$architecture/boot/firmware/config.txt -[pi4] -max_framebuffers=2 - -[all] -arm_64bit=1 -kernel=vmlinuz -cmdline=cmdline.txt -initramfs initrd.img followkernel - -# Enable the audio output, I2C and SPI interfaces on the GPIO header -dtparam=audio=on -dtparam=i2c_arm=on -dtparam=spi=on - -# Enable the FKMS ("Fake" KMS) graphics overlay, enable the camera firmware -# and allocate 128Mb to the GPU memory -dtoverlay=vc4-fkms-v3d -gpu_mem=128 -start_x=1 - -# Comment out the following line if the edges of the desktop appear outside -# the edges of your display -disable_overscan=1 - -# If you have issues with audio, you may try uncommenting the following line -# which forces the HDMI output into HDMI mode instead of DVI (which doesn't -# support audio output) -#hdmi_drive=2 - -# If you have a CM4, uncomment the following line to enable the USB2 outputs -# on the IO board (assuming your CM4 is plugged into such a board) -#dtoverlay=dwc2,dr_mode=host -EOF - -cat << EOF > elementary-$architecture/boot/firmware/cmdline.txt -net.ifnames=0 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc -EOF - # Install Raspberry Pi specific packages cat << EOF > elementary-$architecture/hardware #!/bin/bash diff --git a/rpi/rootfs/boot/firmware/cmdline.txt b/rpi/rootfs/boot/firmware/cmdline.txt new file mode 100644 index 000000000..828dcb5e0 --- /dev/null +++ b/rpi/rootfs/boot/firmware/cmdline.txt @@ -0,0 +1 @@ +net.ifnames=0 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc diff --git a/rpi/rootfs/boot/firmware/config.txt b/rpi/rootfs/boot/firmware/config.txt new file mode 100644 index 000000000..3804e1f92 --- /dev/null +++ b/rpi/rootfs/boot/firmware/config.txt @@ -0,0 +1,32 @@ +[pi4] +max_framebuffers=2 + +[all] +arm_64bit=1 +kernel=vmlinuz +cmdline=cmdline.txt +initramfs initrd.img followkernel + +# Enable the audio output, I2C and SPI interfaces on the GPIO header +dtparam=audio=on +dtparam=i2c_arm=on +dtparam=spi=on + +# Enable the FKMS ("Fake" KMS) graphics overlay, enable the camera firmware +# and allocate 128Mb to the GPU memory +dtoverlay=vc4-fkms-v3d +gpu_mem=128 +start_x=1 + +# Comment out the following line if the edges of the desktop appear outside +# the edges of your display +disable_overscan=1 + +# If you have issues with audio, you may try uncommenting the following line +# which forces the HDMI output into HDMI mode instead of DVI (which doesn't +# support audio output) +#hdmi_drive=2 + +# If you have a CM4, uncomment the following line to enable the USB2 outputs +# on the IO board (assuming your CM4 is plugged into such a board) +#dtoverlay=dwc2,dr_mode=host diff --git a/rpi/rootfs/etc/apt/preferences.d/rpi.pref b/rpi/rootfs/etc/apt/preferences.d/rpi.pref new file mode 100644 index 000000000..0fc0d8714 --- /dev/null +++ b/rpi/rootfs/etc/apt/preferences.d/rpi.pref @@ -0,0 +1,37 @@ +Package: linux-firmware-raspi2 +Pin: release n=@LATESTCODENAME +Pin-Priority: 990 + +Package: linux*-raspi* +Pin: release n=@LATESTCODENAME +Pin-Priority: 990 + +Package: ubuntu-raspi-settings +Pin: release n=@LATESTCODENAME +Pin-Priority: 990 + +Package: rpi-eeprom +Pin: release n=@LATESTCODENAME +Pin-Priority: 990 + +Package: libraspberrypi* +Pin: release n=@LATESTCODENAME +Pin-Priority: 990 + +Package: u-boot-rpi +Pin: release n=@LATESTCODENAME +Pin-Priority: 990 + +Package: grub* +Pin: release n=@LATESTCODENAME +Pin-Priority: 990 + +Explanation: Uninstall or do not install any Ubuntu-originated +Explanation: package versions other than those in the @BASECODENAME release +Package: * +Pin: release n=@BASECODENAME +Pin-Priority: 900 + +Package: * +Pin: release o=Ubuntu +Pin-Priority: -10 diff --git a/rpi/rootfs/etc/apt/sources.list.d/ubuntu-latest.list b/rpi/rootfs/etc/apt/sources.list.d/ubuntu-latest.list new file mode 100644 index 000000000..7edddf481 --- /dev/null +++ b/rpi/rootfs/etc/apt/sources.list.d/ubuntu-latest.list @@ -0,0 +1,2 @@ +deb http://ports.ubuntu.com/ubuntu-ports @LATESTCODENAME main restricted universe multiverse +deb http://ports.ubuntu.com/ubuntu-ports @LATESTCODENAME-updates main restricted universe multiverse diff --git a/rpi/rootfs/etc/oem.conf b/rpi/rootfs/etc/oem.conf new file mode 100644 index 000000000..f69a84b1b --- /dev/null +++ b/rpi/rootfs/etc/oem.conf @@ -0,0 +1,5 @@ +[OEM] +Manufacturer=Raspberry Pi Foundation +Product=Raspberry Pi +Logo=/etc/oem/logo.png +URL=https://www.raspberrypi.org/ diff --git a/rpi/rootfs/etc/oem/logo.png b/rpi/rootfs/etc/oem/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..11fd36516c99f8df924f182eff50e9f1395330de GIT binary patch literal 14507 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%0Ai8Tn^V)N{S#l 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 PI)qb}*O051u?YJ=`E{Xx literal 0 HcmV?d00001 From 7cacdead527072ab9880600b7b6052eef51164f1 Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Mon, 9 Nov 2020 09:44:31 +0100 Subject: [PATCH 13/15] Restructure files --- build-rpi.sh | 7 +++++-- .../{boot/firmware => system-boot}/cmdline.txt | 0 .../{boot/firmware => system-boot}/config.txt | 0 .../{ => writable}/etc/apt/preferences.d/rpi.pref | 0 .../etc/apt/sources.list.d/ubuntu-latest.list | 0 rpi/rootfs/{ => writable}/etc/oem.conf | 0 rpi/rootfs/{ => writable}/etc/oem/logo.png | Bin 7 files changed, 5 insertions(+), 2 deletions(-) rename rpi/rootfs/{boot/firmware => system-boot}/cmdline.txt (100%) rename rpi/rootfs/{boot/firmware => system-boot}/config.txt (100%) rename rpi/rootfs/{ => writable}/etc/apt/preferences.d/rpi.pref (100%) rename rpi/rootfs/{ => writable}/etc/apt/sources.list.d/ubuntu-latest.list (100%) rename rpi/rootfs/{ => writable}/etc/oem.conf (100%) rename rpi/rootfs/{ => writable}/etc/oem/logo.png (100%) diff --git a/build-rpi.sh b/build-rpi.sh index d9f44a39e..3252528d2 100755 --- a/build-rpi.sh +++ b/build-rpi.sh @@ -36,7 +36,7 @@ cp /usr/bin/qemu-arm-static elementary-$architecture/usr/bin/ LANG=C chroot elementary-$architecture /debootstrap/debootstrap --second-stage # Copy Raspberry Pi specific files -rsync -HPavz -q ${rootdir}/rpi/rootfs/* elementary-${architecture}/ +cp -r ${rootdir}/rpi/rootfs/writable/* elementary-${architecture}/ # Add the rest of the ubuntu repos cat << EOF > elementary-$architecture/etc/apt/sources.list @@ -52,7 +52,7 @@ for f in ${rootdir}/etc/config/archives/*.pref; do cp -- "$f" "elementary-$archi # Set codename/channel in added repos sed -i "s/@CHANNEL/$channel/" elementary-$architecture/etc/apt/sources.list.d/*.list* sed -i "s/@BASECODENAME/$codename/" elementary-$architecture/etc/apt/sources.list.d/*.list* -sed -i "s/@LATESTCODENAME/$codename/" elementary-$architecture/etc/apt/sources.list.d/*.list* +sed -i "s/@LATESTCODENAME/$codename_latest/" elementary-$architecture/etc/apt/sources.list.d/*.list* # Set codename in added preferences sed -i "s/@BASECODENAME/$codename/" elementary-$architecture/etc/apt/preferences.d/*.pref* @@ -125,6 +125,9 @@ mount $rootp ${basedir}/root mkdir -p elementary-$architecture/boot/firmware mount -o bind ${basedir}/bootp/ elementary-$architecture/boot/firmware +# Copy Raspberry Pi specific files +cp -r ${rootdir}/rpi/rootfs/system-boot/* elementary-${architecture}/boot/firmware/ + # Install Raspberry Pi specific packages cat << EOF > elementary-$architecture/hardware #!/bin/bash diff --git a/rpi/rootfs/boot/firmware/cmdline.txt b/rpi/rootfs/system-boot/cmdline.txt similarity index 100% rename from rpi/rootfs/boot/firmware/cmdline.txt rename to rpi/rootfs/system-boot/cmdline.txt diff --git a/rpi/rootfs/boot/firmware/config.txt b/rpi/rootfs/system-boot/config.txt similarity index 100% rename from rpi/rootfs/boot/firmware/config.txt rename to rpi/rootfs/system-boot/config.txt diff --git a/rpi/rootfs/etc/apt/preferences.d/rpi.pref b/rpi/rootfs/writable/etc/apt/preferences.d/rpi.pref similarity index 100% rename from rpi/rootfs/etc/apt/preferences.d/rpi.pref rename to rpi/rootfs/writable/etc/apt/preferences.d/rpi.pref diff --git a/rpi/rootfs/etc/apt/sources.list.d/ubuntu-latest.list b/rpi/rootfs/writable/etc/apt/sources.list.d/ubuntu-latest.list similarity index 100% rename from rpi/rootfs/etc/apt/sources.list.d/ubuntu-latest.list rename to rpi/rootfs/writable/etc/apt/sources.list.d/ubuntu-latest.list diff --git a/rpi/rootfs/etc/oem.conf b/rpi/rootfs/writable/etc/oem.conf similarity index 100% rename from rpi/rootfs/etc/oem.conf rename to rpi/rootfs/writable/etc/oem.conf diff --git a/rpi/rootfs/etc/oem/logo.png b/rpi/rootfs/writable/etc/oem/logo.png similarity index 100% rename from rpi/rootfs/etc/oem/logo.png rename to rpi/rootfs/writable/etc/oem/logo.png From 466dbcda0d8fcedd576f683f7278c503c5dd5309 Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Thu, 12 Nov 2020 12:30:26 +0100 Subject: [PATCH 14/15] Use SVG as OEM logo --- rpi/rootfs/writable/etc/oem/logo.png | Bin 14507 -> 0 bytes rpi/rootfs/writable/etc/oem/logo.svg | 104 +++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) delete mode 100644 rpi/rootfs/writable/etc/oem/logo.png create mode 100644 rpi/rootfs/writable/etc/oem/logo.svg diff --git a/rpi/rootfs/writable/etc/oem/logo.png b/rpi/rootfs/writable/etc/oem/logo.png deleted file mode 100644 index 11fd36516c99f8df924f182eff50e9f1395330de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14507 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%0Ai8Tn^V)N{S#l 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 PI)qb}*O051u?YJ=`E{Xx diff --git a/rpi/rootfs/writable/etc/oem/logo.svg b/rpi/rootfs/writable/etc/oem/logo.svg new file mode 100644 index 000000000..45d11497b --- /dev/null +++ b/rpi/rootfs/writable/etc/oem/logo.svg @@ -0,0 +1,104 @@ + + + +image/svg+xml \ No newline at end of file From a625ce543b5f994aad05b938197b40ba4715e14b Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Fri, 13 Nov 2020 17:24:49 +0100 Subject: [PATCH 15/15] Revert "Use SVG as OEM logo" This reverts commit 466dbcda0d8fcedd576f683f7278c503c5dd5309. --- rpi/rootfs/writable/etc/oem/logo.png | Bin 0 -> 14507 bytes rpi/rootfs/writable/etc/oem/logo.svg | 104 --------------------------- 2 files changed, 104 deletions(-) create mode 100644 rpi/rootfs/writable/etc/oem/logo.png delete mode 100644 rpi/rootfs/writable/etc/oem/logo.svg diff --git a/rpi/rootfs/writable/etc/oem/logo.png b/rpi/rootfs/writable/etc/oem/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..11fd36516c99f8df924f182eff50e9f1395330de GIT binary patch literal 14507 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%0Ai8Tn^V)N{S#l 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 PI)qb}*O051u?YJ=`E{Xx literal 0 HcmV?d00001 diff --git a/rpi/rootfs/writable/etc/oem/logo.svg b/rpi/rootfs/writable/etc/oem/logo.svg deleted file mode 100644 index 45d11497b..000000000 --- a/rpi/rootfs/writable/etc/oem/logo.svg +++ /dev/null @@ -1,104 +0,0 @@ - - - -image/svg+xml \ No newline at end of file