L'errore di sistema non può essere utilizzato

0

Quando si installa un determinato software, di solito qualsiasi cosa relativa alla stampante, ricevo questo errore

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

Questo è iniziato dopo che ho cancellato alcune cartelle della stampante che pensavo non usassi più. Avrò circa 30 messaggi di errore di fila, tutti con percorsi diversi, ma tutti lo stesso messaggio che parla di file kext. Ho provato a risolvere i permessi con il disco di avvio Mac, ma non mi è sembrato di aiuto. Di solito faccio semplicemente clic su tutti gli errori e nulla sembra essere interessato. Qualche idea su come risolvere questo problema definitivamente?

    
posta Paul Belardi 14.04.2011 - 07:26
fonte

2 risposte

0

Sembra che chiunque fosse a Logitech che ha creato il Il pacchetto Harmony 1000 Installer per OS X non ha assolutamente idea di come farlo correttamente.

Le autorizzazioni di file dei file installati dal pacchetto di installazione sono completamente danneggiate. Alcuni sono impostati su un ID utente e un ID gruppo di 509 e 509, che non esiste nemmeno sulla mia macchina. (L'utente iniziale di OS X ha un UID di 501 e ogni utente aggiuntivo ha il successivo UID più alto. Ad esempio, 502, 503, ecc. Quindi, a meno che non si abbiano 8 utenti totali, 509 non saranno nemmeno definiti sul sistema ).

Le autorizzazioni di file dei file .kext che installa hanno un UID e GID di 510 e 510, rispettivamente. OS X rifiuterà di caricare kits a meno che non dispongano delle autorizzazioni appropriate. Ciò significa che un utente di root (UID di 0) e un gruppo di wheel (GID di 0).

[EDIT] OK, sembra che Logitech stia effettivamente installando i file con permessi falliti e poi "riparando" le autorizzazioni (impostando un utente di root e gruppo di wheel ) nello script di shell postflight del pacchetto . (Uh, anche il loro script è noobish: il prefisso di ogni comando con sudo non è necessario, dal momento che gli script vengono eseguiti come root in ogni caso). Anche se penso che possa funzionare, è un modo un po 'arretrato. (Dovrebbero aver appena impostato le autorizzazioni appropriate sui file che hanno incluso come payload del pacchetto di installazione). E, ovviamente, nel tuo caso, lo script postflight deve aver fallito durante l'installazione e ha lasciato quei kex con permessi falliti.

Dovresti essere in grado di correggere le autorizzazioni sui kex eseguendo il seguente AppleScript:

link

Scaricalo e fai doppio clic su AppleScript per aprirlo in AppleScript Editor. Quindi fai clic sul pulsante verde Run e inserisci la password quando richiesto.

Per la cronologia, lo script esegue solo il seguente comando chmod :

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

Potrebbe essere necessario riavviare prima che i kex vengano caricati correttamente.

Spero che questo aiuti ...

    
risposta data 14.07.2011 - 01:29
fonte
0

È possibile che tu abbia cancellato alcune cartelle della stampante ma lasciato i file kext effettivi sul posto. Per eliminare i file kext che causano un problema, apri il terminale e digita

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

Il sistema chiederà la tua password.

Ripeti questo per tutti gli altri file di cui il sistema si lamenta. Dovrai quindi riavviare.

Se qualcosa dovesse smettere di funzionare come conseguenza di quanto sopra, potrebbe essere necessario reinstallare i driver.

    
risposta data 14.04.2011 - 08:27
fonte

Leggi altre domande sui tag