[OpenWrt-Devel] [PATCH v3 1/2] mount_root: implement overlay= boot option

Josua Mayer josua.mayer97 at gmail.com
Wed May 4 08:49:30 EDT 2016


Hi everyone,

please note that this patch is not final in that the code does not look
for device-node-names, but for a partition name.
But don't hesitate to comment anyway!

Am 04.05.2016 um 14:45 schrieb josua.mayer97 at gmail.com:
> From: Josua Mayer <privacy at not.given>
> 
> This change adds code to handle a new option on cmdline: overlay=
> This is used to find the rootfs_data partition / disk when it has a
> non-standard name or location.
> 
> It takes either the device node name, or the full path to the device node:
> i.e. /dev/mmcblk0p3 or mmcblk0p3
> 
> This option has precedence over the default name "rootfs_data", and extroot.
> 
> Signed-off-by: Josua Mayer <josua.mayer97 at gmail.com>.
> ---
>  mount_root.c | 29 +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 
> diff --git a/mount_root.c b/mount_root.c
> index 47a3409..446e3cc 100644
> --- a/mount_root.c
> +++ b/mount_root.c
> @@ -33,6 +33,35 @@ start(int argc, char *argv[1])
>  	if (!getenv("PREINIT"))
>  		return -1;
>  
> +	/*
> +	 * Check cmdline for a hint about overlay device
> +	 */
> +	if (!data) {
> +		FILE *fp;
> +		char buffer[100] = {0};
> +
> +		fp = fopen("/proc/cmdline", "r");
> +		while (!feof(fp)) {
> +			if(fscanf(fp, "overlay=%s", buffer))
> +				break;
> +
> +			fseek(fp, 1, SEEK_CUR);
> +		}
> +		fclose(fp);
> +
> +		// overlay= argument was found
> +		if (buffer[0]) {
> +			// strip /dev/ prefix if any
> +			int offset = 0;
> +			if (strstr(buffer, "/dev/"))
> +				offset = 5;
> +
> +			// try to find the volume
> +			ULOG_NOTE("Looking for overlay device given on commandline\n");
> +			data = volume_find(buffer + offset);
> +		}
> +	}
> +
>  	if (!data) {
>  		root = volume_find("rootfs");
>  		volume_init(root);
> 
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list