aboutsummaryrefslogtreecommitdiffci
path: root/components/boot.xml
blob: 11b48a52e1b5c224c3cb3b27333ded3737623afb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<image>
	<profiles>
		<profile name="BootCore" description="Boot core packages"/>
		<profile name="BootCoreUKI" description="Boot core packages for UKI"/>
		<profile name="BootCoreLive" description="Boot core packages for Live DVDs"/>
		<profile name="BootDiskCore" description="Boot disk core configuration">
			<requires profile="BaseCommon"/>
			<requires profile="HardwareCommon"/>
			<requires profile="BootCore"/>
		</profile>
	</profiles>
	<!-- Surface Pro 12" (Snapdragon X1P-42-100) is a standard UEFI/GPT aarch64
	     device, no force_mbr/disk_start_sector/editbootinstall RPi-legacy
	     quirks needed, those are for boards whose own firmware boot stage
	     requires an MBR + specific boot sector offset before handing off to
	     grub. -->
	<preferences profiles="BootDiskCore" arch="aarch64">
		<type image="oem"
		      filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="x-systemd.growfs,compress=zstd:1"
		      kernelcmdline="rhgb quiet" devicepersistency="by-uuid"
		      bootpartition="true" bootpartsize="2000" bootfilesystem="ext4" efipartsize="500" firmware="uefi"
		      rootfs_label="fedora"
		      >
			<bootloader name="grub2" bls="true" console="console" timeout="5"/>
			<systemdisk name="fedora">
				<volume name="@root=root"/>
				<volume name="home" parent="/"/>
				<volume name="var" parent="/"/>
			</systemdisk>
			<oemconfig>
				<oem-resize>false</oem-resize>
			</oemconfig>
		</type>
	</preferences>
	<packages type="bootstrap" patternType="plusRecommended" profiles="BootCore,BootCoreUKI,BootCoreLive">
		<package name="grubby"/>
	</packages>
	<packages type="image" patternType="plusRecommended" profiles="BootCore,BootCoreLive">
		<package name="grub2-efi-aa64"/>
		<package name="grub2-efi-aa64-modules"/>
		<package name="shim-signed-aa64"/>
		<package name="systemd-oomd-defaults"/>
		<package name="systemd-resolved"/>
	</packages>
	<!-- Surface Pro 12" (Snapdragon X1P-42-100) kernel selection. One block for
	     every profile that needs a kernel: BootCore, BootCoreLive, and
	     BootDiskCore through its <requires profile="BootCore"/> above.

	     kernel-surface is vanilla upstream plus the miasvanklei overlay's patch
	     set for this board (device tree, SAM RTC, SAM suspend workaround,
	     CAMSS/CSI-2, remoteproc attach, clk/PCI/irqchip fixes). It is built from
	     the sibling ../kernel-surface checkout and comes from the repository
	     repositories/kernel-sp12in.xml adds.

	     It is a single package (kernel image, every module, device trees) and
	     Provides kernel, kernel-core, kernel-modules, kernel-modules-core and
	     kernel-modules-extra, so anything with a plain Requires on one of those
	     resolves against it. That is why no -modules/-modules-extra entry is
	     needed in any profile any more.

	     Fedora's split kernel packages are ignored by name instead, so dnf can
	     never drag one in as a dependency. kernel-uki-dtbloader is ignored as
	     well: kernel-surface Conflicts it, so without the exclusion any package
	     pulling it in would fail the depsolve instead of just losing it. It
	     bakes in ~3000 boards' dtbs (.dtbauto sections), does not carry this
	     board, and is a hard Requires of the plain "kernel" metapackage on
	     aarch64, which makes that metapackage uninstallable here too, since it
	     is also the only thing that could satisfy kernel-core by name.

	     Consequence for the profiles this fork does not target: the ones that
	     still ask for a Fedora kernel by name through BootCore, namely
	     Server-Host-Generic (kernel) and Cloud-Base-Azure (kernel-modules),
	     cannot depsolve. Everything this device builds (Live via BootCoreLive,
	     disk via BootDiskCore) takes its kernel from here. -->
	<packages type="image" patternType="plusRecommended" profiles="BootCore,BootCoreLive">
		<ignore name="kernel-*debug*"/>
		<ignore name="kernel-core"/>
		<ignore name="kernel-modules"/>
		<ignore name="kernel-modules-core"/>
		<ignore name="kernel-modules-extra"/>
		<ignore name="kernel-uki-dtbloader"/>
		<package name="kernel-surface"/>
	</packages>
	<packages type="image" patternType="plusRecommended" profiles="BootCoreUKI">
		<package name="shim-signed-aa64"/>
		<package name="systemd-oomd-defaults"/>
		<package name="systemd-resolved"/>
		<package name="kernel-uki-virt"/>
		<package name="python3-virt-firmware"/>
		<package name="uki-direct"/>
	</packages>
	<packages type="iso" patternType="plusRecommended" profiles="BootCore,BootCoreLive">
		<package name="grub2-efi-aa64-cdboot"/>
	</packages>
	<packages type="image" patternType="plusRecommended" profiles="BootDiskCore">
		<package name="glibc-all-langpacks"/>
		<!-- Surface Pro 12": the kernel comes from the shared BootCore block
		     above, which this profile requires. arm-image-installer and
		     uboot-images-armv8 dropped, they exist for flashing/booting other
		     ARM SBCs (device-tree selection, U-Boot), not relevant to this
		     single UEFI/GPT device. -->
		<package name="btrfs-progs"/>
		<package name="udisks2-btrfs"/>
	</packages>
</image>