|
|
(11 intermediate revisions by the same user not shown) |
Line 3: |
Line 3: |
| When I ran llink on my CS-406 I did have some optware installed already; the bootstrap and toolchain from NSLU2-linux,org and the SSODS3 packages (which include the ELDK). Perhaps it influenced the successful installation? Maybe more things are needed apart from the telnet/SSH-patch currently listed? | | When I ran llink on my CS-406 I did have some optware installed already; the bootstrap and toolchain from NSLU2-linux,org and the SSODS3 packages (which include the ELDK). Perhaps it influenced the successful installation? Maybe more things are needed apart from the telnet/SSH-patch currently listed? |
| <br> / [[User:Dc11ab|dc11ab]] 00:09, 5 January 2008 (JST) | | <br> / [[User:Dc11ab|dc11ab]] 00:09, 5 January 2008 (JST) |
| | |
| | UPDATE: Not needed. All is well. / [[User:Dc11ab|dc11ab]] 18:36, 19 June 2008 (JST) |
|
| |
|
| === Slimserver/SqueezeCenter hickup's === | | === Slimserver/SqueezeCenter hickup's === |
Line 52: |
Line 54: |
|
| |
|
| === Autostart === | | === Autostart === |
| I'm not sure where to start and what to do in order to get llink autostart on boot. After poking around I decided to post some rc-files that might make some sense for someone who knows *nix better than me. Sorry for spamming. | | After some more Googling and poking in the Synology forum and wiki, I might have found a way? |
| | Copy the start file to the autostart directory with prefix of the startup shellscript, "S99": |
|
| |
|
| / [[User:Dc11ab|dc11ab]] 21:37, 5 January 2008 (JST) | | <code> |
| | vi /usr/syno/etc/rc.d/S99llink.sh |
| | </code> |
|
| |
|
| In the '''/etc/services''' I don't see any reference to SSODS or Slimserver - third party software that I know auto start.
| | Set the PATH and LD_LIBRARY_PATH to the llink directory.: |
| | <code> |
| | PATH=/volume1/path/to/llink-X.Y/llink/src/ |
| | LD_LIBRARY_PATH=/volume1/llink-X.Y/llink/src/ |
| | </code> |
|
| |
|
| | Then export them: |
| | <code> |
| | export PATH |
| | export LD_LIBRARY_PATH |
| | <code> |
|
| |
|
| So, first off, the '''/etc/defaults/rc.conf'''
| |
| <pre>
| |
| CubeStation> cat defaults/rc.conf
| |
| #!/bin/sh
| |
|
| |
| # System setting
| |
| local_startup="/etc/rc.d /usr/syno/etc/rc.d /usr/local/etc/rc.d"
| |
|
| |
| # Network
| |
| defaultrouter=""
| |
| network_interfaces="lo"
| |
| ifconfig_lo="inet 127.0.0.1"
| |
| hostname=""
| |
|
| |
| # Now start up miscellaneous daemons that don't belong anywhere else
| |
| inetd_enable="Yes"
| |
| inetd_program="/usr/sbin/inetd"
| |
| inetd_flags=""
| |
| crond_enable="YES"
| |
| crond_program="/usr/sbin/crond"
| |
| crond_flags=""
| |
| syslogd_enable="YES"
| |
| syslogd_program="/sbin/syslogd"
| |
| syslogd_flags=""
| |
| </pre>
| |
|
| |
| OK, so I looked into the '''/usr/syno/etc.defaults/rc.d''' directory:
| |
| <pre>
| |
| CubeStation> ls /usr/syno/etc.defaults/rc.d
| |
| S02hotplugd.sh S10UPnPportmap.sh S66synoindexd.sh S81atalk.sh S88synomkflvd.sh S98findhostd.sh
| |
| S03bootup.sh S20pgsql.sh S77synomkthumbd.sh S831234.sh S95sshd.sh S99ftpd.sh
| |
| S03inetd.sh S21mysql.sh S78JumboFrame.sh S84rsyncd.sh S96synorcd.sh S99iTunes.sh
| |
| S04crond.sh S25download.sh S79RCPower.sh S85synonetbkpd.sh S97apache-sys.sh S99zbootok.sh
| |
| S09DDNS.sh S55lpd.sh S80samba.sh S86synodms.sh S97apache-user.sh
| |
| </pre>
| |
|
| |
| There are some startup scripts, but no sign of SSODS or Slimserver.
| |
|
| |
|
| Moving on, here's the long '''/etc/rc'''
| | With this fixed, the Synology NAS should start llink upon reboot. |
| <pre>
| |
| CubeStation> cat rc
| |
| #!/bin/sh
| |
| # Copyright (c) 2000-2006 Synology Inc. All rights reserved.
| |
|
| |
|
| HOME=/
| |
| PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin
| |
| export HOME PATH
| |
|
| |
|
| BOOT_SEQ_FILE="/tmp/boot_seq.tmp"
| | '''UPDATE''': This is alread fixed with a startup script called from the /etc/rc.local file. I see that Synology has introduced new firmware as of June 2008 which might require some changes. Yet to be seen. So far, all is well. |
| #SEQ_BOOT_NONE=0 no use here
| |
| SEQ_START_ETCRC=1
| |
| SEQ_CHECK_FS=2
| |
| SEQ_START_SERVICE=3
| |
| #SEQ_BOOT_DONE=4 is echo by /usr/syno/etc/rc.d/S99Zbootok.sh
| |
|
| |
|
| ###################################################
| | / [[User:Dc11ab|dc11ab]] 18:38, 19 June 2008 (JST) |
| echo "STEP=$SEQ_START_ETCRC" > ${BOOT_SEQ_FILE}
| |
| echo "Starting /etc/rc ..."
| |
| ###################################################
| |
|
| |
|
| LinuxVersion=`/bin/uname -r | /usr/bin/cut -c1-3`
| | == Cross-compiling for the ppc and Marvell-based cpu's of Synology NAS on Intel Macbook == |
| SYNOLoadModule()
| | My intention is to set up an environment with toolchain to compile for the Synologies on my Intel based Macbook. I'm Googling as fast as time allows to figure out how to do it. Any hints are appreciated! |
| {
| |
| for MODULE in ${KERNEL_MODULES}
| |
| do
| |
| MODULE_PATH=/lib/modules/${MODULE}
| |
| if [ -f ${MODULE_PATH} ]; then
| |
| echo "Load ${MODULE}... "
| |
| insmod ${MODULE_PATH}
| |
| fi
| |
| done
| |
| }
| |
|
| |
|
| SupportRAID=`/bin/get_key_value /etc.defaults/synoinfo.conf supportraid`
| | / [[User:Dc11ab|dc11ab]] 09:00, 6 January 2008 (JST) |
| ResRAID=$?
| |
| if [ $ResRAID -ne 1 ]; then
| |
| SupportRAID="no"
| |
| fi
| |
|
| |
|
| FStab="fstab"
| |
|
| |
|
| mount -o remount,rw /
| | '''UPDATE:''' Cross-compiling wasn't as easy as I thought. Well, I didn't actually thought it was going to be easy, but as for me this project is on ice. Hopefully someone else can pick it up. |
| echo "Mounting proc filesystem..."
| |
| mount -n -t proc /proc /proc
| |
| grep /dev/root /proc/mounts > /etc/mtab
| |
| rm -rf /var/tmp
| |
| ln -s /tmp /var/tmp
| |
| mount -t tmpfs /tmp /tmp
| |
|
| |
|
| [ -f /initrd/tmp/usbinfoall ] && cp -f /initrd/tmp/usbinfoall /tmp/usbinfoall | | / [[User:Dc11ab|dc11ab]] 18:41, 19 June 2008 (JST) |
| [ -d /initrd ] && [ ! -f /.nofree ] && /bin/umount /initrd && /sbin/freeramdisk /dev/ram0 | |
|
| |
|
| dmesg > /var/run/dmesg.boot
| | == Conversation == |
|
| |
|
| # see if need repartitioning
| | Woah, I need to set wiki to tell me whenever there is posts in Discussions.. Any of the stuff in here still need my attention? |
| /etc/newdisk.sh
| |
|
| |
|
| # turn swap on
| |
| if [ "$SupportRAID" = "yes" ]; then
| |
| SwapDevice="/dev/md1"
| |
| else
| |
| SwapDevice="/dev/hda2"
| |
| fi
| |
|
| |
|
| swapon $SwapDevice
| | Not really. Some matters are already dealt with. As for the SSODS part, it didn't really do anything to the system, someone else should report a real problem first. All is well (I suppose ;-) |
| RetSWAPON=$?
| | /[[User:Dc11ab|dc11ab]] 18:42, 19 June 2008 (JST) |
| if [ "$RetSWAPON" -ne 0 ]; then
| |
| if [ -d /initrd ]; then
| |
| echo "RetSWAPON=$RetSWAPON, doing mkswap..."
| |
| mkswap ${SwapDevice}
| |
| RetMKSWAP=$?
| |
| if [ "$RetMKSWAP" -ne 0 ]; then
| |
| echo "RetMKSWAP=$RetMKSWAP, doing mkswap..."
| |
| else
| |
| swapon $SwapDevice
| |
| fi
| |
| fi
| |
| fi
| |
| | |
| # remount root as readonly
| |
| mount -ro /
| |
| | |
| #ConfList="/etc/defaults/rc.conf /etc/rc.conf"
| |
| ConfList="/etc/sysconfig/network"
| |
| for ThisConfig in $ConfList; | |
| do
| |
| if [ -r "$ThisConfig" ]; then
| |
| . $ThisConfig
| |
| fi
| |
| done
| |
| | |
| if [ -n "${GATEWAY}" -a "${NETWORKING}" = "yes" ]; then
| |
| defaultrouter=$GATEWAY
| |
| fi
| |
| | |
| # Set the host name
| |
| #
| |
| if [ -z "${HOSTNAME}" ]; then
| |
| HOSTNAME="${hostname:-diskstation}"
| |
| fi
| |
| hostname ${HOSTNAME}
| |
| echo -n "Hostname "
| |
| hostname
| |
| | |
| grep ${HOSTNAME} /etc/hosts
| |
| if [ "$?" != "0" ]; then
| |
| echo "0.0.0.0 ${HOSTNAME}" >> /etc/hosts
| |
| fi
| |
| | |
| CWD=`pwd`
| |
| cd /etc/sysconfig/network-scripts
| |
| | |
| network_interfaces=`ls ifcfg* | cut -d'-' -f 2`
| |
| echo -n "Network interfaces: "
| |
| for thisif in $network_interfaces;
| |
| do
| |
| echo -n "$thisif "
| |
| ThisIfConf="/etc/sysconfig/network-scripts/ifcfg-${thisif}"
| |
| BOOTPROTO=`grep -s ^BOOTPROTO ${ThisIfConf} | cut -d'=' -f 2`
| |
| if [ "${BOOTPROTO}" = "static" -o "${thisif}" = "lo" ]; then
| |
| IPADDR=`grep -s ^IPADDR ${ThisIfConf} | cut -d'=' -f 2`
| |
| NETMASK=`grep -s ^NETMASK ${ThisIfConf} | cut -d'=' -f 2`
| |
| thisvalue="inet ${IPADDR} netmask ${NETMASK}"
| |
| eval \ifconfig_${thisif}='$thisvalue'
| |
| else
| |
| eval \ifconfig_${thisif}='dhcp'
| |
| fi
| |
| done
| |
| echo
| |
| cd $CWD
| |
| | |
| ThisMachine=`uname -m`
| |
| if [ "x${LinuxVersion}" != "x2.6" ]; then
| |
| KERNEL_MODULES="appletalk.o fat.o netlink_dev.o reiserfs.o vfat.o ntfs.o scsi_mod.o sd_mod.o sg.o usbcore.o quota_v2.o slhc.o ppp_generic.o ppp_async.o nfsd.o"
| |
| if [ "${ThisMachine}" = "ppc" ]; then
| |
| KERNEL_MODULES="${KERNEL_MODULES} soundcore.o snd-page-alloc.o snd.o snd-seq-device.o snd-rawmidi.o snd-usb-lib.o snd-hwdep.o snd-timer.o snd-pcm.o snd-usb-audio.o snd-mixer-oss.o snd-pcm-oss.o"
| |
| fi
| |
| else
| |
| KERNEL_MODULES="llc.ko psnap.ko appletalk.ko fat.ko vfat.ko ntfs.ko sg.ko usbcore.ko quota_v2.ko soundcore.ko snd-page-alloc.ko snd.ko snd-rawmidi.ko snd-usb-lib.ko snd-hwdep.ko snd-timer.ko snd-pcm.ko snd-usb-audio.ko snd-mixer-oss.ko snd-pcm-oss.ko slhc.ko ppp_generic.ko crc-ccitt.ko ppp_async.ko exportfs.ko nfsd.ko"
| |
| fi
| |
| | |
| SYNOLoadModule
| |
| | |
| if [ "x${LinuxVersion}" != "x2.6" ]; then
| |
| echo "Mounting usbdevfs..."
| |
| mount -t usbdevfs /proc/bus/usb /proc/bus/usb
| |
| else
| |
| echo "Mounting sysfs..."
| |
| mount -t sysfs /sys /sys
| |
| echo "Mounting usbfs..."
| |
| mount -t usbfs /proc/bus/usb /proc/bus/usb
| |
| fi
| |
| | |
| case "${ThisMachine}" in
| |
| armv5b)
| |
| #ModuleList="csr ixp425_eth eepro100"
| |
| ModuleList="ixp400 ixp425_eth"
| |
| for ThisModule in $ModuleList;
| |
| do
| |
| insmod /lib/modules/${ThisModule}.o
| |
| done
| |
| ;;
| |
| ppc)
| |
| if [ "x${LinuxVersion}" != "x2.6" ]; then
| |
| insmod /lib/modules/sk98lin.o
| |
| else
| |
| if [ -f /lib/modules/sk98lin.ko ]; then
| |
| insmod /lib/modules/sk98lin.ko
| |
| elif [ -f /lib/modules/skge.ko ]; then
| |
| insmod /lib/modules/skge.ko
| |
| fi
| |
| fi
| |
| ;;
| |
| esac
| |
| | |
| case "${ThisMachine}" in
| |
| *86)
| |
| echo "Skip loading synobios"
| |
| ;;
| |
| *)
| |
| RunSynoBios=`/bin/get_key_value /etc/synoinfo.conf synobios`
| |
| if [ "no" != "$RunSynoBios" ]; then
| |
| echo "Load synobios...."
| |
| if [ "x${LinuxVersion}" != "x2.6" ]; then
| |
| insmod /lib/modules/synobios.o
| |
| else
| |
| insmod /lib/modules/synobios.ko
| |
| fi
| |
| cd /dev
| |
| /bin/mknod synobios c 201 0
| |
| cd $CWD
| |
| fi
| |
| ;;
| |
| esac
| |
| | |
| for PidDir in /var/run /etc/dhcpc;
| |
| do | |
| rm -rf ${PidDir}/*.pid
| |
| done
| |
| | |
| ## remove samba's tdb of usbprinter.tdb in each reboot to clean out of control job ##
| |
| ## see DS20 #1340
| |
| if [ -e "/var/run/printing/usbprinter.tdb" ]; then
| |
| rm -rf /var/run/printing/usbprinter.tdb
| |
| fi
| |
| | |
| #if [ -r /etc/rc.network ]; then
| |
| if [ -r /etc/rc.network -a "${NETWORKING}" = "yes" ]; then
| |
| . /etc/rc.network
| |
| start_network
| |
| fi
| |
| | |
| case "${ThisMachine}" in
| |
| armv5b)
| |
| # Third party software support
| |
| if [ -d "/writeable/usr/local" ]; then
| |
| ln -sf /writeable/usr/local /usr/local
| |
| fi
| |
| | |
| for ThisDir in /usr/local/armv5b-linux;
| |
| do
| |
| if [ -e "$ThisDir/lib" ]; then
| |
| rm -rf $ThisDir/lib
| |
| fi
| |
| mkdir -p $ThisDir
| |
| ln -sf /lib $ThisDir/lib
| |
| done
| |
| ARMTZDir="/usr/local/armv5b-linux/etc"
| |
| ARMTZ="${ARMTZDir}/localtime"
| |
| if [ ! -d "$ARMTZDir" ]; then
| |
| rm -rf $ARMTZDir
| |
| mkdir -p $ARMTZDir
| |
| fi
| |
| rm -rf $ARMTZ
| |
| ln -sf /etc/localtime $ARMTZ
| |
| ;;
| |
| *)
| |
| # Third party software support
| |
| if [ -d "/writeable/usr/local" ]; then
| |
| ln -sf /writeable/usr/local /usr/local
| |
| fi
| |
| ;;
| |
| esac
| |
| | |
| if [ -r "/etc.defaults/sysctl.conf" ]; then
| |
| /sbin/sysctl -p /etc.defaults/sysctl.conf
| |
| fi
| |
| | |
| syslogd_enable="YES"
| |
| syslogd_flags="-S"
| |
| case ${syslogd_enable} in
| |
| [Yy][Ee][Ss])
| |
| # Transitional symlink (for the next couple of years :) until all
| |
| # binaries have had a chance to move towards /var/run/log.
| |
| if [ ! -L /dev/log ]; then
| |
| # might complain for r/o root f/s
| |
| ln -sf /var/run/log /dev/log
| |
| fi
| |
| | |
| rm -f /var/run/log
| |
| echo "Starting syslogd..."
| |
| ${syslogd_program:-/sbin/syslogd} ${syslogd_flags}
| |
| /sbin/klogd
| |
| ;;
| |
| esac
| |
| | |
| for CFGEN in /usr/syno/cfgen/*;
| |
| do
| |
| if [ -x "$CFGEN" ]; then
| |
| $CFGEN
| |
| fi
| |
| done
| |
| | |
| ###################################################
| |
| echo "STEP=$SEQ_CHECK_FS" > ${BOOT_SEQ_FILE}
| |
| echo "Checking and Mounting filesystem(s) ..."
| |
| ###################################################
| |
| | |
| # initial findhostd first to report quota check progress, see DS20 bug #
| |
| /usr/syno/etc/rc.d/S98findhostd.sh start
| |
| | |
| UsrVolumeList=`grep /volume /etc/${FStab} |awk '{printf("%s:%s \n", $1, $2)}'`
| |
| | |
| rm -f /tmp/hdhealth
| |
| for ThisList in $UsrVolumeList;
| |
| do
| |
| ThisDevice=`echo $ThisList | cut -d':' -f 1 `
| |
| ThisVolume=`echo $ThisList | cut -d':' -f 2 `
| |
| DevName=`echo $ThisDevice | cut -c6-`
| |
| mkdir -p $ThisVolume
| |
| | |
| FS=`/usr/syno/bin/synogetfstype ${ThisDevice}`
| |
| ResGetFS=$?
| |
| if [ $ResGetFS -eq 1 ]; then
| |
| echo "synogetfstype read file system magic failed on $ThisDevice:$ThisVolume. errno=$ResGetFS"
| |
| echo "Trying ext3"
| |
| FS=ext3
| |
| fi
| |
| | |
| FSCK="/sbin/fsck.${FS} -pq"
| |
| | |
| | |
| DoMount=1
| |
| | |
| IsClean=`${FSCK} $ThisDevice | grep "is cleanly umounted"`
| |
| if [ -n "$IsClean" ]; then
| |
| echo "$ThisDevice. Clean. "
| |
| IsClean=1
| |
| else
| |
| IsClean=0
| |
| fi
| |
| | |
| echo "Mounting $ThisDevice on $ThisVolume."
| |
| mount -n -t ${FS} $ThisDevice $ThisVolume
| |
| ResMount=$?
| |
| if [ $ResMount -ge 1 ]; then
| |
| echo "Mount failed on $ThisDevice:$ThisVolume. errno=$ResMount"
| |
| | |
| if [ "${FS}" = "ext3" ]; then
| |
| for SB in 1 131072 393216 655360 917504 1179648 3276800 3538944
| |
| do
| |
| echo "Mounting $ThisDevice on $ThisVolume.(read only, sb=${SB})"
| |
| grep -v "${DevName}mount" /tmp/hdhealth > /tmp/hdhealth.tmp
| |
| mount -t ${FS} -o ro,sb=${SB} $ThisDevice $ThisVolume
| |
| ResMount=$?
| |
| if [ $ResMount -ge 1 ]; then
| |
| echo "Mount read only failed on $ThisDevice:$ThisVolume. errno=$ResMount"
| |
| echo "${DevName}mount=\"fail\"" >> /tmp/hdhealth.tmp
| |
| mv -f /tmp/hdhealth.tmp /tmp/hdhealth
| |
| else
| |
| echo "${DevName}mount=\"ro\"" >> /tmp/hdhealth.tmp
| |
| mv -f /tmp/hdhealth.tmp /tmp/hdhealth
| |
| MOUNT_OPT=",ro"
| |
| break
| |
| fi
| |
| done
| |
| else
| |
| echo "Mounting $ThisDevice on $ThisVolume.(read only)"
| |
| mount -t ${FS} -o ro $ThisDevice $ThisVolume
| |
| ResMount=$?
| |
| if [ $ResMount -ge 1 ]; then
| |
| echo "Mount read only failed on $ThisDevice:$ThisVolume. errno=$ResMount"
| |
| echo "${DevName}mount=\"fail\"" >> /tmp/hdhealth
| |
| else
| |
| echo "${DevName}mount=\"ro\"" >> /tmp/hdhealth
| |
| fi
| |
| fi
| |
| else
| |
| rm -rf $ThisVolume/@tmp
| |
| mkdir $ThisVolume/@tmp
| |
| chmod 777 $ThisVolume/@tmp
| |
| fi
| |
| mount -o remount,usrquota,grpquota${MOUNT_OPT} $ThisVolume
| |
| ResMount=$?
| |
| if [ $ResMount -ge 1 ]; then
| |
| echo "ReMount failed on $ThisDevice:$ThisVolume. errno=$ResMount"
| |
| fi
| |
| | |
| if [ -f "$ThisVolume/aquota.user" -a -f "$ThisVolume/aquota.group" ]; then
| |
| DoQuotaCheck=0
| |
| else
| |
| DoQuotaCheck=1
| |
| fi
| |
| | |
| if [ $IsClean -eq 0 ]; then
| |
| DoQuotaCheck=1
| |
| fi
| |
| | |
| if [ -f ${ThisVolume}/.needquotacheck ]; then
| |
| /usr/syno/bin/synologset1 sys warn 0x11100001
| |
| DoQuotaCheck=1
| |
| fi
| |
| | |
| if [ $DoQuotaCheck -eq 1 ]; then
| |
| echo "Quotacheck on $ThisVolume."
| |
| /sbin/quotacheck -g -u -F vfsv0 $ThisVolume
| |
| | |
| mount -o remount,usrquota,grpquota${MOUNT_OPT} $ThisVolume
| |
| rm -f ${ThisVolume}/.needquotacheck
| |
| fi
| |
| | |
| echo "Quotaon on $ThisVolume."
| |
| /sbin/quotaon -F vfsv0 $ThisVolume
| |
| done
| |
| | |
| #set time zone information to kernel
| |
| /usr/syno/bin/synokerneltz
| |
| | |
| /sbin/sysctl -w kernel.core_pattern=/volume1/@%e.core
| |
| | |
| if [ "x${LinuxVersion}" != "x2.6" ]; then
| |
| /sbin/sysctl -w kernel.suid_dumpable=2
| |
| else
| |
| /sbin/sysctl -w fs.suid_dumpable=2
| |
| fi
| |
| ulimit -c unlimited
| |
| | |
| if [ "x${LinuxVersion}" == "x2.6" ]; then
| |
| /sbin/sysctl -w vm.min_free_kbytes=4096
| |
| fi
| |
| | |
| Configured=`/bin/get_key_value /etc/synoinfo.conf configured`
| |
| if [ "$Configured" = "no" -a "$SupportRAID" = "no" ];then
| |
| CheckList="/volume1 /volume1/public"
| |
| for EachItem in $CheckList;
| |
| do
| |
| if [ ! -d "$EachItem" ]; then
| |
| /bin/mkdir -p $EachItem
| |
| fi
| |
| /bin/chmod 777 $EachItem
| |
| done
| |
| fi
| |
| | |
| /usr/syno/bin/synologset1 sys info 0x11100002
| |
| | |
| ###################################################
| |
| echo "STEP=$SEQ_START_SERVICE" > ${BOOT_SEQ_FILE}
| |
| echo "Starting scemd ..."
| |
| ###################################################
| |
| | |
| /usr/syno/bin/scemd
| |
| Ret=$?
| |
| if [ $Ret -ne 0 ]; then
| |
| echo "Failed to start scemd, reboot and get into steel plan or network install mode."
| |
| touch "/.noroot"
| |
| reboot
| |
| fi
| |
| | |
|
| |
| if [ -r /etc/rc.network -a "${NETWORKING}" = "yes" ]; then
| |
| # Start PPPoE if enabled
| |
| start_pppoe
| |
| fi
| |
| | |
| if [ ! -d /initrd ]; then
| |
| # echo "Starting inetd in flash_rd..."
| |
| # /usr/sbin/inetd
| |
| echo "Starting findhostd in flash_rd..."
| |
| /usr/syno/bin/findhostd
| |
| fi
| |
| | |
| # For bug 1248, probe USB device after scemd
| |
| # usb-uhci.o is for VIA, usb-ohci.o is for NEC
| |
| # KERNEL_MODULES="ehci-hcd.o usb-uhci.o usb-storage.o printer.o"
| |
| if [ "x${LinuxVersion}" != "x2.6" ]; then
| |
| KERNEL_MODULES="ehci-hcd.o usb-ohci.o usb-uhci.o usb-storage.o printer.o hid.o"
| |
| else
| |
| KERNEL_MODULES="ehci-hcd.ko ohci-hcd.ko uhci-hcd.ko usb-storage.ko usblp.ko usbhid.ko"
| |
| fi
| |
| SYNOLoadModule
| |
| | |
| if [ -r /etc/rc.local ]; then
| |
| echo -n 'Starting local daemons:'
| |
| sh /etc/rc.local
| |
| echo '.'
| |
| fi
| |
| | |
| echo -n 'Local package initialization:'
| |
| if [ -z "${local_startup}" ]; then
| |
| local_startup="/etc/rc.d /usr/syno/etc/rc.d /usr/local/etc/rc.d"
| |
| fi
| |
| | |
| startupd=`get_key_value /etc.defaults/synoinfo.conf supportstartupd`
| |
| if [ "$startupd" = "yes" ]; then
| |
| echo 'startup daemons'
| |
| if [ -d /volume1/startup ]; then
| |
| for startsh in /volume1/startup/S* ; do
| |
| if [ -f $startsh ]; then
| |
| echo "start $startsh"
| |
| $startsh
| |
| fi
| |
| done
| |
| fi
| |
| fi
| |
| | |
| echo '.'
| |
| | |
| echo ''
| |
| | |
| echo "done."
| |
| | |
| date
| |
| | |
| if [ ! -d /initrd ]; then
| |
| if [ -f /.nodisk ]; then
| |
| /usr/sbin/burning_test > /dev/null 2>&1 &
| |
| fi
| |
| fi
| |
| | |
| ManuTild=/usr/syno/sbin/manutild
| |
| $ManuTild
| |
| | |
| exit 0
| |
| </pre>
| |
| | |
| Looks untouched.
| |
| | |
| But the '''/etc/rc.local''' shows the SSODS/Slimserver!
| |
| <pre>
| |
| CubeStation> cat rc.local
| |
| /volume1/SSODS/etc/init.d/rc.ssods # SSODS3 (keep the tag)
| |
| </pre>
| |
| | |
| And the '''/volume1/SSODS/etc/intit.d/rc.ssoods''' looks like this:
| |
| <pre>
| |
| CubeStation> cat /volume1/SSODS/etc/init.d/rc.ssods
| |
| #!/volume1/SSODS/bin/bash
| |
| #
| |
| # $Id: rc.ssods,v 1.4 2007/10/03 22:27:17 flip Exp flip $
| |
| #
| |
| # this script runs the scripts ${SSODSDIR}/etc/init.d/{S,K}??*
| |
| # in (alpha)numerical order
| |
| #
| |
| # Copyright (c) 2006, 2007 Philippe Kehl <flipflip at gmx dot net>
| |
| #
| |
| # This program is free software; you can redistribute it and/or modify it under
| |
| # the terms of the GNU General Public License version 2 as published by the
| |
| # Free Software Foundation.
| |
| #
| |
| # See the documentation for details and copying conditions.
| |
| #
| |
| | |
| # get site config
| |
| source /volume1/SSODS/etc/ssods/ssods.conf || exit 1
| |
| PATH=${SSODSDIR}/sbin:${PATH}
| |
| export PATH
| |
| | |
| RCSSODS=yes
| |
| | |
| # start or stop?
| |
| case "$1" in
| |
| | |
| stop)
| |
| cmd=stop
| |
| key=K
| |
| ;;
| |
| start|*)
| |
| cmd=start
| |
| key=S
| |
| ;;
| |
| esac
| |
| | |
| for S in ${SSODSDIR}/etc/init.d/${key}*; do
| |
| | |
| # ignore broken symlinks
| |
| [ ! -f ${S} ] && continue
| |
| | |
| echo "*** ${S} ${cmd} ***"
| |
| # source (!) script
| |
| source $S ${cmd}
| |
| | |
| done
| |
| | |
| # eof
| |
| </pre>
| |
Installation pre-requisites
When I ran llink on my CS-406 I did have some optware installed already; the bootstrap and toolchain from NSLU2-linux,org and the SSODS3 packages (which include the ELDK). Perhaps it influenced the successful installation? Maybe more things are needed apart from the telnet/SSH-patch currently listed?
/ dc11ab 00:09, 5 January 2008 (JST)
UPDATE: Not needed. All is well. / dc11ab 18:36, 19 June 2008 (JST)
Slimserver/SqueezeCenter hickup's
On a Synology NAS with SSODS Slimserver installation there are unhandled http header requests from cookies seen in the llink log:
I have not idea if this something worth looking into or not.
[request] is listening
[request] New request from 192.168.1.2:64543
[request] >> 'GET / HTTP/1.1'
[request] clearnode
keepalive
[request] GET for '/' ('')
[request] >> 'Host: 192.168.1.5:8888'
[request] >> 'User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en; rv:1.8.1.11) Gecko/20071128 Camino/1.5.4'
[request] >> 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'
[request] >> 'Accept-Language: en-US,en;q=0.9,sv;q=0.9,ja;q=0.8,fr;q=0.8,de;q=0.7,es;q=0.6,it;q=0.6,nl;q=0.5,nb;q=0.4,da;q=0.4,fi;q=0.3,pt;q=0.3,zh-Hans;q=0.2,zh-Hant;q=0.1,ko;q=0.1'
[request] Unhandled HTTP header 'Accept-Language:' with 'en-US,en;q=0.9,sv;q=0.9,ja;q=0.8,fr;q=0.8,de;q=0.7,es;q=0.6,it;q=0.6,nl;q=0.5,nb;q=0.4,da;q=0.4,fi;q=0.3,pt;q=0.3,zh-Hans;q=0.2,zh-Hant;q=0.1,ko;q=0.1'
[request] >> 'Accept-Encoding: gzip,deflate'
[request] Unhandled HTTP header 'Accept-Encoding:' with 'gzip,deflate'
[request] >> 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7'
[request] Unhandled HTTP header 'Accept-Charset:' with 'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
[request] >> 'Keep-Alive: 300'
[request] Unhandled HTTP header 'Keep-Alive:' with '300'
[request] >> 'Connection: keep-alive'
[request] connection type: 1
[request] >> 'Cookie: SqueezeCenter-player=00%3A04%3A20%3A06%3Af8%3Ae5; SqueezeCenter-expandPlayerControl=true; SqueezeCenter-expanded-MY_MUSIC=0; SqueezeCenter-expanded-RADIO=0; SqueezeCenter-expanded-MUSIC_SERVICES=0; SqueezeCenter-expanded-FAVORITES=0; SqueezeCenter-expanded-PLUGINS=0'
[request] Unhandled HTTP header 'Cookie:' with 'SqueezeCenter-player=00%3A04%3A20%3A06%3Af8%3Ae5; SqueezeCenter-expandPlayerControl=true; SqueezeCenter-expanded-MY_MUSIC=0; SqueezeCenter-expanded-RADIO=0; SqueezeCenter-expanded-MUSIC_SERVICES=0; SqueezeCenter-expanded-FAVORITES=0; SqueezeCenter-expanded-PLUGINS=0'
[request] >> ''
[request] actioning request for /
[request] disabling socket input for duration of process
[request] tmpname '/tmp/.llink.G69xU6'
[request] tmpfile closed
[request] reopening tmpfile
[request] actioning request for /
[request] disabling socket input for duration of process
[request] sending file
[request] sending reply code 200:OK
Found the following ports used by the SqueezeCenter7
- 3483 UDP/TCP (used by Squeezbox player for streaming traffic??))
- 9000 TCP (Server web interface)
- 9090 TCP (CLI)
I guess the ports have nothing to do with it., but I'm stuck at this,.
/ dc11ab 00:11, 5 January 2008 (JST)
Autostart
After some more Googling and poking in the Synology forum and wiki, I might have found a way?
Copy the start file to the autostart directory with prefix of the startup shellscript, "S99":
vi /usr/syno/etc/rc.d/S99llink.sh
Set the PATH and LD_LIBRARY_PATH to the llink directory.:
PATH=/volume1/path/to/llink-X.Y/llink/src/
LD_LIBRARY_PATH=/volume1/llink-X.Y/llink/src/
Then export them:
export PATH
export LD_LIBRARY_PATH
With this fixed, the Synology NAS should start llink upon reboot.
UPDATE: This is alread fixed with a startup script called from the /etc/rc.local file. I see that Synology has introduced new firmware as of June 2008 which might require some changes. Yet to be seen. So far, all is well.
/ dc11ab 18:38, 19 June 2008 (JST)
Cross-compiling for the ppc and Marvell-based cpu's of Synology NAS on Intel Macbook
My intention is to set up an environment with toolchain to compile for the Synologies on my Intel based Macbook. I'm Googling as fast as time allows to figure out how to do it. Any hints are appreciated!
/ dc11ab 09:00, 6 January 2008 (JST)
UPDATE: Cross-compiling wasn't as easy as I thought. Well, I didn't actually thought it was going to be easy, but as for me this project is on ice. Hopefully someone else can pick it up.
/ dc11ab 18:41, 19 June 2008 (JST)
Conversation
Woah, I need to set wiki to tell me whenever there is posts in Discussions.. Any of the stuff in here still need my attention?
Not really. Some matters are already dealt with. As for the SSODS part, it didn't really do anything to the system, someone else should report a real problem first. All is well (I suppose ;-)
/dc11ab 18:42, 19 June 2008 (JST)