Difference between revisions of "Category:LS-CHL"
m (remove hardcoded hddtemp path) |
m (update scripts) |
||
Line 114: | Line 114: | ||
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n 'linux' -d zImage.new uImage.buffalo | mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n 'linux' -d zImage.new uImage.buffalo | ||
− | * For correct fan support, the gpio-fan module needs to be enabled and the following script, or similar, set to run on startup: | + | * For correct fan support, the gpio-fan module needs to be enabled and the following script (updated for Wheezy), or similar, set to run on startup (/usr/sbin/fannyd): |
− | #! /bin/ | + | #! /bin/sh |
# | # | ||
# fan-temperature control daemon - fannydee | # fan-temperature control daemon - fannydee | ||
Line 130: | Line 130: | ||
# In /etc/fannyd.conf, mak sure you define your devices that you want to check the temperature on | # In /etc/fannyd.conf, mak sure you define your devices that you want to check the temperature on | ||
# e.g. /dev/hda or /dev/sda , the temperature limit, time check, etc. | # e.g. /dev/hda or /dev/sda , the temperature limit, time check, etc. | ||
− | # You can declare more than one hard drive, but that is not a likely situation. | + | # You can declare more than one hard drive, but that is not a likely situation. |
− | + | . /etc/fannyd.conf | |
HDDT=`which hddtemp` | HDDT=`which hddtemp` | ||
while : ; do | while : ; do | ||
− | + | ||
for A in $DEVICES ; do | for A in $DEVICES ; do | ||
TEMPERATURE=$($HDDT -n $A) | TEMPERATURE=$($HDDT -n $A) | ||
Line 155: | Line 155: | ||
echo 0 > /sys/class/hwmon/hwmon0/device/fan1_target | echo 0 > /sys/class/hwmon/hwmon0/device/fan1_target | ||
fi | fi | ||
− | done | + | done |
done | done | ||
− | + | ||
exit 0 | exit 0 | ||
+ | |||
+ | * init Script for Wheezy (/etc/init.d/fannyd), add to startup with 'update-rc.d fannyd defaults' | ||
+ | |||
+ | #! /bin/sh | ||
+ | ### BEGIN INIT INFO | ||
+ | # Provides: fannyd | ||
+ | # Required-Start: $remote_fs $syslog | ||
+ | # Required-Stop: $remote_fs $syslog | ||
+ | # Default-Start: 2 3 4 5 | ||
+ | # Default-Stop: 0 1 6 | ||
+ | # Short-Description: Fan Control Daemon | ||
+ | # Description: Controls GPIO-Fan based fans using hddtemp | ||
+ | # | ||
+ | ### END INIT INFO | ||
+ | |||
+ | # Author: Ash Hughes <ashes-iontach@hotmail.com> | ||
+ | # | ||
+ | # Please remove the "Author" lines above and replace them | ||
+ | # with your own name if you copy and modify this script. | ||
+ | |||
+ | # Do NOT "set -e" | ||
+ | |||
+ | # PATH should only include /usr/* if it runs after the mountnfs.sh script | ||
+ | PATH=/sbin:/usr/sbin:/bin:/usr/bin | ||
+ | DESC="Fan control daemon" | ||
+ | NAME=fannyd | ||
+ | DAEMON=/usr/sbin/$NAME | ||
+ | DAEMON_ARGS="" | ||
+ | PIDFILE=/var/run/$NAME.pid | ||
+ | SCRIPTNAME=/etc/init.d/$NAME | ||
+ | |||
+ | # Exit if the package is not installed | ||
+ | [ -x "$DAEMON" ] || exit 0 | ||
+ | |||
+ | # Read configuration variable file if it is present | ||
+ | [ -r /etc/default/$NAME ] && . /etc/default/$NAME | ||
+ | |||
+ | # Load the VERBOSE setting and other rcS variables | ||
+ | . /lib/init/vars.sh | ||
+ | |||
+ | # Define LSB log_* functions. | ||
+ | # Depend on lsb-base (>= 3.2-14) to ensure that this file is present | ||
+ | # and status_of_proc is working. | ||
+ | . /lib/lsb/init-functions | ||
+ | |||
+ | # | ||
+ | # Function that starts the daemon/service | ||
+ | # | ||
+ | do_start() | ||
+ | { | ||
+ | # Return | ||
+ | # 0 if daemon has been started | ||
+ | # 1 if daemon was already running | ||
+ | # 2 if daemon could not be started | ||
+ | start-stop-daemon --make-pidfile --background --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ | ||
+ | || return 1 | ||
+ | start-stop-daemon --make-pidfile --background --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ | ||
+ | $DAEMON_ARGS \ | ||
+ | || return 2 | ||
+ | # Add code here, if necessary, that waits for the process to be ready | ||
+ | # to handle requests from services started subsequently which depend | ||
+ | # on this one. As a last resort, sleep for some time. | ||
+ | } | ||
+ | |||
+ | # | ||
+ | # Function that stops the daemon/service | ||
+ | # | ||
+ | do_stop() | ||
+ | { | ||
+ | # Return | ||
+ | # 0 if daemon has been stopped | ||
+ | # 1 if daemon was already stopped | ||
+ | # 2 if daemon could not be stopped | ||
+ | # other if a failure occurred | ||
+ | start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME | ||
+ | RETVAL="$?" | ||
+ | [ "$RETVAL" = 2 ] && return 2 | ||
+ | # Wait for children to finish too if this is a daemon that forks | ||
+ | # and if the daemon is only ever run from this initscript. | ||
+ | # If the above conditions are not satisfied then add some other code | ||
+ | # that waits for the process to drop all resources that could be | ||
+ | # needed by services started subsequently. A last resort is to | ||
+ | # sleep for some time. | ||
+ | start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON | ||
+ | [ "$?" = 2 ] && return 2 | ||
+ | # Many daemons don't delete their pidfiles when they exit. | ||
+ | rm -f $PIDFILE | ||
+ | return "$RETVAL" | ||
+ | } | ||
+ | |||
+ | # | ||
+ | # Function that sends a SIGHUP to the daemon/service | ||
+ | # | ||
+ | do_reload() { | ||
+ | # | ||
+ | # If the daemon can reload its configuration without | ||
+ | # restarting (for example, when it is sent a SIGHUP), | ||
+ | # then implement that here. | ||
+ | # | ||
+ | start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME | ||
+ | return 0 | ||
+ | } | ||
+ | |||
+ | case "$1" in | ||
+ | start) | ||
+ | [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" | ||
+ | do_start | ||
+ | case "$?" in | ||
+ | 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; | ||
+ | 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; | ||
+ | esac | ||
+ | ;; | ||
+ | stop) | ||
+ | [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" | ||
+ | do_stop | ||
+ | case "$?" in | ||
+ | 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; | ||
+ | 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; | ||
+ | esac | ||
+ | ;; | ||
+ | status) | ||
+ | status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? | ||
+ | ;; | ||
+ | #reload|force-reload) | ||
+ | # | ||
+ | # If do_reload() is not implemented then leave this commented out | ||
+ | # and leave 'force-reload' as an alias for 'restart'. | ||
+ | # | ||
+ | #log_daemon_msg "Reloading $DESC" "$NAME" | ||
+ | #do_reload | ||
+ | #log_end_msg $? | ||
+ | #;; | ||
+ | restart|force-reload) | ||
+ | # | ||
+ | # If the "reload" option is implemented then remove the | ||
+ | # 'force-reload' alias | ||
+ | # | ||
+ | log_daemon_msg "Restarting $DESC" "$NAME" | ||
+ | do_stop | ||
+ | case "$?" in | ||
+ | 0|1) | ||
+ | do_start | ||
+ | case "$?" in | ||
+ | 0) log_end_msg 0 ;; | ||
+ | 1) log_end_msg 1 ;; # Old process is still running | ||
+ | *) log_end_msg 1 ;; # Failed to start | ||
+ | esac | ||
+ | ;; | ||
+ | *) | ||
+ | # Failed to stop | ||
+ | log_end_msg 1 | ||
+ | ;; | ||
+ | esac | ||
+ | ;; | ||
+ | *) | ||
+ | #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 | ||
+ | echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 | ||
+ | exit 3 | ||
+ | ;; | ||
+ | esac | ||
+ | |||
+ | : | ||
+ | |||
* Sample /etc/fannyd.conf | * Sample /etc/fannyd.conf |
Latest revision as of 22:00, 19 June 2013
LinkStation Live™ with BitTorrent | ||
CPU | 88F5182 266Mhz Clock Speed | |
RAM | 128Mb, on to blocks NANYA NT5TU32M16AG-3C | |
Flash ROM | ||
Other | ||
NIC | 1000/100/10Mbpsls-chl | |
USB | ||
internal HDD | 1TB Model has a Samsung F1 DT HD103UJ, with 32MB Cache, 7200RPM Sata disk other disks found are: |
|
IDE/SATA Controller | ||
Drive Capacity | ||
Fan | one in the case | |
initial Networkname |
SOFTWARE | |
Toolchains | |
---|---|
Opened Firmwares |
|
Development Tools | |
GPL Kernel | mainline support, enable gpio_fans module |
HARDWARE | |
Disassembly | http://www.yamasita.jp/linkstation/2008/11/081112__disassemble.html |
Serial | http://www.yamasita.jp/linkstation/2008/11/081115__serial_console_1.html |
Hardware Hacks | Possible hack allowing addition of a USB-B port, allowing device to act as a USB gadget. Kernel modules incomplete. |
Other |
Description
Buffalo LinkStation Live is a Network Attached Storage built in DLNA Server, desined for home networking to share your documents, pictures, movie and music over a network.
You can store contents from network computers or using the one touch direct copy function, that is a means of taking pictures or movies from your digital camera, camcorder and storage device via USB port directly. Stored data can be shared on your network and a built-in DLNA media server can stream it to a PC, a MAC, a Buffalo LinkTheater an other DLNA CERTIFIED™ entertainment devices. Our Web Access feature enables you to access your data and media stored in the LinkStation via the interenet by computuers and iPhone's. With a built-in BitTorrent Client, LinkStation can download content without the requirement to keep your PC powered up.
Intelligent Power Saving functions, timer power on/off and auto power on/off with your Windows PC all help towards power saving and eco in mind.
Features
- With Web Access you can store, share and access files from any web browser
- Use Web Access for iPhone to access the digital library on your LinkStation
- Built-In Media Server connects to DLNA compatible digital entertainment devices
- One touch transfer of media files from digital camera/camcorder with Direct Copy feature
- Seamlessly integrates with iTunes® 7 and allows you to access your music files on the LinkStation from your iTunes software
- Supports Apple Time Machine
- Built-In BitTorrent Client
- Eco Friendly Power Saving Mode (PC Interlocking Power System/Schedule Power Management System)
- Built-in print server to print documents from anywhere on your network (*1)
- Easy setup does not require drivers
- Supports UPS connectivity via USB port
- Expand storage by adding a USB 2.0 hard drive
- Includes Memeo™ AutoBackup Software for Windows or Macintosh
- 10/100/1000 Gigabit Ethernet with JumboFrame support
- Access your data from any Windows or Macintosh computers
GPL Kernel
- Can't use stock distro, use Debian
- After compiling the kernel with ls-chl support and appropriate modules, run the following commands:
devio > foo 'wl 0xe3a01c0B,4' 'wl 0xe3811061,4' cat foo arch/arm/boot/zImage > zImage.new mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n 'linux' -d zImage.new uImage.buffalo
- For correct fan support, the gpio-fan module needs to be enabled and the following script (updated for Wheezy), or similar, set to run on startup (/usr/sbin/fannyd):
#! /bin/sh # # fan-temperature control daemon - fannydee # # this script checks the hdd temp on any LS-PPC that is running avr_evtd # and has hddtemp installed. If the temperature is greater than the # defined limit, it kicks the fan up to high speed. # # After the checkperiod elapses, it checks again. If the temperature is # below that limit, then it drops it back to low speed. # # # In /etc/fannyd.conf, mak sure you define your devices that you want to check the temperature on # e.g. /dev/hda or /dev/sda , the temperature limit, time check, etc. # You can declare more than one hard drive, but that is not a likely situation. . /etc/fannyd.conf HDDT=`which hddtemp` while : ; do for A in $DEVICES ; do TEMPERATURE=$($HDDT -n $A) if [ $TEMPERATURE -gt $TEMPLIMITONE ]; then if [ $TEMPERATURE -gt $TEMPLIMITTWO ]; then if [ $TEMPERATURE -gt $TEMPLIMITTHREE ]; then echo 5000 > /sys/class/hwmon/hwmon0/device/fan1_target sleep 40 else echo 3250 > /sys/class/hwmon/hwmon0/device/fan1_target sleep 40 fi else echo 1500 > /sys/class/hwmon/hwmon0/device/fan1_target sleep 40 fi else sleep 60 # overcompensate w/ 1 min of extra fan time echo 0 > /sys/class/hwmon/hwmon0/device/fan1_target fi done done exit 0
- init Script for Wheezy (/etc/init.d/fannyd), add to startup with 'update-rc.d fannyd defaults'
#! /bin/sh ### BEGIN INIT INFO # Provides: fannyd # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Fan Control Daemon # Description: Controls GPIO-Fan based fans using hddtemp # ### END INIT INFO # Author: Ash Hughes <ashes-iontach@hotmail.com> # # Please remove the "Author" lines above and replace them # with your own name if you copy and modify this script. # Do NOT "set -e" # PATH should only include /usr/* if it runs after the mountnfs.sh script PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="Fan control daemon" NAME=fannyd DAEMON=/usr/sbin/$NAME DAEMON_ARGS="" PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.2-14) to ensure that this file is present # and status_of_proc is working. . /lib/lsb/init-functions # # Function that starts the daemon/service # do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started start-stop-daemon --make-pidfile --background --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ || return 1 start-stop-daemon --make-pidfile --background --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ $DAEMON_ARGS \ || return 2 # Add code here, if necessary, that waits for the process to be ready # to handle requests from services started subsequently which depend # on this one. As a last resort, sleep for some time. } # # Function that stops the daemon/service # do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks # and if the daemon is only ever run from this initscript. # If the above conditions are not satisfied then add some other code # that waits for the process to drop all resources that could be # needed by services started subsequently. A last resort is to # sleep for some time. start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON [ "$?" = 2 ] && return 2 # Many daemons don't delete their pidfiles when they exit. rm -f $PIDFILE return "$RETVAL" } # # Function that sends a SIGHUP to the daemon/service # do_reload() { # # If the daemon can reload its configuration without # restarting (for example, when it is sent a SIGHUP), # then implement that here. # start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME return 0 } case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; status) status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? ;; #reload|force-reload) # # If do_reload() is not implemented then leave this commented out # and leave 'force-reload' as an alias for 'restart'. # #log_daemon_msg "Reloading $DESC" "$NAME" #do_reload #log_end_msg $? #;; restart|force-reload) # # If the "reload" option is implemented then remove the # 'force-reload' alias # log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 exit 3 ;; esac :
- Sample /etc/fannyd.conf
# config file for fan-temperature control daemon - fannydee # # After the checkperiod elapses, it checks again. If the temperature is # below that limit, then it drops it back to low speed. # # Define your devices that you want to check the temperature on # e.g. /dev/hda or /dev/sda # You can declare more than one, but that is not a likely situation. DEVICES=/dev/sda # # define the timelimit in seconds. It is suggested to use a value # around 300 to 600 seconds # CHECKPERIOD=600 # # define a temperature limit at which you want the fan to kick up at # a good value is around 38C. Yes, use celsius. TEMPLIMITONE=35 TEMPLIMITTWO=40 TEMPLIMITTHREE=44
References
- buffalo-technology.com: LinkStation Live™ with BitTorrent
- pcconnection.com: LinkStation Live LS-CHL Shared Multimedia Storage
- The Buffalo NAS hacking Forums: LS-CHL LinkStation Live
- [1]
Related devices
- LinkStation Pro™ LS-XHL, a scaled-up version with more RAM (256MB) and a faster CPU
- LinkStation Live™ LS-CHL, a faster CPU (600MHz) but less RAM
Pages in category "LS-CHL"
This category contains only the following page.