Итак, недавно я получил систему Mac и планировал установить карту Intel WiFi (в качестве обновления для текущей карты). Теперь, как мы знаем, Apple и Intel не ладят в плане Wi-Fi.
Однако эта же карта работает и в Linux.
Что произойдет, если я принудительно установлю драйверы Intel для ядра Linux в Mac OS X? Будет ли это работать? Будет ли серьезная нестабильность или потеря данных? Это вообще возможно?
Что произойдет, если я принудительно установлю драйверы Intel для ядра Linux в Mac OS X? Будет ли это работать? Будет ли серьезная нестабильность или потеря данных? Это вообще возможно?
В лучшем случае? 100% ничего. В худшем случае? Разрушить всю вашу систему и сделать ее непригодной для использования или даже невозможной загрузки.
Хотя Mac OS X и Linux — это разные «разновидности» Unix, вы не можете просто взять части одной ОС и просто установить их в другую ОС и ожидать, что они будут работать.
Тем не менее, если где-то есть исходный код драйвера, вы потенциально можете скомпилировать его для Mac OS X, используя набор инструментов разработки Xcode.
Но это одно большое если . Реальность такова, что компиляция исходного кода приложения Linux в системе Mac OS X из системы Linux — это ерунда. Иногда это работает, и вы можете использовать хорошие инструменты Linux в системе Mac OS X. Но иногда это просто не сработает. И это на уровне приложения. На уровне водителя это еще менее правдоподобно или выполнимо; и даже если бы это было выполнимо, в лучшем случае это было бы трудно сделать.
Тем не менее, похоже, что были предприняты попытки с открытым исходным кодом скомпилировать драйверы Linux Intel для Mac OS X, как показано здесь . Но обратите внимание, что упомянутыми версиями Mac OS X являются Mac OS X 10.4 и 10.5; ничего более современного.
Ничего бы не случилось, потому что они бы не работали (модули ядра). MacOS и Linux имеют 2 совершенно разных ядра. Это как пытаться поставить двигатель с одной марки автомобиля на другую: не получится, потому что все соединения/характеристики совершенно разные.
Кроме того, в Mac OS X нет команд lsmod/insmod/modbrobe/rmmod...
Теперь, если вы попробуете бинарные драйверы, это будет похоже на — простите мои «автомобильные» сравнения — получить некоторые материалы для автокресла (в соответствии со спецификациями для марки А) и попытаться построить (скомпилировать) автокресло для марки Б. Если две марки автомобилей совместимы в области автомобильных сидений, то вы, вероятно, сделаете это, и это действительно сработает. Но если вы попытаетесь построить гоночное автокресло из материалов для 20-летней машины, у вас будет тяжелая езда, если не авария и травма.
ndiswrapper
нибудь?). Так что, хотя это, безусловно, не будет работать из коробки, теоретически некоторые опытные пользователи могут адаптировать драйвер к другой операционной системе . В любом случае, OP лучше купить другую карту WiFi.modprobe
kextload
Как уже писали: это невозможно.
Во-первых, нет такой вещи, как принудительная установка. Устанавливать нечего, а если и было что ставить, то это не «заставлять». Установка может иметь разные значения, но эти два относятся к вашему вопросу:
Установка означает установку пакета Mac OS X с помощью установщика OS X. Это пакет, содержащий файлы для установки и инструкции для системы установки, чтобы она знала, куда что поместить и как это сделать.
Установка означает получение драйвера для аппаратного обеспечения, загруженного в ядро. OS X работает, используя так называемые расширения ядра (файлы .kext или официально «пакеты», потому что это то, чем они являются) для добавления функциональности ядру. Драйвер - это такое дополнение, а функционал - возможность управлять железкой.
Оба случая очень привязаны к операционной системе. Это означает, что вы не можете «установить» что-либо без сопоставления пунктов 1 и 2. Хотя технически вы можете пропустить пункт 1, вручную используя программу «kextload» для загрузки файла в качестве расширения ядра, вы не сможете сопоставить пункт 2: только расширения ядра могут быть загружены в ядро. Расширения ядра должны соответствовать ABI и API ядра. Эти две аббревиатуры (не стесняйтесь искать их, их полное название и значение не имеют отношения к ответу) сравнимы с сопоставлением электрических розеток с электрическими вилками. Это интерфейсы.
Если бы вы попытались смешивать и сопоставлять двоичные файлы (потому что это то, чем являются расширения ядра, модули и драйверы), это не сработало бы, потому что они несовместимы с ядром и, в некоторых случаях, с процессором, который должен выполнять код. Эта совместимость с ядром — вот где мы подходим к части ABI и API: эти интерфейсы подобны газовым, водяным и электрическим соединениям. Допустим, Windows — это газ, Linux — это электричество, а OS X — это вода. Если вы попытаетесь подключить электрическую вилку Linux к водопроводному крану OS X, у вас ничего не получится. Вода не течет через электрическую вилку, а электрическая вилка не получает электричества от воды.
Если бы вы попытались загрузить драйвер Linux (который называется модулем ядра) в ядро OS X, используя kextload из командной строки в OS X, он просто сказал бы вам, что не знает, что делать. с предоставленным вами файлом. Никакого принуждения там нет, он просто ничего не может сделать с этим файлом, как нельзя заставить работать лампочку из крана дома.
Что касается вашей проблемы: чего вы пытаетесь достичь? Если у вас возникли проблемы с беспроводным подключением, проблема обычно связана с сетью или окружающей средой. Если вам не хватает определенных функций, таких как разные частоты или новые беспроводные протоколы, вы можете попробовать просто установить карту с лучшей поддержкой. В Интернете есть списки изначально поддерживаемых беспроводных карт, которые будут работать нормально. Интел не входит в их число.
Я надеюсь, что это поможет вам и сделает все как можно более ясным.
Нет, это невозможно, так же как вы не можете запускать любые другие двоичные файлы Linux в OS X (без использования виртуальной машины).
В качестве примечания: если у вас есть некоторые USB-устройства, которые предоставляют только драйвер Linux, но не драйвер OS X, вы можете рассмотреть возможность использования устройства, запустив Linux на виртуальной машине (VirtualBox?), а затем перенаправьте USB-соединение с вашего Mac на Linux. ВМ.
Затем, если вам нужно использовать некоторые инструменты с графическим интерфейсом, вы также можете настроить переадресацию X на рабочий стол OS X с помощью XQuartz.
Торбьерн Равн Андерсен
bmike
Каз Вульф
modprobe
или аналогичный инструмент.Джакомо1968
Каз Вульф
bmike
Джакомо1968