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