Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

When installing certain software, usually anything printer related, I receive this error

System extension cannot be used

The system extension "/System/Library/Extensions/Belcarra.
USBLAN_netpart.kext" was installed
improperly and cannot be used.  Please try
reinstalling it, or contact the product's vendor for an
update

This began after I erased some printer folders that I thought I wasn't using anymore. I'll get about 30 error messages in a row, all with different paths, but all the same message talking about kext files. I tried fixing permissions with the Mac boot disc, but it didn't seem to help. I usually just click through all the errors and nothing seems to be affected. Any ideas how to fix this permanently?

share|improve this question

2 Answers 2

up vote 0 down vote accepted

It looks like whoever it was at Logitech that created the Harmony 1000 Installer package for OS X had absolutely no clue how to do it properly.

The file permissions of the files that the installer package installs are completely botched. Some are set to a User ID and Group ID of 509 and 509, which doesn't even exist on my machine. (The initial OS X user has a UID of 501, and each additional user has the next higher UID. For example, 502, 503, etc. So, unless you have 8 total users, 509 won't even be defined on your system).

The file permissions of the .kext files it installs have a UID and GID of 510 and 510, respectively. OS X will refuse to load kexts unless they have the proper permissions. That means a user of root (UID of 0), and group of wheel (GID of 0).

[EDIT] OK, it appears that Logitech is actually installing the files with botched permissions and then "repairing" the permissions (setting a user of root and group of wheel) in the package's postflight shell script. (Ugh, even their script is noobish: prefixing every command with sudo is unnecessary, since the scripts are run as root anyway). While I guess that may work, it's kind of a backwards way of going about it. (They should have just set the proper permissions on the files they included as the payload of the installer package). And, obviously in your case, the postflight script must have failed during the installation, and has left those kexts with botched permissions.

You should be able to fix the permissions on the kexts by running the following AppleScript:

http://www.markdouma.com/developer/RepairLogitechHarmonyKexts.zip

Just download it, and double-click on the AppleScript to open it in AppleScript Editor. Then click the green Run button, and enter your password when prompted.

For the record, the script just runs the following chmod command:

do shell script "/usr/sbin/chown -R 0:0 
   /System/Library/Extensions/Belcarra.USBLAN_netpart.kext 
   /System/Library/Extensions/Belcarra.USBLAN_usbpart.kext 
   /System/Library/Extensions/RemoteControl.USBLAN_usbpart.kext;
   /usr/bin/touch /System/Library/Extensions"
 with administrator privileges

You may need to restart before the kexts will be loaded properly.

Hope this helps…

share|improve this answer

Its possible you deleted some printer folders but left the actual kext files in place. To delete the kext files that are causing an issue, open terminal and type

sudo rm -rf /System/Library/Extensions/Belcarra.USBLAN_netpart.kext

The system will ask for your password.

Repeat this for any other files the system complains about. You will then need to reboot.

If something stops working as a result of the above, you may need to re-install the drivers.

share|improve this answer
    
Is there any way I would be deleting something that os x needs to run? –  Paul Belardi Apr 15 '11 at 5:28
    
Poosible, but doubtful considering that you're clicking through the errors and they're not loading anyway. If you want to be ultra-safe, move the folders to your desktop temporarily and then reboot. If there's a problem, boot into single user or safe mode and copy them back. Whenever I've had drivers/kexts that don't load I just blow them away. The system itself is never affected. –  RobZolkos Apr 15 '11 at 5:44
    
I'll give this a shot next time I'm I get an OS update and see how it goes. Will post my result afterwards. –  Paul Belardi Apr 16 '11 at 22:48

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.