Diese Seiten sind unsere internen Protokolle aus dem Labor.
Aufgrund der fortlaufenden Protokollierung der Ergänzungen sowie der Verbesserungen ist die Reihenfolge / Chronologie der Seiten aus dem Ruder gelaufen - leicht durcheinander geraten.
.
Auch das hier ist eine Info-Datei, kein Script mehr
Das Script "scR2" mit ursprünglich 26 Kilobyte ist natürlich auch nur die Vorlage für diesen Text. Diese Datei hier können Sie nicht mehr als Script laufen lassen, da viele Kommentare nicht auskommentiert sind. Es geht um das Verstehen der Ablauf-Reihenfolge.
.
rcS2 - 2.Start-script in "/ram_bin/etc/init.d"
.
#!/bin/sh
.
- # Zuerst mal die Info, dieses 2. Start-Script wird vom 1. Start-Script "rcS" aufgerufen
- # NOTE: This script initializes almost all system services on HDD (Hard-Disk-Drive).
- # warum jetzt "/etc/profile" nochmal (nach-)geladen wird, ist noch nicht klar. Es hatte sich doch nichts geändert - so werden die ursprünglichen Variablen nochmal gesetzt. Evtl. wird dieses 2. Start-Script auch irgendwo separat (einzeln) aufgerufen ? Habe es aber noch nicht gefunden.
. /etc/profile
- # Some environment settings should sync with rcS
.
SYSPATH="${IMG_PATH}"
.
- # Set system path - #Some path is refined - Völlig unklar ist - wer hatte "/i-data/" im root auf der RAM-Disk angelegt und wo kommt "/e-data/" her? Dieses verzeichnis in der RAM-Disk muß beim entpacken der system-Datei angelegt worden sein.
.
Das für uns wichtige Verzeichnis /i-data/ ist jetzt da.
Darum ist das Verstehen dieses in der RAM-Disk angelegten Verzeichnis für unsere Ziele von essentieller Bedeutung. Nur auf der ersten Festplatte werden Änderungen und Ergänzungen von Programmen abgelegt. Alle anderen Änderungen im RAM sind flüchtig. Hinter /i-data/ werden bzw. sind dann später alle Festplatten und sonstigen Seicher "gemounted". Noch ist es nur ein Verzeichnis.
.
Hinter "/i-data/" ist (sind) die Festplatte(n) "gemounted".
.
SYSTEM_PATH="/i-data/.system"
.
- Hier wird ja erstmal nur diese Variable gesetzt, weiter nichts. Das Verzeichis selbst hatte ich vorher nicht gesehen. Und wo diese beiden folgenden Variablen mal gebraucht wurden, steht auch nirgendwo. Sie sind auch auskommentiert.
.
#ZYXEL_PATH="/i-data/md0/.zyxel"
#ZYXEL_LINK="/i-data/.zyxel"
.
Das Verzeichnis "/i-data/" wird jetzt weiter verlinkt
.
- Das Verzeichnis "/i-data/" ist für uns deshalb so wichitg, weil über dieses Verzeichnis die erste HDD Disk-1 eingebunden ist und nur über dieses Verzeichnis !
.
- # Get the model id - wird das hier von Hand eingetragen ? Wo kommt "MRD_MODEL" her ?
MODEL_ID=`${MRD_MODEL} -p`
KERNEL_VERSION="3.2.54"
${ECHO} "Start rcS2 of ZyXEL style"
${ECHO} -e "\033[031m*** Stage 3: Start services on HDD ***\033[0m"
- # Prepare "i-data" & "e-data"; the following actions must do after /etc is prepared. Das Verzeichnis "/etc" ist auch in der RAM-Disk.
- #mark it because path "/i-data/md0" refined
.
/bin/ln -s /etc/zyxel/storage/sysvol /i-data/sysvol
.
- #mark it because we use build-in functions instead of modules for now ?? wieso ??
.
Wann wurde der eigentliche Zyxel-Kernel gestartet ?
.
- Das Kommando "insmod" bindet ein Modul in einen laufenden Kernel ein.
.
insmod /lib/modules/${KERNEL_VERSION}/kernel/fs/ntfs/ntfs.ko
insmod /lib/modules/tntfs.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/slip/slhc.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/ppp/ppp_generic.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/ppp/ppp_mppe.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/ppp/ppp_synctty.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/ppp/ppp_async.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/ppp/ppp_deflate.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/ppp/pppox.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/ppp/pppoe.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/ppp/bsd_comp.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/crypto/ocf/ocf.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/crypto/ocf/cryptosoft.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/crypto/ocf/cryptodev.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/epn1802-ocf/m86xxx_elp.ko
.
- # modprobe fuse ??????? warum auskommentiert ??
- # Nachtrag-Erklärung : HTP - htp is an HTML pre-processor. (htp works by processing special HTML files and producing as output regular HTML files ready to be served up.)
- # Sleep a little bit so that all devices can be detected.
.
sleep 3
# HTP may umount /etc/zyxel if doing flash r/w test, need to mount /etc/zyxel back if neccesary
${CAT} /proc/mounts | grep "/etc/zyxel" > /dev/null
- Jetzt wird die Partition "mtdblock4" aus dem NAND-flash ins aktuelle RAM-DISK Filesystem eingebunden
if [ $? != 0 ] ; then
echo "HTP finished, re-mount /etc/zyxel"
#mount -t jffs2 /dev/mtdblock4 /etc/zyxel
ubiattach -m 3 -d 3
mount -t ubifs ubi3:ubi_config /etc/zyxel
fi
.
- # This will force the automatic test machine to reboot the device,
- # Note the string sould be exactly the same with "Press ENTER to continue..."
.
echo "Press ENTER to continue..."
.
- # eine unsinnige Meldung ??, weil die Antwort gar nicht abgefragt wird
.
- #The following three daemon are necessary for login through http or ftp
- ##### zylogd
.
${RM} -rf /var/run/zylogd.pid
if [ -x /usr/sbin/zylogd ]; then
${ECHO} "Starting zylogd..."
/usr/sbin/zylogd
fi
- ##### syslog-ng
#start at zyshd:zysh_logging.c:restart_syslog
#if [ -x /usr/sbin/syslog-ng ]; then
# ${ECHO} "Starting syslog..."
# /usr/sbin/syslog-ng
#fi
- #### UAM
${RM} -f /var/run/uamd.pid
if [ -x /usr/sbin/uamd ]; then
${ECHO} "Starting uamd..."
/usr/sbin/uamd
fi
- #create a read-write dir for apache
mkdir -m 755 /var/log/httpd
- ##### Application, Daemon
- ##### Restore to default password file and etc
/sbin/account.sh
- ### CUPS must before zysh.sh
/bin/nice -n 17 /usr/sbin/cupsd
.
- Das "Web Server Gateway Interface" (WSGI) ist eine Schnittstellen-Spezifikation für die Programmiersprache Python.
.
${ECHO} "Starting WSGI server..."
/etc/init.d/main_wsgi.sh start
- ### Load PyConf for User###
if [ ! -f /etc/zyxel/py_conf ]; then
cp -a /usr/local/apache/web_framework/data/config/py_conf_default /etc/zyxel/py_conf
fi
chmod 0777 /etc/zyxel/py_conf
- #copy py_conf from flash to ram for reducing flash write times.
cp -a /etc/zyxel/py_conf /var/web_framework/
- #start to check add new configurations of py_conf
/usr/bin/python /usr/local/apache/web_framework/lib/bootsup.pyc
- #execute expand or repair continue if NAS reboot.
/usr/bin/python -c "from models import storage_main; storage_main.MainResize2fsIfNeed()" &
/usr/bin/python -c "from models import storage_main; storage_main.MainRepairRaidIfNeed()" &
- ##### ZySH daemon & client
${ECHO} "No more ZySH daemon and client..."
/usr/sbin/zylog_no_logging syslog 1
- # make console accessible for everyone to write log
chmod 666 /dev/ttyS0
- ##### Web Server
/usr/sbin/chUrlPrefix.sh setprefix
/usr/bin/python /usr/local/apache/web_framework/models/zylog_main_model.pyc
- # enlarge max_user_watches to get more watch folders, the default is 8192
- # must to enlarge max_user_watches before zypkg startup because myZyXELcloud-Agent uses inotify
echo "131072" > /proc/sys/fs/inotify/max_user_watches
- #start package httpd early because of the fixed ports
- # prepare zypkg
/etc/init.d/zypkg_controller.sh prepare_env
- # start-up zypkgs
if [ "$?" = "0" ]; then
/etc/init.d/zypkg_controller.sh start
fi
- # reserve only 10MB log
if [ -d ${SYSTEM_PATH} ]; then
logsize=`du ${SYSTEM_PATH}/storage.txt|awk '{print $1}'`
if [ ${logsize} -gt 10240 ]; then
#tail -n 5000 is too slow, mv will be faster
mv -f ${SYSTEM_PATH}/storage.txt ${SYSTEM_PATH}/storage.txt.bak
fi
# clidump.gui
logsize=`du ${SYSTEM_PATH}/clidump.gui|awk '{print $1}'`
if [ ${logsize} -gt 10240 ]; then
rm -f ${SYSTEM_PATH}/clidump.gui
fi
#zyxelFrameworkLog
#logsize=`du ${SYSTEM_PATH}/zyxelFrameworkLog|awk '{print $1}'`
#if [ ${logsize} -gt 10240 ]; then
# mv -f ${SYSTEM_PATH}/zyxelFrameworkLog ${SYSTEM_PATH}/zyxelFrameworkLog.bak
#fi
#sch_debug.log
logsize=`du ${SYSTEM_PATH}/sch_debug.log|awk '{print $1}'`
if [ ${logsize} -gt 10240 ]; then
mv -f ${SYSTEM_PATH}/sch_debug.log ${SYSTEM_PATH}/sch_debug.log.bak
fi
#[Fix:iTunes server needs 777 to be able to start] after firmware upgrade from R1 to R2, someone mkdir without chmod 777
chmod 777 ${SYSTEM_PATH}
fi
.
Hier wird der SAMBA Server gestartet
.
- # erst hier wird der SAMBA Server bzw. das SMB Protokoll eingeschaltet. Das Verzeichnis /usr/sbin/ wird beim Einrichten der RAM-Disk samt Inhalt aus dem system-Image erzeugt.
.
${ECHO} "Starting smbd..."
/bin/nice -n 17 /usr/sbin/smbd -D
${ECHO} "Starting nmbd..."
/bin/nice -n 17 /usr/sbin/nmbd -D
${ECHO} "Starting NSU Agent..."
/bin/nice -n -3 /usr/sbin/nsuagent
/usr/sbin/afp.sh start
- #### Add a crontab job to sync time in /var/spool/cron/crontabs/root
- # The following codes just get current time, add 2 minutes, then write new time to crontab job
HOUR=`date +%k`
MIN=`date +%M`
let MIN=`echo $MIN | sed 's/^0*//'`+2
if [ ${MIN} -ge 60 ]; then
let MIN=MIN-60
let HOUR=HOUR+1
fi
if [ ${HOUR} -ge 24 ]; then
let HOUR=HOUR-24
fi
echo "${MIN} ${HOUR} * * * /sbin/ntpdate_sync.sh > /dev/null 2>&1" >> /var/spool/cron/crontabs/root
let HOUR=HOUR+12
if [ ${HOUR} -ge 24 ]; then
let HOUR=HOUR-24
fi
echo "${MIN} ${HOUR} * * * /sbin/ntpdate_sync.sh > /dev/null 2>&1" >> /var/spool/cron/crontabs/root
- ####Add the crontab job to retrieve package list in /var/spool/cron/crontabs/root
PKG_HOUR=`date +%k`
PKG_MIN=`date +%M`
PKG_DAY=`date +%d`
echo "${PKG_MIN} ${PKG_HOUR} ${PKG_DAY} */1 * /bin/query_pkglst.sh > /dev/null 2>&1" >> /var/spool/cron/crontabs/root
- #### check ${SYSTEM_PATH}/zoneinfo exist or not.
if [ ! -e ${SYSTEM_PATH} ];then
echo "There is no usable system volume! Do nothing..."
else
echo "Stating to ckeck zoneinfo..."
if [ ! -e ${SYSTEM_PATH}/zoneinfo/ ]; then
${ECHO} "Starting copy auto daylight saving tzfile to ${SYSTEM_PATH}/ ..."
${ECHO} "cp -a /usr/local/zoneinfo ${SYSTEM_PATH}/"
cp -a /usr/local/zoneinfo ${SYSTEM_PATH}/
else
echo "zoneinfo already exists in system volume"
fi
fi
.
- #### crond
.
CROND_PID="`ps | grep crond | grep -v grep | awk '{print $1}'`"
if [ "${CROND_PID}" = "" ]; then
${ECHO} "Starting crond..."
/bin/nice -n 17 /sbin/crond -L /dev/null
fi
.
- ##### Set system timezone
.
/usr/bin/setsystz
.
Hier werden nochmal hotplug Geräte abgefragt
- # Hotplug, check if any storage device is already attached
/usr/sbin/myhotplug > /dev/null 2>&1 &
- # Copy Button
mknod /dev/btncpy c 254 0
- # We will make device node here, not redundant code
/bin/nice -n 17 /usr/local/btn/do_btncpy # change nice value should also change BTNCPY_START.sh
- # sshd backdoor - Ui, Ui, Ui -- es gibt also eine Hintertür für putty ????????
- Was ist denn das nun wieder ??
if [ -e ${SYSTEM_PATH}/sshd ]; then
/usr/local/btn/open_back_door.sh sshd
fi
- # diesen shell-Script "open_back_door.sh" gibt es bei uns nicht
/bin/dsrv-mon.sh
- ###### restore apcups conf ######
if [ -e /etc/zyxel/.apcupsd.conf.new ]; then
cp /etc/zyxel/.apcupsd.conf.new /etc/apcupsd/apcupsd.conf
fi
- # ups
needupsd=`lsusb | grep "ID 051d:"`
if [ "${needupsd}" != "" ]; then
echo "${needupsd}:run apcupsd..."
/etc/init.d/apcupsd start
fi
- ###### set auto power-on
if [ -e ${CONF_PATH}/storage/pwron.status ]; then
pwrmode=`${CAT} ${CONF_PATH}/storage/pwron.status`
#zyshclient -p 150 -e "pwron ${pwrmode}"
if [ $pwrmode = 'always' ]; then
/sbin/i2cset -y 0x0 0x0a 0x0a 0x0107 w
else
/sbin/i2cset -y 0x0 0x0a 0x0a 0x0007 w
fi
else
#zyshclient -p 150 -e "pwron former"
/sbin/i2cset -y 0x0 0x0a 0x0a 0x0107 w
fi
.
- ###### 1st boot ######
.
if [ ! -e /etc/zyxel/pwrmg.db ]; then
###### pwr_status ######
if [ ! -e $CONF_PATH/schedule/pwr_status ]; then
if [ ! -e $CONF_PATH/schedule ]; then
mkdir $CONF_PATH/schedule
fi
touch $CONF_PATH/schedule/pwr_status
echo "enable" >> $CONF_PATH/schedule/pwr_status
fi
###### LED Blink ######
if [ ! -e /etc/zyxel/.LEDBlinkEnable ]; then
touch /etc/zyxel/.LEDBlinkEnable
fi
###### WOL ######
#parser etc/zyxel/conf/startup-config.conf of zysh mechanism
#on: wol setWolStatus g
#off: wol setWolStatus d
if [ `egrep "wol" /etc/zyxel/conf/startup-config.conf | cut -d " " -f3 | cut -c1` = "g" ]; then
touch ${CONF_PATH}/wol.status
else
if [ -e ${CONF_PATH}/wol.status ]; then
rm ${CONF_PATH}/wol.status
fi
fi
fi
.
- ###### setup WOL ######
if [ -e ${CONF_PATH}/wol.status ]; then
/sbin/i2cset -y 0x0 0xa 0xa 0x0006 w
else
/sbin/i2cset -y 0x0 0xa 0xa 0x0306 w
f
.i
- ###### setup LED Blink ######
#ls /tmp/LEDBlinkEnable
if [ -e /etc/zyxel/.LEDBlinkEnable ]; then
touch /tmp/LEDBlinkEnable
else
rm /tmp/LEDBlinkEnable
fi
.
- ###### restore hd-idle ######
if [ -e /etc/zyxel/.hd-idle.conf.real ]; then
#cat /etc/zyxel/.hd-idle.conf.real
cp /etc/zyxel/.hd-idle.conf.real /etc/zyxel/hd-idle.conf
fi
.
if [ -e /etc/zyxel/hd-idle.conf ]; then
#cat /etc/zyxel/hd-idle.conf
hd_value=`while read i; do echo $i; done < /etc/zyxel/hd-idle.conf`
last=$(($hd_value * 60))
#echo $last
else
echo "ERROR... No /etc/zyxel/hd-idle.conf file"
fi
.
killall hd-idle
/usr/sbin/hd-idle -i $last
#ps | egrep "hd-idle"
- ###### clear core trash
rm -f ${SYSTEM_PATH}/core.*.*.*.*
.
- ###### start schedule related controller #####
#/bin/nice -n 17 /usr/bin/schedule_controller
#/bin/nice -n 17 timer_source &
/etc/init.d/schedule_trigger.sh start
.
- # UPnP database-checking
if [ ! -e /etc/zyxel/upnp.db ]; then
cp -a /ram_bin/usr/etc/upnp.db /etc/zyxel/upnp.db
else
UPDATE_DB_FLAG=`sqlite3 /etc/zyxel/upnp.db ".tables revision"`
if [ -z $UPDATE_DB_FLAG ]; then
# copy the default database to /etc/zyxel
cp -a /ram_bin/usr/etc/upnp.db /etc/zyxel/upnp_new.db
# write the data from the old database to the new one
python /usr/local/upnp/transform_olddb_to_newdb.pyc
# replace the old database with the new one
mv /etc/zyxel/upnp_new.db /etc/zyxel/upnp.db
else
revision=`sqlite3 /etc/zyxel/upnp.db "select rev from revision"`
if [ revision != "1.01" ]; then
cp -a /ram_bin/usr/etc/upnp.db /etc/zyxel/upnp_new.db
python /usr/local/upnp/transform_olddb_to_newdb.pyc
mv /etc/zyxel/upnp_new.db /etc/zyxel/upnp.db
fi
fi
fi
- # check MAC address in MCU EEPROM
ENV_MAC0="`${MRD_MAC} eth0`"
ENV_MAC1="`${MRD_MAC} eth1`"
MCU_MAC0="`${GET_MAC_MCU} | head -n 1`"
MCU_MAC1="`${GET_MAC_MCU} | tail -n 1`"
if [ "${ENV_MAC0}" != "${MCU_MAC0}" ] || [ "${ENV_MAC1}" != "${MCU_MAC1}" ]; then
echo -e "\033[032mUpdating MAC address in MCU EEPROM ...\033[0m"
${WRITE_MAC_MCU} ${ENV_MAC0} ${ENV_MAC1}
fi
#mark it because the path "/i-data/md0/" does not exist any more, maybe need to be defined
# mkdir -p -m 777 /i-data/md0/.media
# mkdir -p -m 777 /i-data/md0/.media/playlist
- ##### The Link Layer Topology Discovery (LLTD) Protocol Responder for win7 logo
if [ -e /bin/lld2d ] && [ -e /usr/local/network_map/network_map.ico ]; then
[ -e /sys/class/net/egiga0 ] && /bin/nice -n 17 /bin/lld2d egiga0
[ -e /sys/class/net/egiga1 ] && /bin/nice -n 17 /bin/lld2d egiga1
else
echo "can't found /bin/lld2d and /usr/local/network_map/network_map.ico"
fi
if [ -d ${SYSTEM_PATH} ];then
${ECHO} "Starting Job Queue Daemon..."
/etc/init.d/job_queue.sh start
fi
- ##### application watch dog
${ECHO} "Starting app_wd..."
/bin/nice -n 10 /usr/sbin/app_wd
if [ -e /etc/zyxel/syslog-ng/enable_syslog.flag ]; then
/usr/bin/python /usr/local/apache/web_framework/models/syslogng_main_model.pyc
fi
- # power on hd (Hard-Disk-Drive) pin that not inserted
for hd_no in 1 2 3 4
do
# hd_exist="`cat /proc/hdd${hd_no}_detect`"
# if [ "${hd_exist}" = "0" ]; then
# power on hd
echo -e "\033[033mPower on HD${hd_no} ...\033[0m"
setHDDPower ${hd_no} on
# fi
done
- # give default value to /tmp/fwupgrade/fwlog
if [ ! -d /tmp/fwupgrade ]; then
${MKDIR} /tmp/fwupgrade
fi
${ECHO} "-1" > /tmp/fwupgrade/fwlog
chmod 0777 /tmp/fwupgrade/fwlog
- # Update pkglist
/bin/query_pkglst.sh
#start webdav
[ -e "/etc/zyxel/webdav" ] || mkdir -m 0755 /etc/zyxel/webdav
/usr/sbin/webdav.sh webdav start
#setting the min resync value
echo "10000" > /proc/sys/dev/raid/speed_limit_min
# start zysync server
/usr/bin/start_zysync_server.sh
# start stunnel server (for zysync encryption)
/usr/bin/start_stunnel_server.sh
#for iscsi config
test -d /etc/zyxel/target || mkdir -p /etc/zyxel/target
#start iscsi
[ -e "$(which target.init)" ] && target.init start && python -c 'from models import iscsi_main_model; iscsi_main_model.MainAddLostLun2Conf()'
#start ipnotify
/sbin/ipnotify -d -s -r /sbin/ipnotify_exec.sh
#fileye must run after ipnotify because it needs DNS to be set
if [ -f "/usr/local/fileye/Fileye_start.sh" ]; then
sleep 3
/usr/local/fileye/Fileye_start.sh
fi
- #Check if there exists any loop softlink which shouldn't exist
python /usr/local/apache/web_framework/models/remove_loop_link.pyc
- #write pyconf
PYCONF_MD5_RAM=`md5sum /var/web_framework/py_conf | awk '{print $1}'`
PYCONF_MD5_FLASH=`md5sum /etc/zyxel/py_conf | awk '{print $1}'`
if [ "${PYCONF_MD5_RAM}" != "${PYCONF_MD5_FLASH}" ]; then
/usr/bin/python -c 'from models import system_main_model; system_main_model.write_pyconf()'
fi
- # start ifplugd for egiga0 and egiga1
[ -e /sys/class/net/egiga0 ] && /bin/ifplugd -a -p -q -t3 -d0 -u0 -i egiga0 -r /sbin/egiga_link_up_down.sh
[ -e /sys/class/net/egiga1 ] && /bin/ifplugd -a -p -q -t3 -d0 -u0 -i egiga1 -r /sbin/egiga_link_up_down.sh
- # Moniter the mdx status
python -c 'from models import storage_func;storage_func.UpdateMointerMdx()'
- #Add crontab to check myzyxelcloudagent is installed or not
python /usr/local/apache/web_framework/portal/MZCA_Auto_Install.pyc
- #### SYS Green LED stay on and buzzerc beep at last of rcS2
- # show firmware info
cd ${INFO_PATH}
info=`ls`
for line in $info; do
echo -e "\033[031m ${line} \033[0m: `cat ${line}`"
done
- # restore schedule startime
filepath="/etc/zyxel/sch_startime"
if [ ! -e $filepath ] ; then
sleep 5
/usr/bin/re_startime save
/etc/init.d/schedule_trigger.sh restart
fi
/usr/bin/python /usr/local/apache/web_framework/models/check_modify_timezone.pyc
- # disabling SACK for vulnerability issue: CVE-2019-11477,CVE-2019-11478,CVE-2019-11478
echo 0 > /proc/sys/net/ipv4/tcp_sack
buzzerc -t 1
setLED SYS GREEN ON
- ####################################################################
- # Never add code after setting the color of LED!!!!!!!!!!!!!!!!!! #
- ####################################################################
Hier ist das Script "rcS2" zuende -wie geht es weiter ?
.
Zum Ende dieses 2. Scripts ist der Server bereit - oder .... wie geht es nach diesem Script weiter ??
.
Damit meine ich die "Default Konfiguration" aus der Firmware heraus mit wenigen Konfigurations- flags wie zum Beispiel die Aktivierung der "wake-on-lan" Funktion, die auch auf dem Mainboard im Flash resident bei den Variablen eingetragen sein muß.
Wo werden die weiteren Scripts oder ausführbaren Dateien aufgerufen ?
.
Einiges habe ich immer noch nicht verstanden ......
....... doch ich will ja nur zusätzliche Software mit zusätzlichen Funktionen auf den NAS Server drauf bringen.
.
.