Hacking DisplayLink's USB display drivers to work on OS X Lion 10.7

From Ben's Writing

Jump to: navigation, search

I decided take OS X Lion (10.7) for a test run. Everything seems quite nice, but my two Arkview USB Display Adapters stopped working. Clearly there is no support for them yet, but I managed to convince the latest beta drivers to run on my rig.

It turned out to be a rather trivial task too. I just opened up the installer package, after copying it of the disk image it ships on.

cd DisplayLink Software Installer.pkg/Contents/Resources

In this directory I found four shell scripts: InstallationCheck, post flight, preflight and preinstall. I only needed to edit the InstallationCheck and preinstall scripts. For each script I commented out the exit() lines that were not already commented out. This allowed me to run the installer in the usual manner, with no complaints from OS X.

UPDATE: So it was not as simple as I described. It seems there is no point in trying to use the package directly. Instead, use Finder to show the contents of the installer. In the root of the package, there is a file Archive.pax.gz, use the built-in decompression tool to expand it (i.e. double-click it). Copy the contents of the expanded archive to /private/var/tmp. You should then be able to run the following script to install the drivers. Good luck!

#!/bin/bash

export INTERMEDIATE_DIR=/private/var/tmp
export DESTINATION_DIR=/System/Library/Extensions

/bin/mv -v "$INTERMEDIATE_DIR"/DisplayLinkDriver.kext "$DESTINATION_DIR"/
/bin/mv -v "$INTERMEDIATE_DIR"/DisplayLinkGA.plugin   "$DESTINATION_DIR"/

/bin/chmod -vR u+rwX,go-w+rX   "$DESTINATION_DIR"/DisplayLinkDriver.kext
/usr/sbin/chown -vR root:wheel "$DESTINATION_DIR"/DisplayLinkDriver.kext
/bin/chmod v-R u+rwX,go-w+rX   "$DESTINATION_DIR"/DisplayLinkGA.plugin
/usr/sbin/chown -vR root:wheel "$DESTINATION_DIR"/DisplayLinkGA.plugin

/bin/cp -vR "$DESTINATION_DIR"/DisplayLinkDriver.kext/DisplayLinkAgent/com.displaylink.usbnivolistener.plist /Library/LaunchDaemons/
/usr/sbin/chown -vR root:wheel /Library/LaunchDaemons/com.displaylink.usbnivolistener.plist
/bin/chmod -v 644 /Library/LaunchDaemons/com.displaylink.usbnivolistener.plist
/bin/launchctl load -w /Library/LaunchDaemons/com.displaylink.usbnivolistener.plist
/bin/cp -vR "$DESTINATION_DIR"/DisplayLinkDriver.kext/DisplayLinkAgent/com.displaylink.useragent.plist  /Library/LaunchAgents/
/usr/sbin/chown -vR root:wheel /Library/LaunchAgents/com.displaylink.useragent.plist
/bin/chmod -v 644 /Library/LaunchAgents/com.displaylink.useragent.plist

if [ ! -d /Applications/DisplayLink ]; then
/bin/mkdir -v /Applications/DisplayLink
/usr/sbin/chown -vR root:admin /Applications/DisplayLink
/bin/chmod -v 775 /Applications/DisplayLink
fi

/bin/mv -v "$INTERMEDIATE_DIR"/DisplayLink\ Software\ Uninstaller.app /Applications/DisplayLink/DisplayLink\ Software\ Uninstaller.app
/usr/sbin/chown -vR root:admin /Applications/DisplayLink/DisplayLink\ Software\ Uninstaller.app
/bin/chmod -vR u+rwX,go-w+rX /Applications/DisplayLink/DisplayLink\ Software\ Uninstaller.app

touch /System/Library/Extensions/DisplayLinkDriver.kext
touch /System/Library/Extensions/DisplayLinkGA.plugin
touch /System/Library/Extensions

UPDATE: So it seems this works up to a certain point, but fails to get the screens to be rendered. Meaning, the screens are detected, but not usable. It may be impossible to fix this without access to the code, but some research on this is in order. Short of waiting for an updated version from the supplier, it may be possible to use the Linux driver as a basis for an open source driver for OS X.

FINAL UPDATE: Arkview has released drivers for Lion, so further exploration is unnecessary.

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox