Menu

Compiling/Installing 1.6.2 on MacOS X 10.4.8

2007-01-10
2013-01-02
  • Olivier Dony

    Olivier Dony - 2007-01-10

    Hi!

    This software is really great, and works like a charm out of the box!
    However there are some specific remappings that I would like to do, being forced to use a win cherry keyboard on my mac.

    I have checked out the source from 1.6.2 via svn, and after installing the MacOSX10.4u.sdk that comes with Xcode 2.4.1, I can build both the kernel extension and the prefpane with no apparent error or warning on my Intel iMac, either with the Makefile or with XCode.

    However when I try to install the kext I just built (from the unmodified 1.6.2 source), using the generated pkg or directly with kextload, the validation fails with this error:

       $ sudo kextload -t DoubleCommand.kext
       kextload: extension DoubleCommand.kext appears to be valid
       16KeyboardRemapper is not compatible with its superclass, 18IOHIKeyboardMapper superclass changed?
       kextload: a link/load error occured for kernel extension DoubleCommand.kext
       load failed for extension DoubleCommand.kext
       (run kextload with -t for diagnostic output)

    I have no idea how I can fix this error, and cannot find anything through Google.
    Can anybody shed some light on this issue? I can provide the output of the build or the verbose log of 'kextload -t -v 6', but there doesn't seem to be any additional information regarding this error.

    Thanks a lot!

     
    • Olivier Dony

      Olivier Dony - 2007-01-23

      I solved the problem with the kind help of Michael Baltaks (the author of DoubleCommand).

      My problem is in fact described by Apple Technical Note 2163:
         http://developer.apple.com/technotes/tn2006/tn2163.html

      The TN page says:

      Most problems you'll encounter after building a universal driver will appear when loading it. For example, kextload might report the error
        com.mycompany.driver.MyDriverClass is not compatible with its superclass,
        <superclass name> superclass changed?
      The reason for most load-time errors is that the wrong SDK was used when building the driver.

      This is exactly the error I was having. Then the TN describes various configuration settings to tweak in the XCode project, but the DC project is already setup correctly.
      So I decided to reinstall XCode 2.4 completely, to fix any SDK installation problem.
      So far I had only installed the specific SDKs, but never actually the whole XCode release.

      After reinstalling completely XCode 2.4 (enabling all SDKs in the custom options), I rebuilt DoubleCommand and this time it worked!
      I have now my own release of DC with custom key remapping and it works great! :-)

       

Log in to post a comment.