¿Qué pasaría si fuerzo la instalación de un controlador de Linux en Mac OS X?

Entonces, recientemente obtuve un sistema Mac y estaba planeando instalar una tarjeta Intel WiFi (como una actualización de su tarjeta actual). Ahora, como sabemos, Apple e Intel no se llevan bien en cuanto a WiFi.

Sin embargo, esta misma tarjeta funciona en Linux.

¿Qué sucedería si forzara los controladores Intel para el kernel de Linux en Mac OS X? ¿Funcionaría? ¿Habría inestabilidad grave o pérdida de datos? ¿Es posible?

Más o menos lo mismo que sucedería si forzara los controladores de Windows en OS X... Las API del kernel son diferentes y no funcionarán.
¿Qué significa "forzar los controladores Intel" en OS X? Simplemente colocar un archivo en el sistema de archivos es el resultado neto de cualquier acción factible que pueda ver. ¿Qué harías en realidad?
@bmike Use (la inexistente) modprobeo una herramienta similar.
@bmike "¿Qué significa "forzar los controladores Intel" en OS X?" Tome la clavija cuadrada de un controlador no compatible y péguela en el orificio redondo de un sistema.
@JakeGould Problema: ¡La clavija cuadrada podría encajar en el orificio redondo!
@bmike "Entrevistó bien..." ¡Sin comentarios! ;)

Respuestas (5)

¿Qué sucedería si forzara los controladores Intel para el kernel de Linux en Mac OS X? ¿Funcionaría? ¿Habría inestabilidad grave o pérdida de datos? ¿Es posible?

¿A lo mejor? 100% nada. ¿Lo peor? Bloquee todo su sistema y deje que quede inutilizable o incluso que no se pueda iniciar.

Si bien Mac OS X y Linux son "sabores" diferentes de Unix, no puede simplemente tomar partes de un sistema operativo e instalarlas en el otro sistema operativo y esperar que funcionen.

Dicho esto, si hay un código fuente para el controlador en alguna parte, podría compilarlo para Mac OS X utilizando el conjunto de herramientas de desarrollo Xcode.

Pero ese es un gran si . La realidad es que compilar el código fuente de una aplicación Linux en un sistema Mac OS X desde un sistema Linux es un juego de dados. A veces funciona y puedes usar buenas herramientas de Linux en un sistema Mac OS X. Pero a veces simplemente no funciona. Y eso es a nivel de aplicación. En el nivel del controlador, es aún menos plausible o factible; e incluso si fuera factible, sería difícil hacerlo en el mejor de los casos.

Dicho esto, parece haber habido un esfuerzo de código abierto para compilar controladores Linux Intel para Mac OS X como se ve aquí . Pero tenga en cuenta que las versiones de Mac OS X a las que se hace referencia son Mac OS X 10.4 y 10.5; nada más moderno.

No pasaría nada, porque no funcionarían (módulos del kernel). MacOS y Linux tienen 2 núcleos completamente diferentes. Es como intentar poner motor de una marca de coche a otra: no funcionará porque todas las conexiones/especificaciones son totalmente diferentes.

Además, no hay comandos lsmod/insmod/modbrobe/rmmod en Mac OS X...

Ahora, si prueba controladores binarios, sería como, perdone mis comparaciones de 'automóvil', obtener algunos materiales para un asiento de automóvil (de acuerdo con las especificaciones de la marca A) e intentar construir (compilar) el asiento de automóvil para la marca B. Si las dos marcas de automóviles son compatibles en el área de los asientos para automóviles, entonces probablemente lo haría y podría funcionar. Pero si tratas de construir un asiento de auto de carreras con materiales para autos de 20 años, tendrás un viaje difícil, si no chocas y te lastimas.

El símil del motor del automóvil no es muy bueno, porque los hot rodders lo hacen todo el tiempo.
Quizá tampoco sea lo peor, porque hay proyectos que permiten ejecutar drivers de Windows en Linux usando una capa de adaptación ( ndiswrapper¿alguien?). Entonces, aunque seguramente no funcionará de inmediato, en teoría, es posible que algunos usuarios avanzados adapten un controlador a un sistema operativo diferente. De todos modos, OP es mejor comprar otra tarjeta WiFi.
"Si intenta forzar un módulo del kernel de Linux en OSX, lo pasará mal". youtube.com/watch?v=6Ls5j5iz2eA
Además, hay un equivalente modprobeen OS X:kextload

Como ya se ha publicado: no es posible.

En primer lugar, no existe tal cosa como 'instalación forzada'. No hay nada que instalar, e incluso si hubiera algo que instalar, no hay que "forzarlo". La instalación puede tener diferentes significados, pero estos dos son los relevantes para su pregunta:

  1. Instalación significa instalar un paquete de Mac OS X utilizando el instalador de OS X. Este es un paquete que contiene los archivos que se instalarán e instrucciones para que el sistema de instalación sepa dónde poner qué y cómo hacerlo.

  2. Instalación significa obtener un controlador para una pieza de hardware cargada en el kernel. OS X funciona mediante el uso de las llamadas extensiones del kernel (archivos .kext u oficialmente, 'paquetes' porque eso es lo que son) para agregar funcionalidad al kernel. Un controlador es una adición de este tipo, y la funcionalidad es la capacidad de controlar una pieza de hardware.

Ambos casos están muy ligados al sistema operativo. Esto significa que no puede 'instalar' algo sin hacer coincidir los puntos 1 y 2. Aunque técnicamente podría omitir el punto 1 utilizando manualmente el programa 'kextload' para cargar un archivo como una extensión del kernel, no podría hacer coincidir el punto 2: solo Las extensiones del kernel se pueden cargar en el kernel. Las extensiones del kernel deben coincidir con la ABI y la API del kernel. Esos dos acrónimos (siéntase libre de buscarlos, su nombre completo y significado no son relevantes para la respuesta) son comparables a hacer coincidir tomas de corriente con enchufes eléctricos. Son interfaces.

Si intentara mezclar y combinar archivos binarios (porque eso es lo que son las extensiones, módulos y controladores del kernel), no funcionaría porque no son compatibles con el kernel y, en algunos casos, con el procesador que necesita para ejecutar el código. Esta compatibilidad con el kernel es donde llegamos a la parte ABI y API: esas interfaces son como conexiones de gas, agua y electricidad. Digamos que Windows es gas, Linux es electricidad y OS X es agua. Si intentara conectar un enchufe eléctrico de Linux al grifo de agua de OS X, no conseguiría que nada funcionara. El agua no fluye a través de un enchufe eléctrico, y un enchufe eléctrico no obtiene electricidad del agua.

Si intentara cargar un controlador de Linux (que se llama módulo del kernel) en el kernel de OS X, utilizando kextload desde una línea de comando en OS X, simplemente le diría que no sabe qué hacer. con el archivo que proporcionaste. No hay forzamiento allí, simplemente no puede hacer nada con ese archivo, al igual que no puede forzar una bombilla para que funcione desde su grifo de agua en casa.

En cuanto a tu problema: ¿qué estás tratando de lograr? Si tiene un problema con su conexión inalámbrica, el problema suele estar relacionado con la red o el entorno. Si le faltan ciertas funciones, como diferentes frecuencias o protocolos inalámbricos más nuevos, puede intentar simplemente instalar una tarjeta mejor compatible. Hay listas en Internet de tarjetas inalámbricas compatibles de forma nativa que funcionarán bien. Intel no es uno de ellos.

Espero que esto te ayude y aclare las cosas lo más posible.

No, no es posible, más de lo que puede ejecutar cualquier otro binario de Linux en OS X (sin usar una máquina virtual).

En todo caso, es menos posible. Los binarios del espacio de usuario de Linux que se limitan a POSIX deberían poder ejecutarse en MacOSX con solo un cargador personalizado y una capa de traducción delgada. Los controladores de Linux (binarios del espacio del kernel) están estrechamente vinculados al kernel, tanto que a menudo no se ejecutarán en otras versiones del kernel de Linux , y mucho menos en el kernel de MacOSX.

Como nota al margen, si tiene algunos dispositivos USB que solo proporcionan un controlador Linux pero no un controlador OS X, puede considerar usar el dispositivo ejecutando Linux en una máquina virtual (¿VirtualBox?) y luego reenviar la conexión USB de su Mac a Linux. máquina virtual

Luego, si necesita usar algunas herramientas GUI, también puede configurar el reenvío de X a su escritorio OS X usando XQuartz.