mirror of
https://github.com/dreemurrs-embedded/Jumpdrive.git
synced 2024-11-16 23:11:06 +00:00
85c07b4205
This is a draft and is untested, but it should "just work" since the server in question serves over https as well as anonymous ftp.
244 lines
9.4 KiB
Makefile
244 lines
9.4 KiB
Makefile
CROSS_FLAGS = ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
|
|
CROSS_FLAGS_BOOT = CROSS_COMPILE=aarch64-linux-gnu-
|
|
|
|
all: pine64-pinephone.img.xz pine64-pinetab.img.xz purism-librem5.tar.xz
|
|
|
|
|
|
pine64-pinephone.img: fat-pine64-pinephone.img u-boot-sunxi-with-spl.bin
|
|
rm -f $@
|
|
truncate --size 50M $@
|
|
parted -s $@ mktable msdos
|
|
parted -s $@ mkpart primary fat32 2048s 100%
|
|
parted -s $@ set 1 boot on
|
|
dd if=u-boot-sunxi-with-spl.bin of=$@ bs=8k seek=1
|
|
dd if=fat-$@ of=$@ seek=1024 bs=1k
|
|
|
|
fat-pine64-pinephone.img: initramfs-pine64-pinephone.gz kernel-sunxi.gz pine64-pinephone.scr dtbs/sunxi/sun50i-a64-pinephone-1.2.dtb
|
|
@echo "MKFS $@"
|
|
@rm -f $@
|
|
@truncate --size 40M $@
|
|
@mkfs.fat -F32 $@
|
|
|
|
@mcopy -i $@ kernel-sunxi.gz ::Image.gz
|
|
@mcopy -i $@ dtbs/sunxi/sun50i-a64-pinephone-1.2.dtb ::sun50i-a64-pinephone-1.2.dtb
|
|
@mcopy -i $@ dtbs/sunxi/sun50i-a64-pinephone-1.1.dtb ::sun50i-a64-pinephone-1.1.dtb
|
|
@mcopy -i $@ dtbs/sunxi/sun50i-a64-pinephone-1.0.dtb ::sun50i-a64-pinephone-1.0.dtb
|
|
@mcopy -i $@ initramfs-pine64-pinephone.gz ::initramfs.gz
|
|
@mcopy -i $@ pine64-pinephone.scr ::boot.scr
|
|
|
|
pine64-pinetab.img: fat-pine64-pinetab.img u-boot-sunxi-with-spl.bin
|
|
rm -f $@
|
|
truncate --size 50M $@
|
|
parted -s $@ mktable msdos
|
|
parted -s $@ mkpart primary fat32 2048s 100%
|
|
parted -s $@ set 1 boot on
|
|
dd if=u-boot-sunxi-with-spl.bin of=$@ bs=8k seek=1
|
|
dd if=fat-$@ of=$@ seek=1024 bs=1k
|
|
|
|
fat-pine64-pinetab.img: initramfs-pine64-pinetab.gz kernel-sunxi.gz pine64-pinetab.scr dtbs/sunxi/sun50i-a64-pinetab.dtb
|
|
@echo "MKFS $@"
|
|
@rm -f $@
|
|
@truncate --size 40M $@
|
|
@mkfs.fat -F32 $@
|
|
|
|
@mcopy -i $@ kernel-sunxi.gz ::Image.gz
|
|
@mcopy -i $@ dtbs/sunxi/sun50i-a64-pinetab.dtb ::sun50i-a64-pinetab.dtb
|
|
@mcopy -i $@ initramfs-pine64-pinetab.gz ::initramfs.gz
|
|
@mcopy -i $@ pine64-pinetab.scr ::boot.scr
|
|
|
|
pine64-pinebookpro.img: fat-pine64-pinebookpro.img u-boot-rk3399.bin
|
|
rm -f $@
|
|
truncate --size 50M $@
|
|
parted -s $@ mktable msdos
|
|
parted -s $@ mkpart primary fat32 32768s 100%
|
|
parted -s $@ set 1 boot on
|
|
dd if=u-boot-rk3399.bin of=$@ bs=32k seek=1
|
|
dd if=fat-$@ of=$@ seek=32768 bs=512
|
|
|
|
fat-pine64-pinebookpro.img: initramfs-pine64-pinebookpro.gz kernel-rockchip.gz src/pine64-pinebookpro.conf dtbs/rockchip/rk3399-pinebook-pro.dtb
|
|
@echo "MKFS $@"
|
|
@rm -f $@
|
|
@truncate --size 40M $@
|
|
@mkfs.fat -F32 $@
|
|
|
|
@mcopy -i $@ kernel-rockchip.gz ::Image.gz
|
|
@mcopy -i $@ dtbs/rockchip/rk3399-pinebook-pro.dtb ::rk3399-pinebook-pro.dtb
|
|
@mcopy -i $@ initramfs-pine64-pinebookpro.gz ::initramfs.gz
|
|
@mmd -i $@ extlinux
|
|
@mcopy -i $@ src/pine64-pinebookpro.conf ::extlinux/extlinux.conf
|
|
|
|
%.img.xz: %.img
|
|
@echo "XZ $@"
|
|
@xz -c $< > $@
|
|
|
|
initramfs/bin/busybox: src/busybox src/busybox_config
|
|
@echo "MAKE $@"
|
|
@mkdir -p build/busybox
|
|
@cp src/busybox_config build/busybox/.config
|
|
@$(MAKE) -C src/busybox O=../../build/busybox $(CROSS_FLAGS)
|
|
@cp build/busybox/busybox initramfs/bin/busybox
|
|
|
|
splash/%.ppm.gz: splash/%.ppm
|
|
@echo "GZ $@"
|
|
@gzip < $< > $@
|
|
|
|
initramfs-%.cpio: initramfs/bin/busybox initramfs/init initramfs/init_functions.sh splash/%.ppm.gz splash/%-error.ppm.gz
|
|
@echo "CPIO $@"
|
|
@rm -rf initramfs-$*
|
|
@cp -r initramfs initramfs-$*
|
|
@cp src/info-$*.sh initramfs-$*/info.sh
|
|
@cp splash/$*.ppm.gz initramfs-$*/splash.ppm.gz
|
|
@cp splash/$*-error.ppm.gz initramfs-$*/error.ppm.gz
|
|
@cp src/info-$*.sh initramfs-$*/info.sh
|
|
@cd initramfs-$*; find . | cpio -H newc -o > ../$@
|
|
|
|
initramfs-%.gz: initramfs-%.cpio
|
|
@echo "GZ $@"
|
|
@gzip < $< > $@
|
|
|
|
kernel-sunxi.gz: src/linux_config_sunxi src/linux-sunxi
|
|
@echo "MAKE kernel-sunxi.gz"
|
|
@mkdir -p build/linux-sunxi
|
|
@mkdir -p dtbs/sunxi
|
|
@cp src/linux_config_sunxi build/linux-sunxi/.config
|
|
@$(MAKE) -C src/linux-sunxi O=../../build/linux-sunxi $(CROSS_FLAGS) olddefconfig
|
|
@$(MAKE) -C src/linux-sunxi O=../../build/linux-sunxi $(CROSS_FLAGS)
|
|
@cp build/linux-sunxi/arch/arm64/boot/Image.gz kernel-sunxi.gz
|
|
@cp build/linux-sunxi/arch/arm64/boot/dts/allwinner/*.dtb dtbs/sunxi/
|
|
|
|
dtbs/sunxi/sun50i-a64-pinephone-1.2.dtb: kernel-sunxi.gz
|
|
|
|
dtbs/sunxi/sun50i-a64-pinetab.dtb: kernel-sunxi.gz
|
|
|
|
kernel-rockchip.gz: src/linux_config_rockchip src/linux-rockchip
|
|
@echo "MAKE $@"
|
|
@mkdir -p build/linux-rockchip
|
|
@mkdir -p dtbs/rockchip
|
|
@cp src/linux_config_rockchip build/linux-rockchip/.config
|
|
@$(MAKE) -C src/linux-rockchip O=../../build/linux-rockchip $(CROSS_FLAGS) olddefconfig
|
|
@$(MAKE) -C src/linux-rockchip O=../../build/linux-rockchip $(CROSS_FLAGS)
|
|
@cp build/linux-rockchip/arch/arm64/boot/Image.gz $@
|
|
@cp build/linux-rockchip/arch/arm64/boot/dts/rockchip/*.dtb dtbs/rockchip/
|
|
|
|
kernel-librem5.gz: src/linux_config_librem5 src/linux-librem5
|
|
@echo "MAKE $@"
|
|
@mkdir -p build/linux-librem5
|
|
@mkdir -p dtbs/librem5
|
|
@cp src/linux_config_librem5 build/linux-librem5/.config
|
|
@$(MAKE) -C src/linux-librem5 O=../../build/linux-librem5 $(CROSS_FLAGS) olddefconfig
|
|
@$(MAKE) -C src/linux-librem5 O=../../build/linux-librem5 $(CROSS_FLAGS)
|
|
@cp build/linux-librem5/arch/arm64/boot/Image.gz $@
|
|
@cp build/linux-librem5/arch/arm64/boot/dts/freescale/imx8mq-librem5*.dtb dtbs/librem5/
|
|
|
|
dtbs/librem5/imx8mq-librem5-r2.dtb: kernel-librem5.gz
|
|
|
|
%.scr: src/%.txt
|
|
@echo "MKIMG $@"
|
|
@mkimage -A arm -O linux -T script -C none -n "U-Boot boot script" -d $< $@
|
|
|
|
build/atf/sun50i_a64/bl31.bin: src/arm-trusted-firmware
|
|
@echo "MAKE $@"
|
|
@mkdir -p build/atf/sun50i_a64
|
|
@cd src/arm-trusted-firmware; make $(CROSS_FLAGS_BOOT) PLAT=sun50i_a64 bl31
|
|
@cp src/arm-trusted-firmware/build/sun50i_a64/release/bl31.bin "$@"
|
|
|
|
u-boot-sunxi-with-spl.bin: build/atf/sun50i_a64/bl31.bin src/u-boot
|
|
@echo "MAKE $@"
|
|
@mkdir -p build/u-boot/sun50i_a64
|
|
@BL31=../../../build/atf/sun50i_a64/bl31.bin $(MAKE) -C src/u-boot O=../../build/u-boot/sun50i_a64 $(CROSS_FLAGS_BOOT) pinephone_defconfig
|
|
@BL31=../../../build/atf/sun50i_a64/bl31.bin $(MAKE) -C src/u-boot O=../../build/u-boot/sun50i_a64 $(CROSS_FLAGS_BOOT) ARCH=arm all
|
|
@cp build/u-boot/sun50i_a64/u-boot-sunxi-with-spl.bin "$@"
|
|
|
|
build/atf/rk3399/bl31.elf: src/arm-trusted-firmware
|
|
@echo "MAKE $@"
|
|
@mkdir -p build/atf/rk3399
|
|
@cd src/arm-trusted-firmware; make $(CROSS_FLAGS_BOOT) PLAT=rk3399 bl31
|
|
@cp src/arm-trusted-firmware/build/sun50i_a64/release/bl31/bl31.elf "$@"
|
|
|
|
u-boot-rk3399.bin: build/atf/rk3399/bl31.elf src/u-boot
|
|
@echo "MAKE $@"
|
|
@mkdir -p build/u-boot/rk3399
|
|
@BL31=../../../build/atf/rk3399/bl31.elf $(MAKE) -C src/u-boot O=../../build/u-boot/rk3399 $(CROSS_FLAGS_BOOT) rockpro64-rk3399_defconfig
|
|
@BL31=../../../build/atf/rk3399/bl31.elf $(MAKE) -C src/u-boot O=../../build/u-boot/rk3399 $(CROSS_FLAGS_BOOT) all
|
|
@cp build/u-boot/rk3399/u-boot "$@"
|
|
|
|
u-boot-librem5.bin: src/u-boot-librem5
|
|
@echo "MAKE $@"
|
|
@mkdir -p build/u-boot/librem5
|
|
@cd build/u-boot/librem5 && ../../../src/u-boot-librem5/build_uboot.sh -b librem5
|
|
@cp build/u-boot/librem5/output/uboot-librem5/u-boot-librem5.imx $@
|
|
|
|
src/linux-rockchip:
|
|
@echo "WGET linux-rockchip"
|
|
@mkdir src/linux-rockchip
|
|
@wget https://gitlab.manjaro.org/tsys/linux-pinebook-pro/-/archive/v5.6/linux-pinebook-pro-v5.6.tar.gz
|
|
@tar -xvf linux-pinebook-pro-v5.6.tar.gz --strip-components 1 -C src/linux-rockchip
|
|
|
|
src/linux-sunxi:
|
|
@echo "WGET linux-sunxi"
|
|
@mkdir src/linux-sunxi
|
|
@wget https://github.com/megous/linux/archive/orange-pi-5.9-20201019-1553.tar.gz
|
|
@tar -xvf orange-pi-5.9-20201019-1553.tar.gz --strip-components 1 -C src/linux-sunxi
|
|
|
|
src/linux-librem5:
|
|
@echo "WGET linux-librem5"
|
|
@mkdir src/linux-librem5
|
|
@wget -c https://source.puri.sm/Librem5/linux-next/-/archive/pureos/5.9.16+librem5.2/linux-next-pureos-5.9.16+librem5.2.tar.gz
|
|
@tar -xvf linux-next-pureos-5.9.16+librem5.2.tar.gz --strip-components 1 -C src/linux-librem5
|
|
|
|
src/arm-trusted-firmware:
|
|
@echo "WGET arm-trusted-firmware"
|
|
@mkdir src/arm-trusted-firmware
|
|
@wget https://github.com/ARM-software/arm-trusted-firmware/archive/50d8cf26dc57bb453b1a52be646140bfea4aa591.tar.gz
|
|
@tar -xvf 50d8cf26dc57bb453b1a52be646140bfea4aa591.tar.gz --strip-components 1 -C src/arm-trusted-firmware
|
|
|
|
src/u-boot:
|
|
@echo "WGET u-boot"
|
|
@mkdir src/u-boot
|
|
@wget https://ftp.denx.de/pub/u-boot/u-boot-2020.04.tar.bz2
|
|
@tar -xvf u-boot-2020.04.tar.bz2 --strip-components 1 -C src/u-boot
|
|
@cd src/u-boot && patch -p1 < ../u-boot-pinephone.patch
|
|
|
|
src/u-boot-librem5:
|
|
@echo "WGET u-boot-librem5"
|
|
@mkdir src/u-boot-librem5
|
|
@wget https://source.puri.sm/Librem5/u-boot-builder/-/archive/3b1c7d957f46c87c6cdd71cd8dab7c84aca26570/u-boot-builder-3b1c7d957f46c87c6cdd71cd8dab7c84aca26570.tar.gz
|
|
@tar -xvf u-boot-builder-3b1c7d957f46c87c6cdd71cd8dab7c84aca26570.tar.gz --strip-components 1 -C src/u-boot-librem5
|
|
|
|
src/busybox:
|
|
@echo "WGET busybox"
|
|
@mkdir src/busybox
|
|
@wget https://www.busybox.net/downloads/busybox-1.32.0.tar.bz2
|
|
@tar -xvf busybox-1.32.0.tar.bz2 --strip-components 1 -C src/busybox
|
|
|
|
.PHONY: clean cleanfast purism-librem5
|
|
|
|
purism-librem5: initramfs-purism-librem5.gz kernel-librem5.gz u-boot-librem5.bin src/purism-librem5.txt dtbs/librem5/imx8mq-librem5-r2.dtb
|
|
cp src/boot-purism-librem5.sh boot-purism-librem5.sh
|
|
cp src/purism-librem5.txt purism-librem5.lst
|
|
@echo 'All done! Switch your phone into flashing mode and run Jumpdrive with `./boot-purism-librem5.sh`'
|
|
|
|
purism-librem5.tar.xz: purism-librem5
|
|
@echo "XZ librem5 files"
|
|
@tar cJf $@ initramfs-purism-librem5.gz kernel-librem5.gz u-boot-librem5.bin purism-librem5.lst dtbs/librem5/imx8mq-librem5-r2.dtb boot-purism-librem5.sh
|
|
|
|
cleanfast:
|
|
@rm -rvf build
|
|
@rm -rvf initramfs-*/
|
|
@rm -vf *.img
|
|
@rm -vf *.img.xz
|
|
@rm -vf *.tar.xz
|
|
@rm -vf *.apk
|
|
@rm -vf *.bin
|
|
@rm -vf *.cpio
|
|
@rm -vf *.gz
|
|
@rm -vf *.scr
|
|
@rm -vf splash/*.gz
|
|
@rm -vf *.lst
|
|
@rm -vf boot-purism-librem5.sh
|
|
|
|
clean: cleanfast
|
|
@rm -vf kernel*.gz
|
|
@rm -vf initramfs/bin/busybox
|
|
@rm -vrf dtbs
|