I am in the process of creating a multifunctional PCI driver and I am
having trouble figuring out how to cleanly integrate it into the
existing Linux environment.
For example, the PCI card will have a IDE interface, serial ports,
parallel ports, and some other functions. Note: The PCI card is still
What I would ultimately like to do is to hook my driver into the
existing driver node structure cleanly (i.e., /dev/hda, /dev/hda1, ...
/dev/cua0, ... /dev/parport0, etc.) but don't know how to do this
automatically (I have created drivers in the past and always have used
mknod to perform this task). In addition, I would prefer to have a
major number per function (supporting drivers), so that I don't have
section off all of the minor numbers (i.e., 1-100 would be hard
drives, 101-110 serial ports, etc.).
(1) For a given PCI slot, can I have multiple individual drivers?
If so how do I set this up? Do I need a helper driver for the
other drivers to communicate through?
(2) How do I setup the linux environment to automatically recognize
my new device (assuming of course that the driver is
(3) Are the any examples (existing linux drivers) that perform
something similiar to what I am doing?
Note: Assume that the development environment is Redhat 7.3 or 9.0 and
the kernel is 2.4 or greater.
Thanks a head of time for any assistance.