7 votos

¿Qué pasaría si instalara a la fuerza un controlador de Linux en Mac OS X?

Hace poco me compré un sistema Mac y tenía pensado ponerle una tarjeta WiFi de Intel (como actualización de su tarjeta actual). Ahora, como sabemos, Apple e Intel no se llevan bien WiFi-sabio.

Sin embargo, esta misma tarjeta funciona en Linux.

¿Qué pasaría si forzara los controladores Intel para el núcleo Linux en Mac OS X? ¿Funcionaría? ¿Habría inestabilidad severa o pérdida de datos? ¿Es posible?

13voto

JakeGould Puntos 1926

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

¿En el mejor de los casos? 100% nada. ¿En el peor? Bloquear todo el sistema y dejarlo inutilizable o incluso que no arranque.

Aunque Mac OS X y Linux son dos "sabores" diferentes de Unix, no puedes coger partes de un sistema operativo e instalarlas en el otro y esperar que funcionen.

Dicho esto, si hay código fuente para el controlador en algún lugar, usted podría potencialmente compilarlos para Mac OS X utilizando el conjunto de herramientas de desarrollo Xcode.

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

Dicho esto, parece que ha habido un esfuerzo de código abierto para compilar Linux Intel controladores para Mac OS X como se ve aquí . Pero ten 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.

10voto

hillu Puntos 4033

No pasaría nada, porque no funcionarían (módulos del núcleo). MacOS y Linux tienen 2 kernels completamente diferentes. Es como intentar poner un 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 bien, si tratas de construir pilotos binarios, sería como -perdón por mi comparación con los coches- conseguir materiales para un asiento de coche (según las especificaciones de la marca A) y tratar de construir (compilar) el asiento de coche para la marca B. Si las dos marcas de coches son compatibles en el área de los asientos de coche, entonces probablemente lo conseguirías y podría funcionar. Pero si intentas construir un asiento de coche de carreras con materiales de un coche de hace 20 años, vas a tener un viaje duro, si no te estrellas y te lesionas.

8voto

John Keates Puntos 711

Como ya se ha dicho: no es posible.

En primer lugar, no existe la "instalación forzada". No hay nada que instalar, y aunque hubiera algo que instalar, no se puede "forzar". La instalación puede tener diferentes significados, pero estos dos son los relevantes para tu pregunta:

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

  2. Instalar significa cargar en el kernel un controlador para una pieza de hardware. OS X funciona utilizando las llamadas extensiones del kernel (archivos .kext, u oficialmente, "paquetes", porque eso es lo que son) para añadir 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 vinculados al sistema operativo. Esto significa que no se puede "instalar" algo sin que coincidan los puntos 1 y 2. Aunque técnicamente podría saltarse el punto 1 utilizando manualmente el programa "kextload" para cargar un archivo como extensión del núcleo, no podría cumplir el punto 2: sólo las extensiones del núcleo pueden cargarse en el núcleo. Las extensiones del núcleo tienen que coincidir con la ABI y la API del núcleo. Esos dos acrónimos (siéntase libre de buscarlos, su nombre completo y su significado no son relevantes para la respuesta) son comparables a hacer coincidir tomas de corriente con enchufes eléctricos. Son interfaces.

Si intentaras mezclar y combinar archivos binarios (porque eso es lo que son las extensiones del kernel, los módulos y los controladores) no funcionaría porque no son compatibles con el kernel y, en algunos casos, con el procesador que necesita ejecutar el código. Esta compatibilidad con el kernel es donde llegamos a la parte de ABI y API: esas interfaces son como las conexiones de gas, agua y electricidad. Digamos que Windows es gas, Linux es electricidad y OS X es agua. Si intentaras conectar un enchufe eléctrico de Linux al grifo de agua de OS X, no conseguirías 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 (lo que se llama un módulo del núcleo) en el núcleo de OS X, utilizando kextload desde una línea de comandos en OS X, simplemente le diría que no sabe qué hacer con el archivo suministrado. No hay nada que forzar, simplemente no puede hacer nada con ese archivo, igual que no puedes forzar a una bombilla a funcionar desde el grifo de tu casa.

En cuanto a su problema: ¿qué pretende conseguir? Si tienes un problema con tu conexión inalámbrica, el problema suele estar en la red o en el entorno. Si te faltan ciertas características, como frecuencias diferentes o protocolos inalámbricos más nuevos, podrías intentar simplemente instalar una tarjeta con mejor soporte. En Internet hay listas de tarjetas inalámbricas con soporte nativo que funcionan perfectamente. Intel no es una de ellas.

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

7voto

Cedric Puntos 46

No, no es posible, igual que no se puede ejecutar ningún otro binario de Linux en OS X (sin utilizar una máquina virtual).

1voto

Angelos Puntos 51

Como nota al margen, si usted tiene algunos dispositivos USB que sólo suministran controlador de Linux, pero no el controlador de OS X, puede considerar el uso del dispositivo mediante la ejecución de Linux en una máquina virtual (VirtualBox?) A continuación, reenviar la conexión USB desde tu Mac a la máquina virtual de Linux.

Luego, si necesitas usar algunas herramientas GUI, también puedes configurar el reenvío de X a tu escritorio OS X usando XQuartz.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X