Close This Window

Please download official ILL logos here


For using on the web or on a screenFor printing in high resolutionWhite version, for dark backgrounds

Download PNG

Download AI

Download white PNG

Download JPG


Download white AI

VME driver for Mac OS X

A Mac OS X universal binary kernel driver for SBS (previously called BIT3) 618, 620 VME controller+PCI card with optical links.

Back to ILL Homepage
English French Deutsch 

All Software

VME driver for Mac OS X

Why a VME driver for Mac OS X ?

The Institut Laue-Langevin (ILL) has two world leading Neutron Spin Echo (NSE) instruments IN11 and IN15 which are accessible for the scientific community. Both have the data acquisition driven by Macintoshes and the data treatment performed on Macintoshes too. Mac OSX gave us unprecedented stability.

With the support of Apple through its ARTS program for which the ILL was laureat in 2008, we phased out the PPC based computers in favor of highly reliable Xserves.

We could keep our VME interfaces while PCI-express cards are still not available for VME connection. As Intel Macs have only PCI Express bus and the SBS controller comes with a PCI card, we use a PCIe -> PCi extension box (in our case made by MAGMA but other suppliers do exist). This is a totally transparent extension and no software is needed to make it work.

Since VME manufacturers barely support the Apple plateform we had to development of our own driver for Mac OS X. It is a minimalistic universal binary kernel driver for SBS (previously called BIT3) 618, 620 VME controller+PCI card with optical links.

Driver description

This VME driver is minimalistic in the sense that its development was limited to the level we needed.

It is a kernel driver for SBS (previously called BIT3) 618,620 VME controller+PCI card with optical links ( that's what we use).
It allows read write from/to a given address on the VME in A32, A16 or A8 addressing mode. There is also a "move" operation for moving around bigger chunks of data in one call.
It is presently used on MacIntel Mac Pro units.
The driver is universal binary, it should work on Macs with PPC processors but this KEXT version was not (yet) tested. It just should work.



Download the driver from HERE: (25 KB)

To install the driver you must have developer tools installed and you need administrator rights.
For a NON permanent installation:

sudo kextload /YourDisk/YourDirectory/Bit3PciVme.kext

To remove

sudo kextunload /YourDisk/YourDirectory/Bit3PciVme.kext

Mac OS X is rather strict on access rights for kernel extension, thus the usual procedure is:

  • copy the driver to /tmp (this changes the ownership to "system")
  • then copy it to System/Library/Extension
  • To be explicit, do the following in a window:
    • sudo cp -R /YourDisk/YourDirectory/Bit3PciVme.kext  /tmp
    • sudo cp -R /tmp/Bit3PciVme.kext /YourDisk/System/Library/Extension
    • sudo touch /YourDisk/System/Library/Extension
  • Reboot the computer.
  • You can now check in if the driver did load correctly or not... Note that Max OS X will load the driver only if a VME card is connected to the computer.



Test tools

Download the tools from HERE: (85 KB)

We also ported test tools from their original UNIX version to an Xcode project. The later can build two command line tools.

  • testDVME uses a FakeFoncVME which is a nub to replace real VME read-write to test how it looks like in the terminal window using the ncurses library (installed by default in Mac OS X). It displays 1, 2 or 4 when reading a byte, word or long.
  • DebugVME is the real one. There is a short note on using it and it displays on the screen the commands anyway.

Note that these ported tools implement calls to openDevice, closeDevice, etc. For new developments you should directly use the functions in FoncVME.c instead.

On futur plans

  1. The driver interface uses old "deprecated" calls (as Xcode warns you about it under SnowLeopard) these should be revised when point 2 below is done.
  2. At present the driver does not use DMA transfer from and to the card. This is on the toDo list. Nevertheless we found that mvme(...) (move vme) is already pretty fast at least for our needs)
  3. Error returns could be more precise but in 99.99% of the cases either we have no error, or we tried to talk to a non-existing card, thus real problematic errors we did not have..... :) ... really !
  4. Testing under SnowLeopard will be done in the coming weeks, if this page is not updated it means it just works.


Ususal disclaimer applies:

  • backup your Mac before trying the driver.
  • use the driver at your own risk, no responsibility is assumed, do not use it for moon landing...
  • we might or might not give out the source code for the driver, do not start asking for it, unless you have a good reason
  • the driver was developed to cover our needs, nevertheless if we are in a good mood we might answer emails.. :) ...

Last update: 22 Dec. 2009, Bela Farago: <farago(at)>