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.
Version Information
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 theRECEIVER_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 bymbgstatus
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) tombgsvcd
, 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 like239
but at least in CentOS 8 this has changed,
and the returned string is239 (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
tombghrtime
andmbgfasttstamp
.
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.
Thestruct file_operations
had fieldsunlocked_ioctl
andcompat_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 to4.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 bymbgsvcd
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
and4.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
andmbgtcrcal
.
mbgctrl
now supports new parameterCOLDBOOT
.
- 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
.