onsdag 28 november 2012

Building a home media center, part 0


Starting today, I will make a series of posts about the progress of building a media center. The thoughts, tests, links to interesting articles, and other stuff I try during the build of a complete Linux-based media center. This first post, I will concentrate on the plans, the hardware I have, and the hardware that needs to be fetched.

I have been thinking about building a media center for some time, but I realized I now have almost all the required hardware, when my CuBox arrived about two weeks ago. What I have, that might be used:

  • CuBox, an ARM-based microcomputer with a great potential and an eSATA port, capable of full-HD video playback. 
  • Mika, an old Acer laptop cirrently standing behind the printer and supplying our home with shared music. 
  • Alice, my old workstation laptop, with a broken gigabit ethernet and an overheating problem probably caused by a four-year intensive use and excessive dust in the fan. 
  • Native Instruments komplete audio 6, an external fully Linux compatible sound card I bought when I realized the Tascam US-144mk2 had no Linux support whatsoever. 
  • A complete 2.1 music system, with good speakers and a NAD amplifier. 
  • Two external small hard drives, retrieved from laptops. 500GB and 750GB in size. 
  • An almost complete scrapheap of old computers, and lots of really old but mostly working mixed-size hard drives raging from 10GB to 250GB. 

My brother and I will invest in a used plasma TV also, we're looking for one which cost 3 000 SEK or less with good picture quality. 

So, what to do with this? 

The expensive stuff, the audio hardware, is already in place. I tested the CuBox on our other TV a couple of days ago, and XBMC worked like a charm after I installed Arch Linux to the SD card and ran a full system update. Installation instructions for Arch Linux here, and then you can install the xf86-video-fbdev package for video drivers, and xbmc-cubox-git to get XBMC working. XBMC is version 12.0 "Frodo", meaning it's the first version to support live TV and PVR, which is great. XBMC is not as fast on the cubox as it was on my new Lenovo W530, but remember we're comparing a device 2"x2"x2" in size supporting an 800MHz ARM CPU with a workstation-class laptop supporting an Intel Core i7 3610QM here. They are NOT supposed to be equal. 

The test of XBMC was successful. However, I have not yet tested playing video on the device, since my external hard drive is now encrypted with truecrypt, which is currently not installed on the CuBox. So, that is still to be tested. 

My plan is as follows:
I will use the CuBox as a media center, and supply it with a 5-disk external SATA hard drive cabinet, connected via eSATA. The CuBox will run XBMC, a SAMBA file sharing server, and MPD (music player daemon) so I can play music without having the TV turned on. 

XBMC was a success, SAMBA will most probably work, and since the ALSA drivers for my sound card is in the Linux kernel, I don't expect any issues with MPD either. However, there are still potential issues with the device and the use I am planning. 
  • Capacity. Playing a full-HD movie, while streaming to another computer in the house over network, requires a lot of juice. The CuBox might not be able to provide both of these services at the same time. That will have to be tested. 
  • The lag in XBMC. It is not a real issue, however it is noticeable. How will it perform while browsing the menus, when a movie is playing in the background?
  • Encryption. The Truecrypt AES encryption I use also require some juice, and I am not sure whether the CuBox can do that while playing 1080p content. This can become a problem, and I will have to test it. Encryption can be done in the external cabinet, but that requires more expensive hardware. A test with my USB drive is to be done. 
Separating the media center and the server is an option, but that requires me to get another microcomputer. Preferrably an OpenRD Client or OpenRD Tasman (link) is an interesting option, but they seem almost impossible to get at the moment. I have tried, believe me. I am yet to determine a better file sharing server than the CuBox (gigabit ethernet and eSATA is heavy), but regarding media center capabilities, the Mele A1000 is an interesting option. It does not have eSATA (though it has normal SATA), but it does have wireless network built in, which makes deployment as a media center easier. Also, it is not very expensive. I tried to get one, but got problems with the payment, so it is yet to be done. 

Another option is the Raspberry Pi, but it is limited to h.264 encoded video, and the amount of XviD in our library is too great to be converted easily. The Mele A1000 is capable of as much as the CuBox, and has an even more powerful CPU. It is also cheaper. So, as a media center, it is definitely an option. Stay put for part 1, which will probably be about truecrypt. 

CuBox drivers, and a tl;dr on why Linux does not dominate the enterprise market

I got my CuBox's video drivers working, and managed to run XBMC on it. In honor of that, I will be posting a tl;dr post translated from swedish. Google Translate is really good at this, there are only minor issues left to correct after an automatic translation.

I find it strange that not more companies are using Linux / Unix to a greater extent. Whenever there is a problem with Windows, it means reinstalling, there's no use in troubleshooting it. Update takes a hellish time, and one must often restart the computer after an update. A full update of my computer takes a maximum of fifteen minutes, a little more if it's a major update and the internet is slow. But the update is fast, and so far it has never required a restart. Updating the kernel requires a reboot, but that can be done at the next normal restart. The time delay given by the kernel update is not noticeable, although it probably is measurable.

Windows got slowed down down on my new laptop after 10 hours of running time, to a level that not even my now four year old Acer laptop reached after having had Linux for almost a year. Yet both systems are bloated, the Linux system had KDE (which I did not use) and Windows had a Lenovo software suite.

Both of the old timers I talked to who have had to run Unix on universities and in the the industry agree that Windows is pretty bad in comparison. Stability is low, and it is impossible to debug properly. Added to this is that Linux is free, takes less disk space, and supports many more processor architectures. Everything from NAS drives, routers, small ARM PCs and Korg Oasys (yep, a keyboard that is) up to the largest super computers can run Linux. Windows will run on x86 and x86_64/amd64, Debian has the time of writing support for 11 processor architectures.

With Linux, you can build a home server, a media center and a NAS for less than 1000 SEK, excluding hard drives for the NAS. Note that you could have all three services in the same machine (!). You can build a router / firewall with a capacity equivalent to a small IT office needs for 2000 SEK, and with a security equal to any common web hotel anywhere. The knowledge you need to accomplish it, is free. As with all software.

Anders Sandström, teachers in particular organic chemistry at the Swedish University of Agricultural Sciences, told me that they had tested Matlab on an old computer that ran Linux, and then test drove it and compared with a new and much more powerful Windows PC. The Linux machine won, it was faster. Munich (the German city, that is) has recently switched to Linux. They have saved 40 million Euros, just in license charges imposed. IT management has not increased, there was no need for more technicians to maintain the system. They have yet to see how much they save on using less powerful computers due to Linux less resource-intensive approach, but it's already clear that they will save on it.

Building a computer lab with Windows computers to a school, will cost nearly 200,000 SEK. Building a computer lab with Linux computers will cost approximately 120 000 SEK, if you're going to have the same hardware. Windows costs money, and Microsoft Office costs money. Building a computer lab with ARM PCs, costs instead of the order of 40 to 60 000 SEK, depending on what screens you choose. The computers are then cheaper than screens. A server to manage Active Directory and other Windows services and domain services to the computer room, will cost 10 to 15 000 SEK. Network equipment cost 3 0000 SEK. If you have Linux, you can have a server that costs 5-7000 SEK instead, and it is capable of the same tasks.

4A Consulting AB has a server that manages the database of their software suite Svala. It is a standard SQL database, and the server is running Windows server 2003. They take it offline an hour each month to perform maintenance.

Pick a web hosting server from a hosting company, choose a machine with Debian GNU / Linux. It runs Apache web server, PHP, MySQL, and in some cases some background stuff and other things like PHPmyAdmin, NFS or SAMBA, and most probably an FTP server. There are examples of machines that have been running for two years, without any manual maintenance. No crashes. These machines are running systems that are significantly more complex than the Svala server.

4A Consulting AB uses SuSE Enterprise 10.2 for the SPAM filter server. It is virtually maintenance free. No one has touched it since their former Linux literate person stopped. There was no need.

There's free CAD software for Linux, both 2D and 3D. I have them both, but have not had time for any extensive testing of them. There is a music recording program that is an adequate challenger to Pro Tools, Cubase, Logic, Reaper, Studio One, Reason and all the others. It's called Ardour, and is free. It is good, and incredibly powerful, but a bit tedious to learn to use, as it gives you full control over EVERYTHING. In other words, a lot to learn and test.

There is a vector graphics application called Inkscape, a contender to Adobe Illustrator. I have it, but have not learned to master it yet. GIMP, the GNU Image Manipulator is a proper contender to Adobe Photoshop. In my mind even beter. There are several Office Suites, including LibreOffice and OpenOffice.org, which are both challenging Microsift Office. They are faster and more stable, but do not have as many plugins. However, they support more than 20 different document formats, while MS Office still lacks acceptable support for the ISO-standard Open Document Format.

Then we have TeX, available in Windows, but dominating on Linux. And it's easy to understand why, when you start using it. Especially if you write mathematical text, or physics, or chemistry. It's good on a scientific text, and writing reports, essays and the like.

There is XBMC, the Xbox Media Center, available for XBOX, Linux, Windows, Mac and BSD. It has much more potential to be run as a proper media center in Linux than in Windows. Music players for Linux are plentiful, and there is the music server MPD, which lets you use your own computer as a remote control to another computer. Much like SONOS, but open source and a bit tedious to set up the first time.

Someone said that there are no games to Linux. This applies primarily to commercial games. For non-commercial or indie games, there are quite a lot of them. RTS game 0AD is a fairly new idea from Wildfire Games, similar to Age of Empires. On stabyourself.net, there's mari0, a Mario clone where you can use portal guns. The range of games on Linux is by far smaller than the supply of Windows games, but to say that there are no games to Linux is not true. Also, Valve seems interested in making Linux games, and a port of Steam to Linux is already in closed beta.

Linux can run Windows applications. Wine lets you run Windows software on your Linux environment. Integration is not perfect, but World of Warcraft, Left 4 Dead, Steam, Reaper, Roland JUNO STAGE editor and many other programs work well in Wine.
  • Arch Linux has 19,000 precompiled packages ready to be installed, and 5000 to be built from source code with one simple command. Debian has almost 30 000 prebuilt packages, ready to be installed. So lack of software is not a problem.
  • Lack of skilled workers is not a problem, at least not globally.
  • Lack of stability is not a problem.

But, what is the problem then?
  • The lack of commercial support and guarantees. Does not matter in real life, but legally, the difference is huge, and some people still believe that all paid apps are better than free alternatives, just because they cost money.
  • Marketing. Linux does not market themselves and, consequently, no one cares. You haven't heard about it, so it is scary.
  • The myth that Linux is "difficult". That was true at one time, but hardly anymore. Microsoft has lowered its license prices in Thailand by a factor of 15, but still can not sell, people prefer Linux. Since it is "easier" and "more intuitive".
  • The lack of specialized business solutions. In Linux it is easy to make applications, so the system administrator on the local company can provide the solution that does not yet exist, but almost no companies are willing to work that way. It is convenient to outsource the service instead. Aka, buy a program that does it for you. If companies got together and created programs they need as Open Source projects, everyone's costs would decrease. But it leads to less turnover in the economy, which is obviously bad. No one knows why, but it's bad.