Skip to content
Linux daemon that controls the status LEDs of Acer Aspire EasyStore H340 and HP MediaSmart Server Ex485 (Originates from
Branch: master
Clone or download
Pull request Compare This branch is 3 commits ahead, 2 commits behind merelin:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Recently I installed Ubuntu on my HP MediaSmart Server 485 and got annoyed with the blinking health LED. So here's a small Linux daemon that stops that, takes control of the LEDs, decreases the brightness, and monitors for disk changes using udev.

I have only tested this on my single HP MediaSmart 485 server. I have not tested it on any other hardware let alone different variations.


mediasmartserverd [-D] [-v] [-V] [--brightness ]

-D, --daemon Causes process to operate in the background as a daemon.

-V Prints the program version number.

--brightness Controls the LED brightness level. Where level is 0 (off) to 10 (full).

Compiling under ubuntu requires g++, libstdc++-dev, libudev-dev, and make

Compiling under Debian 8 (Jessie) with SystemD, requires: apt-get install g++ libstdc++-4.9-dev libudev-dev make


$ make $ cp mediasmartserverd /usr/sbin $ cp ./lib/systemd/system/mediasmartserver.service /lib/systemd/system/mediasmartserver.service $ systemctl daemon-reload $ systemctl enable mediasmartserver $ systemctl start mediasmartserver $ systemctl status mediasmartserver

query help

$ ./mediasmartserverd --help

run as a daemon in the background

$ sudo ./mediasmartserverd -D

On my server I have this executable living in /opt/mediasmartserverd and then being invoked on startup by rc.local

start our monitor daemon

/opt/mediasmartserverd -D

Installing your favourite Linux distribution on the HP MediaSmart ex485:

i) Either create or buy a VGA cable and attach it. While it is possible to install Linux without this cable, having one makes things soooo much easier.

ii) Clear out a USB stick and go download UNetbootin

Which allows you to create a bootable USB drive of your favourite Linux distribution. It will even go and download a distribution for you, if you don't have an ISO handy.

I used the 64 bit version of Ubuntu 9.10 aka ubuntu-9.10-server-amd64.iso

iii) Run unetbootin and follow the instructions to create a bootable USB drive

iv) Insert the USB drive into the bottom USB port on the rear of your server. Only the bottom port is initialized by the BIOS and is the only port that will it boot from. This can cause difficulty as you won't be able to use a keyboard until an operating system has initialised the other USB ports. In short you will not be able to play with grub options and will have to wait for the time out.

v) Install Linux!

On the ex485 all of the LED brightness, fan control, voltage sensors, etc are hooked up to an SMSC SCH5127-NW chip.

Super I/O with Temperature Sensing, Auto Fan Control and Glue Logic

Actual LEDs are controlled via the General Purpose I/O of the ICH9 chip. Intel I/O Controller Hub 9 (ICH9)

As I haven't had much experience communicating to hardware devices directly, and I was somewhat inspired by reverse engineering posts by ymoc & cakalapti. I ended up partially reverse engineering the Windows driver WNAS.sys. This turned out to be quite beneficial as documentation isn't easily available for the SCH5127 chip.

LEDs are numbered from BOTTOM (1) to TOP (4) to match the SCSI bay assignments.

You can’t perform that action at this time.