tisdag 25 december 2012

Building a home media center, part 2: testing the CuBox

So, I have tested a variety of things with the CuBox. Currently, it is hooked up to a 250G eSATA hard drive and serving as a simple file server. This is what I have tested so far:

  • Video playback, I have not got it working in XBMC under Arch Linux. Probably driver or codec problems, it's almost always drivers or file permissions. 
  • Truecrypt performance. Transfer speeds are 17 MB/s for Twofish, and 6,5 MB/s for AES encryption, which is not enough for a demanding file server, but will work fine for a simple home media center. 
  • Unencrypted transfer speeds over gigabit network seems to be peaking at about 30 MB/s on the file server, I am not sure however if this is due to the CuBox or the network, as I cannot verify any other sources as faster on the network. The router states 300 Mbit/s, and that might be for wired connections too. 

Currently, the CuBox is serving the network with music, and in the short-distant future, it will probably be movies, CD-books and other files too. The 250G-drive will be exchanged for a pack of 3 RAIDed 3T-drives after christmas. I really need some extra storage space, both my 500G encrypted drive and the 750G drive from the old laptop are nearly filled. I'll try to organize them a little and save some space, but I do need more storage space, even though I might be able to save some by cleaning the two external drives I have. I have to order drives soon, though. 

I also have got myself a memory card for the Raspberry Pi, so now I just have to flash it with the Raspbian image and start configuring it. I will most probably send it to a friend as a torrent seeding server to distribute music for local bands, a little project I have been thinking about for a couple of days. For that, I'll need the 500G-drive avaliable, though. So I need to get myself some storage space. I'll get my hands on some 3T drives soon enough, and then I just need a case for them. I have been looking around for that for some time, but without much luck. I found one, which then became out of stock everywhere. But I'll keep my eyes open. 

I'm still hoping to get my hands on a Cubieboard soon enough, as they have started shipping them to peope who preordered. I'll prepare a home media center ready for our livingroom at least for next christmas, but it needs rigorous testing before I can give it to my parents. Anyway, not much more to do at the moment Merry christmas! Even though christmas technically ended before I finished writing this...

söndag 2 december 2012

Building a home media center, part 1: testing the CuBox

So I have gathered all the necessary peripherals for testing the CuBox:

  • 1 CuBox and power supply
  • 1 eSATA hard drive, eSATA cable and power supply
  • 1 USB2 hard drive, cable and power supply
  • 1 Deltaco 7 port USB hub
  • 1 micro-USB cable to access the TTY
  • 1 Logitech MX400 mouse
  • 1 Razer Arctosa keyboard
  • 2 short gigabit ethernet cables
  • 1 Dovado 3G-router for testing wired network transfer
  • 1 HDMI-cable
  • 1 Philips LCD-CCFL-TV
  • 1 4-slot power extension cord
  • My main workstation laptop and power supply
Will report back with test results as soon as I have them. It seems like the CuBox video drivers does not want to play nice with my Ezio DVI-monitor, it is reporting a refresh rate of 37,5 Hz, which it cannot handle as soon as I start X. Console is working, though. I will use both LXDE and XBMC for testing, as well as SAMBA. Most of it is already set up and working. Wish the little coputer good luck, people!

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.

onsdag 25 april 2012

Building a home media center

Yep, that's what I'm planning. I have ordered a Raspberry Pi, and I am planning on using it as the media player, as it is capable of decoding Blu-Ray-files, and it has also been proven to work with XBMC, the XBox Media Center. The device has two USB ports, and I plan on getting a bluetooth adapter for one of them to use a Logitech DiNovo edge wireless keyboard, and plugging my WLAN adapter in the other one. That together with an old (used) flat screen TV is probably the cheapest HTPC media center you can get today.

One problem, though, is that I will need a network server too. I have been using an old computer found on the local dump to run a couple of services (torrents, printer server, file sharing over network, storage of music and movies and such) but the problem is, it is using WAY too much power to be running 24/7. And that kind of makes it unusable as a server. I have been looking into the problem, and found that such speeds as avalible in a normal desktop computer is pretty much overkill for such a network as my home network (4 users). The file serving might as well be done by another Raspberry Pi, if it weren't for a couple of limitations:

  • At the moment, there's a huge demand for the Pi, and low production. You can only order one at a time, and mine is expected to be delivered before july. Waiting that long is not a good option.
  • The Raspberry Pi only has two USB ports, and 10/100 ethernet. Transfering 100 mbit over the internet is fast, but over LAN it is slow. And just two USB ports limits the number of hard drives connected, as well as the transfer speed. 
So, I am forced to find another option. I have been looking around the net for small and silent PCs, capable of running Linux in one form or another, and with gigabit ethernet. But finding one with a cost comparable to the Raspberry Pi is almost impossible, most of them start at 1500 SEK, or more. And that's more than I am willing to pay, if I can avoid it. And I can ;)

Instead of getting one of these, I picked up my mom's old laptop. After five years of good service, the screen has become unstable, so she bought a new one. This laptop has an Intel GM 915 graphics chipset, 4 USB ports, gigabit ethernet, and turns out to run very silent under Linux. I ran a Lubuntu Live environment to test the machine, and since most of the hardware is in a good state (except for the screen), it will make for a great home server. I plan on shutting down the old server and taking it apart in the beginning of May, as we will get a monthly internet traffic limit by then, so I will have to stop the server anyway. Until then, the old server Emilia will take care of the torrent downloading. I also have to get a HDD case, since my mom's laptop got a 40 GB disk. I will need a little more than 40 GB for the server, since it will host our ~65 GB music collection. I am going to buy an external IDE-to-USB case, to use with the 250 GB IDE disk I have. I'll try to get my hands on a 3 TB SATA drive too soon enough, but first I have to find a suitable case for it. Preferrably one with an eSATA-connection as well as USB.