kb:driver_software:driver_software_for_windows:windows_driver_package_-_troubleshooting

Windows Driver Package - Troubleshooting

If a PCI card is installed or a USB device is connected to the machine, but the monitor program mbgmon.exe from the driver package for Windows lists only a device Meinberg Time String at COM … instead of the expected device, the kernel driver probably hasn't been loaded, or the driver's signature is not accepted e.g. on current 64 bit Windows systems, or the kernel driver failed to access the PCI card during initialization.

Another potential problem is that Antivirus software can prevent applications from accessing a device.

If the kernel driver has been installed properly, the Windows device manager shows a group Radio Clock under which the device should be listed.

If this isn't the case, the installation of the driver package was not successful. It should be uninstalled, and installed once more.

If the device is listed under the group Radio Clock in the Windows device manager, but the icon is marked with an exclamation sign in a yellow field, Windows tried to load the driver for the device, but that failed. Normally there are error messages in the Windows system event log indicating the reason why the driver could not be loaded. For example something like:

mbgclock: StartDevice: failed to read firmware ID

The message above is generated if the device didn't respond when the driver was initializing. For possible reasons, see this KB article:
PCI Timeout Errors: Possible Reasons For A Timeout Error.

Specifically kernel drivers for 64 bit Windows systems need to include a cryptographic signature from the manufacturer including a timestamp indicating when the file has been signed. Signing is done by external services.

Older Windows versions expected an SHA1 signature, so older drivers were signed with an SHA1 signature. However, SHA1 is considered too weak today, so newer Windows versions accept an SHA1 signature only if the timestamp of the signature is before January 1st, 2016. Drivers released after 2016-01-01 need to be signed with an SHA256 (SHA2) signature. On the other hand, older Windows versions may be unable to detect and verify a SHA256 signature.

If a particular Windows version is unable to verify the driver signature then the driver isn't loaded.

This has been observed with

  • Windows 7 (x64 version only, even with SP1)
  • Windows Server 2008 R2 (released only as 64 bit version, even with SP1)

Symptoms:

  • In the device manager, if you open the properties page for the device, click on the “Driver” tab, and then “Driver Details”, then the “Driver File Details” dialog says, “Not digitally signed”.
  • In the file manager, when you right-click on the driver file located in c:\windows\system32\drivers\ and select “Properties” from the context menu, then only one signature is reported on the “Digital signatures” tab, but no hint which signature this refers to, i.e. the SHA1 or the SHA256 signature.

A patch that has been published after SP1 is required to fix this. See also:

If all available online updates have been installed on these Windows systems then this patch should also be included.

If this is the case then the “Digital signatures” tab of the properties of the driver file shows both signatures, the kernel driver loads fine and the driver works as expected, even though the “Driver File Details” from the device manager may still say, “Not digitally signed”.

Another potential signature problem is with current drivers on Windows 10. See this KB article:
Signature Problem on Fresh Installations of Windows 10 ===== Antivirus Software Blocks Access to the Device ===== Some time ago there have been some cases where the McAfee Antivirus** package prevented applications from accessing the device, even though the driver was working correctly, so bus level devices did not appear in the monitor program.

In some cases this could be fixed by disabling the antivirus software, but there were also cases where it was necessary to uninstall the antivirus package.

There were a few cases where no resources were assigned to a PCI card, and thus the kernel driver was unable to access the card.

Symptom:

There is a message in the Windows system event log saying

mbgclock: StartDevice: no resources passed for device

Normally, when the kernel detects a PCI device in a plug-and-play system it loads the associated driver into memory and then calls some functions to probe and start the device. These function are called with a list of resources (I/O and memory address ranges, an IRQ number, etc.) that have been assigned to the PCI card. In this case the resource list is empty.

A typical reason is that the PCI slot has been disabled in the BIOS, so the card is ignored and no resources are assigned.

For other potential reasons why no resources, or no appropriate resources are assigned to a PCI card, please search the Meinberg Wiki.


Martin Burnicki martin.burnicki@meinberg.de 2020-03-17

  • kb/driver_software/driver_software_for_windows/windows_driver_package_-_troubleshooting.txt
  • Last modified: 2020-11-05 10:10
  • by 127.0.0.1