Domanda:
Cosa succederebbe se forzassi l'installazione di un driver Linux in Mac OS X?
Kaz Wolfe
2015-01-27 13:01:44 UTC
view on stackexchange narkive permalink

Quindi, recentemente ho acquistato un sistema Mac e stavo progettando di inserire una scheda Intel WiFi (come aggiornamento per la sua scheda attuale). Ora, come sappiamo, Apple e Intel non vanno d'accordo dal punto di vista WiFi.

Tuttavia, questa stessa scheda funziona in Linux.

Cosa succederebbe se dovessi forzare Intel driver per il kernel Linux in Mac OS X? Funzionerebbe? Ci sarebbe una grave instabilità o perdita di dati? È anche possibile?

Più o meno lo stesso che accadrebbe se forzassi i driver di Windows in OS X ... Le API del kernel sono diverse e non funzioneranno.
Cosa significa "forzare i driver Intel" in OS X? Il semplice posizionamento di un file sul filesystem è il risultato netto di qualsiasi azione fattibile che posso vedere. Cosa faresti effettivamente?
@bmike Usa (l'inesistente) `modprobe` o uno strumento simile.
@bmike "Cosa significa" forzare i driver Intel "in OS X?" Prendi il piolo quadrato di un driver non compatibile e inseriscilo nel foro rotondo di un sistema.
@JakeGould Problem: Il piolo quadrato potrebbe entrare nel foro rotondo!
@JakeGould Un po 'come [The Elegant Gentleman's Guide to Knife Fighting?] (Https://www.youtube.com/watch?v=WEKhJ3CYWz4)
@bmike "Ha intervistato bene ..." Nessun commento! ;)
Cinque risposte:
Giacomo1968
2015-01-27 14:17:03 UTC
view on stackexchange narkive permalink

Cosa succederebbe se forzassi i driver Intel per il kernel Linux in Mac OS X? Funzionerebbe? Ci sarebbe una grave instabilità o perdita di dati? È anche possibile?

Nella migliore delle ipotesi? 100% niente. Al peggio? Blocca l'intero sistema e rendilo inutilizzabile o addirittura non avviabile.

Sebbene Mac OS X e Linux siano entrambi "versioni" differenti di Unix, non puoi semplicemente prendere parti da un sistema operativo e installarlo nel altro sistema operativo e aspettarsi che funzionino.

Detto questo, se da qualche parte c'è il codice sorgente per il driver, è possibile potenzialmente compilarli per Mac OS X utilizzando la suite di sviluppo Xcode strumenti.

Ma questo è un grande if . La realtà è che la compilazione del codice sorgente dell'applicazione Linux su un sistema Mac OS X da un sistema Linux è un gioco da ragazzi. A volte funziona e puoi usare ottimi strumenti Linux su un sistema Mac OS X. Ma a volte semplicemente non funziona. E questo è a livello di applicazione. A livello di conducente è ancora meno plausibile o fattibile; e anche se fosse fattibile, sarebbe difficile farlo nel migliore dei casi.

Detto questo, sembra che ci sia stato uno sforzo open source per compilare i driver Intel Linux per Mac OS X come visto qui. Si noti che le versioni di Mac OS X a cui si fa riferimento sono Mac OS X 10.4 e 10.5; niente di più moderno.

Marek Bettman
2015-01-27 18:30:37 UTC
view on stackexchange narkive permalink

Non succederebbe nulla, perché non funzionerebbero (moduli del kernel). MacOS e Linux hanno 2 kernel completamente diversi. È come provare a spostare il motore da una marca di auto a un'altra: non funzionerà perché tutte le connessioni / specifiche sono totalmente diverse.

Inoltre, non ci sono comandi lsmod / insmod / modbrobe / rmmod in Mac OS X ...

Ora, se provi i driver binari, sarebbe come - scusate i miei confronti "auto" - prendere del materiale per un seggiolino auto (secondo le specifiche del marchio A) e provare a costruisci (compila) il seggiolino auto per la marca B. Se le due marche di auto sono compatibili nell'area dei seggiolini auto, probabilmente lo faresti e potrebbe effettivamente funzionare. Ma se provi a costruire un seggiolino per auto da corsa con materiali per auto di 20 anni, avrai una corsa difficile, se non un incidente e ferirti.

La similitudine del motore dell'auto non è molto buona, perché gli hot rodder lo fanno sempre.
Forse non è nemmeno il peggiore, perché ci sono progetti che consentono di eseguire driver Windows su Linux utilizzando un livello di adattamento (`ndiswrapper` chiunque?). Quindi, anche se sicuramente non funzionerà immediatamente, in teoria * potrebbe * essere possibile per alcuni utenti esperti adattare un driver a un sistema operativo diverso. Ad ogni modo, OP è meglio acquistare un'altra scheda WiFi.
"Se provi a forzare un modulo del kernel Linux in OSX, non ti divertirai." https://www.youtube.com/watch?v=6Ls5j5iz2eA
Inoltre, * esiste * un equivalente di `modprobe` in OS X: [` kextload`] (https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/kextload.8.html )
John Keates
2015-01-28 09:21:47 UTC
view on stackexchange narkive permalink

Come già pubblicato: non è possibile.

Prima di tutto, non esiste una cosa come la "installazione forzata". Non c'è niente da installare, e anche se ci fosse qualcosa da installare non c'è nessuna "forzatura". L'installazione può avere significati diversi ma questi due sono quelli rilevanti per la tua domanda:

  1. Installazione significa installare un pacchetto Mac OS X utilizzando l'installer di OS X. Questo è un pacchetto contenente i file da installare e le istruzioni per il sistema di installazione in modo che sappia dove mettere cosa e come farlo.

  2. Installazione significa ottenere un driver per un pezzo di hardware caricato nel kernel. OS X funziona utilizzando le cosiddette estensioni del kernel (file .kext, o ufficialmente, "pacchetti" perché è quello che sono) per aggiungere funzionalità al kernel. Un driver è un'aggiunta di questo tipo e la funzionalità è la capacità di guidare un componente hardware.

Entrambi i casi sono molto legati al sistema operativo. Ciò significa che non puoi 'installare' qualcosa senza abbinare i punti 1 e 2. Sebbene tu possa tecnicamente saltare il punto 1 usando manualmente il programma 'kextload' per caricare un file come un'estensione del kernel, non saresti in grado di abbinare il punto 2: solo le estensioni del kernel possono essere caricate nel kernel. Le estensioni del kernel devono corrispondere all'ABI e all'API del kernel. Questi due acronimi (sentitevi liberi di cercarli, il loro nome completo e il loro significato non sono rilevanti per la risposta) sono paragonabili all'abbinamento di prese elettriche con spine elettriche. Sono interfacce.

Se dovessi provare a mescolare e abbinare file binari (perché questo è ciò che sono estensioni, moduli e driver del kernel) non funzionerebbe perché non sono compatibili con il kernel e in alcuni casi il processore che deve eseguire il codice. Questa compatibilità con il kernel è dove arriviamo alla parte ABI e API: quelle interfacce sono come i collegamenti gas, acqua ed elettrici. Diciamo che Windows è il gas, Linux è l'elettricità e OS X è l'acqua. Se dovessi provare a collegare una presa elettrica Linux al rubinetto dell'acqua di OS X, non riuscirai a far funzionare nulla. L'acqua non scorre attraverso una presa elettrica e una presa elettrica non riceve elettricità dall'acqua.

Se dovessi provare a caricare un driver Linux (che è chiamato modulo kernel) in il kernel di OS X, utilizzando kextload da una riga di comando su OS X, ti direbbe semplicemente che non sa cosa fare con il file che hai fornito. Non c'è nessuna forzatura lì, semplicemente non può fare nulla con quel file, proprio come non puoi forzare una lampadina a funzionare dal tuo rubinetto dell'acqua di casa.

Per quanto riguarda il tuo problema: cosa stai cercando di ottenere ? Se hai un problema con la tua connessione wireless, il problema è solitamente con la rete o l'ambiente. Se ti mancano alcune funzionalità come frequenze diverse o protocolli wireless più recenti, potresti provare a installare semplicemente una scheda supportata meglio. Ci sono elenchi su Internet di schede wireless supportate in modo nativo che funzioneranno perfettamente. Intel non è uno di loro.

Spero che questo ti aiuti e renda le cose più chiare possibile.

Mike Scott
2015-01-27 13:04:31 UTC
view on stackexchange narkive permalink

No, non è possibile, non più di quanto tu possa eseguire qualsiasi altro binario Linux in OS X (senza usare una macchina virtuale).

Se non altro, è meno possibile. I binari dello spazio utente Linux che si limitano a POSIX dovrebbero essere in grado di funzionare su MacOSX con solo un caricatore personalizzato e un sottile livello di traduzione. I driver Linux (binari dello spazio del kernel) sono strettamente legati al kernel, tanto che spesso non funzioneranno su altre versioni del kernel * Linux *, tanto meno sul kernel MacOSX.
Angelos
2015-01-29 13:16:09 UTC
view on stackexchange narkive permalink

Come nota a margine, se hai alcuni dispositivi USB che forniscono solo driver Linux ma nessun driver OS X, potresti considerare di utilizzare il dispositivo eseguendo Linux in una macchina virtuale (VirtualBox?) Quindi inoltrare la connessione USB dal tuo Mac alla VM Linux.

Quindi, se è necessario utilizzare alcuni strumenti GUI, è anche possibile configurare l'inoltro X al desktop OS X utilizzando XQuartz.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...