From 0d9040988d3ecfe0c4fb629fb9ef814f95d80c68 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Wed, 8 Apr 2015 13:54:26 +0200 Subject: [PATCH] upgraded busybox, activated ntpd, activated mdev, added hotplug scripts for USB storage - /media, added sbin paths to dropbear --- Makefile | 24 +++++++++++++++++++++++- fs-add/etc/config.default | 11 +++++++++++ fs-add/etc/init.d/ntpd | 7 +++++++ fs-add/etc/init.d/{rcSBB => rcS} | 19 ++++++++++++++++--- fs-add/etc/{inittabBB => inittab} | 6 ++++-- fs-add/etc/mdev.conf | 2 ++ fs-add/etc/motd | 3 ++- fs-add/sbin/sd-hotplug.sh | 26 ++++++++++++++++++++++++++ fs-add/sbin/sd-hotunplug.sh | 14 ++++++++++++++ tools/do_min_fs.py | 5 +++++ 10 files changed, 110 insertions(+), 7 deletions(-) create mode 100755 fs-add/etc/init.d/ntpd rename fs-add/etc/init.d/{rcSBB => rcS} (76%) rename fs-add/etc/{inittabBB => inittab} (75%) create mode 100644 fs-add/etc/mdev.conf create mode 100755 fs-add/sbin/sd-hotplug.sh create mode 100755 fs-add/sbin/sd-hotunplug.sh diff --git a/Makefile b/Makefile index 0e69c45a..e42740b7 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -BUILD=3 +BUILD=4 VERSION=$(shell date +%Y%m%d%H%M)-$(BUILD) CPUS=4 STLINUX=/opt/STM/STLinux-2.4 @@ -15,6 +15,8 @@ EXTRA_AXE_MODULES=axe_dmx.ko axe_dmxts.ko axe_fe.ko axe_fp.ko axe_i2c.ko \ ORIG_FILES=main_axe.out mknodes.out +BUSYBOX=busybox-1.23.2 + DROPBEAR=dropbear-2015.67 DROPBEAR_SBIN_FILES=dropbear DROPBEAR_BIN_FILES=dbclient dropbearconvert dropbearkey scp @@ -55,6 +57,7 @@ fs.cpio: minisatip -b "bash strace" \ $(foreach m,$(EXTRA_AXE_MODULES), -e "$(EXTRA_AXE_MODULES_DIR)/$(m):lib/modules/$(m)") \ $(foreach m,$(ORIG_FILES), -e "$(EXTRA_AXE_MODULES_DIR)/../$(m):root") \ + -e "apps/$(BUSYBOX)/busybox:bin/busybox" \ $(foreach f,$(DROPBEAR_SBIN_FILES), -e "apps/$(DROPBEAR)/$(f):sbin/$(f)") \ $(foreach f,$(DROPBEAR_BIN_FILES), -e "apps/$(DROPBEAR)/$(f):usr/bin/$(f)") \ -e "apps/minisatip/minisatip:sbin/minisatip" \ @@ -194,6 +197,22 @@ minisatip: apps/minisatip/minisatip minisatip-clean: rm -rf apps/minisatip +# +# busybox +# + +apps/$(BUSYBOX)/Makefile: + $(call WGET,http://busybox.net/downloads/$(BUSYBOX).tar.bz2,apps/$(BUSYBOX).tar.bz2) + tar -C apps -xjf apps/$(BUSYBOX).tar.bz2 + +apps/$(BUSYBOX)/busybox: apps/$(BUSYBOX)/Makefile + make -C apps/$(BUSYBOX) CROSS_COMPILE=$(TOOLCHAIN)/bin/sh4-linux- defconfig + make -C apps/$(BUSYBOX) CROSS_COMPILE=$(TOOLCHAIN)/bin/sh4-linux- + #make -C apps/$(DROPBEAR) PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" + +.PHONY: busybox +busybox: apps/$(BUSYBOX)/busybox + # # dropbear # @@ -213,6 +232,9 @@ apps/$(DROPBEAR)/dropbear: apps/$(DROPBEAR)/configure --disable-utmpx \ --disable-wtmp \ --disable-wtmpx + sed -e 's/DEFAULT_PATH \"\/usr\/bin:\/bin\"/DEFAULT_PATH \"\/sbin:\/usr\/sbin:\/bin:\/usr\/bin:\/usr\/local\/bin\"/g' \ + < apps/$(DROPBEAR)/options.h > apps/$(DROPBEAR)/options.h.2 + mv apps/$(DROPBEAR)/options.h.2 apps/$(DROPBEAR)/options.h make -C apps/$(DROPBEAR) PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" .PHONY: dropbear diff --git a/fs-add/etc/config.default b/fs-add/etc/config.default index 422accf5..f09fedfe 100644 --- a/fs-add/etc/config.default +++ b/fs-add/etc/config.default @@ -1,3 +1,9 @@ +# +# SATIP AXE firmware configuration +# + +HOSTNAME="satip-axe" + # # IPV4 config # @@ -8,6 +14,11 @@ IPV4="dhcp" #IPV4_BROADCAST="192.168.1.255" #IPV4_GATEWAY="192.168.1.1" +# +# ntpd +# +NTPD_OPTS="-p 0.pool.ntp.org" + # # telnetd # diff --git a/fs-add/etc/init.d/ntpd b/fs-add/etc/init.d/ntpd new file mode 100755 index 00000000..acebb86d --- /dev/null +++ b/fs-add/etc/init.d/ntpd @@ -0,0 +1,7 @@ +#!/bin/sh + +test -r /etc/sysconfig/config && . /etc/sysconfig/config + +test -z "$NTPD_OPTS" && NTPD_OPTS="-p 0.pool.ntp.org" + +exec /usr/sbin/ntpd -I eth0 $NTPD_OPTS diff --git a/fs-add/etc/init.d/rcSBB b/fs-add/etc/init.d/rcS similarity index 76% rename from fs-add/etc/init.d/rcSBB rename to fs-add/etc/init.d/rcS index 2dfbe4b0..69cf2df7 100755 --- a/fs-add/etc/init.d/rcSBB +++ b/fs-add/etc/init.d/rcS @@ -6,7 +6,10 @@ busybox mount -t proc proc /proc # remount root filesystem in rw mode busybox mount -o remount,rw / # Create all symbolic links. -/bin/busybox --install -s +/bin/busybox --install -s + +# Date +date 010112002015 >/dev/null # mount /dev and devpts to allow logging in mount -t tmpfs -o size=64k,mode=0755 tmpfs /dev @@ -15,12 +18,18 @@ mount -t devpts none /dev/pts -ogid=5,mode=620 # use mdev/sysfs mount -t sysfs sysfs /sys +touch /dev/mdev.seq +mkdir -p /media echo /sbin/mdev > /proc/sys/kernel/hotplug -echo /sbin/hotplug > /proc/sys/kernel/hotplug mdev -s # make /tmp as tmpfs mount -t tmpfs -o size=1M tmpfs /tmp +mv /var /var.2 +mkdir /tmp/var +ln -s /tmp/var /var +rm -rf /var.2 +mkdir -p /tmp/var/run /tmp/var/log /tmp/var/spool # start syslogd syslogd -C256 @@ -41,8 +50,12 @@ if test -r /etc/sysconfig/passwd ; then cp /etc/sysconfig/passwd /etc/passwd fi +# hostname +test -r /etc/sysconfig/config && . /etc/sysconfig/config +test -n "$HOSTNAME" && hostname "$HOSTNAME" +test -z "$HOSTNAME" && hostname satip-axe + # basic network -hostname satip-axe ifconfig lo 127.0.0.1 netmask 255.255.255.0 ifconfig eth0 up route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 diff --git a/fs-add/etc/inittabBB b/fs-add/etc/inittab similarity index 75% rename from fs-add/etc/inittabBB rename to fs-add/etc/inittab index b501087e..70f110eb 100755 --- a/fs-add/etc/inittabBB +++ b/fs-add/etc/inittab @@ -1,9 +1,11 @@ # Boot -::sysinit:/etc/init.d/rcSBB +::sysinit:/etc/init.d/rcS # Console -ttyAS0::askfirst:/bin/bash --init-file /etc/bashrc +ttyAS0::askfirst:/bin/sh # Network ::once:/etc/init.d/network +# Time Network Protocol +::once:/etc/init.d/ntpd # telnetd ::once:/etc/init.d/telnetd # dropbear diff --git a/fs-add/etc/mdev.conf b/fs-add/etc/mdev.conf new file mode 100644 index 00000000..7a0117ed --- /dev/null +++ b/fs-add/etc/mdev.conf @@ -0,0 +1,2 @@ +-sd[a-h][0-9]{1,2} 0:0 660 @/sbin/sd-hotplug.sh +-sd[a-h][0-9]{1,2} 0:0 660 $/sbin/sd-hotunplug.sh diff --git a/fs-add/etc/motd b/fs-add/etc/motd index 97cd0176..76164baf 100644 --- a/fs-add/etc/motd +++ b/fs-add/etc/motd @@ -1,2 +1,3 @@ -Welcome to SATIP-AXE server @VERSION@ \ No newline at end of file +Welcome to SATIP-AXE server @VERSION@ + diff --git a/fs-add/sbin/sd-hotplug.sh b/fs-add/sbin/sd-hotplug.sh new file mode 100755 index 00000000..82ee3823 --- /dev/null +++ b/fs-add/sbin/sd-hotplug.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +BLKID=$(/sbin/blkid /dev/$MDEV) +eval ${BLKID#*:} +if [ -n "$LABEL" ]; then + MOUNT_POINT=/media/$LABEL +else + MOUNT_POINT=/media/$MDEV +fi + +logger -p local0.notice "Mounting $MDEV : $MOUNT_POINT" + +mkdir -p "$MOUNT_POINT" + +for fs_type in vfat msdos ; do + if $(mount -t $fs_type -o umask=0 /dev/$MDEV "$MOUNT_POINT" 2>/dev/null) ; then + logger -p local0.notice "... $MDEV mounted using $fs_type filesystem" + exit 0 + fi +done +for fs_type in ext4 ext3 ext2 ; do + if $(mount -t $fs_type /dev/$MDEV "$MOUNT_POINT" 2>/dev/null) ; then + logger -p local0.notice "... $MDEV mounted using $fs_type filesystem" + exit 0 + fi +done diff --git a/fs-add/sbin/sd-hotunplug.sh b/fs-add/sbin/sd-hotunplug.sh new file mode 100755 index 00000000..7c376821 --- /dev/null +++ b/fs-add/sbin/sd-hotunplug.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +logger -p local0.notice "Unmounting $MDEV" + +for MOUNT_POINT in /media/* ; do + if test -d "$MOUNT_POINT"; then + d=$(mountpoint -n "$MOUNT_POINT" 2> /dev/null | cut -d ' ' -f 1) + if test "$d" = "$MDEV" -o "$d" = "UNKNOWN"; then + logger -p local0.notice "Unmounting $MDEV : $MOUNT_POINT" + umount -f "$MOUNT_POINT" + rmdir "$MOUNT_POINT" + fi + fi +done diff --git a/tools/do_min_fs.py b/tools/do_min_fs.py index f83f02d5..6cfe4be2 100755 --- a/tools/do_min_fs.py +++ b/tools/do_min_fs.py @@ -173,6 +173,10 @@ def setup_busybox(): run_cmd(' ln -s /bin/busybox fs/sbin/init') run_cmd(' ln -s /bin/busybox fs/bin/sh') + run_cmd('mknod fs/dev/console c 5 1') + run_cmd('mknod fs/dev/null c 1 3') + run_cmd('mknod fs/dev/zero c 1 5') + #----------------------------------------------- def setup_sysvinit(): @@ -564,6 +568,7 @@ for j in library_list: print ' ' + 30*'=' + '\n' gen_fs(library_list, boot_type) +run_cmd('rm -v fs/etc/inittabBB fs/etc/init.d/rcSBB') run_cmd('cp -av fs-add/* fs') f = open("fs/etc/motd") b = f.read(1024*1024)