First, let me start by saying I am amazed at this project. It has seemingly appeared out of nowhere and the feature set of linuxMCE is unparalleled. Although I have yet to see 99% of the features work for myself, I am optimistic.
I have been thinking about a home server for a while now. LinuxMCE has coincided nicely with this thinking and has opened up more potential for this server than I ever thought possible. However I have some questions that are concerning me.
Hi, er, n89b,
You know, the standard answer for people who have so many questions is "Start small, get a core working, get a single MD working, learn the system, then start expanding it", which is always good advice IMO. But since you've clearly thought about it a lot, and since I've been through several iterations of my own home network with similar requirements, I'll try to answer you as much as I can.
To start with - how good and how useful is LinuxMCE for the kind of home network you got in mind? Two answers:
1) Very
2) Possibly not at all
To give you a bit of background, the first few iterations of my home system included a collection of separate programs such as Asterisk, ZoneMinder, MythTV, MisterHouse - each very good in its area, but each taking a lot of work to set up, and none too good at talking to the others. Then I found PlutoHome, and in one day I had a system that did the work of all those programs (and more), that took care of most of the set-up work, and that connected them all together with a generalized messaging system.
So much for the good part. Because once I got over the initial amazement, I started finding that this system could do a lot, but couldn't do anything really well. I also learned that every bug I found in it (wake me up at 4am and I'll recite a hundred) was actually a feature, and that since the system was mainly intended to be sold by system integrators to high-end users, its support for low-end hardware (X10 would be a good example) would always remain lacking.
To reverse the previous reversal, I think we're in <movie quote>a very exciting time</movie quote>... with Pluto finally forked and LinuxMCE focused towards FOSS users, we have a chance to see all those old issues rectified.
So - if you want home control and automation, security, media and communications, and don't want to spend 100's of hours putting the parts together, definitely use LinuxMCE - but be prepared for a potentially long, uphill battle. Of course, anyone who isn't is using Windows, right?
My intention is to build a mini-itx fanless pc (gigabit, SATA II), and put it in the garage along with a network switch. I currently have the whole house wired with a gigabit network. Originally I intended following the guide at http://www.cyberdogtech.com/firewalls/ to create a pretty decent home server. I have already tried following this guide to some extent using an old computer I have, however it is difficult to properly test and it seems like a waste of time setting up properly. I would really like to include many of the features in linuxMCE, but I can see some problems that may arise.
One of my biggest mistakes was to try to cram too much into a single server, or a not-powerful-enough one. With a system like LinuxMCE, or even just a MythTV backend, your experience could change from abysmal to great just based on your available computing power.
So, regarding your main server: Why would you need a fanless system in the garage? Get a good case, a good ATX MB with a lot of SATA II ports, a real CPU (mini-ITX systems don't have actual CPU's; I think they use mice), lots of hard disk bays, and be happy. If you still care about noise in the garage, silence the system with expensive fans, padding and rubber mounts.
Also - it's impossible to over-estimate the storage needs of a media server. You can start small, but I'd recommend planning for a *large* disk array. My own system has four hot-swap drive drawers, with a 320GB drive in each one, set up in RAID0 pairs, and all assigned to one large LVM2 storage pool. And it's very nice, thanks for asking.
Security - This is probably the most major concern for me. I intend this server to hold all data (documents media etc) for the whole house - and so it is vitally important that this computer is secure. While using the guide at cyberdogtech I could set up the firewall myself and make sure it was configured properly, I see linuxmce uses its own firewall which it configures itself. Would this firewall need further configuration to provide a fuller protection? Could I use my own firewall instead?
One thing you should keep in mind, is that (as I mentioned before) Pluto was designed for people who pay a lot of money for installers who do mysterious stuff with wires, and then give the home owner a universal remote control and a big bill. People like that don't already have home networks, gateway, or firewalls. That's why Pluto (or LinuxMCE, argh) does it all for you.
That doesn't mean you can't replace bits with your own preferred solutions... sometimes that's a really good idea. Sometimes it can also be hard. More on that below...
Regarding security - it's generally considered a *bad* idea to run a firewall on the system it's supposed to protect. (Yes, Virginia... I know that's how I set up your Windows system. For you it's just fine. Go back to sleep.) LinuxMCE will happily install itself on a system with a single NIC, and create a virtual interface for its "internal" network. So the external/internal distinction becomes blurred and mostly irrelevant (although it does complicate DHCP setup and auto-discovery).
So, if you're really concerned about security, your first step - actually, the step before your first step - should be to get a good firewall. If you like simplicity and one-click setup, you can get a firewall appliance. As far as I know, their security is good enough for home use. But if you want control and flexibility, build your own gateway/firewall. My personal favourite is IPCop, but there are quite a few good gateway systems out there. Some of them can even run off a small CF card, which increases security, but I prefer a hard disk-based system, for various reasons.
Static IPs - I currently assign all network devices static ips. While I could use linuxMCE as a dhcp server, I prefer using static IPs so I know which address each computer is and so when troubleshooting etc I know the numbers to enter to test/ping/whatever a particular machine. Would using static IPs a) be possible with network booting b) work with other network devices?
I got comments both on LinuxMCE's DHCP server, and on your use of static ips. But they converge at the end. Have faith.
First, the reason LinuxMCE runs a DHCP server is to enable auto-discovery and auto-configuration. When a new device (computer, mobile phone, whatever) appears on the network and sends a DHCP request, LinuxMCE immediately knows about it and can configure it and make it do what it wants (sometimes that's also what you want. Sometimes).
Using static ips for your computers is, IMO, a good idea. Doing it by configuring each computer as static is not quite as good. Can you call each computer by name? Can you tell me in a glance what ips are used on your network? How long would it take you to move all your computers to a different ip range?
So, what's the answer? Use a DHCP server which can provide fixed ips to specific clients. Unfortunately, the DHCP servers in appliance gateways can't do that. The LinuxMCE DHCP server can, but I wouldn't try it. You'd be wrestling with the system for control of the server config... it won't be fun. But... if you've already built a custom dedicated gateway, then you have a DHCP server which can assign fixed ips to computers based on MAC address, as well as provide host names to these computers.
So, we curtailed LinuxMCE's grandiose plans for world domination, and we got ourselves a network with centralized control of ip allocation and host names. Very nice. But we lost auto-discovery and network booting of MDs. Well, there's an easy solution. How often do you add new computers to your network? I would imagine, not often enough to care if you have to do some manual work to configure each one. So what I do is, before I add a new system that I want LinuxMCE to recognize, I turn off the DHCP server in the IPCop gateway and start it up in the core. Then I let LinuxMCE detect the new device and do its work. When that's done, I return things to normal. So that's it for auto-discovery. We still have to handle network booting, though - but that's easy too. I won't go into technical details here, but you basically move the net boot settings from the core to the gateway, so the MD can boot from the core even when its DHCP server isn't active.
In some preliminary testing when I setup linuxmce I chose not to use a dhcp server, but I have noticed that the server starts anyway when i run linuxmce. Why is this?
It's a feature. (boo! boo!)
Dual monitors etc - I have a computer in the lounge which contains a matrox p650 dual head graphics card, and has an lcd monitor and an lcd tv connected via hdmi. This dual monitor setup does not work out the box, and so I doubt I could network boot this computer. If I installed linuxMCE on this computer, could I use it as a client and not a core?
Not entirely sure what you're thinking here, so pardon me if I get it wrong. LinuxMCE MDs are dedicated systems... you don't run a LinuxMCE frontend and a standard Linux desktop at the same time. And at this time, MDs don't do dual head (Unless you just mirror the main display). Also, you can't install LinuxMCE on a client, LinuxMCE doesn't support hard disk-based MDs (actually, that's probably not 100% true, but it's close enough for this discussion). You can run any regular system off the hard disk, but if you want LinuxMCE media playback on it, you have to net-boot it.
As for the problem of net-booting this particular system - LinuxMCE creates a filesystem on the core for each MD, which the MD then mounts via NFS. You can do anything you want to this filesystem (as long as you're aware of what you should and should not mess with...) so you can make any changes needed to get your matrox working.
Although, since LinuxMCE is optimized for specific video cards, the user experience on a non-supported card will be greatly degraded... I just started running my MD on a new Nvidia FX5200, which costs next to nothing and makes a huge difference. So if I were you, I wouldn't jump through too many hoops to keep that old matrox.
Internet dilemna - I have an adsl connection which currently I connect to through a usb modem. The difficulty I am having is that this modem is not easy to get working under linux (speedtouch 330). I have managed to get it working under ubuntu desktop but not server. I would much rather use an ethernet modem due to the ease of setup aspect, but the problems with that are the mini-itx board I am looking at has 1 ethernet port (internal), and 2 pci slots - both of which I intend to use for other purposes, and also it drains a little more power and takes up another power socket. How this relates to linuxmce - if i managed to get the usb modem working, would it be easy to configure the firewall etc to use a ppp connection as external instead of an ethernet connection?
Q. Will my SpeedTouch 330 USB ADSL modem work with IPCop?I'm confused now... a mini-itx with two pci slots? Are you *sure* you're talking about mini-itx?
Anyway, unless you've rejected my suggestions up to this point, you would have a dedicated gateway which would use your ADSL line with the speedtouch modem.
Just another small comment here - No offence meant, but I'm getting the impression that you're thinking too small. "drains a little more power and takes up another power socket"? We're talking *big* server, lots of hard disks, tuner cards, distributed MDs... Yes, it will take more power. No, it won't plug into a power socket in the garage - it will plug into a *large* surge-suppressed power board in the garage. If that bothers you, then you're aiming too high in your expectations of the system.
Distro choice - obviously I don't want a gui on the core, but i understand and are prepared to install gnome-core to install linuxmce. should I use Ubuntu server or Ubuntu desktop? And will linuxmce startup with the server (as opposed to running it in a gui) so its ready to go when the server hits the console login prompt?
If you select to have LinuxMCE as the main application on the server at install time, it will run headless with no intervention. Start with a standard desktop ubuntu as per the LinuxMCE installation instructions. Once you've done with the initial setup, you'll communicate with LinuxMCE via a browser and an SSH shell prompt.
System space - I was hoping to run the operating system from a compact flash card, seperating it from the large hard drives so that they are solely for media documents etc. How much space does a normal linuxmce core installation consume? To put it more simply, would I need a 2gb, 4gb or greater card?
A world of no. LinuxMCE sits on top of a *very heavy* Linux system. It's busy. Very busy. All the time. Give the operating system a fast disk and a lot of space.
Web server - linuxMCE installs its own web interface. I am new to web serving, so can I also set up an external website?
I don't actually do that (I have a separate web server) but I'm guessing "yes" with quite a lot of confidence.
Updates - Will it be easy to update the distribution and linuxmce without breaking everything?
If it isn't, I'm out of here.
Seriously, you can bet that making updates easy and safe is a major concern of the developers.
mythtv - If I install a tv card in this server, will linuxmce core work as a mythtv backend and serve livetv, allow scheduling etc to mythtv clients?
That's the idea. Already working that way in my core.
Climate control - I am about to install a heatmiser heating system in my home, for which I can buy this product which links the heating system to the network. It appears to have a web interface but I have no idea if it follows any other protocols. Is there any chance this could integrate with linuxMCE?
You're getting closer to the dark side of the Pluto legacy. LinuxMCE has inherited a very long list of supported devices, and if your device is on this list, all you'll have to do is plug it in. If it isn't... well, the LinuxMCE architecture is very expandable. And theoretically, doing so is quite easy. Theoretically. Practically, though, the documentation explaining how to do this is written for a very wide audience which includes everyone employed at PlutoHome. But, Toto, I don't think we're in Pluto-land anymore... I think that this is one area where the LinuxMCE fork could prove to be very valuable.
I probably have many more questions but this is all I can recall right now. Thanks for your time in reading this and thank you even more for replying.
You're most welcome... ask if you need anything clarified (and if you think you could stand another one of my essays). But please remember: the only way to really know what you're doing (and, more importantly, what you should do) is to experiment.
Itai
P.S. My editor is on vacation, it's late (darn, I just saw the clock! It's really late!), and I want to get this reply out. Please forgive anything I should have left out or found a way to say better.