#!/bin/busybox sh busybox mount -t proc proc /proc AXECFG=$(busybox awk 'match($0, /axecfg=[^ ]*/) {print substr($0,RSTART,RLENGTH)}' /proc/cmdline) busybox echo "Welcome to SATIP-AXE Linux! $AXECFG" AXECFG=${AXECFG:7:255} # remount root filesystem in rw mode busybox mount -o remount,rw / # Create all symbolic links. /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 mkdir /dev/pts /dev/input mount -t devpts none /dev/pts -ogid=5,mode=620 # use mdev/sysfs mkdir -p /lib/modules/$(uname -r) mount -t sysfs sysfs /sys touch /dev/mdev.seq mkdir -p /media echo /sbin/mdev > /proc/sys/kernel/hotplug mdev -s # make /tmp as tmpfs mount -t tmpfs -o size=4M 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 /var/lib/nfs mount -t nfsd nfsd /proc/fs/nfsd # sysctl.conf sysctl -q -p # config/data storage mkdir -p /mnt/data mount -t jffs2 /dev/mtdblock4 /mnt/data/ mkdir -p /mnt/data/satip-axe/sysconfig ln -s /mnt/data/satip-axe/sysconfig /etc/sysconfig if test "$AXECFG" = "reset"; then mv /etc/sysconfig/config.old /etc/sysconfig/config.old1 2> /dev/null mv /etc/sysconfig/config /etc/sysconfig/config.old 2> /dev/null mv /etc/sysconfig/passwd.old /etc/sysconfig/passwd.old1 2> /dev/null mv /etc/sysconfig/passwd /etc/sysconfig/passwd.old 2> /dev/null fi if ! test -r /etc/sysconfig/config ; then cp /etc/config.default /etc/sysconfig/config fi if test -r /etc/sysconfig/passwd ; then cp /etc/sysconfig/passwd /etc/passwd fi # load config test -r /etc/sysconfig/config && . /etc/sysconfig/config # start syslogd syslogd -C256 $SYSLOGD_OPTS # loopback ifconfig lo 127.0.0.1 netmask 255.255.255.0 # AXE modules and AXE hw initialization logger -p local0.notice "AXE drivers load start" axehelper i2c_reg_read 0xd0 0xf000 > /dev/null 2> /dev/null || logger -p local0.notice "I2C Demod #1(D0) failed" axehelper i2c_reg_read 0xd2 0xf000 > /dev/null 2> /dev/null || logger -p local0.notice "I2C Demod #2(D2) failed" d=/lib/modules/axe insmod $d/stapi_core_stripped.ko insmod $d/stapi_ioctl_stripped.ko insmod $d/axe_i2c.ko insmod $d/i2c_mangle.ko insmod $d/axe_fe.ko insmod $d/axe_fp.ko insmod $d/axe_dmx.ko if test "$AXECFG" = "demuxts_old" -o "$DEMUXTS_OLD" = "yes"; then insmod $d/axe_dmxts_std.ko else insmod $d/axe_dmxts.ko fi mkdir -p /dev/axe /dev/stapi maj= for i in $(cat /proc/devices); do if test -z "$maj"; then if test "$i" = "Block"; then break fi maj=$i continue fi if test -z "$i"; then maj= continue elif test "${i::2}" = "st" -a "${i:$(expr ${#i} - 6)}" = "_ioctl"; then mknod /dev/stapi/$i c $maj 0 elif test "$i" = "i2c_drv"; then mknod /dev/axe/i2c_drv-0 c $maj 0 elif test "$i" = "fp"; then mknod /dev/axe/fp-0 c $maj 0 elif test "$i" = "frontend"; then mknod /dev/axe/frontend-0 c $maj 0 mknod /dev/axe/frontend-1 c $maj 1 mknod /dev/axe/frontend-2 c $maj 2 mknod /dev/axe/frontend-3 c $maj 3 elif test "$i" = "demux"; then mknod /dev/axe/demux-0 c $maj 1 mknod /dev/axe/demux-1 c $maj 0 mknod /dev/axe/demux-2 c $maj 3 mknod /dev/axe/demux-3 c $maj 2 elif test "$i" = "demuxts"; then mknod /dev/axe/demuxts-0 c $maj 1 mknod /dev/axe/demuxts-1 c $maj 0 mknod /dev/axe/demuxts-2 c $maj 3 mknod /dev/axe/demuxts-3 c $maj 2 fi maj= done /etc/init.d/axe & nc -l 127.0.0.1:1001 -e /bin/true rm -f /root/main_init.sh /tmp/axe-done logger -p local0.notice "AXE drivers load finish" # localtime if test -r /etc/sysconfig/localtime; then ln -s sysconfig/localtime /etc/localtime fi # hostname test -n "$HOSTNAME" && hostname "$HOSTNAME" test -z "$HOSTNAME" && hostname satip-axe # modules if test -n "$KMODULES"; then for m in $KMODULES; do insmod "/lib/modules/$m" done fi # basic network ifconfig eth0 txqueuelen 2000 up route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 # unpack extra packages for package in /mnt/data/satip-axe/packages/*.tar.gz; do if test -r "$package"; then logger -p local0.notice "Unpacking package $package" tar xz -C / -f "$package" fi done for package in /mnt/data/satip-axe/packages/*.tar.bz2; do if test -r "$package"; then logger -p local0.notice "Unpacking package $package" tar xj -C / -f "$package" fi done # run extra services inithup= for prg in /etc/init.extra/*; do if test -x "$prg"; then if test -z "$inithup"; then echo "# Added by /etc/init.d/rcS - init.extra" >> /etc/inittab fi echo "::respawn:${prg}" >> /etc/inittab inithup=1 fi done if test -n "$inithup"; then kill -SIGHUP 1 fi # local boot if test -x /etc/sysconfig/localboot ; then /etc/sysconfig/localboot fi