Dianemo S

From LinuxMCE
Revision as of 05:26, 12 October 2011 by Uplink (Talk | contribs) (Custom xorg.conf: Clarify the customization tag line)

Jump to: navigation, search

Dianemo S10.10 is a software product, that shares a common heritage with LinuxMCE, that enables you to have a Dianemo installation on almost any LinuxMCE compatible Core hardware that you already own. The software only product is supported by the CHT Tech Support team via the LinuxMCE forum to keep its cost to a minimum. We cannot guarantee that all hardware will work with Dianemo S10.10 so there will be some restrictions as to which hardware you can install it on. One key restriction is that both for Hybrid NerveCentre's (Intel GPU's may work in UI1 only) and Media Managers we will only be supporting nVidia GPU's. Each installation will have a Dianemo installation ID and will be upgradable to future releases using a disc-less online update/upgrade procedure. You will receive 12 month's of updates/upgrades included in your initial purchase cost and there will be an annual charge to continue to receive updates/upgrades for subsequent years. Updates will be released as and when we develop them and will be available at the same time as they are made available to our hardware products and OS upgrades will follow shortly after Ubuntu OS releases and dates. Any customer who does not sign-up for paid for updates after the initial 12 months will not loose access to their system they will just not receive any updates/upgrades.

Dianemo S10.10 is currently built on Ubuntu 10.10 and we expect to transition to Ubuntu 11.10 in early Nov 2011 - ALL Dianemo S10.10 systems will be upgradeable without a re-install (ie they will upgrade like any other Ubuntu installation).

See the Dianemo Forum Thread for more information about pricing and the procedure for purchasing a license.

Installing Dianemo S10.10

Hardware Compatibility

Basically if the Ubuntu LiveCD is happy with your hardware then you should be all set in overall terms - do that test first. Alternatively if you already have some hardware that is performing well with LinuxMCE then that is very likely to suitable for Dianemo too

More specifically we have tested and use the Asus PF7-M WS Server Class MicroATX motherboard and if this suits you requirements then it will work very nicely as an NC or 'Full Size' MM motherboard. Pretty much any of the current crop of Atom/iON motherboards or pre-built units should work well as MM's or as small NC's too. We particularly like the Asus AT510NT-I Atom/ION Mini-ITX motherboard as a good choice for MM's as its fanless and has a good low-profile heat-sink design.

Below are the simple steps needed to install Dianemo S10.10 on your existing LinuxMCE compatible hardware;

  • Install 32bit Desktop edition Ubuntu 10.10 from a LiveCD
  • When prompted to upgrade to 11.04 say NO.
  • At this point you should have the dianemo-licence and dianemo-installer debs somewhere on the drive (via e-mail from CHT).
  • Install the dianemo-temporary-licence deb first
  • Install the dianemo-installer deb second
  • Open a termnial
  • Execute in terminal:

It will prompt you for your user password for sudo, to become root ie the user/password you created in the Ubuntu installer. Go make yourself a cup of tea or coffee, bake a few biscuits, that kind of thing!... while the installer does its thing.

The installer will download the debs and install them for you without asking any questions. After the system is installed, it will run Diskless_CreateTBZ.sh as well. If installation finishes successfully, reboot your system and Dianemo will start.

Using the AVwizard 2.0 to Configure Video/Audio for your TV

AVwizard 2.0 - The AVwizard automatically detects what connector (HDMI/DVD/VGA) your display/TV is connected to and will automatically configure the highest resolution suitable for the displays reported EDID capabilities & aspect ratio. The AVwizard now uses the native uBuntu X detection first and if it succeeds it will use that otherwise it will test the previously used custom mode lines. You can still override its choice of screen resolution setup if required and the rest of the process is as before. However this version should avoid situations where some users cannot get a display to start X and therefore do not get video at all.

The AVwizard will automatically be run when you start-up your NC for the first time or add a new MM and boot it for the first time. You can re-run the AVwizard at any time to change the configuration of your TV display & audio outputs for your NC or MM's. From the RedLine UI Home screen select;

Control -> System -> Enter your system PIN (defaults to '1234') and then select/press the Circular button. Now Select/Press the 'Video Res & Audio Button'

The NC or MM will now reboot and run the AVwizard automatically.

Updating Dianemo

On your NerveCentre run the Updater script below to update your system with the latest packages & fixes;

sudo /usr/pluto/install/dianemo-software-update.sh

Periodically we will announce that you need to run this script - but you free to run it at anytime to make sure your NerveCentre is up to date.

To Update your Media Managers

Please run the Diskless Setup script on your NC;

sudo /usr/pluto/bin/Diskless_Setup.sh

This will update all of your MM's and also retain any existing software changes you have made to any of them.

Please note that Diskless Setup will take a considerable amount of time... please be patient!!

Dianemo Permanent License Key

Within 14 days of your Dianemo S10.10 installation contacting our servers you will receive another deb called 'Dianemo-license-nnnnnn' this should be copied to your NerveCentre and installed. This deb installs a securely signed file that completes your installation.


The following are some notes on configuring your system.

Turning On Remote Assistance

Please do the following;

From a web browser on the the NC or on a PC on the LAN side of your NC please enter the URL below;

On the Web page displayed after entering the URL above please got to the Remote Access menu in the blue menu bar and select the 'Tech Support' menu item. On the page that is displayed make sure that the 'Remote Assistance' indicator says 'Enabled'. If it does then please click on the 'Disable' button and then 'Enable' it again - ie toggle it off/on. The 'Remote Assistance' indicator should now say 'Enabled'.

Accessing Web Admin

To access Web Admin please use the following url from your Web browser on the NC itself or another PC on the LAN side of your NC;

Backing up your Dianemo Database

We recommend that you regularly take a backup of your Dianemo systems database so that you can always restore your systems configuration should you need too. Please note that these backups are only of your systems database - none of your media or other data is backed up. To make a backup do the following;

  • Open your NerveCentre's Web Admin page (see above)
  • From the green menubar select - Advanced -> Configuration -> Backups
  • On the Backups page enter some descriptive text or notes on the backup and then click the 'Backup' button. After 60 secs or so a backup file will be added to the page beneath the 'Backup' button.

Download Backups

Backups can be downloaded by clicking on the 'download' link next to each listed backup entry and stored safely on another system.

Restore Backups

Backups can be restored by using the 'Choose file' button in the 'Restore' section of the Backups page. This enables you to restore a backup that you had previously downloaded to your laptop or PC.

Backup files are actually stored in;


Xorg custom setup

Installing a different Nvidia driver

If you have an older nVidia card that isn't supported by the driver provided by nvidia-current, you normally shouldn't need to download anything from Nvidia. Ubuntu provides packages for older drivers too.

If you require the 173 series, as for the Quadro FX 2000, this is what you need to do to activate Ubuntu's 173 driver:

Inside a terminal, do this:

apt-get install nvidia-173
update-alternatives --config gl_conf
# select the 173 library at the prompt

This will install the 173 series nvidia driver and activate it. Nothing else needs to change.

Custom xorg.conf

If you need Dianemo to keep your xorg.conf exactly the way you left it, add this line anywhere in it:

# CustomUserConfig=1

That's: Single hash character as the first character on the line, followed by space, followed by the string "CustomUserConfig=1". Any variations on this (like putting two hash signs, or omitting the space) will not work.

When this is present, Xconfigure.sh will not touch xorg.conf at all. That also means AVWizard won't work properly either, and any mismatch between your xorg.conf and the database will have to be handled manually.

Detecting Shares when adding a NAS

The shares detection problem is due to the Configure_1837.sh script not getting called correctly by some other scripts. We're working on a fix for that. In the meantime if your server has been detected and added but the shares have failed to get detected automatically then run this script from the console and your shares will be detected. Firstly use Web Admin's device tree to find out the Device ID for the newly added NAS and note it down. Now from the console run the following scripts to detect the shares;

sudo /usr/pluto/bin/Configure_1837.sh -d <device_ID>

Next run the the script below to create the file structure;

sudo /usr/pluto/bin/StorageDevices_Setup.sh

Make sure you have an Orbiter displayed so that you can respond to the standard setup questions for your shares... ie 'use pluto file structure' etc etc. Once this script has run your good to go.

Configuring Media Config

In Dianemo 10.10 we use the media_config.conf file to define how media should be routed/controlled. Essentially media_config.conf replaces the pipes editor. The file should be created in /etc/pluto as below if not already there;


Each line in the media_config.conf file contains the information for a single room (see below for the media_config.conf representing a simple two room system). In the example below Room3 is the "Lounge" and Room4 is the "Kitchen" for example. In Room3 we have a Denon Receiver & LG TV - AudioDev=59 therefore associates the Denon receiver device ID with the audio device for this room & VideoDev=60 therefore associates the LG TV device ID with the display device for this room. KeepScreenOnForOSD=yes can be set to 'yes' or 'no' - where 'yes' means never turn the display off and 'no' mean allow the display to be turned off if the 'off' event is sent to devices in this room.

In Room4 we have different arrangement of devices. Room4 contains a touch based MM with an integral TV display and the audio is routed to the on-board speakers - AudioDev=37 therefore associates the AppServer for this MM as the audio device & VideoDev=; therefore is left empty as there is no separate TV in this room.

Room=3: AudioDev=59; VideoDev=60; KeepScreenOnForOSD=yes
Room=4: AudioDev=37; VideoDev=; KeepScreenOnForOSD=yes

After editing your media_config.conf file save the changes. There is no need to reload the router for your changes to take effect.

Adding SqueezeSlave Devices

Follow the steps below steps to add Squeezeslave Audio streaming devices to your Dianemo system;

  • Click 'Show Devices Tree' in Web Admin
  • Select the Core & then use the 'Add Child Device' option at the top of the screen on the right.
  • In the 'Add Child Device' screen click 'Pick Device Template' button
  • Now enter Device ID 1964 and click 'OK'
    • 'Squeezebox Slave' & '1964' will be visible next to the 'Pick Device Template' button - click it to select this template
  • You will now see your new Squeezeslave device template screen;
    • Add a meaningful Device Description to uniquely identify which Squeezeslave this is (a reference to the Room Or zone is a good idea)
    • Set the Room & Entertainment Area
    • In the Device Info section set the (**ie the top most section of the template**);
      • Set the Mac Address. This should be in the form of; 00:00:00:00:00:01 and unique on the system
    • In the Device Data section set the;
      • Sound card this Squeezeslave will use

Next you need to create a Squeezebox Player to be associated with the SqueezeSlave you created above;

  • Click 'Show Devices Tree' in Web Admin
  • If there is already a 'Slimserver Streamer' section under the 'Core' then;
    • Add a child device under the 'Slimserver Streamer'
    • In the 'Add Child Device' screen click 'Pick Device Template' button
    • Now enter Device ID 58 and click 'OK'
    • A new Squeezebox Player will be added under the 'Slimserver-Streamer'
    • Give it a matching name to the Squeezeslave you are associating it with and locate in in the same Room/EA & enter the same Mac Address too.
    • Save the changes
  • Now do a reload
  • Next you should start the Squeezeslaves manually (on boot they will be started automatically);
sudo /usr/pluto/bin/Start_SqueezeBox_Slaves.sh
  • Test your new devices to make sure they work correctly

Creating DCEWhisperer Device Templates


Configuring HDMI Audio for nVidia Video Cards with on-board Sound cards

  • Use the AVwizard to select your AV options and in particular 'HDMI Audio'. Allow the AVwizard to finish and the Orbiter to be displayed.
  • Go to the Wizard Media Directors page in Web admin and find your Media Manager then find the 'Sound Cards' drop down on the right hand side of the page and select your nVidia cards on-board sound card. Scroll to the bottom of the page and click Update.
  • Reboot and your settings will be correctly retained.

Now your audio should be correctly routed vie the HDMI port on your nVidia GT220 or above video card.

Using a multi-channel sound card as multiple Virtual Stereo cards

Example: ESI Gigaport HD

  • Add a device of template "Multichannel sound card" (Dianemo Device Template #1993) under the machine to which the sound card is attached.
    • Select the physical card that will be partitioned into virtual cards from the drop down.
    • Set the number of channels the sound card supports.
  • Under this device, add as many "Stereo virtual sound card" (Dianemo Device Template #1994) as are needed - for a 8 channel card you should have 4 child devices of this type.
    • For each virtual card set the "Channel Left" and "Channel Right" device data to the physical channel on the card that will be used to output the left and right channel of the virtual card. Numbering start at 0 - for a 8 channel card, the channel number pairs would be 0,1; 2,3; 4,5; 6,7.
  • Execute /usr/pluto/bin/SetupAudioVideo.sh - this will setup ALSA to show the virtual cards.
  • Execute /usr/pluto/bin/UpdateAvailableSoundCards.sh - this will add the virtual cards to the "Sound Card" device data drop-down. Virtual cards are named "Virtual_NN", where NN is the device number of the virtual card in the device tree.
  • You can now set up Squeezebox Slave devices using these virtual sound cards following the Squeezebox Slave instructions on this page.
  • Right now you can't use a virtual card as the main card of an MD (although the virtual cards will be selectable), but an enhancement to make this possible is in the works --Uplink 02:05, 23 September 2011 (CEST)

DPMS control of computer monitors

If you want to use DPMS to control the On/Off power state of a computer monitor rather than a serial control of a TV, you can add a device based on the "DPMS Monitor" template (Dianemo Device Template #1995) to the machine(s) in question, then see the "Configuring Media Config" on this page on how to tell the system to control it. You should assign the number of the DPMS Monitor device to VideoDev under the appropriate room.

Show/Hide The Mouse or Cross Hair Cursor

By default the Mouse Pointer & Cross Hairs Cursor are hidden. You can enable these cursors by renaming/deleting the following file on each Media Manager;


If the file is present then neither the mouse pointer or the cross hairs cursor will be displayed. If you are not using a Gyration Style remote or a mouse/trackball then you will probably want this file to exist on each Media Manager. Delete or rename the file on any Media Manager where you would prefer those cursors to be displayed.

Adding iOS Orbiters to your System

Please download the latest Dianemo App from Apple's iOS App Store. The Dianemo App is a free download from the App store.

Follow the steps below to add an iOS device to your Dianemo S10.10 NC;

Configuration changes on your NC

The procedure to setup a new iOS Device on your NC is simple but the order of the steps is important.

  • First of all, add a new Generic Web Device as a Child Device of your Core:
    • Goto the Dianemo Admin website--> Pull down Advanced --> Configuration --> Devices --> This shows the devices tree on the left window --> click CORE. The CORE's detail page should appear.
    • Click 'Create Child Device'.
    • In the Description, enter the name of the specific web orbiter (choose a device descriptive name ie 'Paul's iPod4G')
    • In the Add child device window, click the button 'Pick device template'. A new pop-up window containing device templates will be opened.
    • Type the template id: 1748 and press go.
    • Click the button 'Pick Device Template'. The Add Child Device Window will close, and the Generic Web Device will be added to the Core, as the updated Device Tree will be displayed.
    • A new Generic Proxy Orbiter will also be created automatically. Watch the Orbiter generation process on the Orbiters page: Wizard-->Devices-->Orbiters.
  • Make a note of the device ID of the new Generic Web Orbiter as this will be needed when configuring the Dianemo Orbiter App on your device.
  • Wait till the Orbiter generation procedure finishes.
  • A message on an active Orbiter or on the Orbiter page will indicate when it has completed.
  • Set the appropriate screen resolution to suit the iOS device you are adding from the 'Size' drop down
    • iPad1 or iPad2 = 1024x768
    • iPhone 3G, 3GS, iPod 1-3 Generation = 480x320
    • iPhone4 or iPod4G = 960x640
  • Set the 'Skin' drop down to the skin you want to use (we recommend the 'RedLine' skin or 'Basic')
  • Click on your new Generic Proxy Orbiter in the device tree, give it a unique, and meaningful name, and then scroll to the bottom of the page on the right and look for the field called 'Listen Port'. This field will be set to '3461' by default (if this Generic Proxy Orbiter is not your first then you should increment this value by one ie to '3462' - each Web Orbiter must have a unique 'Listen Port' number)
  • Now click the 'Save' button at the bottom of the screen to save the changes you have made.
  • Now do a 'Full Regen' from the 'Wizard - Orbiters' page (use the 'Full Regen' for the specific Web Orbiter you have created and not the overall 'Full Regen' button at the top of the page). When the Regen has completed do a "Quick reload router". This step is important Otherwise the Generic Proxy Orbiter won't work properly.

Setting up your iOS Device

  • Make sure your iOS device is connected to your LAN side WiFi AP
  • Download the Dianemo Orbiter App from the App store
  • Start the Dianemo App and use an Upward 'swipe' gesture to display the Tab Bar at the bottom of the display
  • Touch the Configuration Tab to display the Connections screen
    • Select '<New Connection>' to display the Connection Settings screen and fill in the fields as follows
      • Description>>> And text string that uniquely describes this Connection Setting
      • Installation number>>> The installation ID of your NC
      • Device number>>> The Device ID you noted down when setting up your Generic Web Device in Web Admin
      • User Name>>> Used for remote access via the Dianemo's Remote Access System **Contact CHT for availability**
      • Password>>> Used for remote access via the Dianemo's Remote Access System **Contact CHT for availability**
      • Nerve Centre IP>>> The NC's internal LAN side IP address - usually this will be
      • 'SAVE'>>> touch this when you want to save the settings you have entered.
    • Select your new Connection to display the options for using it;
      • Connect Locally>>> Use this when you are at home and using your NC's WiFi connection
      • Connection Remotely>>> Use this when you are not at home and want to access your Dianemo system (you need WiFi, mobile 2G/3G data connection foe this to work outside of the house)
      • Edit>>> Edit or update this configuration
      • Delete>>> Delete this configuration from your iOS device.
    • Touching the Settings button in the Connections screen displays the Global Settings screen;
      • Wifi Only>>> forces the device to only use Wifi if set to 'ON'
      • Load Indicator>>> Displays the load indicator if set to 'ON' when the screen is updating.
      • Polling Frequency>>> Determines how often the Dianemo Orbiter will check back with your NC to see if any display changes have occurred
      • Enhanced UI>>> If set to 'ON' then the Enhanced UI mode is used in certain screens in the Orbiter eg Media Browsing. This turns on the interactive layer that provides dynamic scrolling etc. If set to 'OFF' then the standard static UI screens are displayed.
      • Save Settings>>> Saves any changes you make while in the Global Settings screen.

Adding a uPnP Device Manually

Some basic instructions on Adding a new UPnP device manually from Web Admin;

Firstly install the "uPnP AV Control Point" software on your NC (or another Ubuntu system on your LAN) using the Ubuntu Software Center. Now follow the steps below to add & configure your uPnP Media Player & a uPnP Device Template;

  1. Connect your uPnP device to the LAN and power it up.
  2. Create a Child device of the 'Core' and use device template #1980
  3. Using the GUPnP Universal Control point App find the 'UUID' of the UPnP device you want to add a DCEdevice for. Click the UPnP device entry in the Apps left hand pane and then right-click on its UDN entry in the right-hand pane and use the 'Copy to' option.
  4. Now scroll to the bottom of your new uPnP device in Web Admin and paste the UUID into the 'uuid' field in the device template and hit save to save the changes.
  5. Make sure the device is set to 'Manually configure'
  6. Select a free room & entertainment area and select these for your new device.
  7. Now save the changes again.
  8. Now do a reload router.

Note; After creating the UPnP device you may find that the device does not function. This is often due to the device having an entry in 'Pluto_spawned_local_devices.txt' locks file. All you need to do is find the Device ID of the UPnP device you just added in this locks file, remove its entry and save the file. Now back in Web admim do a Reload and your device should now startup correctly and function;


Adding remote Controls

Setup Wii-Remote

I added this HowTo to this Wikipage to have a complete Dianemo S10.10 Guide (copyed from the LinuxMCE Wikipage).

Login (Logging_In) as root to the media manager which has a bluetooth stick with ssh.

sudo su -

Install the cwiid driver as follows

  • For Dianemo S10.10:
apt-get install libcwiid1 wminput

Make sure the uinput kernel module is loaded at boot-time:

echo "uinput" >> /etc/modules

Load it manually in the mean time:

modprobe uinput

create the daemon

cat >/usr/sbin/wminputd <<"EOF"
#read the config file
. /etc/wminputd.conf
export DISPLAY=:0

while true
       #check if the Orbiter/OrbiterGL is already running!
       if [ "$(pidof OrbiterGL)$(pidof Orbiter)" ]

               #check if the wiimote is already connected
               if [ -z "$(hcitool con|grep $WIIMOTE_BDADDR)" ]
                       PID=$(pidof wminput)
                       if [ "$PID" ]
                               kill -9 $PID
                       #check if WiiMote is in range (prevents spawning devices every 10 secs)
                       if [ "$(hcitool scan|grep $WIIMOTE_BDADDR)" ]
                               #mouse acceleration, adjust to your liking
                               #see also: "man xset" and/or "xset -h"
#                               xset m 1/2 3
                               wminput -c ir_ptr $WIIMOTE_BDADDR &


      sleep 5



Make it executable

chmod 755 /usr/sbin/wminputd

vi /etc/wminputd.conf

#this is the config file for the wminputd
#enter the wiimote mac address, you can find it with
#hcitool scan  and then press the red button
#besides the battery's off the wiimote
#Then place the show'n mac address as follows

you can find your address with hcitool scan

  • Edit the file /etc/cwiid/wminput/buttons
vi /etc/cwiid/wminput/buttons

And make it suitable to your needs below is mine


Wiimote.A       = KEY_ENTER
Wiimote.B       = KEY_ESC
Wiimote.Up      = KEY_UP
Wiimote.Down    = KEY_DOWN
Wiimote.Left    = KEY_LEFT
Wiimote.Right   = KEY_RIGHT
Wiimote.Minus   = KEY_F7
Wiimote.Plus    = KEY_F8
Wiimote.Home    = KEY_F3
Wiimote.1       = KEY_F1
Wiimote.2       = KEY_F6

  • create the init file
vi /etc/init.d/wminputd
# Start/stop the wminputd daemon.
# Provides:          wminputd
# Required-Start:    $syslog $time
# Required-Stop:     $syslog $time
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: mousemodule
# Description:       wminputd

test -f /usr/sbin/wminputd || exit 0
. /lib/lsb/init-functions

case "$1" in
start)  log_daemon_msg "Starting wii-remote mousemodule" "wminputd"
       start-stop-daemon -b --start --quiet --pidfile /var/run/wminputd.pid --name wminputd --startas /usr/sbin/wminputd -- $LSBNAMES
       log_end_msg $?
stop)   log_daemon_msg "Stopping wii-mote mousemodule" "wminputd"
       start-stop-daemon --stop --quiet --pidfile /var/run/wminputd.pid --name wminputd
       log_end_msg $?
restart) log_daemon_msg "Restarting wii-mote mousemdule" "wminputd"
       start-stop-daemon --stop --retry 5 --quiet --pidfile /var/run/wminputd.pid --name wminputd
       start-stop-daemon -b --start --quiet --pidfile /var/run/wminputd.pid --name wminputd --startas /usr/sbin/wminputd -- $LSBNAMES
       log_end_msg $?
*)      log_action_msg "Usage: /etc/init.d/wminputd {start|stop|restart}"
       exit 2
exit 0

Make it executable

chmod 755 /etc/init.d/wminputd

run the script and push the red button beside the battery and your wiimote is ready to go

enable the script so that it will start at boot time

update-rc.d wminputd defaults

now start the script and see if it works

/etc/init.d/wminputd start

To establish the Bluetooth connection press the Buttons 1&2 on your Wii-Remote. The LED's on your Wii-Remote will flash. When the LED's stop flashing your remote is connected.

Adding a Gyration Media Remote

Plug the Gyration Dongle into your MM and then in the Media Manager page in Web Admin select "dev/input HID MCE kbd/remote" as the 'Infrared Receiver' from the drop down. Save the change by scrolling to the bottom of the page an clicking the 'Update' button.

Adding a Fiire Remote

In Web Admin display the device tree in the left hand pane. Now locate the Orbiter of the Media Manager you want to add the Fiire Remote too and click on its entry in the Tree. Now click on 'Create Child Device' in the right hand main window (top left of that pane) and then click 'Pick Device Template' in the 'Add Child Device' window. In the 'Pick Device Template' window enter '1848' (which is the device template No. for the Fiire remotes Template) and press 'Go'. Now plug in your Fiire Remote Dongle. Now do a reload router and your new Fiire Device is ready to go.

Using theMovieDB service

The Enhanced Movie Metadata Web Tool accesses theMovieDB database and can be accessed from the following internal Web Admin url;