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 | ||||
| 	  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 | ||||
|  |  | |||
|  | @ -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