Pull to refresh

Comments 5

а Linux и FreeBSD по прежнему могут без особых проблем работать без ACPI

Немного не так, линуксы не используют ACPI потому, что вынуждены работать в реальных условиях т.к. производители материнок по большей части заполняют таблицы на «отвяжись» — все привыкли к тому, что Windows сама их железо из драйверов определит и настроит и поэтому в таблицах — зияющая пустота и куски блобов.
Более того — существует как минимум две версии компилятора описания этих таблиц. И версия от микрософт, следуя всем канонам, «немножечко» другая! Т.е. код успешно компилируемый микрософтным компилятором зачастую невозможно скомпилировать интеловым, который честно старается придерживаться стандартов. Соответствующим получается и биос/уефи, попробуй определи, что за железо тебе дали и почему это оно не реагирует на закрытие крышки или на воткнутые наушники.
Тем не менее, даже с опцией acpi=off ядро успешно загружается и работает. И то, что Linux не использует «свой» набор данных из метода _OSI — это факт.
Про «на отвяжись» я уже однажды на ГТ писал:
Примерно 80% ASL-кода пишется производителем CPU (которому плевать на warning'и), еще по 10% — IBV и конечным вендором (и будь они хоть кем, их код — капля в море). Да и если большая часть современных ОС на недоработки ACPI все равно плевать хотела (а серьезно пользуется им только OSX), то и отношение к технологии — соответствующее. Пока оно работает хоть как-то — никто ничего трогать не будет, работы хватает и без этого.
Ситуация понемногу улучшается, но медленно. Посмотрим, что будет в новых прошивках.
От использования любых других компиляторов кроме Intel IASL отказались пару лет назад, когда стандарт ACPI был передан UEFI Forum на сопровождение. А после внедрения ASL 2.0 этот компилятор — вообще единственный, который способен собрать из нового кода что-то работающее.
О, такими темпами скоро можно будет снять древнюю мЭдальку «Самый худший стандарт в истории ПК» с ACPI. Линуксу отдельное спасибо за пофигизм в отношении ACPI, особенно за работу с PnP устройствами — какое удовольствие было разбираться, почему линукс видит клавиатуру, а вот винда — фиг там.
Да, нетребовательность линукса к ACPI позволяет этот самый код ACPI отлаживать в нем без особого бубна. Я бы не назвал ACPI самым худшим стандартом (IEEE 1149.7 уверенно держит марку, на мой взгляд), но и хорошим его пока нызвать тоже рано. Будем посмотреть, возможно руками UEFI Forum из ACPI получится сделать что-то удобоваримое.
Sign up to leave a comment.

Articles