Hi, nobody here who can give me a hint? Should I ask this on the kernel mailing list instead? Martin On Tue, 08 Jul 2008 16:24:29 +0200 Martin Burnicki wrote: > Hi all, > > I'm maintaining a driver for Meinberg PCI cards (radio clocks, GPS > receivers, IRIG receivers), see "Standalone Computer Synchronisation": > http://www.meinberg.de/english/products/formfactor.htm#slot_card > > The driver lets the ntpd daemon be able to use those PCI cards as > plugged-in reference time sources for accurate timing. > > The driver package contains an extra module which is built outside the > kernel tree. The currently released version of the driver can be built > and used with kernels 2.2.x, 2.4.x, and 2.6.x. > > However, that version of the driver implements a "misc" device in a way > which doesn't support 2.6's udev very well. > > I've now improved the code of the kernel module (currently for 2.6.x > only) and the new module works fine under recent 2.6.x kernels, e.g. > 2.6.11 (SuSE 9.1 on i386), 2.6.22 (Ubuntu on Sparc64), or 2.6.25 > (openSUSE 11 on AMD x86_64). > > The new driver implements a new class of character device, mbgclock, > which uses a dynamic major number. Additionally the driver supports our > new USB devices in a way they can be accessed by applications using the > same API calls as with PCI cards. > > Under the newer 2.6.x kernels, if a PCI card is installed or when a new > USB radio clock is plugged in my kernel module is loaded automatically, > and the device nodes are created or deleted by udev as required, so > everything works fine. > > Now I'd like to get some help to get it working on older 2.6.x kernels. > > E.g. I have a SuSE 9.1 system with 2.6.4 kernel. After booting, my > kernel module is not loaded automatically even though a PCI card is > installed. If I load the module using modprobe then the PCI card is > recognized and works just fine. > > If I plug in a USB device, or the USB device is already plugged in at > boot time, then the module is loaded automatically. > > However, device nodes are never created automatically on that 2.6.4 > system, so I have to create them the old way using mknod. So they are > even persistent over reboots, as they have been with older kernels. > > Unfortunately, since the driver now uses a dynamic major number I would > normally have to load the module first, then look in /proc/devices which > major number has been assigned to my device class, and finally create > the device nodes using that major number. > > So the best way to get it working would be as with recent kernels. > > I'm assuming the udev actions are triggered by class_simple_device_add() > (before 2.6.13) or class_device_create() (2.6.13 and newer). Is it > possible that I have to call some extra function in 2.6.4 to trigger a > udev or hotplug event in 2.6.4 so a device node gets created? > > Unlike with newer systems where udev is configured using multiple rules > files in /etc/udev/rules.d the 2.6.4 system has only a single rules > file, namely /etc/udev/udev.rules. > > Is there someone who is familiar with the history of udev/hotplug who > can point me in the right direction? > > > Thanks, > > Martin -- Martin Burnicki Meinberg Funkuhren Bad Pyrmont Germany -- To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html