From 28948cd819e93fa1753b5de385fe6df1fb989e8a Mon Sep 17 00:00:00 2001 From: bauen1 Date: Sun, 30 Jul 2017 08:34:28 +0200 Subject: [PATCH 1/2] Added dhcp overlay bundle --- src/.config | 3 +- src/09_generate_rootfs.sh | 4 -- src/README | 2 + src/minimal_overlay/bundles/dhcp/05_rc.dhcp | 17 ++++++++ src/minimal_overlay/bundles/dhcp/bundle.sh | 27 ++++++++++++ .../bundles/dhcp}/resolv.conf | 0 src/minimal_rootfs/etc/01_prepare.sh | 4 +- src/minimal_rootfs/etc/02_overlay.sh | 4 +- src/minimal_rootfs/etc/03_init.sh | 4 +- src/minimal_rootfs/etc/05_rc.dhcp | 41 ------------------- src/minimal_rootfs/init | 6 +-- 11 files changed, 53 insertions(+), 59 deletions(-) create mode 100755 src/minimal_overlay/bundles/dhcp/05_rc.dhcp create mode 100755 src/minimal_overlay/bundles/dhcp/bundle.sh rename src/{minimal_rootfs/etc => minimal_overlay/bundles/dhcp}/resolv.conf (100%) delete mode 100755 src/minimal_rootfs/etc/05_rc.dhcp diff --git a/src/.config b/src/.config index df674bdc3..a1c7bb16a 100644 --- a/src/.config +++ b/src/.config @@ -171,12 +171,13 @@ COPY_SOURCE_ISO=true # static_get - portable binaries for Linux (http://s.minos.io) # cf_cli - CLoud Foundry CLI (command line interface) # nweb - simple mini http server +# dhcp - DHCP and DNS functionality # # Refer to the README file for more information. # #OVERLAY_BUNDLES=glibc_full,links,dropbear,java,felix,mll_utils,lua,static_get,cf_cli #OVERLAY_BUNDLES=cf_cli -OVERLAY_BUNDLES=nweb +OVERLAY_BUNDLES=nweb,dhcp # This property enables the standard penguin boot logo in the upper left corner # of the screen. The property is used in 'xx_build_kernel.sh'. The default value diff --git a/src/09_generate_rootfs.sh b/src/09_generate_rootfs.sh index 37c07534a..e6b203cac 100755 --- a/src/09_generate_rootfs.sh +++ b/src/09_generate_rootfs.sh @@ -57,10 +57,6 @@ fi cp $SYSROOT/lib/libm.so.6 lib cp $SYSROOT/lib/libc.so.6 lib -# These libraries are necessary for the DNS resolving. -cp $SYSROOT/lib/libresolv.so.2 lib -cp $SYSROOT/lib/libnss_dns.so.2 lib - # Copy all necessary 'glibc' libraries to '/lib' END. strip -g \ diff --git a/src/README b/src/README index fa86b7699..8e581c395 100644 --- a/src/README +++ b/src/README @@ -69,6 +69,8 @@ Currently available overlay bundles: add '-net nic,model=e1000 -net user,hostfwd=tcp::8080-:80' to the cmd in qemu64.sh and qemu32.sh +* dhcp - DHCP and DNS functionality + ### ### ### I only provide the build scripts. It's entirely up to you to configure and diff --git a/src/minimal_overlay/bundles/dhcp/05_rc.dhcp b/src/minimal_overlay/bundles/dhcp/05_rc.dhcp new file mode 100755 index 000000000..c8d90c01a --- /dev/null +++ b/src/minimal_overlay/bundles/dhcp/05_rc.dhcp @@ -0,0 +1,17 @@ +#!/bin/sh + +# This script gets called by udhcpc to setup the network interfaces + +ip addr add $ip/$mask dev $interface + +if [ "$router" ]; then + ip route add default via $router dev $interface +fi + +if [ "$ip" ]; then + echo -e "DHCP configuration for device $interface" + echo -e "IP: \\e[1m$ip\\e[0m" + echo -e "mask: \\e[1m$mask\\e[0m" + echo -e "router: \\e[1m$router\\e[0m" +fi + diff --git a/src/minimal_overlay/bundles/dhcp/bundle.sh b/src/minimal_overlay/bundles/dhcp/bundle.sh new file mode 100755 index 000000000..c5390eaa2 --- /dev/null +++ b/src/minimal_overlay/bundles/dhcp/bundle.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +SRC_DIR=$(pwd) + +. ../../common.sh + +echo "removing previous work area" +rm -rf $WORK_DIR/overlay/dhcp +mkdir -p $WORK_DIR/overlay/dhcp +cd $WORK_DIR/overlay/dhcp + +DESTDIR="$MAIN_SRC_DIR/work/src/minimal_overlay/rootfs" +mkdir -p "$DESTDIR" + +install -d -m755 "$DESTDIR/etc" +install -m644 "$SRC_DIR/resolv.conf" "$DESTDIR/etc/resolv.conf" +install -d -m755 "$DESTDIR/etc/autorun" +install -m755 "$SRC_DIR/01_network.sh" "$DESTDIR/etc/autorun/01_network.sh" +install -m755 "$SRC_DIR/05_rc.dhcp" "$DESTDIR/etc/05_rc.dhcp" + +# These libraries are necessary for the DNS resolving. +install -d -m755 "$DESTDIR/lib" +install -m755 "$SYSROOT/lib/libresolv.so.2" "$DESTDIR/lib/libresolv.so.2" +install -m755 "$SYSROOT/lib/libnss_dns.so.2" "$DESTDIR/lib/libnss_dns.so.2" +strip -g "$DESTDIR/lib/*" 2>/dev/null + +echo "dhcp scripts and libraries have been installed" diff --git a/src/minimal_rootfs/etc/resolv.conf b/src/minimal_overlay/bundles/dhcp/resolv.conf similarity index 100% rename from src/minimal_rootfs/etc/resolv.conf rename to src/minimal_overlay/bundles/dhcp/resolv.conf diff --git a/src/minimal_rootfs/etc/01_prepare.sh b/src/minimal_rootfs/etc/01_prepare.sh index a7f9ace72..c8eda6d8d 100755 --- a/src/minimal_rootfs/etc/01_prepare.sh +++ b/src/minimal_rootfs/etc/01_prepare.sh @@ -14,9 +14,7 @@ # | # +--(1) /etc/04_bootscript.sh # | | -# | +-- udhcpc -# | | -# | +-- /etc/05_rc.udhcp +# | +-- /etc/autorun/* (all scripts) # | # +--(2) /bin/sh (Alt + F1, main console) # | diff --git a/src/minimal_rootfs/etc/02_overlay.sh b/src/minimal_rootfs/etc/02_overlay.sh index 0f9d383c3..e83de560a 100755 --- a/src/minimal_rootfs/etc/02_overlay.sh +++ b/src/minimal_rootfs/etc/02_overlay.sh @@ -14,9 +14,7 @@ # | # +--(1) /etc/04_bootscript.sh # | | -# | +-- udhcpc -# | | -# | +-- /etc/05_rc.udhcp +# | +-- /etc/autorun/* (all scripts) # | # +--(2) /bin/sh (Alt + F1, main console) # | diff --git a/src/minimal_rootfs/etc/03_init.sh b/src/minimal_rootfs/etc/03_init.sh index db5f0295f..2d55b75b4 100755 --- a/src/minimal_rootfs/etc/03_init.sh +++ b/src/minimal_rootfs/etc/03_init.sh @@ -14,9 +14,7 @@ # | # +--(1) /etc/04_bootscript.sh # | | -# | +-- udhcpc -# | | -# | +-- /etc/05_rc.udhcp +# | +-- /etc/autorun/* (all scripts) # | # +--(2) /bin/sh (Alt + F1, main console) # | diff --git a/src/minimal_rootfs/etc/05_rc.dhcp b/src/minimal_rootfs/etc/05_rc.dhcp deleted file mode 100755 index d50762007..000000000 --- a/src/minimal_rootfs/etc/05_rc.dhcp +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh - -# System initialization sequence: -# -# /init -# | -# +--(1) /etc/01_prepare.sh -# | -# +--(2) /etc/02_overlay.sh -# | -# +-- /etc/03_init.sh -# | -# +-- /sbin/init -# | -# +--(1) /etc/04_bootscript.sh -# | | -# | +-- udhcpc -# | | -# | +-- /etc/05_rc.udhcp (this file) -# | -# +--(2) /bin/sh (Alt + F1, main console) -# | -# +--(2) /bin/sh (Alt + F2) -# | -# +--(2) /bin/sh (Alt + F3) -# | -# +--(2) /bin/sh (Alt + F4) - -ip addr add $ip/$mask dev $interface - -if [ "$router" ]; then - ip route add default via $router dev $interface -fi - -if [ "$ip" ]; then - echo -e "DHCP configuration for device $interface" - echo -e "IP: \\e[1m$ip\\e[0m" - echo -e "mask: \\e[1m$mask\\e[0m" - echo -e "router: \\e[1m$router\\e[0m" -fi - diff --git a/src/minimal_rootfs/init b/src/minimal_rootfs/init index a62a81f7d..1dbb86aa5 100755 --- a/src/minimal_rootfs/init +++ b/src/minimal_rootfs/init @@ -14,9 +14,7 @@ # | # +--(1) /etc/04_bootscript.sh # | | -# | +-- udhcpc -# | | -# | +-- /etc/05_rc.udhcp +# | +-- /etc/autorun/* (all scripts) # | # +--(2) /bin/sh (Alt + F1, main console) # | @@ -43,7 +41,7 @@ if [ ! "$key" = "" ] ; then # Set flag which indicates that we have obtained controlling terminal. export PID1_SHELL=true - + # Interactive shell with controlling tty as PID 1. exec setsid cttyhack sh fi From 35f82aa07dfe8ce7b4a420e5c1f9c5b58a89394c Mon Sep 17 00:00:00 2001 From: bauen1 Date: Sun, 30 Jul 2017 09:54:05 +0200 Subject: [PATCH 2/2] Fixed network autorun script --- .../etc/autorun => minimal_overlay/bundles/dhcp}/01_network.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{minimal_rootfs/etc/autorun => minimal_overlay/bundles/dhcp}/01_network.sh (100%) diff --git a/src/minimal_rootfs/etc/autorun/01_network.sh b/src/minimal_overlay/bundles/dhcp/01_network.sh similarity index 100% rename from src/minimal_rootfs/etc/autorun/01_network.sh rename to src/minimal_overlay/bundles/dhcp/01_network.sh