diff options
Diffstat (limited to 'package/block-extroot')
-rw-r--r-- | package/block-extroot/Config.in | 17 | ||||
-rw-r--r-- | package/block-extroot/Makefile | 64 | ||||
-rw-r--r-- | package/block-extroot/files/50_determine_usb_root | 57 | ||||
-rw-r--r-- | package/block-extroot/files/55_determine_extroot_sysupgrade | 63 | ||||
-rw-r--r-- | package/block-extroot/files/60_pivot_usb_root | 27 | ||||
-rw-r--r-- | package/block-extroot/files/extmount.sh | 36 |
6 files changed, 0 insertions, 264 deletions
diff --git a/package/block-extroot/Config.in b/package/block-extroot/Config.in deleted file mode 100644 index dbf1041c15..0000000000 --- a/package/block-extroot/Config.in +++ /dev/null @@ -1,17 +0,0 @@ -# -# Copyright (C) 2010 Vertical Communications -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -config EXTROOT_SETTLETIME - int - prompt "Settle time for root block device (s)" if PACKAGE_block-extroot - default 20 - help - This is the amount of time, in seconds, to wait for the block device - the root filesystem is on to become available, after the kernel that - modules for the rootfs and device are loaded. - - diff --git a/package/block-extroot/Makefile b/package/block-extroot/Makefile deleted file mode 100644 index 3b3ce68cae..0000000000 --- a/package/block-extroot/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# -# Copyright (C) 2009-2010 OpenWrt.org -# Copyright (C) 2010 Vertical Communications -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=block-extroot -PKG_VERSION:=0.0.1 -PKG_RELEASE:=3 - -PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) - -include $(INCLUDE_DIR)/package.mk - -define Package/block-extroot/Default - SECTION:=base - CATEGORY:=Base system - TITLE:=root filesystem on secondary storage -endef - -define Package/block-extroot - $(call Package/block-extroot/Default) - MENU:=1 - DEPENDS:=+block-mount @PACKAGE_kmod-ide-core||PACKAGE_kmod-ata-core||PACKAGE_kmod-usb-storage||PACKAGE_kmod-mmc||PACKAGE_kmod-broadcom-sdhc -endef - -define Package/block-extroot/config - source "$(SOURCE)/Config.in" -endef - -define Package/block-extroot/description - Based on the moduluarized preinit and firstboot, adds the option to have - the root filesystem on storage other than the jffs or the boot root device. - For a squashfs image this package must be installed into the image, not as - a package to add later. -endef - -define Build/Prepare -endef - -define Build/Configure -endef - -define Build/Compile -endef - -define Package/block-extroot/install - $(INSTALL_DIR) $(1)/lib/functions - $(INSTALL_DATA) ./files/extmount.sh $(1)/lib/functions/ - $(INSTALL_DIR) $(1)/lib/preinit - $(INSTALL_DATA) ./files/50_determine_usb_root $(1)/lib/preinit/ - $(INSTALL_DATA) ./files/55_determine_extroot_sysupgrade $(1)/lib/preinit/ - $(INSTALL_DATA) ./files/60_pivot_usb_root $(1)/lib/preinit/ - $(INSTALL_DIR) $(1)/lib/preinit - echo "extroot_settle_time=\"$(CONFIG_EXTROOT_SETTLETIME)\"" >$(1)/lib/preinit/00_extroot.conf - $(INSTALL_DIR) $(1)/overlay -endef - -$(eval $(call BuildPackage,block-extroot)) - diff --git a/package/block-extroot/files/50_determine_usb_root b/package/block-extroot/files/50_determine_usb_root deleted file mode 100644 index 8c5841e32b..0000000000 --- a/package/block-extroot/files/50_determine_usb_root +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh -# Copyright (C) 2010 Vertical Communications -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. - - -determine_external_root() { - pi_include /lib/functions/extmount.sh - pi_include /lib/functions/mount.sh - - local OLD_UCI_CONFIG_DIR="$UCI_CONFIG_DIR" - set_jffs_mp - determine_root_device - - # extroot requires extroot and fstab config files, therefore - # we assume configuration is incomplete and not to be used if either of them - # is missing (for jffs versions of these files on squashfs image) - if [ "$jffs" = "/tmp/overlay" ] && [ -r "/tmp/overlay/etc/config/fstab" ]; then - UCI_CONFIG_DIR="/tmp/overlay/etc/config" - ER_IS_SQUASHFS=true - ER_OVERLAY_PREFIX="/tmp/overlay" - fi - - # For squashfs on firstboot root_device will be tmpfs for the ramoverlay, - # unless there is a saved config, in which case it will be /dev/root, - # however in the case of a saved config, it won't be restored until after - # this script, so there won't be a config on the first boot after - # flashing a squashfs-based filesystem - # For ext2, ramdisk, or jffs2 root filesystems root_device is /dev/root - # For squashfs after firstboot, root filesystem is /dev/root - # We only use the config from the root or jffs if the root_device is - # /dev/root - [ "$root_device" = "/dev/root" ] && { - er_load_modules - [ -n "$extroot_settle_time" ] && [ "$extroot_settle_time" -gt 0 ] && { - sleep $extroot_settle_time - } - config_load fstab - config_foreach config_mount_by_section mount 1 - ER_OVERLAY_ROM="/no-extroot" - - [ "$rootfs_found" = "1" ] && grep -q ' /overlay ' /proc/mounts && { - pi_extroot_mount_success=true - pi_mount_skip_next=false - ER_OVERLAY_ROM="/overlay" - } - [ "$rootfs_found" = "1" ] && grep -q ' /rom ' /proc/mounts && { - pi_extroot_mount_success=true - pi_mount_skip_next=false - ER_OVERLAY_ROM="/rom" - } - } - UCI_CONFIG_DIR="$OLD_UCI_CONFIG_DIR" -} - -boot_hook_add preinit_mount_root determine_external_root - diff --git a/package/block-extroot/files/55_determine_extroot_sysupgrade b/package/block-extroot/files/55_determine_extroot_sysupgrade deleted file mode 100644 index b0cd9036c2..0000000000 --- a/package/block-extroot/files/55_determine_extroot_sysupgrade +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh -# Copyright (C) 2010 Daniel Dickinson -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. - - -check_set_md5sum() { - local er_md5sum_file - er_md5sum_file="${ER_OVERLAY_PREFIX}/.extroot.md5sum" - local er_disabled - if [ "${ER_OVERLAY_ROM}" = "/rom" ]; then - er_disabled=/tmp/whole_root-disabled - else - er_disabled=/tmp${ER_OVERLAY_ROM}-disabled - fi - - local er_extroot_md5sum - if [ -f $md5sum_file ]; then - er_extroot_md5sum="$(cat $er_md5sum_file)" - fi - - local er_overlay_file="${ER_OVERLAY_ROM}/etc/extroot.md5sum" - - local er_extroot_overlay_md5sum - if [ -f "$er_overlay_file" ]; then - er_extroot_overlay_md5sum="$(cat $er_overlay_file)" - fi - - if [ -z "$er_extroot_overlay_md5sum" ]; then - cat $er_md5sum_file >$er_overlay_file - elif [ "$er_extroot_overlay_md5sum" != "$er_extroot_md5sum" ]; then - pi_extroot_mount_success="false" - mkdir -p $er_disabled - mount --move ${ER_OVERLAY_ROM} $er_disabled - fi -} - -set_jffs_md5sum() { - # We do this anytime block-extroot exists, even on the first boot with - # no extroot defined. - - local er_md5sum_file - er_md5sum_file="${ER_OVERLAY_PREFIX}/.extroot.md5sum" - - local er_extroot_md5sum - if [ -f $er_md5sum_file ]; then - er_extroot_md5sum="$(cat $er_md5sum_file)" - fi - if [ -z "$er_extroot_md5sum" ]; then - dd if=/dev/urandom count=32 bs=1k 2>/dev/null | md5sum | cut -f1 -d\ >$er_md5sum_file - fi -} - -determine_extroot_sysupgrade() { - check_skip || set_jffs_md5sum - - check_skip || [ "$pi_extroot_mount_success" != "true" ] || { - check_set_md5sum - } -} - -boot_hook_add preinit_mount_root determine_extroot_sysupgrade - diff --git a/package/block-extroot/files/60_pivot_usb_root b/package/block-extroot/files/60_pivot_usb_root deleted file mode 100644 index b610a4ade1..0000000000 --- a/package/block-extroot/files/60_pivot_usb_root +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# Copyright (C) 2010 Vertical Communications - -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. - -# Determine if we are requested to mount external root - -external_root_pivot() { - check_skip || [ "$pi_extroot_mount_success" != "true" ] || { - echo "switching to external rootfs" - if [ "$ER_OVERLAY_ROM" = "/overlay" ]; then - if [ "$ER_IS_SQUASHFS" = "true" ]; then - umount /tmp/overlay - fi - mount -o remount,ro / && fopivot /overlay /rom && pi_mount_skip_next=true - elif [ "$ER_OVERLAY_ROM" = "/rom" ]; then - if [ "$ER_IS_SQUASHFS" = "true" ]; then - umount /tmp/overlay - fi - mount -o remount,ro / && pivot_rom /rom /rom && pi_mount_skip_next=true - fi - } -} - -boot_hook_add preinit_mount_root external_root_pivot - diff --git a/package/block-extroot/files/extmount.sh b/package/block-extroot/files/extmount.sh deleted file mode 100644 index 44d662e63a..0000000000 --- a/package/block-extroot/files/extmount.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -# Copyright 2010 Vertical Communications - -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. - -determine_root_device() { - root_device="$(mount | grep ' / ' | cut -f1 -d\ | grep -v rootfs )" -} - -set_jffs_mp() { - jffs="$(awk '/jffs2/ {print $2}' /proc/mounts)" -} - -er_load_modules() { - mkdir -p /tmp/extroot_modules/modules.d - mkdir -p /tmp/extroot_modules/modules - ln -sf /etc/modules.d/* /tmp/overlay/etc/modules.d/* /tmp/extroot_modules/modules.d - ln -sf /lib/modules/*/* /tmp/overlay/lib/modules/*/* /tmp/extroot_modules/modules - local modules="$(grep -l '# May be required for rootfs' /tmp/extroot_modules/modules.d/* 2>/dev/null)" - cd /tmp/extroot_modules/modules && [ -n "$modules" ] && { - cat $modules | sed -e 's/^\([^#].*\)/insmod \.\/\1.ko/'| sh 2>&- || : - } - rm -rf /tmp/extroot_modules -} - -pivot_rom() { # <new_root> <old_root> - mount -o move /proc $1/proc && \ - pivot_root $1 $1$2 && { - mount -o move $2/dev /dev - mount -o move $2/tmp /tmp - mount -o move $2/sys /sys 2>&- - return 0 - } -} - |