Installing thermd on Qnap 219P+
One big step to reduce the server power bill is the
remove the
server and replace it with a NAS with all the software
needed to do
(almost) everything the old server could do. I picked
the QNAP 219P+
since I only need one disk, and QNAP have root ssh
access out of the
box.
Short how-to get thermd,
owfs
and a 1-wire logger running on the QNAP 219P+ NAS.
First install the Optware IPKG, download and unzip, then
upload and
install...
Enable the Optware IPKG.
Log in with ssh, username admin
cd /share/HDA_data/:qpkg/Optware
cp /etc/localtime etc/
cp /etc/protocols etc/
Install a lot of software needed later
ipkg install perl grep
diffutils gawk m4
gettext
ipkg install perl-libwww
ipkg install tar gcc unzip
make lynx
ncftp gnupg perl-gd
ipkg install optware-devel
ipkg install sed
Create a link for ld in /opt/bin
cd /opt/bin
ln -s ld
arm-none-linux-gnueabi-ld
Change cpan default dir for cashe and settings to
something /opt in
setup
install Perl modules from CPAN
cpan
cpan>install
Config::General
cpan>install
Digest::CRC
cpan>install
LWP::UserAgent
cpan>install GD
cpan>install
GD::Graph
cpan>installImage::Magick
export PATH=/opt/bin:$PATH
Download latest fuse and owfs, unpack in /opt/tmp
Compile fuse
./configure
--prefix=/opt/bin
make
make install
And owfs
./configure
--prefix=/opt/bin
--with-fuseinclude=/opt/bin/include/fuse
make
make install
Create the dir for 1-wire
mkdir /mnt/1wire
Ant finally, start owfs
/opt/bin/bin/owfs -u
/mnt/1wire
Check that it is working
more
/mnt/1wire/28.*/temperature
Now you shuld se temperature readings from connected
sensors.
So what modules do I have installed?
[~] # ipkg
list_installed
apr - 1.3.12-1 - Apache Portable Runtime library
apr-util - 1.3.9-1 - Apache Portable Runtime utilities
library
autoconf - 2.68-1 - Creating scripts to configure source
code packages
using templates
automake - 1.11.1-2 - Creates GNU standards-compliant
Makefiles from
template files
bash - 3.2.49-1 - A bourne style shell
binutils - 2.19.1-1 - The GNU assembler and linker and
related tools
bison - 2.4.1-1 - a general-purpose parser generator that
converts an
annotated context-free grammar into an LALR(1) or GLR
parser for that
gramm
bzip2 - 1.0.6-1 - Very high-quality data compression
program
cairo - 1.8.8-2 - Cairo is a vector graphics library with
cross-device
output support.
coreutils - 8.4-1 - Bunch of heavyweight *nix core
utilities
cups - 1.4.6-1 - Common Unix Printing System
cyrus-sasl-libs - 2.1.23-2 - Provides client or server
side
authentication (see RFC 2222).
diffutils - 3.1-1 - contains gnu diff, cmp, sdiff and
diff3 to display
differences between and among text files
e2fslibs - 1.41.14-1 - Ext2 Filesystem Libraries
emacs22 - 22.3-1 - Emacs is the extensible, customizable,
self-documenting real-time display editor.
expat - 2.0.1-1 - XML Parser library
file - 5.08-1 - Ubiquitous file identification utility.
findutils - 4.2.32-1 - File finding utilities
flex - 2.5.35-1 - Generates programs that perform
pattern-matching on
text.
fontconfig - 2.8.0-0 - Font configuration library
freetype - 2.3.6-1 - Free truetype library
gawk - 4.0.0-1 - Gnu AWK interpreter
gcc - 4.2.3-1 - The GNU Compiler Collection.
gconv-modules - 2.5-1 - Provides gconv modules missing
from the
firmware. These are used by glibc iconv()
implementation.
gdbm - 1.8.3-2 - GNU dbm is a set of database routines
that use
extensible hashing. It works similar to the standard UNIX
dbm routines.
gettext - 0.14.5-2 - Set of tools for producing
multi-lingual messages
ghostscript - 8.71-2 - An interpreter for the PostScript
(TM) language
gnupg - 2.0.17-1 - GNU privacy guard - a free PGP
replacement.
grep - 2.9-1 - Global regular expression parser
groff - 1.19.2-2 - front-end for the groff document
formatting system
gzip - 1.2.4a-4 - GNU Zip data compression program
imagemagick - 6.6.9.1-1 - A set of image processing
utilities.
libassuan - 2.0.1-1 - Libassuan is the IPC library used by
some GnuPG
related software.
libc-dev - 2.5-5 - libc development files.
libcurl - 7.21.7-1 - Curl is a command line tool for
transferring files
with URL syntax, supporting FTP, FTPS, HTTP, HTTPS,
GOPHER, TELNET,
DICT, FI
libdb - 4.2.52-3 - Berkeley DB Libraries
libgcrypt - 1.5.0-1 - GNU cryptography libray, needed by
gnutls
libgd - 2.0.35-6 - An ANSI C library for the dynamic
creation of images
libgpg-error - 1.10-1 - Error handling library for
libgcrypt
libidn - 1.21-1 - GNU Libidn is an implementation of the
Stringprep,
Punycode and IDNA specifications defined by the IETF
Internationalized
Domai
libjpeg - 6b-3 - collection of jpeg tools
libksba - 1.0.3-1 - Libksba is a CMS and X.509 access
library.
liblcms - 1.19-1 - A small-footprint, speed optimized
color management
engine.
libnsl - 2.5-4 - Network Services Library
libpng - 1.2.44-1 - Portable Network Graphics Libraries
libpth - 2.0.7-2 - Pth is a very portable POSIX/ANSI-C
based library
for Unix platforms which provides non-preemptive
priority-based
scheduling fo
libstdc++ - 6.0.9-6 - Standard C++ library, needed for
dynamically
linked C++ programs
libtiff - 3.9.5-1 - Tag Image File Format Libraries
libtool - 1.5.26-1 - Library tools.
libusb - 0.1.12-2 - Library for interfacing to the USB
subsystem.
libxml2 - 2.7.8-1 - Libxml2 is the XML C parser and
toolkit developed
for the Gnome project.
lynx - 2.8.6-1 - A text browser for the World Wide Web
m4 - 1.4.16-1 - gnu macro processor and compiler front end
make - 3.82-1 - examines files and runs commands necessary
for
compilation
md5deep - 3.9.1-1 - md5deep is a cross-platform set of
programs to
compute MD5, SHA-1, SHA-256 Tiger, or Whirlpool message
digests on an
arbitrary
ncftp - 3.2.4-1 - Nice command line FTP client
ncurses - 5.7-1 - NCurses libraries
ncursesw - 5.7-1 - NCurses libraries with wide char
support
neon - 0.29.3-1 - an HTTP and WebDAV client library, with
a C interface
openldap-libs - 2.3.43-2 - Open Lightweight Directory
Access Protocol
openssl - 0.9.8p-1 - Openssl provides the ssl
implementation in
libraries libcrypto and libssl, and is needed by many
other
applications and librari
optware-devel - 6.8-10 - This is a meta package that
bundles all the
packages required for optware native development.
When fully
functional, it should
patch - 2.6.1-1 - applies a diff to produce a patched file
pcre - 8.13-1 - Perl-compatible regular expression library
perl - 5.10.0-6 - Practical Extraction and Report
Language.
perl-compress-zlib - 1.42-3 - Compress-Zlib - Interface to
zlib
compression library.
perl-gd - 2.35-2 - GD - Interface to Gd Graphics Library
perl-html-parser - 3.60-1 - A collection of modules that
parse and
extract information from HTML documents.
perl-html-tagset - 3.04-4 - This module contains data
tables useful in
dealing with HTML.
perl-libwww - 5.825-1 - libwww-perl - The World-Wide Web
library for
Perl
perl-uri - 1.35-3 - URI - <module_description>
pinentry - 0.8.0-1 - A collection of simple PIN or
passphrase entry
dialogs
pixman - 0.15.14-1 - a library that provides low-level
pixel
manipulation features such as image compositing and
trapezoid
rasterization
pkgconfig - 0.15.0-2 - Package configuration tool
psmisc - 22.13-1 - A set of some small useful utilities
that use the
proc filesystem.
python25 - 2.5.6-1 - Python is an interpreted,
interactive,
object-oriented programming language.
re2c - 0.13.5-1 - re2c is a tool for writing very fast and
very
flexible scanners.
readline - 6.1-2 - The GNU Readline library provides a set
of functions
for use by applications that allow users to edit command
lines as they
are
rsync - 3.0.8-1 - fast remote file copy program (like rcp)
sed - 4.2.1-1 - Stream editor.
sqlite - 3.7.3-1 - SQLite is a small C library that
implements a
self-contained, embeddable, zero-configuration SQL
database engine.
svn - 1.6.15-1 - a compelling replacement for CVS
tar - 1.25-1 - heavyweight version of the Tape ARchiver
tcl - 8.4.19-2 - The Tool Command Language
unzip - 6.0-2 - A (de)compression library for the ZIP
format
wget-ssl - 1.12-2 - A network utility to retrieve files
from the Web
x11 - 6.2.1+cvs20050209-3 - X protocol library
xau - 0.1.1+cvs20050130-2 - X authorization library
xdmcp - 0.1.3+cvs20050130-2 - XDMCP protocol library
xrender - 0.8.4+cvs20050130-4 - X render extension library
zlib - 1.2.5-1 - zlib is a library implementing the
'deflate'
compression system.
Now the 1-wire part is working, only thermd left!
Cd to /opt/bin,
then
download latest thermd, wget
klein.com/thermd/thermd. I got v2.83, Chmod it
a+x. Change the
path to
perl on the first line to #!/opt/bin/perl. Hard-link to a
thermd.cgi in
cgi-bin dir, in my case i put it in "/share/Web/cgi-bin".
change the log file location to /opt/var/log/thermd
change PID file and RSS locations.
Check that thermd is OK with everything,
/opt/bin/thermd -config
/opt/etc/thermd.conf --checkconfig
if there is no errors, stard the daemon,
/opt/bin/thermd -config
/opt/etc/thermd.conf --daemon
Done!