update_prebinding
My MacBook has been getting slower and slower lately, so today I
started to investigate what the cause might be. I'd noticed a while
ago that a message had started appearing in system.log:
update_prebinding: error: dependent dylib is not prebound
update_prebinding: error 256 running update_prebinding_core
You can run update_prebinding from the shell but you don't get
any extra insight into the problem because the error message is
exactly the same.
There is a -debug option which looks promising, but that too
isn't as helpful as it could be -- it tells you the last library
it successfully prebound, then fails:
[snip loads of other lines...]
dyld: re-prebound: 0x90bee000 /usr/lib/libgcc_s.1.dylib
update_prebinding: error: dependent dylib is not prebound
update_prebinding: error 256 running update_prebinding_core
If only it told us the name of the library which was causing the
problem! As it happens, you can work it out, because it turns out
that update_prebinding just works its way though a list of files
in /var/db/dyld/update-prebinding-paths.txt. In my copy of that
file, the library on the line after libgcc_s.1.dylib is
/Applications/Utilities/Java/Java Web Start.app/Contents/Resources/Java/libmacjavaws.jnilib.
I commented that line out (by preceding it with a # character)
but the problem still wasn't solved, so I edited the file again
and commented out all of the Java 1.3.1 libraries. Now
update_prebinding runs to completion.
I have no idea whether I've actually fixed anything, but the MacBook at least now feels quicker. I counted the number of bounces of the dock icon were required to start Safari last week and got at least 11, and today it started before it had even bounced once. Yes, I know that's a completely bogus test. :-)
I still have another problem, which is that Disk Utility has detected an error on my hard drive which it can't fix. Not even by booting from the OS X DVD and running Disk Utility from there. I'm going to refresh my hard drive backup and reinstall everything at some point in the next few days to hopefully fix this.
Mac OS X 10.5 Leopard delay
I know I'm a bit behind in bloging about this, because it has already been done to death in the blogshpere, but something occurred to me this morning. Apple have announced that Leopard will be shipping in October, but previous experience shows that what they mean by "ship Leopard in October" is probably "ship Leopard on October 31st", and therefore we probably won't actually get our hands on a copy of Leopard until a few days into November.
Ready to ship: FEBRUARY
The new Airport Extreme is available for pre-order from the UK Apple Store but is marked Ready to ship: FEBRUARY. Only a couple more weeks, right? Erm, no.

Fixed version of Logitech Control Center 2.12
I have just installed LCC 2.12 and it doesn't work. Version 2.11 worked fairly well but was a bit buggy when switching scroll wheel settings when focus moved between apps.
I have tracked down the problem to the fact that some files are missing in the install, read on for more info and a fix.
Updated 2007-01-07: 'a' pointed out that you need to make sure the ownership of the kext is correct, so I've added another step.
Updated 2007-01-11: I've just noticed that Logitech have pulled version 2.12 from their site. You can only download version 2.11 at the moment.
Updated 2007-01-12: Version 2.12 is back on Logitech's site. Unfortunately, it is still broken.
Updated 2007-01-23: Logitech have fixed the bug. I've removed the download as it's not needed any more.
The problem is that the Info.plist and PkgInfo files are missing from the Logitech kernel extension LogitechUSBHIDevices.kext. Without those files, Mac OS X doesn't recognise it as a kernel extension and refuses to load it.
I've reinstalled LCC 2.11, extracted the files from that kext, and edited Info.plist so it refers to version 2.12 instead of 2.11. The fixed version works.
To fix your version, do the following:
- Understand that you do this at entirely your own risk! It seems to be working fine for me, but I cannot take responsibility for anything which might happen if you follow these instructions. I'm only supplying these details as a public service.
- Install LCC 2.12 if you haven't already done so
- Navigate to /System/Library/Extensions in Finder and delete LogitechUSBHIDevices.kext
- Download and extract my
fixed version of the kext (151kb) - Copy the extracted LogitechUSBHIDevices.kext to /System/Library/Extensions
- added 2007-01-07 (thanks to 'a', see comments): make sure that the ownership of the files in the kext is correct. Open a
Terminal prompt and execute
sudo chown -R root:wheel /System/Library/Extensions/LogitechUSBHIDevices.kext - Restart
The only difference between the original Logitech 2.12 version of the kext and my version is that my version includes the PkgInfo and Info.plist files.
Technically, you could probably avoid the need to restart by doing this:
- Start Terminal
sudo kextunload /System/Library/Extensions/LogitechUSBHIDevices.kext- remove that old version and replace it with the one you downloaded as above
sudo kextload /System/Library/Extensions/LogitechUSBHIDevices.kext
I'll leave the file available until Logitech release a fixed version.
If you'd rather just revert to version 2.11 until they fix it, you can download that version from Logitech here.
Fixed version of Logitech Control Center 2.12
I have just installed LCC 2.12 and it doesn't work. Version 2.11 worked fairly well but was a bit buggy when switching scroll wheel settings when focus moved between apps.
I have tracked down the problem to the fact that some files are missing in the install, read on for more info and a fix.
Updated 2007-01-07: 'a' pointed out that you need to make sure the ownership of the kext is correct, so I've added another step.
Updated 2007-01-11: I've just noticed that Logitech have pulled version 2.12 from their site. You can only download version 2.11 at the moment.
Updated 2007-01-12: Version 2.12 is back on Logitech's site. Unfortunately, it is still broken.
Updated 2007-01-23: Logitech have fixed the bug. I've removed the download as it's not needed any more.
The problem is that the Info.plist and PkgInfo files are missing from the Logitech kernel extension LogitechUSBHIDevices.kext. Without those files, Mac OS X doesn't recognise it as a kernel extension and refuses to load it.
I've reinstalled LCC 2.11, extracted the files from that kext, and edited Info.plist so it refers to version 2.12 instead of 2.11. The fixed version works.
To fix your version, do the following:
- Understand that you do this at entirely your own risk! It seems to be working fine for me, but I cannot take responsibility for anything which might happen if you follow these instructions. I'm only supplying these details as a public service.
- Install LCC 2.12 if you haven't already done so
- Navigate to /System/Library/Extensions in Finder and delete LogitechUSBHIDevices.kext
- Download and extract my
fixed version of the kext (151kb) - Copy the extracted LogitechUSBHIDevices.kext to /System/Library/Extensions
- added 2007-01-07 (thanks to 'a', see comments): make sure that the ownership of the files in the kext is correct. Open a
Terminal prompt and execute
sudo chown -R root:wheel /System/Library/Extensions/LogitechUSBHIDevices.kext - Restart
The only difference between the original Logitech 2.12 version of the kext and my version is that my version includes the PkgInfo and Info.plist files.
Technically, you could probably avoid the need to restart by doing this:
- Start Terminal
sudo kextunload /System/Library/Extensions/LogitechUSBHIDevices.kext- remove that old version and replace it with the one you downloaded as above
sudo kextload /System/Library/Extensions/LogitechUSBHIDevices.kext
I'll leave the file available until Logitech release a fixed version.
If you'd rather just revert to version 2.11 until they fix it, you can download that version from Logitech here.