Media Soup

Part I - About
Part II - Components
Part III - Hardware
Part IV - System
Part V - Server
Part VI - Client
Part VII - Miscellaneous
Part X - Examples

Part X - Examples

1. I3 Retro Server - 2011
2. Intel Xeon Vintage Server - 2015
3. Low Cost Celeron / Pentium Server - 2015 / 2017

 


1. New I3 Retro Server - 2011
 

The Intel I3 based 'Retro Server' was my starting point, and has been more or less documented on the previous pages. The hardware was discussed beforee. I didn't keep a step by step guide for this one, sorry. The I3 Retro Server runs Windows 8, and can be used simultaneously for streaming movies / music / watching movies, and some limited gaming. (With a decent video card it could be used for somewhat more serious gaming, though that would hamper background file serving / transcoding / streaming.)


2. Vintage Xeon Server - 2015
 

How about using an old 2007 clunker as a dedicated server? Here's an old Intel Xeon server board that someone gave me, and why not use that as my new (slower) media server? I've got the costs covered (I hope) so unless performance is too low it should do fine.
 

2.1 Hardware

I've used old hardware I had laying around, in this case I've put in 3 GB of memory, I'm going to use Windows 7 Home Premium 32 bits so 3 TB should be enough. I didn't bother going for dual channel mode (didn't have four identical memory chips anyway, and on 32 bit Windows that last 1 GB doesn't matter, neither did that 3% speed increase).

The machine has on-board VGA graphics, good enough for a dedicated server.

The ethernet port is 1 GB. Good. No need for an additional network card.

As booting the machine is incredibly slow I've decided NOT to use a dedicated SSD boot disk, but instead use a 500 GB (or larger) boot drive that I partitioned in two sections: a 100 GB boot partition, and the 400 GB remainder that is going to be used to store... euh... some data that doesn't need much access. Books perhaps, or music? And if I need more space (seriously? this machine has six SATA ports!) I could always replace the 500 GB with a 2 TB drive...

My previous I3 Retro Server was using a Compaq case, Unfortunately the Xeon mainboard wouldn't fit (due to placement of memory and connectors) so I looked for the cheapest full ATX cases I could find. It should not be deeper than 44 cm (the server is located in a closet) and the power supply should be at the top of the case (due to exhaust ventilation holes). The only thing I could find was the Antec VSK4000 which is, frankly, a piece of garbage. But the Xeon board did fit...
 

2.2 Step by step

I'm pretty much doing the same installation every time, so most of the steps of the Celeron Server apply here as well.
 

2.3 Discontinued...

The results:

  • transcoding causes a serious load, one transcoding stream works fine, two might cause some minor problems, three won't work
  • I/O and network performance was on-par with the I3 (hey, this was a former server board after all)
  • no issues whatsoever simultaneously streaming music to five SqueezeBox players and and serving files to three XBMC media players
  • slots, ports, connectors and memory modules are located in very inconvenient places, I coulnd't use any of my cases so had to buy a (very cheap) new one...
Although the machine worked fine and costwise using an ol' clunker can even financially be interesting, I still stopped using this one after a few weeks. There were two reasons:
  1. The lack of standby / sleep support
  2. Troubles going to sleep / hibernate
Every time I switched on one of the Squeezebox units it took forever to wake up the server, and the Squeezebox player would lose its connection. Then I had to try to reconnect again... If you're on a budget and you don't mind those two minutes wait you're fine. For me it reached a certain level of irritation... (There's actually no real reason for the lack of standby support, it was just something Intel didn't think necessary in a server board back in 2007.)

Just as annoying was the tendency of this machine to stay 'on'. I suspect (though I have no hard evidence) that Windows managed to detect this machine as a 'server' and sneakily applied a different ruleset. When using powercfg -requests this machine would forever report active clients, the moment one came online. Even when properly logging off etc. etc. etc.

So the Intel Xeon dual core board is gathering dust again. But... it worked fine.


3. Low Cost Celeron / Pentium Server - 2015 / 2017
 

I've updated the original 2015 text as I upgraded this machine to Windows 10. I've highlighted major differences below.

2014 / 2015 Celerons and Pentiums have become incredibly powerful. (Never thought I would ever call a Celeron powerful, but there you have it.) If you are going to use TVersity or Servetome with a lot of transcoding I'd say get the Celeron G1840. The G1610 might be a bit tight. If you don't have to do any transcoding the cheapest of the cheapest would do, you might even consider a very low cost AMD build. I would not go for an Atom though, I've tried that, and was quite disappointed.

This machine is actually powered by a Pentium G3220 as the Celeron G1840 wasn't in stock. As for pricing (feb 2015 Netherlands)... when I bought the CPU prices were very close, and some CPU's were discontinued leading to even more discounts:

  • Celeron G1610 - 38 euro
  • Celeron G1840 - 45 eruro
  • Celeron G1850 - 61 euro
  • Pentium G3220 - 55 euro
The G1850 is a weird one. It's perfoming less and costing more than the Pentium. Weird.

You definitely do not need an I3. (The I3 now powers a little 'steambox' gaming PC.) But... the I3 has hardware encoding (for some formats) and runs cooler, and has less problems with handling multiple streams simultaneously. For me, after tweaking some BubbleUPnP settings for ChromeCast playback the G3220 worked fine.


3.1 Hardware

  • CPU - Intel Pentium G3220 (boxed)
  • CPU fan - stock
  • mainboard - Asrock H81M-DGS R2.0 socket 1150
  • video - integrated Intel stuff
  • memory - 4 GB Kingston ValueRam
  • system fan - Arctic F12 TC temperature controlled
  • PSU - reusing an old Xion 500W (going to be replaced with a Seasonic OEM 400W soon)
  • case - Antec VSK4000
  • harddrives - bunch of disks I still had laying around
I bought the Antec case for the Vintage Xeon build, and reused it here as well as the power supply. The Arctec fan was a bit of a gamble... some of the cheaper mainboards have no board temperature sensor (my last purchase, the Asrock H61M, didn't) so the fans are only controlled by the CPU temperature. Just to be sure I picked up a temperature controlled Arctic fan but I guess in this case a regular PWM fan would have worked just as well. (In general I do like the Arctic F12 fans, they can move a good amount of air, are not too noisy, are affordable, and work well with most mainboards.)


3.2 Partitioning

As just said: booting the machine is slow. I've partitioned the boot drive in two secions: a 100 GB boot partition, and the 400 GB remainder that is going to be used for data. I will only create a (backup) image for the boot partition, keeping its size under control.

Windows 7

Windows (7) can be somewhat messy when partitioning, so I use GParted Live on a USB stick (Google for Tuxboot) to set up things the way I want.

In most BIOS'es you'll have to specify a boot device to start from an USB stick, often via setup (often F2, Del) or through a boot manager (often F11 or via a BIOS menu).

I tend to use the the second drive for temporary stuff, so perhaps I'll use the same approach on disk 2. This would then effectively look something like this:

DIsk 0 - 500 GB - 2 partitions
Partition 1 - boot disk - drive C:\ - Windows 7 stuff
Partition 2 - data - drive E:\ - movies or music etc.

Disk 1 - 500 GB - 2 partitions
Partition 1 - temp disk - drive D:\ - temp folders, download folder, etc.
Partition 2 - data - drive F:\ - movies or music etc.

Note that drive D: would contain the temp folder, so stuff that is often transcoded should better not be placed in drive F:\
Disk 2 - whatever - 1 partition - movies or music etc.

Disk 3 - whatever - 1 partition - movies or music etc.

Etcetera...

Windows 10

I advise to give a assing a complete drive to Windows 10. Most people will use an SSD, but I still had an old Raptor 10k laying around, so that's what I used as my Windows 10 boot / swap drive.

On a clean install or a 'reset' Windows 10 creates two or three partitions on that drive, in my case I ended up with two: the root partition containing Windows 7 and all applications, and a recovery partition.


3.3 Install Windows

Windows 7

Windows 7 contains all drivers for this machine (or I simply could not find any better ones :-)).... Unless absolutely necessary I update all drivers in a later step.

  1. install Windows 7 from a USB stick
  2. user name: admin.
  3. password: whatever your fancy.
  4. then update update update update update...
I noticed that Windows 7, at first, would recognize four physical harddrives but would not automatically mount more than four logical harddisks. After some updates (no, I didn't pay attention which one)s it regonized all partitions / logical drives without any problems.

Windows 10

Windows 10 provides all drivers by itself, and can even overwrite drivers you installed. Very nasty with older hardware or buggy drivers, as you do not get any chance to prevent it from doing so. Keeping a regular backup is highly advisable!

The .INF driver from the Asrock website seemed to be a little newer and more specific than the one Windows 10 used, and it hasn't been replaced by Windows' version... yet.


3.4 Tune Windows

You don't have to do (all) the following steps, but I prefer it this way.

  1. create folder D:\temp\admin
  2. create folder D:\temp\windows
Note : on an older SSD I would keep my temp folder on D:, on any newer SSD I would keep my temp folder on C:, but to be honest it doesn't matter much.

Time to tune Windows a little:

  1. Control Panel / System / Advanced System Settings / Advanced
  2. Performance
    1. Visual Effects - disable most, according to taste
    2. Advanced / Virtual Memory - I don't like surprises, so I pick a fast drive with lots of space
  3. Environment Variables
    1. User variables: TEMP and TMP - change to D:\temp\%USERNAME%
    2. System variables: TEMP and TMP - change to D:\temp\windows
    3. System variables: Path - add C:\software\batch;c:\software\utils
This might also be a good moment to activate your Windows 7 / 10.


3.5 Drivers

Some people like to install all drivers at an earlier stage. As I've been using a lot of older hardware with sometimes crappy driver support (and fooling around with these crappy / alternative drivers have messed up my system more than once) I prefer to let Windows do its thing first before I start mucking around.

Windows 7

Unfortunately, the network interface isn't recognized by the (older) Windows 7 installation, so I first downloaded all drivers, put them on a USB stick, and after intial installation of Windows I installed all drivers.


3.6 Network related

Windows 7

I prefer to be able to ping my machine. So enable ping:

  1. Control Panel / System and security / Windows Firewall / Advanced Settings / Inbound rules / New rule / Custom rule
  2. Protocol and Ports: Protocol / ICMPv4
And my server gets a specific IP address:
  1. Control Panel / Network and Sharing / Change adapter settings / Local Area Connection / Properties / TCPIPv4 / Properties
  2. set a specific IP address, for example 192.168.0.5
Check out the driver properties for any Wake On Lan related settings and, if required, enable WOL (was enabled by default on this intel board).

Note that WOL related options may be under the 'Advanced' tab as well us under the 'Power Management' tab. Check them both!

Disable sharing wizard:

  1. This Computer / Local Drive C:
  2. Organize / Layout / Menu bar
  3. Tools / Folder options / View
  4. scroll down and disable Use Sharing Wizard
Windows 10

Pretty much like Windows 7. Check out COntrol Panel / Network and Sharing Center / Advanced sharing settings and adjust as needed. I use:

  • Network discovery on
  • Automatic setup off
  • File and printer sharing on
  • Use user accounts and passwords to connect to other computers

3.7 Personal tools

I hate Internet Explorer, so...

  1. install Firefox
  2. use D:\download as default download folder for Firefox
Easy remote access using VNC:
  1. install Firefox (if you haven't done so already)
  2. install TightVNC
Note: The (latest) TightVNC installer is missing *something* causing an error when installing. This error doesn't show up after first installing Firefox. Duh.

Update. Whatever the reason, installing on a fresh Windows 7 failed. But after installing Firefox, OR installing some Asrock provided drivers TightVNC would run. Weird.

I like to have certain standard tools in a C:\software folder. I have started putting any 'non-standard installation' software (ie. anything that doesn't go into Program Files) in here, as well as certain tools and utilities I use on any and every system. You don't have to do this, but I prefer it this way.

  1. create folder C:\software
  2. create folder C:\software\batch
  3. create folder D:\download
  4. create folder C;\software\icons
  5. copy icons to C:\software\icons
  6. copy utils to C:\software\utils - this folder contains little command line tools like nircmd, cmdow, arj, psexec etc. etc.
  7. copy wincmd (aka Total Commander) to C:\software\wincmd
  8. create a shortcut on the desktop to C:\software\wincmd\totalcmd.exe (can't live without Total Commander)
  9. copy power_shortcuts to C:\software\power_shortcuts
  10. copy all the .lnk's from power_shortcuts to the desktop (giving me icons to quickly restart, shutdown etc.)
  11. create a file C:\software\batrch\startup.bat - my file contains at least the line: start /B "" wallx adminmark keep resident
  12. create a shortcut on the desktop to the startup.bat file
  13. copy that shortcut to Start / All Programs / Startup
  14. create a shortcut on the desktop for 'notepad C:\software\batch\startup.bat'
At this stage, the desktop will look something like this:

(The background is courtesy of WallX.)

We now have pretty much a standard PC, ready to turn into a media server, HTPC, steambox, whatever. I pretty much do the steps above on every machine, no matter what its purpose.


3.8 Create an image

Windows 7

Great moment to create an image. I use an USB stick with TrueImage. (I'm not going to mention intermediate images / backups, I leave that up to you. Make some, though!)

Windows 10

My old version of TrueImage wouldn't boot from the USB stick with this machine. This time I settled for Windows 7 Restore & Backup, which is still included with Windows 10. You can find it in the control panel. It is possible to create multiple different images, just copy them from the WindowsImageBackup folder to another folder before overwriting them.


3.9 Users

Windows 7

Create some users with limited rights. For example (whatever suits your purpose):
 
  User Password  Purpose
admin Unlisted Server maintenance and configuration, all rights access everywhere
shared Unlisted Read Only access to all media files, as well as R/W access to a dedicated 'Shared' folder
install Unlisted Read Only access to the folder with all installable programms

If you don't want user names to show up when booting or when logging in, you will have to hide them. Easy when using PowerToys TweakUI on XP, or with Windows 8. On Windows 7 (Home Premium) it takes a little registry wizardry:

  1. run regedit.xex
  2. goto HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList
  3. if SpecialAccounts\UserList don't exist then create them
  4. for each user name to hide
    • create a 32 bit DWORD with the user name and value 0
Windows 10

Microsoft is trying its utter best to move you to a 'Microsoft account'. To add a non-microsoft local account you have to jump through some hoops...

  1. Settings / Accounts / Family & Other People
  2. Add someone else to this PC
  3. I don't have this person's sign-in information
  4. Add a user wihtout a Microsoft account
But, of course, you could simply create a shortcut and use that :-)
netplwiz
Hiding the accounts is exactly the same as in Windows 7 / 8. 
 


3.10 Shared drives

Windows 7 doesn't have shared drives by default. There are good reasons not to share complete drives, but I like them, so...

  1. This Computer
  2. RMB on drive C:
  3. Sharing / Advanced Sharing / Share this folder
  4. Share name: drive_c$
  5. Permissions
    • remove everyone
    • add admin
    • Full control
  6. repeat for drive_d$ drive_e$ etc.

3.11 Autologon
  1. Open Command Prompt
  2. netplwiz
  3. select user account to automatically logon
  4. deselect 'Users must enter a user name and passowrd to use this computer'
  5. Ok
  6. Enter password
  7. Ok

3.12 Folders and shared folders

Whatever you prefer. I try to organize my files in such a way that I am not depending on whatever logic XBMC / Plex / TVersity / ... uses.

For each shared folder:

  1. Properties / Sharing / Advanced Sharing
  2. Share this folder
  3. Permissions
    1. Remove everyone
    2. Add shared (read only)
    3. Add admin (full control)

3.13 Applications

Other stuff...

  • provide an intranet page to local users - TinyWeb
  • Java - required for Photostreamr (watch out for the addware, I hate that)
  • serve images to iPads - ImageBank aka Photostreamr - port 17011
  • stream / transcode music to SqueezeBox players using the Logitech Media Server
  • serve audio books to Windows Phones - Digital Audio Book
  • stream / transcode video to (DLNA) devices and browsers - TVersity
  • stream movies to iPads -  StreamToMe - port 9969
  • provide (a browsable copy of) the book library on my main PC - Calibre
  • make it possible to remotely shutdown Calibre Server
  • adjust port forwarding in the firewall
Note: when using a regular HDD I try to keep all temp and swap stuff on D:, with a (modern) SSD I would keep them on C:.
 


3.14 Startup batch file

An example of a batch file, to be placed in the Windows Startup folder: I use this in combination with auto-login as some of the applications won't run if you don't log in. It's fine for an insecure homeserver, but not a good idea if the server is publicly accessible. (Time to switch to Linux, I know.)

Nircmd is a nice tool, here I use it to keep the server's desktop uncluttered. Psexec offers some options the regular 'Start' doesn't. The boot time could be improved a little by sprinkling some timeout statements, but it wasn't necessary, and rebooting is something I rarely do (going for standby mode whenever possible).

rem *** immediately return to user login

rem c:\software\power_shortcuts\switchuser

rem *** startup applications

rem squeezebox server is started with windows
rem tversity service is started with windows
rem openhardwaremonitor is started with windows
rem hddsentinel is started with windows

start "WallX"                 /B c:\software\utils\wallx adminmark keep resident
start "TinyWeb"               /B /D c:\software\tinyweb c:\software\tinyweb\tinyweb.exe c:\software\tinyweb\homepage\
start "ImageBank"             /B "C:\Program Files\PhotoStreamr Home\PhotoStreamr Home.exe"
start "AirVideo HD"           /B "C:\Program Files\AirVideoServer HD\AirVideoServerStarter.exe" /disableBonjourCheck
start "ServeToMe"             /B "C:\Program Files\Zqueue\ServeToMe\servetome.exe"
start "Squeeze Server"        /B "C:\Program Files\Squeezebox\SqueezeTray.exe"
start "Task Manager"          /B taskmgr
psexec                        /D c:\software\batch\calibre_server.bat

rem *** reorganize icons and minimize windows

C:\software\power_shortcuts\reicon.exe /R
nircmd wait 20000
nircmd win min stitle "photost"
nircmd win min stitle "servetome"
nircmd win min stitle "windows task"
nircmd win min stitle "calibre"
nircmd win max stitle "hardware"
pause


3.15 Scheduled tasks

Sometimes power down simply doesn't happen, for whatever reason. A custom schedule makes sure the machine...

  1. will go into sleep mode every night at 01:00, except...
  2. on Sunday when it will first do an update at 01:00 followed by a full shutdown at 02:00.
In Task Scheduler:
  • Mo to Sa 01:00 - execute power_shortcuts\sleep.bat if idle for more than 10 minutes
  • Su 02:00 - execute power_shortcuts\shutdown.bat if idle for more than 10 minutes
Windows Update settings:
  • Install updates automatically every sunday at 01:00

3.16 Conclusion

It works fine :-)

Actually, it works great. This machine hums away in a closet downstairs, transcodes multiple streams without a sweat, wakes up quickly from a sleep state, goes properly to sleep, etcetera. The one limitation I can think of is the lack of SATA ports though perhaps that is a silly comment: who would expect on a low end el cheapo desktop board more than 4 SATA ports... I can always opt for replacing the existing HDD's with something larger, or add an inexpensive PCIe SATA card to add two more ports.

An advantage of using Windows 8 over 7 is bootup time. I've reconfigured the mainboard to allow 'fast boot' which is just about fast enough to wakeup and serve a SqueezeBox without having to ask a second time. When using Windows 8 there's another option 'ultra fast' which shaves off another few seconds.

Oh. And I would never ever again purchase an Antec VSK 4000 case. What a piece of ....