From NAS-Central Buffalo - The Linkstation Wiki
Revision as of 22:00, 19 June 2013 by Ash87 (Talk | contribs) (update scripts)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
LinkStation Live™ with BitTorrent

LinkStation Live™ with BitTorrent
CPU 88F5182 266Mhz Clock Speed
RAM 128Mb, on to blocks NANYA NT5TU32M16AG-3C
Flash ROM
NIC 1000/100/10Mbpsls-chl
internal HDD 1TB Model has a Samsung F1 DT HD103UJ, with 32MB Cache, 7200RPM Sata disk

other disks found are:
Seagate Barracuda 7200.11 ST31000340AS, 32MB Cache, 7200RPM sATA
Western Digital WD10WADS, 32MB Cache

IDE/SATA Controller
Drive Capacity
Fan one in the case
initial Networkname
Opened Firmwares
  • Telnet enabled firmware
  • Distributions
Development Tools
GPL Kernel mainline support, enable gpio_fans module
Hardware Hacks Possible hack allowing addition of a USB-B port, allowing device to act as a USB gadget. Kernel modules incomplete.


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.


  • 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 >
 mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n 'linux' -d 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
                                              echo 3250 > /sys/class/hwmon/hwmon0/device/fan1_target
                                              sleep 40
                                      echo 1500 > /sys/class/hwmon/hwmon0/device/fan1_target
                                      sleep 40
                              sleep 60     # overcompensate w/ 1 min of extra fan time
                              echo 0 > /sys/class/hwmon/hwmon0/device/fan1_target


exit  0
  • init Script for Wheezy (/etc/init.d/fannyd), add to startup with 'update-rc.d fannyd defaults'
#! /bin/sh
# 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

# Author: Ash Hughes <>
# 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 script
DESC="Fan control daemon"

# 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/

# 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
	# 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 -- \
		|| 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
	# 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" = 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
	[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
	case "$?" in
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
	case "$?" in
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
	status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
	# 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"
	#log_end_msg $?
	# If the "reload" option is implemented then remove the
	# 'force-reload' alias
	log_daemon_msg "Restarting $DESC" "$NAME"
	case "$?" in
		case "$?" in
			0) log_end_msg 0 ;;
			1) log_end_msg 1 ;; # Old process is still running
			*) log_end_msg 1 ;; # Failed to start
		# Failed to stop
		log_end_msg 1
	#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
	exit 3


  • 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. 


#  define the timelimit in seconds.  It is suggested to use a value 
#  around 300 to 600 seconds


#  define a temperature limit at which you want the fan to kick up at
#  a good value is around 38C.  Yes, use celsius.



Related devices

Pages in category "LS-CHL"

This category contains only the following page.