[gnome-build-meta/valentindavid/rpi4: 4/4] Add support for dracut+ostree in rpi4 image
- From: Valentin David <valentindavid src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-build-meta/valentindavid/rpi4: 4/4] Add support for dracut+ostree in rpi4 image
- Date: Mon, 18 May 2020 14:04:20 +0000 (UTC)
commit bb6bae452a911adf720dbfdb4cf2e6459f2cce61
Author: Valentin David <valentin david codethink co uk>
Date: Mon May 18 16:03:44 2020 +0200
Add support for dracut+ostree in rpi4 image
elements/boards/raspberrypi-4/my-boot-script.bst | 18 ++
elements/boards/raspberrypi-4/my-deps.bst | 36 +++
elements/boards/raspberrypi-4/my-filesystem.bst | 9 +
elements/boards/raspberrypi-4/my-image-deps.bst | 9 +
elements/boards/raspberrypi-4/my-image.bst | 143 ++++++++++++
.../boards/raspberrypi-4/my-initial-scripts.bst | 7 +
elements/boards/raspberrypi-4/my-initramfs.bst | 68 ++++++
.../boards/raspberrypi-4/my-initramfs/deps.bst | 21 ++
.../raspberrypi-4/my-initramfs/initial-scripts.bst | 7 +
elements/boards/raspberrypi-4/my-linux.bst | 248 +++++++++++++++++++++
elements/boards/raspberrypi-4/my-repo.bst | 42 ++++
elements/boards/raspberrypi-4/repair-mbr.bst | 20 ++
files/boards/raspberrypi-4/boot.script | 15 ++
.../raspberrypi-4/repair-mbr/module-setup.sh | 20 ++
.../raspberrypi-4/repair-mbr/repair-mbr.service | 12 +
junction.refs | 2 +-
16 files changed, 676 insertions(+), 1 deletion(-)
---
diff --git a/elements/boards/raspberrypi-4/my-boot-script.bst
b/elements/boards/raspberrypi-4/my-boot-script.bst
new file mode 100644
index 00000000..cbdbfbbe
--- /dev/null
+++ b/elements/boards/raspberrypi-4/my-boot-script.bst
@@ -0,0 +1,18 @@
+kind: manual
+
+sources:
+- kind: local
+ path: files/boards/raspberrypi-4/boot.script
+
+variables:
+ board: rpi_4
+
+build-depends:
+- boards/raspberrypi-4/u-boot.bst
+
+config:
+ build-commands:
+ - mkimage -A arm64 -O efi -T script -n "Boot EFI with DT overlays" -d boot.script boot.scr
+
+ install-commands:
+ - install -Dm644 -t "%{install-root}%{indep-libdir}/u-boot/%{board}" boot.scr
diff --git a/elements/boards/raspberrypi-4/my-deps.bst b/elements/boards/raspberrypi-4/my-deps.bst
new file mode 100644
index 00000000..2b7c57c9
--- /dev/null
+++ b/elements/boards/raspberrypi-4/my-deps.bst
@@ -0,0 +1,36 @@
+kind: stack
+
+runtime-depends:
+- freedesktop-sdk.bst:components/avahi.bst
+- freedesktop-sdk.bst:components/util-linux.bst
+- freedesktop-sdk.bst:components/tzdata.bst
+- freedesktop-sdk.bst:components/systemd.bst
+- freedesktop-sdk.bst:components/xorg-server.bst
+- freedesktop-sdk.bst:components/shadow.bst
+- freedesktop-sdk.bst:vm/mesa-default.bst
+
+- core-deps/flatpak.bst
+- vm/ostree-config.bst
+- core-deps/eos-updater.bst
+
+- vm/plymouth-gnome-theme.bst
+- vm/dev-repo-script.bst
+
+- freedesktop-sdk.bst:vm/config/pulseaudio.bst
+- freedesktop-sdk.bst:vm/config/sudo.bst
+- freedesktop-sdk.bst:vm/config/journald.bst
+- vm/flathub-config.bst
+
+# And add GNOME core on top !
+- sdk-platform.bst
+- core.bst
+- core/systemd-presets.bst
+
+- boards/raspberrypi-4/my-initramfs.bst
+- vm/resize-root.bst
+- vm/eos-repartition.bst
+
+- freedesktop-sdk.bst:components/linux-firmware.bst
+- freedesktop-sdk.bst:components/wireless-regdb-bin.bst
+
+- vm/wpa-supplicant-config.bst
diff --git a/elements/boards/raspberrypi-4/my-filesystem.bst b/elements/boards/raspberrypi-4/my-filesystem.bst
new file mode 100644
index 00000000..098e1f3b
--- /dev/null
+++ b/elements/boards/raspberrypi-4/my-filesystem.bst
@@ -0,0 +1,9 @@
+kind: compose
+
+build-depends:
+- boards/raspberrypi-4/my-deps.bst
+
+config:
+ exclude:
+ - devel
+ - debug
diff --git a/elements/boards/raspberrypi-4/my-image-deps.bst b/elements/boards/raspberrypi-4/my-image-deps.bst
new file mode 100644
index 00000000..1cc79b22
--- /dev/null
+++ b/elements/boards/raspberrypi-4/my-image-deps.bst
@@ -0,0 +1,9 @@
+kind: stack
+
+runtime-depends:
+- freedesktop-sdk.bst:integration/mtab.bst
+- freedesktop-sdk.bst:components/genimage.bst
+- vm/qemu-tools.bst
+- core-deps/libostree.bst
+- boards/raspberrypi-4/u-boot.bst
+- boards/raspberrypi-4/my-boot-script.bst
diff --git a/elements/boards/raspberrypi-4/my-image.bst b/elements/boards/raspberrypi-4/my-image.bst
new file mode 100644
index 00000000..d77b428f
--- /dev/null
+++ b/elements/boards/raspberrypi-4/my-image.bst
@@ -0,0 +1,143 @@
+kind: script
+
+build-depends:
+- boards/raspberrypi-4/my-image-deps.bst
+- boards/raspberrypi-4/bsp/firmware.bst
+- boards/raspberrypi-4/my-repo.bst
+- boards/raspberrypi-4/my-linux.bst
+
+variables:
+ linux-root: B921B045-1DF0-41C3-AF44-4C6F280D3FAE
+ ostree-branch: gnome-os/aarch64/raspberrypi-4
+ board: rpi_4
+
+ sysroot: "/sysroot"
+
+environment:
+ OSTREE_REPO: "%{sysroot}/ostree/repo"
+
+config:
+ layout:
+ - element: ''
+ destination: '/sysroot'
+ - element: ''
+ destination: '/genimage'
+ - element: boards/raspberrypi-4/my-repo.bst
+ destination: '/source-repo'
+ - element: boards/raspberrypi-4/my-image-deps.bst
+ destination: '/'
+ - element: boards/raspberrypi-4/my-linux.bst
+ destination: '/kernel'
+ - element: boards/raspberrypi-4/bsp/firmware.bst
+ destination: '/firmware'
+
+ commands:
+ - mkdir -p "${OSTREE_REPO}"
+ - ostree init --repo="${OSTREE_REPO}" --mode=bare
+
+ - ostree config --group sysroot set bootloader auto
+ - ostree pull-local "/source-repo" %{ostree-branch}
+
+ - mkdir -p "%{sysroot}/boot"
+
+ - ostree admin init-fs "%{sysroot}"
+ - ostree admin os-init --sysroot="%{sysroot}" gnome-os
+
+ # U-Boot does not provide EFI variables at runtime. So /dev/gpt-auto-root
+ # is not available.
+ - |
+ ostree admin deploy --os="gnome-os" \
+ --sysroot="%{sysroot}" %{ostree-branch} \
+ --karg="rw" --karg="quiet" --karg="splash" \
+ --karg="root=LABEL=root" \
+ --karg="dwc_otg.lpm_enable=0" \
+ --karg-append="console=ttyAMA0,115200" \
+ --karg-append="console=tty1" \
+ --karg="plymouth.ignore-serial-consoles"
+
+ - |
+ mkdir -p "%{sysroot}/etc/ostree"
+ cp -r "%{sysroot}"/ostree/boot.1/gnome-os/*/*/etc/ostree/remotes.d "%{sysroot}/etc/ostree/remotes.d"
+
+ - |
+ ostree admin set-origin --sysroot="%{sysroot}" \
+ --index=0 \
+ GnomeOS dummy \
+ %{ostree-branch}
+
+ - |
+ cp -r "%{sysroot}"/ostree/boot.1/gnome-os/*/*/boot/EFI/ "%{sysroot}/boot/"
+
+ - |
+ cp -r "/kernel/boot/dtbs" "%{sysroot}/boot/dtb"
+
+ - |
+ cp /firmware/boot/* "%{sysroot}/boot/"
+
+ - |
+ cp "%{indep-libdir}/u-boot/%{board}/u-boot.bin" "%{sysroot}/boot/kernel8.img"
+ cp "%{indep-libdir}/u-boot/%{board}/boot.scr" "%{sysroot}/boot/"
+
+ # The dtb seems to be required by the firmware to be able to load u-boot
+ - |
+ cp -r "/kernel/boot/dtbs/broadcom/bcm2711-rpi-4-b.dtb" "%{sysroot}/boot/"
+
+ # FIXME: We should try to load the overlay from u-boot instead.
+ - |
+ mkdir -p "%{sysroot}/boot/overlays"
+ cp -r "/kernel/boot/dtbs/overlays/vc4-fkms-v3d.dtbo" "%{sysroot}/boot/overlays/"
+
+ - |
+ cat >"%{sysroot}/boot/config.txt" <<EOF
+ enable_uart=1
+ start_x=1
+ # FIXME: We should maybe try to load fdt and overlays from u-boot
+ device_tree_address=0x02600000
+ dtoverlay=vc4-fkms-v3d
+ dtparam=audio=on
+ EOF
+
+ - |
+ size=$(($(du -s -B 4K "%{sysroot}" | cut -f1)*4+200*1024))
+ cat >/genimage/genimage.cfg <<EOF
+ image efi.img {
+ vfat {
+ extraargs = "-F32 -n EFI"
+ }
+ mountpoint = "/boot"
+ size = 500M
+ }
+ image root.img {
+ ext4 {
+ label = "root"
+ use-mke2fs = true
+ }
+ size = ${size}K
+ }
+ image disk.img {
+ hdimage {
+ gpt = true
+ align = 1M
+ }
+ partition efi {
+ image = "efi.img"
+ partition-type = 0x0c
+ bootable = true
+ partition-type-uuid = "U"
+ }
+ partition root {
+ image = "root.img"
+ partition-type-uuid = "%{linux-root}"
+ }
+ }
+ EOF
+
+ - |
+ cd /genimage
+ genimage --rootpath "%{sysroot}"
+
+ - |
+ sfdisk --part-attrs /genimage/images/disk.img 2 55
+
+ - |
+ qemu-img convert -O qcow2 -f raw /genimage/images/disk.img "%{install-root}/disk.qcow2"
diff --git a/elements/boards/raspberrypi-4/my-initial-scripts.bst
b/elements/boards/raspberrypi-4/my-initial-scripts.bst
new file mode 100644
index 00000000..d660ef2b
--- /dev/null
+++ b/elements/boards/raspberrypi-4/my-initial-scripts.bst
@@ -0,0 +1,7 @@
+kind: collect_initial_scripts
+
+build-depends:
+- boards/raspberrypi-4/deps.bst
+
+config:
+ path: /etc/fdsdk/initial_scripts
diff --git a/elements/boards/raspberrypi-4/my-initramfs.bst b/elements/boards/raspberrypi-4/my-initramfs.bst
new file mode 100644
index 00000000..f6298954
--- /dev/null
+++ b/elements/boards/raspberrypi-4/my-initramfs.bst
@@ -0,0 +1,68 @@
+kind: script
+
+build-depends:
+- freedesktop-sdk.bst:vm/prepare-image.bst
+- boards/raspberrypi-4/my-initramfs/deps.bst
+- boards/raspberrypi-4/my-initramfs/initial-scripts.bst
+
+variables:
+ uuidnamespace: aea54278-2587-4075-ae67-8688ace4ce3d
+
+config:
+ layout:
+ - element: ''
+ destination: '/tmp'
+ - element: ''
+ destination: '/var/tmp'
+ - element: ''
+ destination: '/efi'
+ - element: boards/raspberrypi-4/my-initramfs/deps.bst
+ destination: '/'
+ - element: boards/raspberrypi-4/my-initramfs/initial-scripts.bst
+ destination: '/'
+ - element: vm/prepare-image.bst
+ destination: '/'
+
+ commands:
+ - |
+ prepare-image.sh \
+ --seed "%{uuidnamespace}" \
+ --rootsource LABEL=root \
+ --efisource LABEL=EFI \
+ --efipath /boot >/dev/null
+
+ - |
+ mkdir -p "%{install-root}/usr/lib/"
+ cp -r /usr/lib/modules "%{install-root}/usr/lib/"
+
+ - |
+ version="$(ls -1 /lib/modules | head -n1)"
+ mkdir -p "%{install-root}/usr/lib/modules/${version}"
+ dracut -v --fstab \
+ --no-machineid \
+ --kver "${version}" \
+ --add ostree \
+ --add plymouth \
+ --add eos-repartition \
+ --add-drivers "rockchipdrm panfrost panel_simple analogix_dp pwm_bl drm_kms_helper" \
+ --install 'fsck.ext4' \
+ "%{install-root}/usr/lib/modules/${version}/initramfs"
+
+ - |
+ version="$(ls -1 /lib/modules | head -n1)"
+ cp /boot/vmlinuz "%{install-root}/usr/lib/modules/${version}/vmlinuz"
+
+ - dbus-uuidgen >/etc/machine-id
+ - SYSTEMD_RELAX_ESP_CHECKS=1 bootctl --path='/efi' --no-variables install
+ - rm /etc/machine-id
+
+ - |
+ cp -r /efi "%{install-root}/boot"
+
+ - |
+ cat <<EOF >"%{install-root}/boot/loader/loader.conf"
+ timeout 3
+ editor yes
+ console-mode keep
+ default *
+ EOF
diff --git a/elements/boards/raspberrypi-4/my-initramfs/deps.bst
b/elements/boards/raspberrypi-4/my-initramfs/deps.bst
new file mode 100644
index 00000000..e0729170
--- /dev/null
+++ b/elements/boards/raspberrypi-4/my-initramfs/deps.bst
@@ -0,0 +1,21 @@
+kind: stack
+
+runtime-depends:
+- freedesktop-sdk.bst:bootstrap-import.bst
+- freedesktop-sdk.bst:components/util-linux.bst
+- freedesktop-sdk.bst:components/systemd.bst
+- freedesktop-sdk.bst:components/dbus.bst
+- freedesktop-sdk.bst:components/dracut.bst
+- freedesktop-sdk.bst:components/os-release.bst
+- freedesktop-sdk.bst:components/shadow.bst
+- freedesktop-sdk.bst:components/tzdata.bst
+- freedesktop-sdk.bst:components/pkg-config.bst
+- vm/plymouth-gnome-theme.bst
+
+- boards/raspberrypi-4/my-linux.bst
+- freedesktop-sdk.bst:components/linux-firmware.bst
+- freedesktop-sdk.bst:components/wireless-regdb-bin.bst
+
+- core-deps/libostree.bst
+- vm/eos-repartition.bst
+- boards/raspberrypi-4/repair-mbr.bst
diff --git a/elements/boards/raspberrypi-4/my-initramfs/initial-scripts.bst
b/elements/boards/raspberrypi-4/my-initramfs/initial-scripts.bst
new file mode 100644
index 00000000..317190c9
--- /dev/null
+++ b/elements/boards/raspberrypi-4/my-initramfs/initial-scripts.bst
@@ -0,0 +1,7 @@
+kind: collect_initial_scripts
+
+build-depends:
+- boards/raspberrypi-4/my-initramfs/deps.bst
+
+config:
+ path: /etc/fdsdk/initial_scripts
diff --git a/elements/boards/raspberrypi-4/my-linux.bst b/elements/boards/raspberrypi-4/my-linux.bst
new file mode 100644
index 00000000..7b69fcaa
--- /dev/null
+++ b/elements/boards/raspberrypi-4/my-linux.bst
@@ -0,0 +1,248 @@
+kind: manual
+
+sources:
+- kind: git_tag
+ url: github_com:raspberrypi/linux.git
+ # tpreston/raspi4 builds against 5.5 a0262f184d79838604ca07ec785ec30c22abf3a6
+ # Aim to track 5.4 LTS work
+ # track: 5.4.y
+ track: a98ba9221895e03b8736312ce6666005da5968a1
+ track-tags: false
+
+depends:
+- freedesktop-sdk.bst:components/kmod.bst
+
+build-depends:
+- freedesktop-sdk.bst:bootstrap-import.bst
+- freedesktop-sdk.bst:components/bison.bst
+- freedesktop-sdk.bst:components/flex.bst
+- freedesktop-sdk.bst:components/bc.bst
+- freedesktop-sdk.bst:components/gzip.bst
+
+variables:
+ bootdir: /boot
+ kernel_arch: arm64
+ image-name: arch/arm64/boot/Image
+
+environment:
+ ARCH: '%{kernel_arch}'
+
+config:
+ configure-commands:
+ - |
+ # Generate the default kernel config for the target architecture
+ make defconfig
+
+ - |
+ # Modify the kernel config for additional features
+
+ # Kernel Config Options
+ scripts/config -e DEVTMPFS
+ scripts/config -e CGROUPS
+ scripts/config -e INOTIFY_USER
+ scripts/config -e SIGNALFD
+ scripts/config -e TIMERFD
+ scripts/config -e EPOLL
+ scripts/config -e NET
+ scripts/config -e SYSFS
+ scripts/config -e PROC_FS
+ scripts/config -e FHANDLE
+
+ # Kernel crypto/hash API
+ scripts/config -e CRYPTO_USER_API_HASH
+ scripts/config -e CRYPTO_HMAC
+ scripts/config -e CRYPTO_SHA256
+
+ # udev will fail to work with legacy sysfs
+ scripts/config -d SYSFS_DEPRECATED
+
+ # Boot is very slow with systemd when legacy PTYs are present
+ scripts/config -d LEGACY_PTYS
+ scripts/config -d LEGACY_PTY_COUNT
+
+ # Legacy hotplug confuses udev
+ scripts/config --set-str UEVENT_HELPER_PATH ""
+
+ # Userspace firmware loading not supported
+ scripts/config -d FW_LOADER_USER_HELPER
+
+ # Some udev/virtualization requires
+ scripts/config -e DMIID
+
+ # Support for some SCSI devices serial number retrieval
+ scripts/config -e BLK_DEV_BSG
+
+ # Required for PrivateNetwork= in service units
+ scripts/config -e NET_NS
+ scripts/config -e USER_NS
+
+ # Required for 9p support
+ scripts/config -e NET_9P
+ scripts/config -e NET_9P_VIRTIO
+ scripts/config -e 9P_FS
+ scripts/config -e 9P_FS_POSIX_ACL
+ scripts/config -e 9P_FS_SECURITY
+ scripts/config -e VIRTIO_PCI
+
+ # Strongly Recommended
+ scripts/config -e IPV6
+ scripts/config -e AUTOFS4_FS
+ scripts/config -e TMPFS_XATTR
+ scripts/config -e TMPFS_POSIX_ACL
+ scripts/config -e EXT4_FS_POSIX_ACL
+ scripts/config -e EXT4_FS_SECURITY
+ scripts/config -e XFS_POSIX_ACL
+ scripts/config -e BTRFS_FS_POSIX_ACL
+ scripts/config -e SECCOMP
+ scripts/config -e SECCOMP_FILTER
+ scripts/config -e CHECKPOINT_RESTORE
+
+ # Required for CPUShares= in resource control unit settings
+ scripts/config -e CGROUP_SCHED
+ scripts/config -e FAIR_GROUP_SCHED
+
+ # Required for CPUQuota= in resource control unit settings
+ scripts/config -e CFS_BANDWIDTH
+
+ # Required for IPAddressDeny=, IPAddressAllow= in resource control unit settings
+ scripts/config -e CGROUP_BPF
+
+ # For UEFI systems
+ scripts/config -e EFIVAR_FS
+ scripts/config -e EFI_PARTITION
+
+ # RT group scheduling (effectively) makes RT scheduling unavailable for userspace
+ scripts/config -d RT_GROUP_SCHED
+
+ # Required for 3D acceleration in qemu
+ scripts/config -e CONFIG_DRM_VIRTIO_GPU
+
+ # Required for systemd-nspawn
+ scripts/config -e DEVPTS_MULTIPLE_INSTANCES
+
+ # Sound with QEMU
+ scripts/config -e SND_HDA_GENERIC
+
+ scripts/config -e MMC
+ scripts/config -m PWRSEQ_SD8787
+ scripts/config -e MMC_BLOCK_MINORS=32
+ scripts/config -m SDIO_UART
+ scripts/config -e MMC_SDHCI
+ scripts/config -e MMC_SDHCI_PCI
+ scripts/config -e MMC_SDHCI_ACPI
+ scripts/config -e MMC_SDHCI_PLTFM
+ scripts/config -e MMC_SDHCI_OF_ARASAN
+ scripts/config -e MMC_SPI
+ scripts/config -e MMC_DW
+ scripts/config -e MMC_DW_PCI
+ scripts/config -e MMC_DW_ROCKCHIP
+
+ scripts/config -d DRM_LIMA
+
+ scripts/config -e DRM_PANFROST
+ scripts/config -m DRM_MALI_DISPLAY
+ scripts/config -m DRM_ANALOGIX_ANX78XX
+ scripts/config -m DRM_DW_HDMI_CEC
+ scripts/config -e DRM_LOAD_EDID_FIRMWARE
+
+ scripts/config -m BATTERY_CW2015
+
+ scripts/config -e FIRMWARE_EDID
+
+ scripts/config -m CRYPTO_DEV_ROCKCHIP
+ scripts/config -e PCIE_ROCKCHIP_HOST
+ scripts/config -e PHY_ROCKCHIP_DP
+ scripts/config -e PHY_ROCKCHIP_INNO_HDMI
+ scripts/config -e PHY_ROCKCHIP_PCIE
+ scripts/config -e ROCKCHIP_LVDS
+ scripts/config -e ROCKCHIP_MBOX
+ scripts/config -e ROCKCHIP_RGB
+ scripts/config -m SND_SOC_ROCKCHIP_MAX98090
+ scripts/config -m SND_SOC_ROCKCHIP_PDM
+ scripts/config -m VIDEO_ROCKCHIP_RGA
+ scripts/config -e ROCKCHIP_SUSPEND_MODE
+ scripts/config -e ROCKCHIP_SIP
+
+ scripts/config -e DRM_PANEL
+ scripts/config -m DRM_PANEL_LVDS
+ scripts/config -m DRM_PANEL_SIMPLE
+
+ scripts/config -m HID_MULTITOUCH
+
+ scripts/config -m SND_SOC_ES8316
+ scripts/config -m SND_SOC_SIMPLE_AMPLIFIER
+ scripts/config -m SND_SIMPLE_CARD
+
+ scripts/config -e CHARGER_GPIO
+ scripts/config -m PWRSEQ_SD8787
+ scripts/config -m PWRSEQ_SIMPLE
+ scripts/config -e GPIO_SYSCON
+
+ scripts/config -e RTC_DRV_RK808
+
+ scripts/config -e WIRELESS
+ scripts/config -m CFG80211
+ scripts/config -e CFG80211_WEXT
+ scripts/config -e MAC80211
+ scripts/config -e NETDEVICES
+ scripts/config -e WLAN
+
+ # Rpi4 support
+ scripts/config -e PCIE_BRCMSTB
+ scripts/config -e RASPBERRYPI_FIRMWARE
+ scripts/config -m SND_BCM2708_SOC_RPI_CIRRUS
+ scripts/config -m SND_BCM2708_SOC_RPI_DAC
+ scripts/config -m SND_BCM2708_SOC_RPI_PROTO
+ scripts/config -m SND_BCM2708_SOC_FE_PI_AUDIO
+ scripts/config -m SND_PISOUND
+ scripts/config -m SND_BCM2835
+ scripts/config -m VIDEO_BCM2835
+ scripts/config -m VIDEO_CODEC_BCM2835
+ scripts/config -e CLK_RASPBERRYPI
+ scripts/config -e BCM2835_POWER
+ scripts/config -m RPI_AXIPERF
+ scripts/config -m PWM_PCA9685
+ scripts/config -m MFD_ARIZONA_I2C
+ scripts/config -m MFD_ARIZONA_SPI
+ scripts/config -e MFD_WM5102
+ scripts/config -m BCMGENET
+
+ # Enable vc4 drm
+ scripts/config -e I2C_BCM2835
+ scripts/config -e DRM
+ scripts/config -e DRM_FBDEV_EMULATION
+ scripts/config -e DRM_VC4
+
+ # This was broken by this branch
+ scripts/config -d PCI_AARDVARK
+ scripts/config -d PCIE_ALTERA
+ scripts/config -d PCIE_ROCKCHIP_HOST
+
+ build-commands:
+ - |
+ make
+
+ install-commands:
+ - |
+ install -Dm644 "%{image-name}" '%{install-root}%{bootdir}/vmlinuz'
+ install -Dm644 System.map '%{install-root}%{bootdir}/System.map'
+ make INSTALL_MOD_PATH='%{install-root}%{prefix}' modules_install
+
+ rm %{install-root}%{indep-libdir}/modules/*/{source,build}
+
+ - |
+ make INSTALL_DTBS_PATH='%{install-root}%{bootdir}/dtbs' dtbs_install
+
+public:
+ bst:
+ integration-commands:
+ - |
+ cd '%{indep-libdir}/modules'
+ for version in *; do
+ depmod -b '%{prefix}' -a "$version";
+ done
+
+ split-rules:
+ devel:
+ (>):
+ - '%{bootdir}/System.map'
diff --git a/elements/boards/raspberrypi-4/my-repo.bst b/elements/boards/raspberrypi-4/my-repo.bst
new file mode 100644
index 00000000..d62911e0
--- /dev/null
+++ b/elements/boards/raspberrypi-4/my-repo.bst
@@ -0,0 +1,42 @@
+kind: script
+
+build-depends:
+- freedesktop-sdk.bst:vm/prepare-image.bst
+- core-deps/libostree.bst
+- boards/raspberrypi-4/my-initial-scripts.bst
+- boards/raspberrypi-4/my-filesystem.bst
+
+variables:
+ uuidnamespace: aea54278-2587-4075-ae67-8688ace4ce3d
+ ostree-branch: gnome-os/aarch64/raspberrypi-4
+
+environment:
+ OSTREE_REPO: "%{install-root}"
+
+config:
+ layout:
+ - element: ''
+ destination: /tmp
+ - element: core-deps/libostree.bst
+ destination: /
+ - element: boards/raspberrypi-4/my-filesystem.bst
+ destination: /sysroot
+ - element: boards/raspberrypi-4/my-initial-scripts.bst
+ destination: /
+ - element: vm/prepare-image.bst
+ destination: /
+
+ commands:
+ - |
+ prepare-image.sh \
+ --sysroot /sysroot \
+ --seed "%{uuidnamespace}" \
+ --rootsource LABEL=root \
+ --efisource LABEL=EFI \
+ --efipath /boot >/dev/null
+
+ - mkdir -p "${OSTREE_REPO}"
+ - ostree init --repo="${OSTREE_REPO}" --mode=archive
+ - mv /sysroot/etc /sysroot/usr/etc
+ - ostree commit --branch=%{ostree-branch} --timestamp="$(date --date="@${SOURCE_DATE_EPOCH}"
--rfc-3339=seconds)" /sysroot
+
diff --git a/elements/boards/raspberrypi-4/repair-mbr.bst b/elements/boards/raspberrypi-4/repair-mbr.bst
new file mode 100644
index 00000000..210be094
--- /dev/null
+++ b/elements/boards/raspberrypi-4/repair-mbr.bst
@@ -0,0 +1,20 @@
+kind: manual
+
+sources:
+- kind: local
+ path: files/boards/raspberrypi-4/repair-mbr/module-setup.sh
+- kind: local
+ path: files/boards/raspberrypi-4/repair-mbr/repair-mbr.service
+- kind: local
+ path: files/boards/raspberrypi-4/repair-mbr/repair-mbr.sh
+
+depends:
+- freedesktop-sdk.bst:bootstrap-import.bst
+
+variables:
+ dir: "%{indep-libdir}/dracut/modules.d/50repair-mbr"
+
+config:
+ install-commands:
+ - install -Dm755 -t "%{install-root}%{dir}" module-setup.sh repair-mbr.sh
+ - install -Dm644 -t "%{install-root}%{dir}" repair-mbr.service
diff --git a/files/boards/raspberrypi-4/boot.script b/files/boards/raspberrypi-4/boot.script
new file mode 100644
index 00000000..e0fa46de
--- /dev/null
+++ b/files/boards/raspberrypi-4/boot.script
@@ -0,0 +1,15 @@
+# FIXME: This should load the device tree. But something does not work correctly.
+
+#load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} /dtb/${fdtfile};
+#fdt addr ${fdt_addr_r};
+#fdt resize 8192;
+#load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} /dtb/overlays/vc4-kms-v3d-pi4.dtbo;
+#fdt apply ${ramdisk_addr_r};
+#load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} /dtb/overlays/miniuart-bt.dtbo;
+#fdt apply ${ramdisk_addr_r};
+#fdt set /audio status on;
+
+fdt addr ${fdt_addr_r};
+bootefi bootmgr ${fdt_addr_r};
+load mmc ${devnum}:${distro_bootpart} ${kernel_addr_r} /efi/boot/bootaa64.efi;
+bootefi ${kernel_addr_r} ${fdt_addr_r};
diff --git a/files/boards/raspberrypi-4/repair-mbr/module-setup.sh
b/files/boards/raspberrypi-4/repair-mbr/module-setup.sh
new file mode 100755
index 00000000..7f6a93cb
--- /dev/null
+++ b/files/boards/raspberrypi-4/repair-mbr/module-setup.sh
@@ -0,0 +1,20 @@
+check() {
+ return 0
+}
+
+depends() {
+ echo systemd
+ echo eos-repartition
+}
+
+install() {
+ dracut_install sfdisk
+ dracut_install sed
+
+ inst_script "$moddir/repair-mbr.sh" /bin/repair-mbr
+ inst_simple "$moddir/repair-mbr.service" \
+ "$systemdsystemunitdir/repair-mbr.service"
+ mkdir -p "${initdir}/$systemdsystemunitdir/initrd.target.wants"
+ ln_r "$systemdsystemunitdir/repair-mbr.service" \
+ "$systemdsystemunitdir/initrd.target.wants/repair-mbr.service"
+}
diff --git a/files/boards/raspberrypi-4/repair-mbr/repair-mbr.service
b/files/boards/raspberrypi-4/repair-mbr/repair-mbr.service
new file mode 100644
index 00000000..e73f7063
--- /dev/null
+++ b/files/boards/raspberrypi-4/repair-mbr/repair-mbr.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Fix hybrid partitions
+ConditionPathExists=/etc/initrd-release
+
+DefaultDependencies=no
+Before=initrd-root-fs.target sysroot.mount systemd-fsck-root.service
+After=initrd-root-device.target dracut-pre-mount.service endless-reparition.service
+
+[Service]
+Type=oneshot
+ExecStart=-/bin/repair-mbr
+RemainAfterExit=yes
diff --git a/junction.refs b/junction.refs
index eb8c1e03..77f5a722 100644
--- a/junction.refs
+++ b/junction.refs
@@ -1,6 +1,6 @@
projects:
gnome:
freedesktop-sdk.bst:
- - ref: freedesktop-sdk-19.08beta.9-808-g722d7bebd56338026b257d6cd5e7408c76b265f3
+ - ref: freedesktop-sdk-19.08beta.9-848-g81bffba861bab3f62b616b0cf278bbc5b4065dc2
openh264-extension.bst:
- ref: openh264-2.0.0-3-32-gf855a9e434f18734cdb3bb8143d97f61de8e6add
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]