Re: Need help to get udev/hotplug working for extra module in early 2.6

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

 



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

[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux