home

SSODS F.A.Q.

Under construction, never finished and probably always outdated.

Introduction

This page consists of various explanations, hints, etc. for SSODS. The order of the information on this page is more or less random. Take it as a FAQ without questions. Note that several methods presented here require advanced «Linux hacking skills» and are provided «as is». There is no guarantee that any of the following will work and/or is correct.. Furthermore, the information here is probably always outdated since things (i.e. SqueezeCenter, SSODS etc.) evolve constantly. Be sure to consider the relevant Internet resources available. See Support for a list of some of those.

General remarks

Abbreviations and expressions

SS
SlimServer
SC
SqueezeCenter
DS
Diskstation
TS
TurboStation
the wiki
http://wiki.slimdevices.com
the forum(s)
http://forums.slimdevices.com (SS/SC related stuff) or http://synology.com/forum (DS related) or http://forum.qnap.com (TS related).
$SSODSDIR
/volume1/SSODS.
$SSDIR
/volume1/SqueezeCenter or /volume1/SlimServer.
$???
SSODS configuration variables (see $SSODSDIR/etc/ssods/ssods.conf et al.)
xxxxx
IP address / network name of the DS/TS.

Running SC/SS under SSODS

Generally, SSODS behaves exactly like SS/SC on any other Linux. Consider this when looking for answers in the forums, the wiki or documentations (e.g. for plugins).

Shell commands

Login as admin and get a decent shell setup to work with SSODS:

/volume1/SSODS/bin/bash --login

Note: You do not want to use this shell for the root user in /etc/passwd.

All shell commands on this page assume that you work in an «SSODS shell». If not, use absolute paths for perl etc or add $SSODSDIR/bin to $PATH.

See also Linux Hacking below.

SSOTS

SSOTS is SSODS for the TS. Minor modifications allow SSODS to run on a TS. See the installer script (sods-ts) for details.

On the TS, sudo(1) does not work due to limitations of the operating system. Login as admin (which is root!) and leave out the sudo in the commands.

TS users note: admin is an underprivileged user on the DS. Yours would be ssods. And your admin is actually root.

See also the notes on TurboStations below!

SqueezeCenter (SlimServer)

Directories

SC or SS will be installed in $SSDIR. The log files, the preferences and the cache directories and files can be found in the corresponding sub-directories.

You should be able to to access the files using the UNC path \\xxxxx\SqueezeCenter as user admin (!). Access via FTP should be possible as well if the FTP access is setup correctly. Another alternative would be the web based File Manager.

Privileges and users

SS/SC runs as user admin. All SS/SC files are owned by admin. This can be overridden by setting $SSUSER, $SSGROUP and $SSOWNER in $SSODSDIR/etc/ssods/ssods.conf.local according to the default settings in ssods.conf.

Command line SC/SS control

Use the script ssctrl. If you login as admin you can do sudo ssctrl start or sudo ssctrl stop to start and stop the server. In this case, sudo(1) is configured to not ask for a password. ssctrl status does not require root privileges and, therefore, needs not to be preceded by sudo.

Debugging

Additional flags to slimserver.pl can be set via $SSEXTRAARGS (see examples in $SSODSDIR/etc/ssods/ssods.conf, see also $SSODSDIR/bin/ssctrl).

To run slimserver.pl or scanner.pl manually, use (compare $SSODSDIR/bin/ssctrl):

perl slimserver.pl arguments...

Using SS/SC trunk version (via SVN)

Note: svn(1) does not work on all models (probably all Linux 2.4 based machines are affected). You could probably use svn from the Optware project instead.

Stop SC:

sudo ssctrl stop

Empty the SqueezeCenter (or the SlimServer one, depending on what you want/have) folder:

cd /volume1/SqueezeCenter
rm -rf *

Download a copy of the trunk (this will take some time, note the dot at the end of the command line). The URL may vary, see here, here and this thread for some info on the SVN server directory structure.

svn checkout http://svn.slimdevices.com/repos/slim/7.1/trunk/server .

Start SqueezeCenter:

sudo ssctrl start

VoilĂ .

To update the local copy of the trunk, login as admin and do:

/volume1/SSODS/bin/bash --login
cd /volume1/SqueezeCenter
svn update
sudo ssctrl restart

SC error messages

The following error message can be ignored safely. It is unclear (to me) what it means and it has been around quite a while. It does not seem to have any effect on SS/SC. There are some forum discussions about this.

[08-03-03 00:05:19.3022] Slim::Networking::mDNS::startAdvertising (110) Error: Couldn't find mDNSResponderPosix binary! Aborting!

Error messages without timestamps are emitted by Perl on the console. They are not normally part of the logfile. However, SSODS redirects the console to the logfile. These messages can usually be ignored (especially if they are labelled with a warning).

SqueezeCenter issues

There are two (minor) issues with running SC on SSODS. They are both unresolvable SC bugs. They can, however, be solved (worked around) in the system (i.e. SSODS). That is done in the $SSODSDIR/bin/ssctrl script. It is safe to manually untar a SC tar ball or update an SVN trunk copy and then start SC using the mentioned script. It will apply the work-arounds on every start if necessary and report accordingly in the server log file. The two bugs are:

Apparently, there is also a MySQL sort bug with certain versions of MySQL. It leads to wrong (random?) sort order of the Browse Genre list. Synology promised to fix it in an upcoming firmware release. It looks like the MySQL server that comes with SSODS is not affected. So you can fix it using this instead of the built-in server. However, please note that this may or may not work and may or may not have other side-effects. Officially, SSODS uses the built-in server. So, if it works, you are lucky, if not, your problem. Here is how to setup SSODS to use the included MySQL server:

cd /volume1/SSODS/bin
mv mysqld _mysqld
ln -s /volume1/SSODS/libexec/mysqld .
/volume1/SSODS/bin/ssctrl restart

There is more information in this (German) thread. Is there a bug filed at Bugzilla (couldn’t find one..)?

MySQL

SS/SC starts its own MySQL server process. It uses the binary included in the DS firmware (see symlink $SSODSDIR/bin/mysqld).

It is possible to use the server instance started through the DS firmware instead. Create a database as follows:

/usr/syno/mysql/bin/mysql -u root
create database slimserver;
grant all on slimserver.* to slimserver@localhost identified by 'slimserver';
quit

Then modify the SS/SC preferences file as follows:

dbpassword: slimserver
dbsource: dbi:mysql:database=slimserver:host=localhost
busername: slimserver

See ExistingMySQLInstance on how to configure this.

SSODS also comes with a MySQL server programme which could be used. See $SSODSDIR/{libexec,share}/mysql.

SSODS

mplayer

Custom file types and conversion rules

To play RTSP and WMA/mms (?) streams through mplayer, use these custom-type.conf definitions:

rtsppl  rm,ram,rpm      ?                               playlist
rtsp    rtsp:           ?                               audio
smilpl  smil            application/smil                playlist

And these custom-convert.conf definitions.

rtsp wav * *
        [mplayer-stdout] -really-quiet -vc null -vo null -bandwidth 10000000 -cache 128 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:nowaveheader:file=- $FILE$
rtsp mp3 * *
        [mplayer-stdout] -really-quiet -vc null -vo null -bandwidth 10000000 -cache 128 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:nowaveheader:file=- $FILE$ | [lame] --silent -r -x -q $QUALITY$ -b $BITRATE$ - -
rtsp flc * *
        [mplayer-stdout] -really-quiet -vc null -vo null -bandwidth 10000000 -cache 128 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:nowaveheader:file=- $FILE$ | [flac] -cs --totally-silent --endian=little --channels=2 --sign=signed --bps=16 --sample-rate=44100 --compression-level-0 -

wma wav * *
        [mplayer-stdout] -really-quiet -vc null -vo null -cache 128 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:nowaveheader:file=- $FILE$
wma mp3 * *
        [mplayer-stdout] -really-quiet -vc null -vo null -cache 128 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:nowaveheader:file=- $FILE$ | [lame] --silent -r -x -q $QUALITY$ -b $BITRATE$ - -
wma flc * *
        [mplayer-stdout] -really-quiet -vc null -vo null -cache 128 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:nowaveheader:file=- $FILE$ | [flac] -cs --totally-silent --endian=little --channels=2 --sign=signed --bps=16 --sample-rate=44100 --compression-level-0 -

You may need the AlienBBC plugins for these to work. And you probably don’t need the rules once AlienBBC is setup correctly. See below and the forums etc.

You can also play m4a files using these rules:

mov wav * *
        [mplayer-stdout] -really-quiet -vc null -vo null -cache 128 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:nowaveheader:file=- $FILE$ 2>/dev/null

mov mp3 * *
        [mplayer-stdout] -really-quiet -vc null -vo null -cache 128 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:nowaveheader:file=- $FILE$ 2>/dev/null | [lame] --silent -r -x -q $QUALITY$ -b $BITRATE$ - - 2>/dev/null

mov flc * *
        [mplayer-stdout] -really-quiet -vc null -vo null -cache 128 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:nowaveheader:file=- $FILE$ 2>/dev/null | [flac] -cs --endian=little --channels=2 --sign=signed --bps=16 --sample-rate=44100 --compression-level-0 - - 2>/dev/null

You can play AAC+ files using this custom-types.conf types

aap     -              audio/aacp,audio/aac           audio

and this custom-convert.conf rules

aap wav * *
        [mplayer-stdout] -ac faad -demuxer aac -really-quiet -vc null -vo null  -cache 64 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:nowaveheader:file=- $FILE$ 2>/dev/null 
aap mp3 * *
        [mplayer-stdout] -ac faad -demuxer aac -really-quiet -vc null -vo null  -cache 64 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:nowaveheader:file=- $FILE$ 2>/dev/null | [lame] --silent -r -x -q $QUALITY$ -b $BITRATE$ - - 2>/dev/null
aap flc * *
        [mplayer-stdout] -ac faad -demuxer aac -really-quiet -vc null -vo null  -cache 64 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:nowaveheader:file=- $FILE$ 2>/dev/null  | [flac] -cs --totally-silent --endian=little --channels=2 --sign=signed --bps=16 --sample-rate=44100 --compression-level-0 - - 2>/dev/null

and this addition to stings.txt (isn’t there a custom-strings.txt?)

AAP
        EN      AACplus

See also this post (and ff.) and this thread.

There are further programmes to do on-the-fly conversion for SS/SC. These include oggenc, flac, lame, shorten, sox and others. They can all be used on the command line as well. Note that SoX comes without support to decode flac encoded files. Use flac --decode to do the job.

There are several programmes (mplayer, lame, vorbis-tools, flac, sox, alac, shorten, mac-port, mppdec) included with SSODS that enable on-the-fly transcoding of exotic file formats. See sources for a complete list of included programmes.

SC/SS Plugins

Note: This section is outdated and the information might be completely wrong. There is no official support for any plugin (well, there is no official support at all anyway..).

Several plugins seem to work: AlienBBC, MusicInfoSCR, Scanner, LazySearch, TrackStat and probably more.

Third party plugins (plugin files and folders) for SS/SC have to be installed manually in $SSDIR/Plugins. See above on how to access the SS/SC files.

It is possible to add missing Perl modules to the $SSDIR/CPAN directory hierarchy (as in site_perl on usual installations). One could also patch a SS/SC tar ball accordingly.

AlienBBC

Install the plugin:

cd /volume1/SqueezeCenter
tar -xzvf /path/to/alienbbc-linux_v2.00.tar.gz

Change the conversion rules with this command:

sed -i '/^[^#]/s/mplayer.sh/mplayer-stdout/;/^[^#]/s@/dev/fd/3@-@' /volume1/SqueezeCenter/Plugins/Alien/custom-convert.conf

Setup appropriate File Type settings, which probably are:

Restart SC:

sudo ssctrl restart

Linux Hacking

sudo

Note: Not applicable to TurboStations due to limitations in the operating system.

Add to $SSODSDIR/etc/sudoers-template (see sudoers(5) for details):

admin    ALL=(ALL) SETENV: ALL                                                   

Update the $SSODSDIR/etc/sudoers file:

/volume1/SSODS/etc/init.d/sudoers start

vim

If you want a nice «vim» (as far as this is possible with a «vi» anyway), do this:

cd /volume1/SSODS/share/vim
sudo tar -xjvf vim71-files.tar.bz2
ln -s /volume1/SSODS/share/vim/vim71/vimrc_sample.vim ~/.vimrc

Locales

Once you setup a locale via SSODS->Settings it will be available in the «SSODS bash» (see $SSODSDIR/etc/profile. locale will show the currently active locale, locale -a will show the available (compiled) ones. Use the Generate locale routine in SSODS to generate additional locales. The commands to generate (compile) a specific locale could look like this (compare $SSODSDIR/libexec/ssods/ssods_cgi-locales.sh):

ln -s /volume1/SSODS/share/locale /usr
ln -s /volume1/SSODS/share/i18n /usr
mkdir /usr/lib/locale
localedef -i de_CH -c -f UTF-8 -A /usr/share/locale/locale.alias de_CH.UTF-8

Since change 21067 (see also bug #8410) there is a new command line option (--charset) to slimserver.pl to force it to interpret filenames using the specified charset. SSODS users wishing to use this can add the option to $SSDIR/ssods.conf (e.g. SSEXTRAARGS="$SSEXTRAARGS --charset=utf8). This makes the UTF-8 Patch in SSODS obsolete for SC >= 7.1.

See also Filename encoding below.

DiskStation

This section probably also applies to Turbostations.

System limitations

The DS firmware does not support locales. Therefore the date and time screensaver on the SB will allways show English day and month names. SSODS comes with the necessary locales since 3.0beta10. If setup correctly (via the Settings page in SSODS), the screensaver should use localised names.

The DS firmware uses a case insensitive file system, which is a pain in the as.

Beta versions of Synology firmwares might (!) work but are not (!) supported.

It seems, that the DS sets the volume to read-only while a disk check and/or a re-sync of the software RAID device(s) is going on. This prevents SS from starting up correctly. The result may be errors (in the logs, on the console) such as segmentation fault, core dumped or other generic errors.

It is always a good idea to reboot if things do not work as expected. :-)

Filename encoding

The DS uses UTF-8 encoding for file names. It is recommended to use an UTF-8 locale for SSODS/SC. See also Locales above. If you access your files via NFS or FTP (?) ensure that the client system uses an UTF-8 locale, too.

Harddisk standby

Harddisk standby (or «hibernation» as it is often misleadingly called) seems to be an issue on Diskstations (and other NAS), particularly with SSODS and SqueezeCenter installed and running. There is about a zillion of forum threads on this subject.

There is also an undocumented programme in the firmware (see Spindown issues) which can help to identify the culprits. A part of SSODS (thttpd) apparently caused problems (see this thread). This has been fixed in beta13.

Another culprit seems to be Perl’s INET.pm module which accesses /etc/protocols to lookup protocol numbers. There’s a more recent version of this module in the development version of Perl. This one, however, still doesn’t help due to a typo. SSODS includes a corrected version of the module since 3.14. See this thread for more information.

Other issues

Apparently, the Multimedia Station (or whatever this is called) creates numerous directories named @eaDir, which contain meta data, which can disturb SC’s scanner. There used to be (and still is, for SS/SC < 7.1) a patch in SSODS to ignore these directories during scanning. Since change 20838 they are ignored by default. Hence, the patch is no longer available and necessary for SC >= 7.1.

TurboStation

Samba (Windows network share) Access to SqueezeCenter

Go to Network Share Management and Create a new share with the following settings:

In the Access Control panel add the user ssods with Full access to the left pane. Remove all other users and groups.

Go to the User Management and Change Password for the ssods user.

ssh to the TS and call /usr/local/samba/bin/smbpasswd -a ssods and enter the same password again.

You should now be able to connect the share as user ssods (and only as this user) and modify the files (e.g. to add a plugin or to backup the preferences).

Timezones

If there are issues with incorrect time and/or timezone display, try adding the following to /share/HDA_DATA/SqueezeCenter/ssods.conf (create the file if it doesn’t exits) and restart SC.

[ -f /etc/TZ ] && export TZ=`cat /etc/TZ`
Visitors to this page so far.