kb:driver_software:driver_software_for_linux:linux_driver_package_-_release_notes

Linux Driver Package - Release Notes

Here is some version information on the Meinberg Driver Package for Linux.


Important Note:

Driver packages 4.2.12 and later provide a fix for a potential Makefile issue with some kernels 5.8.x (and maybe newer) shipped by some distros. so you should not try to install earlier versions of the driver package on systems with Linux kernels 5.8 or later.

In kernel 5.8, the kernel build system was changed in a way that a specific test ran by the make install command from earlier driver packages can corrupt the installed kernel sources.

Specifically, the file autoconf.h could be deleted, so that no external kernel module could be built afterwards. The resulting error looks like:

  ERROR: Kernel configuration is invalid.
         include/generated/autoconf.h or include/config/auto.conf are missing.
         Run 'make oldconfig && make prepare' on kernel src to fix it.


If this has happens, you should only run the commands shown in the error message above if you have compiled the running kernel by yourself.

If the kernel is installed from a Linux distribution as usual, you should reinstall the associated kernel source / kernel headers / kernel devel packages from your distro to fix this.


mbgtools-lx-4.2.28

  • Released 2024-12-16.
  • Support Fixed build with Linux kernel 6.12.
  • Support new PCI card models GPS183PEX and GNS183PEX.
  • Improved feature detection for TCR180PEX and TCR180USB.
  • Improved handling of build errors due to backported kernel API changes:
    Changes in the vanilla kernel are considered automatically, but some
    distros backport API changes from newer kernels versions to older ones,
    so the automatic detection based on the kernel version code fails.
    These optional parameters can be appended to the “make” command to
    override the automatic detection, if required. Relevant API backports
    in RHEL 9.4 and RHEL 9.5 are already considered in this driver release, so
    none of the parameters should be required for those distro versions.

    • In kernel 6.12, file asm/unaligned.h was moved to linux/unaligned.h.
      This flag can be used to override automatic detection:
      KERNEL_HAS_LINUX_UNALIGNED_H=1

    • Kernels 6.4 and newer don't expect an “owner” parameter for the kernel
      function class_create. This flag can be used to override automatic detection:
      KERNEL_CLASS_WITHOUT_OWNER=1

    • Kernels 6.3 and newer provide inline wrapper functions to set VMA VM flags.
      This flag can be used to override automatic detection:
      KERNEL_HAS_VMA_VM_FLAGS_WRAPPER_FUNCTIONS=1
  • Optional ability to allow or prohibit update of the udev rules file:
    If the udev rule file from this driver package differs from the one already
    installed, an interactive query will normally be displayed during installation
    asking whether the existing file should be overwritten.

    • A new parameter for the make command line avoids the requirement for
      an interactive response and can be used to allow or prohibit copying
      of the file to simplify automated installation:
      make install ALLOW_UDEV_UPDATE=1
      make install ALLOW_UDEV_UPDATE=0

    • Another optional ability to allow all updates to 'make install':
      make install ALWAYS_ANSWER_YES=1
      This only affects ALLOW_UDEV_UPDATE for now, but can be used more generally.
  • Changes in mbgsvcd:
    • Abort holdover mode if 'Invalid time' status appears unexpectedly
      (mostly relevant to SYN1588 cards).
  • Changes in mbgstatus:
    • Improved printing of BVAR status of GNSS devices.
    • Support the SYN1588 holdover status.
  • Changes in mbgctrl:
    • Properly support setting the frequency synthesizer.
    • Added POUT 'Single Shot' mode support.
  • Changes in SYN1588 NIC support:
    • Improved detection of SYN1588 Rev. 2.3 cards.
    • Consider holdover status of the SYN1588 PTP clock.
  • Optional configuration files that prevent the kernel module from
    being added to the initramfs file:

    If the initramfs is built e.g. after a kernel update, some distros
    include the mbgclock.ko module, so the version of the mbgclock.ko
    module that is included will always be loader at boot time, even
    if a new version of the driver package has been built and installed.

    The initrd subdirectory of this package contains configuration files
    for dracut and initramfs-tools to prevent the mbgclock.ko module
    from being included into the initramfs file, so at boot time, always
    the module installed under /lib/modules/`uname -r`/… will be
    loaded.

    See the comments in the files for how to use them.


mbgtools-lx-4.2.26

  • Released 2023-12-19.
  • Support setting the transmitter distance of PZF receivers using mbgctrl.
  • Updated some mbglib files.
  • Use an explicit list of PCI devices supported by the kernel driver.
    There will be PCI devices with Meinberg vendor ID which aren't
    supported by this driver, so using the wildcard device ID isn't
    appropriate anymore.
  • Better support staged builds.


mbgtools-lx-4.2.24

  • Released 2023-07-10.
  • Fixed build on Linux kernel 6.4 by accounting for changes in the kernel API.


mbgtools-lx-4.2.22

  • Released 2023-05-05.
  • Fixed build on Linux kernel 6.3 by accounting for changes in the kernel API.
  • Fixed bugs that occurred when changing IRIG settings:
    • Support of the TFOM flag was incorrectly always checked against the timecode format configured for the timecode output, so setting the flag for the input happened to be accepted, or not.
    • Before trying to save the configuration of the timecode output, it was incorrectly checked for the presence of a timecode input, so saving the configuration of the output of a device failed if the device did not also have an input.
    • When about to save IRIG input settings, the presence of a timecode output was incorrectly checked instead of the presence of a timecode input, so the operation succeeded only if the device also had a timecode output.
  • Checked and fixed configuration reported by early versions of the TCR180USB or TCR180USB-EL:
    • The RECEIVER_INFO of those versions claims to provide serial ports with configurable string types, though the firmware doesn't support the API. The probe routine of the kernel driver now adjusts the RECEIVER_INFO to fix this, if required.
    • For this to work, the user-space API call that retrieves the RECEIVER_INFO now returns the potentially modified instance stored in the kernel driver, instead of reading the structure directly from the device.
  • Improved detection of the clear ucap buffer feature with some new devices.
  • Increased string buffer for XMR status info, so the string possibly displayed by mbgstatus is not truncated.
  • Instead of using feature check macros, generally use feature check functions which always retrieve the information from the kernel driver.
  • mbgsvcd doesn't enter holdover mode anymore if device has no valid time.


mbgtools-lx-4.2.20

  • Released 2022-07-08.
  • Improved SYN1588 device handling. SYN1588 devices are now enumerated after native Meinberg devices, and the PTP_SYNC_STATUS word is supported.
    Requires specific versions of the SYN1588 PCI NIC firmware, kernel driver, and PTP stack.
  • Updated mbgdevio and mbgutil version code to 3.14. The number corresponds to the associated Windows DLL versions.
  • Read the memory mapped status port as 32 bit quantity, even though this should not be necessary. This avoids a trap on a 64 bit ARM system, and also improves compatibility on some x86_64 systems.
  • Changed default 2-digit year limit from 1980 to 1970, so 2-digit dates for 1970 (POSIX time 0) are now properly displayed.
  • Improvements of mbgstatus:
    • Print the firmware ID string in verbose mode.
    • Show the processor type of devices in vervose mode, if available.
      This can be used to select the correct processor type in the mbgflash utility.
    • Support the PTP_SYNC_STATUS word of SYN1588 devices, including the insync range boundary codes.
    • Print more detailed SYN1588 status at higher verbosity levels.
    • Show MRS/XMR status at verbosity levels 4+.
      New option -F forces this even if XMR is not enabled. :!: Use with care!
  • Improvements of mbgsvcd:
    • Improved device status tracking and logging.
    • New parameter -u which lets the SHM unit be updated even if the NTP leap bits are 0x03.
  • Fixed mbgdevio functions mbg_chk_dev_has_xmr, mbg_chk_dev_has_ptp_unicast, and mbg_chk_dev_has_gpio.


mbgtools-lx-4.2.18

  • Released 2021-05-28.
  • Fixed build with kernel 5.12 or newer. A macro with the name MODULE_SUPPORTED_DEVICE had actually never been used by the kernel, and was removed in Kernel 5.12. So a reference to that macro was removed from the kernel driver source to avoid an “Unresolved symbol” error at compile time.
  • Improved printing of UTC/leap second info by mbgstatus. Now the time immediately after the leap second is displayed because it may no be clear whether a leap second has been inserted, or deleted, but in any case this is the time when the latest change in the GPS/UTC offset comes into effect.
  • Added option -Q (query only) to mbgsvcd, so it can be run in the foreground without updating the SHM segments.
  • The Kernel driver now releases all resources on exit after failing to probe a device.
  • Updated some library files to current versions.



mbgtools-lx-4.2.16

  • Released 2021-03-01.
  • Fixed build in case udevadm from the distro returns an unusual version string.
    udevadm –version used to return something like 239 but at least in CentOS 8 this has changed,
    and the returned string is 239 (239-40.el8), so in the Makefile we have to extract the first word only
    to get the numeric version, otherwise the subsequent evaluation results in an error.
  • Added option -C to mbghrtime and mbgfasttstamp.
    Can be used to check the continuity of the timestamps and status sequentially read from a device.
  • mbghrtime: don't print a time difference after the first access.
    With just a single time stamp it is not possible to calculate a time difference.
  • Updated files README and LIESMICH.
  • Updated some library files to current versions.
  • Moved inline function delta_timestamps() to a header file, and renamed it to delta_timestamp_us()
    because the returned value is in microseconds.
  • Updated .gitignore, and set proper text file attributes (non executable).



mbgtools-lx-4.2.14

  • Released 2020-10-20.
  • Fixed build for Linux kernel 5.9.x. Of course, older kernels 5.x, 4.x, 3.x and even 2.6.x are still supported.
    The struct file_operations had fields unlocked_ioctl and compat_ioctl
    since kernel ~2.6.11, and the symbols HAVE_UNLOCKED_IOCTL and HAVE_COMPAT_IOCTL
    could be used to determine if they are supported, or the legacy IOCTL had to be used.
    However, these symbols have been removed in kernel 5.9, so we needed a workaround.
  • Fixed segfault when launching mbgsvcd with -s option.
  • Fixed building with make -j.


mbgtools-lx-4.2.12

  • Released 2020-09-04.
  • Also supports Linux kernel 5.8.x. Of course, older kernels 5.x, 4.x, 3.x and even 2.6.x are still supported.
    See the Important Note at the top of the file for details.
  • Fixes a potential Makefile issue with some 5.8.x kernels shipped by some distros. See above.


mbgtools-lx-4.2.10

  • Released 2020-03-31.
  • Also supports Linux kernel 5.7.x. Of course, older kernels 5.x, 4.x, 3.x and even 2.6.x are still supported.


mbgtools-lx-4.2.8

  • Released 2020-02-28.
  • Also supports Linux kernels 5.3.x up to 5.5.x. Of course, older kernels 5.x, 4.x, 3.x and even 2.6.x are still supported.
  • mbgstatus displays UTC parameters / leap second information, and status of buffered variables from GPS in an enhanced way.
  • New options -u and -Q for mbggpscap.


mbgtools-lx-4.2.6

  • Released 2019-04-03.
  • Fixed another potential data corruption in case of concurrent device access which was caused by the USB compatibility changes in mbgtools-lx-4.2.0.
    Affected driver versions:
    • Developer versions mbgtools-lx-dev-dev-2018-01-02 and newer
    • Release versions 4.2.0 up to 4.2.2
  • mbgstatus now also prints raw GPS time (week numbers and seconds of week) in verbose mode.


mbgtools-lx-4.2.4

  • Released 2019-03-11.
  • Non-public interim version with temporary changes.
  • mbgstatus now also prints a memory mapped timestamp in verbose mode, if supported by the device.


mbgtools-lx-4.2.2

  • Released 2019-02-11.
  • Fixed potential data corruption in the API call which is used by the mbgsvcd daemon in order to query the current system time and device time. The returned data can be corrupted if another process tries to access the same device at the same time. Fortunately this is detected by mbgsvcd in most cases, and affected timestamp pairs are discarded unless this happens very often, which is unlikely. The bug was introduced when we started using a DMA-capable, common buffer to meet USB requirements in Linux kernels 4.9+.
    Affected driver versions:
    • Developer versions mbgtools-lx-dev-dev-2018-01-02 and newer
    • Release versions 4.2.0 and 4.2.1
  • mbgstatus now also prints the device's EPLD version ID in verbose mode.


mbgtools-lx-4.2.1

  • Released 2018-12-14.
  • Added command line tools mbgcmptime and mbgtcrcal.
  • mbgctrl now supports new parameter COLDBOOT.
  • Fixed a bug in mbgtools-lx-4.2.0 where some symbols were missing from shared object files, causing unresolved symbols linker errors when building 3rd party applications.


mbgtools-lx-4.2.0

  • Released 2018-11-23.
  • Additionally support the new PCI device GNS181PEX.
  • Fixed problem that DMA capable buffers are required for USB devices in kernels 4.9+.
  • Improved PCI bus access on current server hardware.
  • Removed some obsolete conditional code which could caused build errors (duplicate symbols) with kernel 4.17 since it was erroneously compiled in.
  • Enhancements of the command line tools.


mbgtools-lx-4.0.2

  • Released 2017-12-12.
  • Fixed a bug where some symbols were missing from shared object files, causing unresolved symbols linker errors when building 3rd party applications.
  • Improved error handling in mbgigigcfg.


mbgtools-lx-4.0.0

  • Released 2017-07-06.

Martin Burnicki martin.burnicki@meinberg.de, last updated 2021-03-01

  • kb/driver_software/driver_software_for_linux/linux_driver_package_-_release_notes.txt
  • Last modified: 2024-12-16 13:09
  • by 127.0.0.1