UPDATE: Photos are back online! Thanks to Gabi from Romania for the copyright free photos!

Gira has a made beautifull Homeserver and FacilityServer. Unfortunatelly it’s quite expensive (about €2400,- for their Homeserver3 and the Facilityserver is even more). Is this device made of gold ?

The opposite is true, the Homeserver 3 exists of:

The Homeserver Hardware

  • A cheap Mini-ITX VIA Epia ML6000EAG Mainboard with onboard 667Mhz CPU (or similiar, buy here)
  • 128MB DDR 266Mhz RAM (or 512MB for the Facility Server)
  • 64MB Flash (or 256MB for the Facility Server)
  • A Linux Kernel 2.4.3 (ELinOS with Busybox, however the Gira software itself will run on any Centos or Redhat 2.6.x, even x64 releases!)
  • A ISDN adapter (We don’t use that anymore in 2009, everybody is calling VOIP;) )
  • Some Gira proprietary Software (hs_trans and hs_main executables)


The drive layout
After some research I also found the following:
A Flash drive is connected as a Master on the second IDE ATA controller (which means it is /dev/hdc) and exists of 4 partitions:

  • /dev/hdc1 (2MB) – Boot partition with vmlinux (kernel) and loadlin
  • /dev/hdc2 (20MB) – Linux/Operating System, mountpoint: /
  • /dev/hdc3 (21MB) – (used to store the project?)
  • /dev/hdc4 (21MB) – (for upgrades?)

The boot process and hs_trans and hs_main programs
When starting the homeserver, the vmlinuz from the Boot partition is loaded (via loadlin / DOS) and it boots the system into a Linux kernel, then a /etc/inittab startup script calls the /hs/bin/start/start.sh script.
The start.sh script does actually two things:
– It starts the hs_trans (Gira propriatary software) which automatically ends after a few seconds.
– Then it starts the hs_main (also Gira propriatary software) which is the main program.

Q. Why does is starts (and ends) the hs_trans program ?
A. This is to load the initial project on the Homeserver via a Serial Connection. When you buy a Homeserver or when you screwed up things, you need to connect it via a Serial connection to load a project. In a project you set the IP address and admin username/password, this information is needed to load later projects via the Network. Projects are configured (made) and loaded via the “Gira Expert” software.

After the first (serial) reload, it will end the hs_trans program and (as set by the start.sh script) load the hs_main program which is the ‘HomeServer software’.

Building your own Homeserver
So yes,.. in theory it would be possible to build your own Homeserver when you buy an Via Epia board with onboard processor (see above), two flash modules (I suggest 2048MB) and at least 256MB RAM or even make a Virtual Machine (VM) in VMware or XenServer of it.
Offcourse you are not allowed to run the propriatary hs_main and hs_trans executables or to use the Gira Expert software! I do not encourage or support illegal things, this is just for educational purposes. The following steps are just Theory (draft). You need a license or approval from Gira to do this stuff in practice.

10 Steps to build a home-made Home server

  1. Install your favorite Linux (this can be in a VM as well).
  2. Add a 2GB disk and connect it to the third IDE controller (or in VMWare/Xenserver choose the ‘third’ disk position’, this way it will be hdc or xvdc (in XenServer)
  3. Partition the 2GB disk as below, using ‘fdisk /dev/hdc’ (Or /dev/xvdc for XenServer)
    Create 4 new Primary partitions (using the ‘n’ key)
    – The first (size): +2048K
    – The second (size): +xxxxM (whatever you want, but at least 22MB smaller then the total disk space!)
    – The third (size): +10240K (if all works, you can experiment making this larger)
    – The fourth (size): +10240K (if all works, you can experiment making this larger)Then set the correct Type for the partitions (using the ‘t’ key)
    – The first, type: 1 (FAT12)
    – The second, type: 83 (ext3) (or make it any other type, as long as you can install your prefered Linux on it)
    – The third, type: 4 (FAT16 <32MB)
    – The fourth, type: 4 (FAT16 <32MB)Now press the ‘w’ key to write the partition table.
  4. Download and install the Gira Expert Software. After installing it on a Windows PC you will see a file named: FIRMWARE.DAT in the directory: C:\Program Files\Gira\HS+FS\exp232\EN\firmware. Unzip that file (it is a zip file with a .DAT extension).
  5. Copy the HSERVER2.TGZ file to your newly installed Linux server (using WinSCP or another tool) and untar it to /root/ using:
    tar xvzf HSERVER2.TGZCopy the extracted “hs” directory to /
    cp -r hs /
  6. Set firewalling and SELINUX off:
    chkconfig --level 12345 iptables off
    vi /etc/selinux/config AND SET SELINUX=disabled
  7. Because this would be your Home server and you want some flexibility, install the following system tools, libraries and compile tools (using yum or any other tool):
    yum install lrzsz.i386 setserial.i386 unzip.i386 zip.i386 joe.i386 nc.i386 telnet.i386 busybox.i386 mlocate setuptool
    yum install libjpeg.i386 libpng.i386 libpng-devel.i386 giflib.i386 giflib-devel.i386
    yum install make.i386 gcc gcc-c++ kernel-xen-devel.i686 perl
  8. If you are on XenServer (which means the devicename of the 2GB drive is /dev/xvdc) or the devicename of the 2GB harddisk is not /dev/hdc, then edit the following file:
    vi /etc/rc.local
    and put the following lines at the end:
    (Make symlinks to fake the hdc device. Link it to your XenServer xvdc device or if you have another device, link it to the proper name)

    /bin/ln -s /dev/xvdc /dev/hdc
    /bin/ln -s /dev/xvdc1 /dev/hdc1
    /bin/ln -s /dev/xvdc2 /dev/hdc2
    /bin/ln -s /dev/xvdc3 /dev/hdc3
    /bin/ln -s /dev/xvdc4 /dev/hdc4
  9. The Gira license is based on the MAC address of the Network Adapter. All MAC addresses/ranges of all Homeservers are hard-coded in the firmware. I noticed this because new homeservers would not allow to load old Firmware (because their MAC address is not yet coded in the firmware). When you have a virtual server it is not a problem to fake a MAC address, however on physical servers it could be harder.
    The real thing is that the Homeserver does not read the MAC address from the hardware, but from the ‘ifconfig’ tool. So if you make a fake ‘ifconfig’ tool/file, it will just continue:
    mv /sbin/ifconfig /sbin/ifconfig_original (Rename the ifconfig file in case we need it later)
    vi /sbin/ifconfig

    and insert the following lines to it:
    echo