Originally posted by: sciencewhiz
I run debian on my laptop, and if I was setting up one or two computers, that is what I would do. However, I'm setting up 25, all with disimilar hardware. Thus, I need some type of hardware detection to keep my sanity.
Money isn't there for 25 copies of Redhat's Workstation, although that's what I'd really like to do.
That's a problem I've been messing around with lately and is something that Gentoo does fairly well. Download the Gentoo live eval/install CD and see how they do it.
Basicly if you want to use the newest kernel, here is what you generally do, although I haven't figured it out completely. Otherwise use one of the kernel stuff aviable from debian. Check out
this to use debian's stuff to compile and make custom kernel packages
You need to create a kernel that is extremely module. Make everything modules.(As long as everything is x86 hardware). Compile the kernel and make the modules and install it and test it on one machine.
Then you may need to look into is a initrd image. This image is simple root filing system that is mounted into ram at boot up time and loads any nessicary modules to access they filing system, network drivers for instance if you run a remote NFS-root on a central server, or SCSI modules to access the harddrive. Then once you get the modules loaded and whatever else is need to get done then it automaticly goes and umounts itself and goes on with the normal boot up procedure. Check out initrd-tools in your dselect.
Other things to look into is the hotplug support in the kernel and scripts so that it detects things like USB devices that get plugged in and cardbus stuff for laptops and automaticly configure network interfaces.
Also check out Kudzu, which is Redhat's hardware probing tool that is used at startup to detect and configure new hardware.
I suppose there is quite a few other stuff you can use to detect hardware and aid in configuring stuff quickly for everything, but hopefully that will help you get headed in the right direction.
Also for keeping the Debian stuff up to date, it may be a good idea to keep a local apt-get repository/mirror on a lan-only ftp server that contains the packages that you use. That way you only have one computer downloading the packages and stuff and all the rest of your computers can install off of those over the LAN instead of having to go over the internet. I'd set up something like a cron job (or just do it manually on a weekly basis till you make good bash/perl/python scripts to automate it) to check internet servers for updates, and then pull down the updates to be used for the rest of your computers.
edit: After getting everything set up and developing scripts to help automating downloading updates and stuff, you could set up a e-mail notification system to tell you what happens and any errors that may occure. Then you can spend your time improving the system/network and working on the performance, security and stability of your machines.