I think the discussion on this topic has been great. I just want to remind everyone that I placed this thread in this forum for a reason. This is clearly a new feature/option and as 10.04 is in beta now, even if I polished off changes today they would need testing, debugging, etc that would have to wait for the real work of bug squashing to wrap up. Where the implementation of this is pretty straight forward for me, what really remains on the table is the roadmap side of this discussion.
Standardization vs. Customization?
Three years ago there really didn't seem to be any support for non-typical installs. I brought up virtual options like VMware and was quickly told "nope, no hardware acceleration" case closed, drop it. Today if you look over the forums or hop in IRC you hear all kinds of setups. Virtual Core, virtual MD, virtual core and MD in the same virtualbox... Where a dev trying to support someone used to only ask "Is this your core or an MD?" now has to ask "What OS is your virtual box running in?, You're trying to do what with what?" etc.
Personally I am a fan of customization options, but I completely understand I am not a typical user. I actually enjoy time adjusting options, rebooting and tweaking settings and for the most part not using my system. Non-OCD folks just want it to work. Buy a Z-Box, Revo, Roku, etc and just plug it in. Want network streaming audio, buy the newest Squeezebox off the shelf and turn it on, etc. To continue giving the typical user this type of experience I feel the only way to add customization is with very brief timeout/default options at first startup.
What level of customization is too much? Everyone knows if it were possible I would have Apple II's running 1/2 an application each all around my house. I would replace my gig switch with a 1920's telephone patch panel and manually route media to different rooms myself. Tschak909 and Posde want to smack me already so before they do I will just clarify again that I understand that is not what LMCE is all about.
Since I tossed this out there I will be the one to have a first crack at it and will submit what I come up with for everyone to review. Typically I overthink things but in this case I might be thinking its too easy of a change. The DVD installer adds some desktop applications on the hybrid/core. It was odd to me then that the Diskless_Setup by default actually creates more desktop applications and programs. If there is discussion about the usefulness of a desktop environment lets keep it to media director only. The core/hybrid has a desktop now and if you want to add little progs or apps then put them there or work on changing the primary installer.
My proposal and the task I believe I am up to involved the Diskless_Setup only, it is something I think I have the ability to change myself with my limited programming ability. Correct me if I am completely off the wall but this is how I think the process works.
A new device is plugged into the network and looks for a DHCP to point it towards a bootloader.
DCErouter (specifically tftpboot.cfg) creates a few new directories based on its MAC address and points it to initrd and vnlinuz
The new device uses these as kernel= and boot=, and builds its image in root=<core>/?/nfs
Based on the content of vnlinuz and initrd, combined with polled info from various scripts the MD image is created just as it would install itself on a computer with a ubuntu install cd.
-add my changes
Because bootloaders can have options in the menu.1st file (sorry I know grub best, even though lmce I think uses something else because of the APPEND options) I believe I can add options here that will point to alternative initrd and vnlinuz versions.
Default option = just like it is now
Option1 = load initrd and vnlinuz that install different applications
Option2 = load initrd and vnlinuz that install different applications
Option3 = load initrd and vnlinuz that install different applications
There are options in the web-admin and warnings about kernel version on MDs so that part I don't think I have any control over. I have tinkered though and adjusted the bootloader on the core to point a specific MAC address to a custom folder which booted TinyCore, DSL, 12.04 LTS and openWRT on different machines around my house. I never got my own custom dsl+squeezebox configuration to boot however and is what led me to the idea of taking LMCE's setup and changing it to my desire.
I believe that I can take all of the source code needed to compile LMCE diskless, change and remove certain components and then compile and make options in the bootloader menu to select that version. Is that an accurate statement? Obviously I would need to debug and repeat a lot of effort but because I am only altering working source code, I would assume I am only looking at minor necessary work. The years of hard work and coding behind current LMCE remains and I am just the jack-wagon that stripped some off.
If some off-the-shelf hardware doesn't quite fit the bill for a full MD, why not have the option to boot as audio only MD? If an MD is going on the bedroom wall where a keyboard will never touch it why not have the ability to boot it without a desktop? If I want to build a minimal media MD for use as an intercom outdoors, why can't I load a boot template designed for just that? These are all just pipe-dreams of mine at this time as I haven't done yet any modification or compiling of lmce code. I have just booted other pre-compiled kernels using lmce tftpboot.
Hopefully this novel of a comment clears up what I plan to do and how I plan to do it. After everyone has a laugh at my ignorance please feel free to correct me.