:: limine / test.mk 9.8 KB raw

1
.PHONY: test-clean
2
test-clean:
3
	$(MAKE) -C test -f test.mk clean
4
	rm -rf test_image test.hdd test.iso
5
6
edk2-ovmf:
7
	curl -L https://github.com/osdev0/edk2-ovmf-nightly/releases/latest/download/edk2-ovmf.tar.gz | gunzip | tar -xf -
8
9
.PHONY: test.hdd
10
test.hdd:
11
	rm -f test.hdd
12
	dd if=/dev/zero bs=1M count=0 seek=64 of=test.hdd
13
	PATH=$$PATH:/usr/sbin:/sbin parted -s test.hdd mklabel msdos
14
	PATH=$$PATH:/usr/sbin:/sbin parted -s test.hdd mkpart primary 2048s 100%
15
16
.PHONY: mbrtest.hdd
17
mbrtest.hdd:
18
	rm -f mbrtest.hdd
19
	dd if=/dev/zero bs=1M count=0 seek=64 of=mbrtest.hdd
20
	echo -e "o\nn\np\n1\n2048\n\nt\n6\na\nw\n" | fdisk mbrtest.hdd -H 16 -S 63
21
22
.PHONY: fat12-test
23
fat12-test:
24
	$(MAKE) test-clean
25
	$(MAKE) test.hdd
26
	$(MAKE) limine-bios
27
	$(MAKE) limine
28
	$(MAKE) -C test -f test.mk ARCH=x86
29
	rm -rf test_image/
30
	mkdir test_image
31
	sudo losetup -Pf --show test.hdd > loopback_dev
32
	sudo partprobe `cat loopback_dev`
33
	sudo mkfs.fat -F 12 `cat loopback_dev`p1
34
	sudo mount `cat loopback_dev`p1 test_image
35
	sudo mkdir test_image/boot
36
	sudo cp -rv $(BINDIR)/* test_image/boot/
37
	sudo cp -rv test/* test_image/boot/
38
	sync
39
	sudo umount test_image/
40
	sudo losetup -d `cat loopback_dev`
41
	rm -rf test_image loopback_dev
42
	$(BINDIR)/limine bios-install test.hdd
43
	qemu-system-x86_64 -net none -smp 4   -hda test.hdd -debugcon stdio
44
45
.PHONY: fat16-test
46
fat16-test:
47
	$(MAKE) test-clean
48
	$(MAKE) test.hdd
49
	$(MAKE) limine-bios
50
	$(MAKE) limine
51
	$(MAKE) -C test -f test.mk ARCH=x86
52
	rm -rf test_image/
53
	mkdir test_image
54
	sudo losetup -Pf --show test.hdd > loopback_dev
55
	sudo partprobe `cat loopback_dev`
56
	sudo mkfs.fat -F 16 `cat loopback_dev`p1
57
	sudo mount `cat loopback_dev`p1 test_image
58
	sudo mkdir test_image/boot
59
	sudo cp -rv $(BINDIR)/* test_image/boot/
60
	sudo cp -rv test/* test_image/boot/
61
	sync
62
	sudo umount test_image/
63
	sudo losetup -d `cat loopback_dev`
64
	rm -rf test_image loopback_dev
65
	$(BINDIR)/limine bios-install test.hdd
66
	qemu-system-x86_64 -net none -smp 4   -hda test.hdd -debugcon stdio
67
68
.PHONY: legacy-fat16-test
69
legacy-fat16-test:
70
	$(MAKE) test-clean
71
	$(MAKE) mbrtest.hdd
72
	fdisk -l mbrtest.hdd
73
	$(MAKE) limine-bios
74
	$(MAKE) limine
75
	$(MAKE) -C test -f test.mk ARCH=x86
76
	rm -rf test_image/
77
	mkdir test_image
78
	sudo losetup -Pf --show mbrtest.hdd > loopback_dev
79
	sudo partprobe `cat loopback_dev`
80
	sudo mkfs.fat -F 16 `cat loopback_dev`p1
81
	sudo mount `cat loopback_dev`p1 test_image
82
	sudo mkdir test_image/boot
83
	sudo cp -rv $(BINDIR)/* test_image/boot/
84
	sudo cp -rv test/* test_image/boot/
85
	sync
86
	sudo umount test_image/
87
	sudo losetup -d `cat loopback_dev`
88
	rm -rf test_image loopback_dev
89
	$(BINDIR)/limine bios-install mbrtest.hdd
90
	qemu-system-i386 -cpu pentium2 -m 16M -M isapc -net none   -hda mbrtest.hdd -debugcon stdio
91
92
.PHONY: fat32-test
93
fat32-test:
94
	$(MAKE) test-clean
95
	$(MAKE) test.hdd
96
	$(MAKE) limine-bios
97
	$(MAKE) limine
98
	$(MAKE) -C test -f test.mk ARCH=x86
99
	rm -rf test_image/
100
	mkdir test_image
101
	sudo losetup -Pf --show test.hdd > loopback_dev
102
	sudo partprobe `cat loopback_dev`
103
	sudo mkfs.fat -F 32 `cat loopback_dev`p1
104
	sudo mount `cat loopback_dev`p1 test_image
105
	sudo mkdir test_image/boot
106
	sudo cp -rv $(BINDIR)/* test_image/boot/
107
	sudo cp -rv test/* test_image/boot/
108
	sync
109
	sudo umount test_image/
110
	sudo losetup -d `cat loopback_dev`
111
	rm -rf test_image loopback_dev
112
	$(BINDIR)/limine bios-install test.hdd
113
	qemu-system-x86_64 -net none -smp 4   -hda test.hdd -debugcon stdio
114
115
.PHONY: iso9660-test
116
iso9660-test:
117
	$(MAKE) test-clean
118
	$(MAKE) test.hdd
119
	$(MAKE) limine-bios
120
	$(MAKE) -C test -f test.mk ARCH=x86
121
	rm -rf test_image/
122
	$(MKDIR_P) test_image/boot
123
	cp -rv $(BINDIR)/* test_image/boot/
124
	cp -rv test/* test_image/boot/
125
	xorriso -as mkisofs -b boot/limine-bios-cd.bin -no-emul-boot -boot-load-size 4 -boot-info-table test_image/ -o test.iso
126
	qemu-system-x86_64 -net none -smp 4   -cdrom test.iso -debugcon stdio
127
128
.PHONY: full-hybrid-test
129
full-hybrid-test:
130
	$(MAKE) edk2-ovmf
131
	$(MAKE) test-clean
132
	$(MAKE) all
133
	$(MAKE) -C test -f test.mk ARCH=x86
134
	rm -rf test_image/
135
	$(MKDIR_P) test_image/boot
136
	cp -rv $(BINDIR)/* test_image/boot/
137
	cp -rv test/* test_image/boot/
138
	$(MKDIR_P) test_image/EFI/BOOT
139
	cp -v $(BINDIR)/BOOT*.EFI test_image/EFI/BOOT/
140
	xorriso -as mkisofs -R -r -J -b boot/limine-bios-cd.bin -no-emul-boot -boot-load-size 4 -boot-info-table -hfsplus -apm-block-size 2048 --efi-boot boot/limine-uefi-cd.bin -efi-boot-part --efi-boot-image --protective-msdos-label test_image/ -o test.iso
141
	$(BINDIR)/limine bios-install test.iso
142
	qemu-system-x86_64 -m 512M -M q35 -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-x86_64.fd,readonly=on -net none -smp 4   -cdrom test.iso -debugcon stdio
143
	qemu-system-x86_64 -m 512M -M q35 -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-x86_64.fd,readonly=on -net none -smp 4   -hda test.iso -debugcon stdio
144
	qemu-system-x86_64 -m 512M -M q35 -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-ia32.fd,readonly=on -net none -smp 4   -cdrom test.iso -debugcon stdio
145
	qemu-system-x86_64 -m 512M -M q35 -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-ia32.fd,readonly=on -net none -smp 4   -hda test.iso -debugcon stdio
146
	qemu-system-x86_64 -m 512M -M q35 -net none -smp 4   -cdrom test.iso -debugcon stdio
147
	qemu-system-x86_64 -m 512M -M q35 -net none -smp 4   -hda test.iso -debugcon stdio
148
149
.PHONY: pxe-test
150
pxe-test:
151
	$(MAKE) test-clean
152
	$(MAKE) limine-bios
153
	$(MAKE) -C test -f test.mk ARCH=x86
154
	rm -rf test_image/
155
	$(MKDIR_P) test_image/boot
156
	cp -rv $(BINDIR)/* test_image/boot/
157
	cp -rv test/* test_image/boot/
158
	qemu-system-x86_64  -smp 4  -netdev user,id=n0,tftp=./test_image,bootfile=boot/limine-bios-pxe.bin -device rtl8139,netdev=n0,mac=00:00:00:11:11:11 -debugcon stdio
159
160
.PHONY: uefi-x86-64-test
161
uefi-x86-64-test:
162
	$(MAKE) edk2-ovmf
163
	$(MAKE) test-clean
164
	$(MAKE) test.hdd
165
	$(MAKE) limine-uefi-x86-64
166
	$(MAKE) -C test -f test.mk ARCH=x86
167
	rm -rf test_image/
168
	mkdir test_image
169
	sudo losetup -Pf --show test.hdd > loopback_dev
170
	sudo partprobe `cat loopback_dev`
171
	sudo mkfs.fat -F 32 `cat loopback_dev`p1
172
	sudo mount `cat loopback_dev`p1 test_image
173
	sudo mkdir test_image/boot
174
	sudo cp -rv $(BINDIR)/* test_image/boot/
175
	sudo cp -rv test/* test_image/boot/
176
	sudo $(MKDIR_P) test_image/EFI/BOOT
177
	sudo cp $(BINDIR)/BOOTX64.EFI test_image/EFI/BOOT/
178
	sync
179
	sudo umount test_image/
180
	sudo losetup -d `cat loopback_dev`
181
	rm -rf test_image loopback_dev
182
	qemu-system-x86_64 -m 512M -M q35 -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-x86_64.fd,readonly=on -net none -smp 4   -hda test.hdd -debugcon stdio
183
184
.PHONY: uefi-aa64-test
185
uefi-aa64-test:
186
	$(MAKE) edk2-ovmf
187
	$(MAKE) test-clean
188
	$(MAKE) test.hdd
189
	$(MAKE) limine-uefi-aarch64
190
	$(MAKE) -C test -f test.mk ARCH=aarch64
191
	rm -rf test_image/
192
	mkdir test_image
193
	sudo losetup -Pf --show test.hdd > loopback_dev
194
	sudo partprobe `cat loopback_dev`
195
	sudo mkfs.fat -F 32 `cat loopback_dev`p1
196
	sudo mount `cat loopback_dev`p1 test_image
197
	sudo mkdir test_image/boot
198
	sudo cp -rv $(BINDIR)/* test_image/boot/
199
	sudo cp -rv test/* test_image/boot/
200
	sudo $(MKDIR_P) test_image/EFI/BOOT
201
	sudo cp $(BINDIR)/BOOTAA64.EFI test_image/EFI/BOOT/
202
	sync
203
	sudo umount test_image/
204
	sudo losetup -d `cat loopback_dev`
205
	rm -rf test_image loopback_dev
206
	qemu-system-aarch64 -m 512M -M virt -cpu cortex-a72 -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-aarch64.fd,readonly=on -net none -smp 4 -device ramfb -device qemu-xhci -device usb-kbd  -hda test.hdd -serial stdio
207
208
.PHONY: uefi-rv64-test
209
uefi-rv64-test:
210
	$(MAKE) edk2-ovmf
211
	$(MAKE) test-clean
212
	$(MAKE) test.hdd
213
	$(MAKE) limine-uefi-riscv64
214
	$(MAKE) -C test -f test.mk ARCH=riscv64
215
	rm -rf test_image/
216
	mkdir test_image
217
	sudo losetup -Pf --show test.hdd > loopback_dev
218
	sudo partprobe `cat loopback_dev`
219
	sudo mkfs.fat -F 32 `cat loopback_dev`p1
220
	sudo mount `cat loopback_dev`p1 test_image
221
	sudo mkdir test_image/boot
222
	sudo cp -rv $(BINDIR)/* test_image/boot/
223
	sudo cp -rv test/* test_image/boot/
224
	sudo $(MKDIR_P) test_image/EFI/BOOT
225
	sudo cp $(BINDIR)/BOOTRISCV64.EFI test_image/EFI/BOOT/
226
	sync
227
	sudo umount test_image/
228
	sudo losetup -d `cat loopback_dev`
229
	rm -rf test_image loopback_dev
230
	qemu-system-riscv64 -m 512M -M virt -cpu rv64 -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-riscv64.fd,readonly=on -net none -smp 4 -device ramfb -device qemu-xhci -device usb-kbd -hda test.hdd -serial stdio
231
232
.PHONY: uefi-loongarch64-test
233
uefi-loongarch64-test:
234
	$(MAKE) edk2-ovmf
235
	$(MAKE) test-clean
236
	$(MAKE) test.hdd
237
	$(MAKE) limine-uefi-loongarch64
238
	$(MAKE) -C test -f test.mk ARCH=loongarch64
239
	rm -rf test_image/
240
	mkdir test_image
241
	sudo losetup -Pf --show test.hdd > loopback_dev
242
	sudo partprobe `cat loopback_dev`
243
	sudo mkfs.fat -F 32 `cat loopback_dev`p1
244
	sudo mount `cat loopback_dev`p1 test_image
245
	sudo mkdir test_image/boot
246
	sudo cp -rv $(BINDIR)/* test_image/boot/
247
	sudo cp -rv test/* test_image/boot/
248
	sudo $(MKDIR_P) test_image/EFI/BOOT
249
	sudo cp $(BINDIR)/BOOTLOONGARCH64.EFI test_image/EFI/BOOT/
250
	sync
251
	sudo umount test_image/
252
	sudo losetup -d `cat loopback_dev`
253
	rm -rf test_image loopback_dev
254
	qemu-system-loongarch64 -m 1G -net none -M virt -cpu la464 -smp 4 -device ramfb -device qemu-xhci -device usb-kbd -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-loongarch64.fd,readonly=on -hda test.hdd -serial stdio
255
256
.PHONY: uefi-ia32-test
257
uefi-ia32-test:
258
	$(MAKE) edk2-ovmf
259
	$(MAKE) test-clean
260
	$(MAKE) test.hdd
261
	$(MAKE) limine-uefi-ia32
262
	$(MAKE) -C test -f test.mk ARCH=x86
263
	rm -rf test_image/
264
	mkdir test_image
265
	sudo losetup -Pf --show test.hdd > loopback_dev
266
	sudo partprobe `cat loopback_dev`
267
	sudo mkfs.fat -F 32 `cat loopback_dev`p1
268
	sudo mount `cat loopback_dev`p1 test_image
269
	sudo mkdir test_image/boot
270
	sudo cp -rv $(BINDIR)/* test_image/boot/
271
	sudo cp -rv test/* test_image/boot/
272
	sudo $(MKDIR_P) test_image/EFI/BOOT
273
	sudo cp $(BINDIR)/BOOTIA32.EFI test_image/EFI/BOOT/
274
	sync
275
	sudo umount test_image/
276
	sudo losetup -d `cat loopback_dev`
277
	rm -rf test_image loopback_dev
278
	qemu-system-x86_64 -m 512M -M q35 -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-ia32.fd,readonly=on -net none -smp 4   -hda test.hdd -debugcon stdio
tab: 248 wrap: offon