diff mbox

[LEDE-DEV] add --do-setup arg and default to squasfs

Message ID 20170517194014.aipcumnleaayq3fi@led
State Rejected
Delegated to: Yousong Zhou
Headers show

Commit Message

Paul Spooren May 17, 2017, 7:40 p.m. UTC
scripts/qemustart

the function do_setup is never used except if the script is changed
manually. It's used to easily setup bridges and traffic forwarding.
Adding the parameter --do-config simplifies the deployment.

The scripts defaults to the ext4 filesystem which is an unrealistic in
most cases. Now defaults to the squashfs img if exists.

Signed-off-by: Paul Spooren <paul@spooren.de>
---
 scripts/qemustart | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

Comments

Yousong Zhou May 22, 2017, 12:13 p.m. UTC | #1
Hi, Paul

On 18 May 2017 at 03:40, Paul Spooren <paul@spooren.de> wrote:
> scripts/qemustart
>
> the function do_setup is never used except if the script is changed
> manually. It's used to easily setup bridges and traffic forwarding.
> Adding the parameter --do-config simplifies the deployment.
>

I thought about this before and decided that it would be better if
do_setup() only serve as an example.

You can easily prepare a simple script that will do the setup.  It is
only needed at the first run anyway.  But tampering people's machine
by running commands with sudo privileges makes me feel uneasy...  I
have the impression that many people will just run shell scripts
without evaluating the possible consequence, e.g. the popular "curl
https://example.com/install.sh | sudo bash -s".  This is a bad
practice I do not want to promote.

The other thing is that the do_setup() func in its current form is far
from being generic enough to be exposed as a command line argument.
E.g. the hardcoded ip address setting 192.168.1.3/24 for br-lan is
very likely in collision with the default lan network of many home
routers.


> The scripts defaults to the ext4 filesystem which is an unrealistic in
> most cases. Now defaults to the squashfs img if exists.
>

Not quite sure about this, but using combined-squashfs.img with the
current qemu command line will result in "no space left on device"
when touching any file on /.  Do you want to investigate into that?

                yousong

> Signed-off-by: Paul Spooren <paul@spooren.de>
> ---
>  scripts/qemustart | 20 +++++++++++++++-----
>  1 file changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/scripts/qemustart b/scripts/qemustart
> index 5cadd7d6a8..f77c674a9c 100755
> --- a/scripts/qemustart
> +++ b/scripts/qemustart
> @@ -84,6 +84,7 @@ check_setup() {
>  usage() {
>         cat >&2 <<EOF
>  Usage: $SELF [-h|--help]
> +          $SELF [--do-setup]
>         $SELF <target>
>           [<subtarget> [<extra-qemu-options>]]
>           [--kernel <kernel>]
> @@ -119,6 +120,11 @@ rand_mac() {
>  parse_args() {
>         while [ "$#" -gt 0 ]; do
>                 case "$1" in
> +                       --do-setup)
> +                          echo "running setup"
> +                          do_setup
> +                          exit 0
> +                          ;;
>                         --kernel) o_kernel="$2"; shift 2 ;;
>                         --rootfs) o_rootfs="$2"; shift 2 ;;
>                         --help|-h)
> @@ -216,9 +222,13 @@ start_qemu_x86() {
>         local qemu_exe
>
>         [ -n "$rootfs" ] || {
> -               rootfs="$o_bindir/lede-$o_target-${o_subtarget%-*}-combined-ext4.img"
> -               if [ ! -f "$rootfs" -a -s "$rootfs.gz" ]; then
> -                       gunzip "$rootfs.gz"
> +               rootfs="$o_bindir/lede-$o_target-${o_subtarget%-*}-combined-squashfs.img"
> +               if [ ! -f "$rootfs" ]; then
> +                       rootfs="$o_bindir/lede-$o_target-${o_subtarget%-*}-combined-ext4.img"
> +
> +                       if [ ! -f "$rootfs" -a -s "$rootfs.gz" ]; then
> +                               gunzip "$rootfs.gz"
> +                       fi
>                 fi
>         }
>         #
> @@ -276,6 +286,6 @@ start_qemu() {
>         esac
>  }
>
> -check_setup \
> -       && parse_args "$@" \
> +parse_args "$@" \
> +       && check_setup \
>         && start_qemu
> --
> 2.11.0
>
diff mbox

Patch

diff --git a/scripts/qemustart b/scripts/qemustart
index 5cadd7d6a8..f77c674a9c 100755
--- a/scripts/qemustart
+++ b/scripts/qemustart
@@ -84,6 +84,7 @@  check_setup() {
 usage() {
 	cat >&2 <<EOF
 Usage: $SELF [-h|--help]
+	   $SELF [--do-setup]
        $SELF <target>
          [<subtarget> [<extra-qemu-options>]]
          [--kernel <kernel>]
@@ -119,6 +120,11 @@  rand_mac() {
 parse_args() {
 	while [ "$#" -gt 0 ]; do
 		case "$1" in
+			--do-setup) 
+			   echo "running setup"
+		   	   do_setup 
+			   exit 0
+			   ;;
 			--kernel) o_kernel="$2"; shift 2 ;;
 			--rootfs) o_rootfs="$2"; shift 2 ;;
 			--help|-h)
@@ -216,9 +222,13 @@  start_qemu_x86() {
 	local qemu_exe
 
 	[ -n "$rootfs" ] || {
-		rootfs="$o_bindir/lede-$o_target-${o_subtarget%-*}-combined-ext4.img"
-		if [ ! -f "$rootfs" -a -s "$rootfs.gz" ]; then
-			gunzip "$rootfs.gz"
+		rootfs="$o_bindir/lede-$o_target-${o_subtarget%-*}-combined-squashfs.img"
+		if [ ! -f "$rootfs" ]; then
+			rootfs="$o_bindir/lede-$o_target-${o_subtarget%-*}-combined-ext4.img"
+
+			if [ ! -f "$rootfs" -a -s "$rootfs.gz" ]; then
+				gunzip "$rootfs.gz"
+			fi
 		fi
 	}
 	#
@@ -276,6 +286,6 @@  start_qemu() {
 	esac
 }
 
-check_setup \
-	&& parse_args "$@" \
+parse_args "$@" \
+	&& check_setup \
 	&& start_qemu