mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			[Sigmastar] Add simple initramfs that boots rootfs from sdcard (#671)
Co-authored-by: Viktor <viktorxda@users.noreply.github.com>pull/677/head
							parent
							
								
									185f9016a2
								
							
						
					
					
						commit
						91bbc3fb54
					
				|  | @ -12,4 +12,9 @@ config BR2_LINUX_KERNEL_EXT_SIGMASTAR_PATCHER_LIST | ||||||
| 	help | 	help | ||||||
| 	  Space-separated list of patches to be applied | 	  Space-separated list of patches to be applied | ||||||
| 
 | 
 | ||||||
|  | config BR2_LINUX_KERNEL_EXT_SIGMASTAR_INITRAMFS | ||||||
|  | 	bool "SigmaStar initramfs" | ||||||
|  | 	help | ||||||
|  | 	  Simple initramfs that boots the rootfs from sdcard | ||||||
|  | 
 | ||||||
| endif  # BR2_LINUX_KERNEL_EXT_SIGMASTAR_PATCHER | endif  # BR2_LINUX_KERNEL_EXT_SIGMASTAR_PATCHER | ||||||
|  |  | ||||||
|  | @ -0,0 +1,42 @@ | ||||||
|  | ################################################################################
 | ||||||
|  | #
 | ||||||
|  | # linux-ext-sigmastar_initramfs
 | ||||||
|  | #
 | ||||||
|  | ################################################################################
 | ||||||
|  | 
 | ||||||
|  | LINUX_EXTENSIONS += sigmastar-initramfs | ||||||
|  | 
 | ||||||
|  | SIGMASTAR_INITRAMFS_BUSYBOX_VERSION = 1.36.0 | ||||||
|  | SIGMASTAR_INITRAMFS_BUSYBOX_SOURCE = busybox-$(SIGMASTAR_INITRAMFS_BUSYBOX_VERSION).tar.bz2 | ||||||
|  | SIGMASTAR_INITRAMFS_BUSYBOX_SITE = https://www.busybox.net/downloads | ||||||
|  | 
 | ||||||
|  | SIGMASTAR_INITRAMFS_DOSFSTOOLS_VERSION = 4.2 | ||||||
|  | SIGMASTAR_INITRAMFS_DOSFSTOOLS_SOURCE = dosfstools-$(SIGMASTAR_INITRAMFS_DOSFSTOOLS_VERSION).tar.gz | ||||||
|  | SIGMASTAR_INITRAMFS_DOSFSTOOLS_SITE = https://github.com/dosfstools/dosfstools/releases/download/v$(SIGMASTAR_INITRAMFS_DOSFSTOOLS_VERSION) | ||||||
|  | 
 | ||||||
|  | SIGMASTAR_INITRAMFS_BUSYBOX_PATH = $(HOST_DIR)/source/busybox-$(SIGMASTAR_INITRAMFS_BUSYBOX_VERSION) | ||||||
|  | SIGMASTAR_INITRAMFS_DOSFSTOOLS_PATH = $(HOST_DIR)/source/dosfstools-$(SIGMASTAR_INITRAMFS_DOSFSTOOLS_VERSION) | ||||||
|  | SIGMASTAR_INITRAMFS_TOOLCHAIN = $(PER_PACKAGE_DIR)/toolchain/host/bin/$(GNU_TARGET_NAME)-gcc | ||||||
|  | 
 | ||||||
|  | define SIGMASTAR_INITRAMFS_PREPARE_KERNEL | ||||||
|  | 	mkdir -p $(LINUX_DIR)/initramfs | ||||||
|  | 	cp -f $(SIGMASTAR_INITRAMFS_PKGDIR)/files/* $(LINUX_DIR)/initramfs | ||||||
|  | 
 | ||||||
|  | 	wget $(SIGMASTAR_INITRAMFS_BUSYBOX_SITE)/$(SIGMASTAR_INITRAMFS_BUSYBOX_SOURCE) \
 | ||||||
|  | 		-P $(HOST_DIR)/source -c | ||||||
|  | 	tar -xf $(HOST_DIR)/source/$(SIGMASTAR_INITRAMFS_BUSYBOX_SOURCE) -C $(HOST_DIR)/source | ||||||
|  | 
 | ||||||
|  | 	wget $(SIGMASTAR_INITRAMFS_DOSFSTOOLS_SITE)/$(SIGMASTAR_INITRAMFS_DOSFSTOOLS_SOURCE) \
 | ||||||
|  | 		-P $(HOST_DIR)/source -c | ||||||
|  | 	tar -xf $(HOST_DIR)/source/$(SIGMASTAR_INITRAMFS_DOSFSTOOLS_SOURCE) -C $(HOST_DIR)/source | ||||||
|  | 
 | ||||||
|  | 	cp -f $(SIGMASTAR_INITRAMFS_PKGDIR)/files/initramfs_defconfig \
 | ||||||
|  | 		$(SIGMASTAR_INITRAMFS_BUSYBOX_PATH)/.config | ||||||
|  | 	$(MAKE) CC=$(SIGMASTAR_INITRAMFS_TOOLCHAIN) -C $(SIGMASTAR_INITRAMFS_BUSYBOX_PATH) | ||||||
|  | 	cp -f $(SIGMASTAR_INITRAMFS_BUSYBOX_PATH)/busybox $(LINUX_DIR)/initramfs | ||||||
|  | 
 | ||||||
|  | 	cd $(SIGMASTAR_INITRAMFS_DOSFSTOOLS_PATH) && ./autogen.sh && ./configure | ||||||
|  | 	$(MAKE) CC=$(SIGMASTAR_INITRAMFS_TOOLCHAIN) CFLAGS="-static -s" \
 | ||||||
|  | 		-C $(SIGMASTAR_INITRAMFS_DOSFSTOOLS_PATH) | ||||||
|  | 	cp -f $(SIGMASTAR_INITRAMFS_DOSFSTOOLS_PATH)/src/fsck.fat $(LINUX_DIR)/initramfs | ||||||
|  | endef | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | ../../general/package/sigmastar-initramfs | ||||||
|  | @ -0,0 +1,2 @@ | ||||||
|  | config BR2_PACKAGE_SIGMASTAR_INITRAMFS | ||||||
|  | 	bool "sigmastar-initramfs" | ||||||
|  | @ -0,0 +1,21 @@ | ||||||
|  | #!/bin/sh | ||||||
|  | mount -t devtmpfs devtmpfs /dev | ||||||
|  | mount -t proc proc /proc | ||||||
|  | mount -t sysfs sysfs /sys | ||||||
|  | 
 | ||||||
|  | sleep 1 | ||||||
|  | fsck.fat -a /dev/mmcblk0p1 | ||||||
|  | mkdir -p /root /sdcard /tmp | ||||||
|  | mount -r /dev/mmcblk0p1 /sdcard | ||||||
|  | 
 | ||||||
|  | echo OpenIPC: Copy squashfs | ||||||
|  | cp -f /sdcard/rootfs.squashfs.* /tmp || exec sh | ||||||
|  | mount /tmp/rootfs.squashfs.* /root || exec sh | ||||||
|  | 
 | ||||||
|  | umount /sdcard | ||||||
|  | umount /dev | ||||||
|  | umount /proc | ||||||
|  | umount /sys | ||||||
|  | 
 | ||||||
|  | echo OpenIPC: Switch to new root | ||||||
|  | exec switch_root /root /init | ||||||
											
												
													File diff suppressed because it is too large
													Load Diff
												
											
										
									
								|  | @ -0,0 +1,13 @@ | ||||||
|  | dir /bin 755 0 0 | ||||||
|  | dir /dev 755 0 0 | ||||||
|  | nod /dev/console 644 0 0 c 5 1 | ||||||
|  | dir /proc 755 0 0 | ||||||
|  | dir /sys 755 0 0 | ||||||
|  | 
 | ||||||
|  | file /init initramfs/init 755 0 0 | ||||||
|  | file /bin/fsck.fat initramfs/fsck.fat 755 0 0 | ||||||
|  | 
 | ||||||
|  | file /bin/busybox initramfs/busybox 755 0 0 | ||||||
|  | slink /bin/sh busybox 777 0 0 | ||||||
|  | slink /bin/mount busybox 777 0 0 | ||||||
|  | slink /bin/switch_root busybox 777 0 0 | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | ################################################################################
 | ||||||
|  | #
 | ||||||
|  | # sigmastar-initramfs
 | ||||||
|  | #
 | ||||||
|  | ################################################################################
 | ||||||
|  | 
 | ||||||
|  | SIGMASTAR_INITRAMFS_VERSION = 1.0 | ||||||
|  | SIGMASTAR_INITRAMFS_SITE = | ||||||
|  | SIGMASTAR_INITRAMFS_SOURCE = | ||||||
|  | 
 | ||||||
|  | $(eval $(generic-package)) | ||||||
		Loading…
	
		Reference in New Issue