[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Hardware detection projects



It often happens that probing non-present devices on certain hardware
configurations results in no successful execution of the kernel, and
therefore, no boot. It happens quite often with older equipment.

My approach, (if I would be a programmer, indeed :), would be a
separate, safer, hardware detection mecanism. I wouldn't think of this
as a very hard task, since the kernel is highly modularized by now.

I would load a minimal kernel, and run some kind of hardware detection
afterwards. I know it can't be put on practice on the boot-disks since 
there's no way to handle that task withing the little space of a floppy 
disk...so now I'm leaving you for you to think about this issue. :) 
I think RedHat and other distros are approaching this issue in particular,
so you can always spy their work.
                                                        Pablo.

Dan Shearer <dan@linuxcare.com> writes:
>    1) kernel detection
> 
>    This is firstly done by looking in the strings in the /proc
>    directory for hardware that has already been detected, if the
>    running kernel happens to be configured for that hardware. It is
>    possible to have a matching module in the kernel which doesn't
>    detect its hardware due to configuration such as an I/O port, so
>    this isn't a blanket solution.  However all of the vital things
>    should be present and detectable or the kernel wouldn't be running:
>    PCI information, ISA information, the boot drive, etc.
> 
>    It is also possible to load and unload all modules present under
>    /lib/modules which can be loaded by the running kernel, checking
>    their return status and the messages they print. So if the hardware
>    on a machine happens to correspond with a module which is compiled
>    and present then it will be found. The advantages to this approach
>    are that parameters can be supplied to modules, eg: asking the
>    module to autoprobe or supplying a base I/O, DMA or IRQ setting.








Reply to: