Microsmeta.ru
Строительные
организации
Строительные
магазины
ОАО  ufahouse
ООО   Стройтехнология
ООО  "Монтажастрой"
ООО  "Стройсервис"
ООО  Атриум Строй
Обратная
связь
Башкортостан
г. Уфа

Как отключить nvidia optimus на ноутбуке


Как отключить NVIDIA Optimus на Dell XPS 15?

У меня есть новый Dell XPS 15 (L502x) с NVIDIA GeForce 540M, Intel Core i7Q 2.2 Ghz и решающим жестким диском RealSSD. Как и в большинстве ноутбуков с картами NVIDIA в наши дни, у него есть функция" Optimus", которая легко переключается между интегрированной графикой Intel HD и гораздо более мощной картой NVIDIA с целью обеспечения лучшего срока службы батареи.

Я предположил, когда я купил этот ноутбук, что будут определенные варианты здравого смысла, такие как способность использовать только карта NVIDIA, когда на/C питания, и / или возможность принудительного использования одной карты или другой. Похоже, либо я ошибался, либо просто не могу понять, как это сделать.

Я хочу знать, как настроить Optimus таким образом, чтобы карта NVIDIA всегда использовалась для всех задач, включая рабочий стол Windows/Aero. Я не удовлетворен производительностью карты Intel, поэтому я хотел бы обойти ее полностью. Я знаю, что из-за аппаратной конфигурации этих карт, аппаратное обеспечение Intel не может быть просто отключено, но я хотел бы, чтобы карта NVIDIA выполняла всю работу. Я прорыл как Панель управления NVIDIA, так и программу Настройки Intel, не найдя никаких подсказок, как это сделать. Я много гуглил на эту тему, но нашел мало пользы.

вещи, которые я пробовал до сих пор:

  • проверено в BIOS для опции использования одной видеокарты или другой исключительно; нет такой опции существует.

  • обновлен BIOS, без эффекта.

  • Панель управления NVIDIA GPU от Nvidia в качестве устройства по умолчанию.

  • пробовал форсировать dwm.exe для запуска на GPU NVIDIA через Панель управления NVIDIA, с целью получения Aero для визуализации на GPU NVIDIA. Там, как представляется, специальное исключение для этой программы, как раскрывающееся окно для выбора GPU неактивен и установлен в " интегрированный Графика":

  • попытался заставить старые драйверы Pre-Optimus на карте; не удалось.

любые предложения очень приветствуются, но, пожалуйста, не отвечайте, что я не должен искать, чтобы отключить Optimus!

источник

Отключение Nvidia Optimus и AMD Switchable Graphics. – OSXPC

Отключение Nvidia Optimus, AMD Switchable Graphics.

Ноутбучные дискретные карты, которые работают в паре с встроенной, не могут работать, но тем не менее они постоянно включены. И, как следствие, мы получаем повышенные нагрев и расход энергии. А мы разве хотим впустую тратить батарейку и изнашивать железо лишней температурой? Нет. Для этого мы здесь и собрались.

К тому же, этот мануал рассказывает общую логику, так что это может даже пригодиться для отключения других устройств. Например, вторая дискретная карта, которая стоит, допустим, для CrossFire или SLI, но в маке эти фишки не поддерживаются. Опять же – в целях экономии отключаем вторую карту. В общем и целом, применения этой логики уместно почти во всех случаях с устройствами типа _SB, то есть «южных» устройств.

Здесь мы отключаем с помощью метода _INI.

Через метод _REG нет смысла освещать, т.к. он менее приспособлен к современным условиям, и часто его бывает недостаточно. Тем более, товарищ RehabMan и так достаточно понятно рассказал об отключении через _REG в комментарии к своему патчу в репо.

Итак, начнём.

Первым делом мы ищем нашу видеокарту в IOKit’е, с помощью IORegistryExplorer (или же в отчёте с DarwinDumper’а, не важно).

  • Ключевые слова для поиска:
  • Nvidia: «NVDA», «NV», «IONDRVFramebuffer».
  • AMD ATi Radeon: «AMD», «ATY», «Controller».

В нашем случае это Nvidia Optimus. Смотрим:

 

Нам нужно лишь узнать путь к устройству. Смотрим его снизу вверх, чередуя через одну строчку, а записываем справа налево. Также помним, что в ACPI нет имён длиннее 4 символов.

Логика следующая:

  • IONDRVFramebuffer это программная часть, она нам не нужна. Пропускаем.
  • PXSX@0 это аппаратная часть. Записываем первую часть, до знака @, то есть записываем «PXSX».
  • IOPP – программная. Пропускаем.
  • RP05@1C,4 – аппаратная. Записываем правее PXSX, то есть «RP05.PXSX»
  • AppleACPIPCI – программная. Пропускаем.
  • PCI0@0 – аппаратная. Пишем правее RP05, то есть «PCI0.RP05.PXSX»

Выше идти не нужно. Запоминаем этот путь, и переходим к работе с ACPI.

Проводим действия согласно этой инструкции: osxpc.ru/faq/acpi-manual.

Работаем с файлами DSL, чтобы избежать проблем, и не запутаться ещё больше.

Ищем таблицу с графикой. В нашем случае, это SSDT-9.dsl.

Дерево устройств будет примерно таким:

Учитываем, что в примере учитывается путь RP05.PXSX, и соотносим со своими именами. Главное – помнить про путь, а точнее про имена в этом пути. В общем, будьте внимательны на этот счёт. Названия бывают очень разные, такие как…

Порты:

  • GFX0;
  • POP0;
  • RP0х;
  • PEGP…

Устройства:

  • PXSX;
  • PEGх;
  • NVDA;
  • _ATY…

После чего нажимаем Cmd+F, и вводим в появившееся окно «_INI»:

Смотрим, чтобы этот метод был в «папке» с нашим путём, выведенным ранее. Для этого смотрим на дерево устройств слева. Следовательно, мы наблюдаем примерно такой код:

Scope (\_SB.PCI0.RP05.PXSX)
{
//…Здесь может быть другой код, который описывает устройство…
Method (_INI, 0, NotSerialized)  // _INI: Initialize
{
Store (Zero, \_SB.PCI0.RP05.PXSX._ADR)
}
//…Здесь может быть другой код, который описывает устройство…
}

Собственно, наша задача – просто вызвать метод выключения, то есть _OFF.

Как это работает: компьютер обращается к устройству по адресу \_SB.PCI0.RP05.PXSX, что в переводе на человеческий выглядит так – «Южный мост, Шина PCI0, Порт 05, Физическое устройство». После этого он изучает описание, и после прочтения описания видит методы взаимодействия с ними. Самый первый метод – это метод _INI, который инициализирует (запускает) устройство, с помощью метода _ON. До правки этот метод содержит в себе только обращение по адресу \_SB.PCI0,RP05.PXSX._ADR, тем самым запуская запуская её физически, и цепляет в систему. Мы хотим добиться выключения. Для этого служит метод _OFF. Значит, нам нужно его исполнить. И чем раньше, тем лучше.

Но, мы должны узнать местоположение метода _OFF. Для этого опять же воспользуемся поиском (Cmd+F). Мы ищем метод «_OFF»:

В нашем случае, метод _OFF, который находится по пути \_SB.PCI0.RP05.PXSX, лежит в этой же таблице. Поэтому мы добавляем обращение к методу _OFF сразу же после обнаружения адреса устройства, чтобы _ON не успел сработать. Для этого просто добавляем его упоминание сразу после строки:

«Store (Zero, \_SB.PCI0.RP05.PXSX._ADR)».

Упоминание выглядит как «_OFF ()». Выглядит после правки это так:

Method (_INI, 0, NotSerialized)  // _INI: Initialize
{
Store (Zero, \_SB.PCI0.RP05.PXSX._ADR)
_OFF ()
  }

А если метод _OFF не был обнаружен в этой таблице, то мы со спокойной душой обозначаем то, что метод вынесен за пределы этого файла, просто прописав путь. Дальше iASL сам найдёт его. Запись внешнего метода выглядит так: External (\_SB.PCI0.RP05.PXSX._OFF, MethodObj)

Естественно, подставляем свой путь заместо указанного. Не забыли?:) Следовательно, код у нас выглядит так:

Method (_INI, 0, NotSerialized)  // _INI: Initialize
{
Store (Zero, \_SB.PCI0.RP05.PXSX._ADR)
External (\_SB.PCI0.RP05.PXSX._OFF, MethodObj)
_OFF ()
}

После этого мы просто сохраняем файлы как AML, поправив остальное (а-ля переименование GFX0 в IGPU и B0D3 в HDAU, и т.д.). Подкладываем эти таблицы клеверу в папку patched, чтобы он их загружал. Перезагружаем, и радуемся результату, проверив в IORegistry поиском по имени порта:

Если это не помогло, то нам нужно докинуть ещё одну табличку (которую многие знают как SSDT-1.aml), в которой более развернутый способ отключения. Глушит все вызовы, от того и является “универсальным”. Вот он – SSDT-15.aml (15 чтобы уж точно не пересекалось с другими таблицами).

Всё, что нам нужно – поменять стандартные пути на наш. Для этого нажимаем Cmd+F, вводим стандартные пути в этом ссдт, которые перечислены в блоке External’ов, кроме IGPU,  ставим галочку Replace, и вписываем наше имя пути. Вот так:

После этого подкидываем вместе с редактированной ранее таблицей клеверу, перезагружаемся, и радуемся отключённой графике.

Вот, собственно, и весь процесс отключения. Пример можете изучить в этом архиве. Ну и. конечно же. шпаргалка 🙂

Method (_INI, 0, NotSerialized)  // _INI: Initialize
{
Store (Zero, \_SB.PCI0.RP05.PXSX._ADR)
      // When method _OFF in OTHER SSDT: 
      //External (\_SB.PCI0.RP05.PXSX._OFF, MethodObj)
_OFF ()
}

Всегда Ваш, Андрей Чернышов.

P.S. – Спасибо Илье Исаеву за то, что объяснил алгоритм отключения 🙂

Понравилось это:

Нравится Загрузка...

автоматическое переключение графики в ноутбуках — а так ли хорошо, как кажется? Часть 1

Сегодня попробуем поговорить о столь интересной и актуальной новинке, как технология NVIDIA Optimus. Фанфары уже отгремели, время трезво взглянуть: а что это такое, нужно ли оно нам вообще? Последний вопрос прилип ко мне во время тестирования SSD, и я теперь примеряю его ко всем попадающим ко мне ноутбукам и гаджетам. От покупки стольких вещей пришлось отказаться — ужас просто!

Впрочем, любое новшество имеет как плюсы, так и минусы. Поэтому, помимо традиционных описаний и размышлений, я попробую также критически проанализировать — а нужна ли эта технология, насколько она поможет пользователям. Эти комментарии я решил выделить курсивом — те читатели, которых не интересует личное мнение, могут пропустить соответствующие куски.

С одной стороны, полезность Optimus нельзя отрицать. Эта технология упрощает жизнь пользователя, и в этом ее основной и существеннейший плюс. Даже при существующих ограничениях в реализации, эта технология представляет собой огромный шаг вперед именно с эксплуатационной точки зрения.

Дело в том, что с ее приходом ноутбуки с переключаемой графикой научились переключаться между видеоадаптерами в полностью автоматическом режиме, ориентируясь на то, какой уровень производительности необходим системе, и не требуя вмешательства пользователя. Поэтому теоретически ноутбук станет работать более эффективно и не будет отвлекать пользователя от его дел, самостоятельно реагируя на изменившиеся требования к производительности.

С другой стороны, для меня Optimus выглядит во многом не как технологическая, а как маркетинговая новинка. На мой взгляд, это типичное развитие ситуации с продвижением всего вообще, когда идея «давайте дадим им то, что они хотят» перерастает в идею «давайте дадим им то, что, как мы заставим их думать, они хотят». Т. е. сначала рождается спрос на что-то, потом производители пытаются этот спрос удовлетворить, понимают, что у них что-то не клеится, и пытаются переформировать спрос под себя: не создать технологию, подходящую под желания пользователей, а заставить пользователей думать, что они хотели именно то, что им предложено. В результате с технологической, технической и эксплуатационной точки зрения станет хуже, повысится лишь комфорт для тех пользователей, которые не хотят разбираться в деталях (а таких подавляющее большинство) и которые готовы пожертвовать эффективностью ради видимого комфорта.

Развитие идеи переключаемой графики

Сначала абсолютно все ноутбуки имели встроенную графику и в 3D не умели ничего. Впрочем, этого от них и не требовали: ноутбук считался очень нишевым продуктом для профессионалов с весьма специфическими требованиями к производительности. Однако постепенно 3D завоевывал мир (при активнейшем участии NVIDIA), а потом и ноутбуки стали становиться все более массовым и, что немаловажно, универсальным товаром. Соответственно, использоваться они стали в самом широком кругу задач, в том числе мультимедийных, и пользователей очень быстро перестала удовлетворять производительность (а точнее ее полное отсутствие) графики. Отвечая на возникший спрос, производители стали усиливать графическую подсистему ноутбуков, появились даже игровые ноутбуки и профессиональные мобильные графические станции. Они, правда, отставали по производительности от настольных систем, но уже могли справиться с большинством задач обычных пользователей.

И тут наметился раскол: ноутбук был либо мощным, но большим, тяжелым и с позорно малым временем работы от батарей, либо маленьким, легким, с хорошим временем работы от батарей, но с позорной производительностью, особенно в 3D.

Встроенное ядро должно занимать мало места, потреблять совсем мало энергии и не греться. Поэтому оно работает на низких частотах, имеет минимально необходимое количество блоков и небольшой размер, не имеет собственной видеопамяти, обходясь обычной оперативкой (это тоже экономия энергии). Совсем другое дело, если стоит выделенный графический чип: несмотря на то, что он тоже должен мало потреблять и не греться, от него еще требуется более-менее адекватная производительность в 2D и 3D, умение работать с цифровым видео и т. д. Как правило, мобильные чипы представляют собой сильно урезанную версию настольных, работающую к тому же на более низких частотах. Так что, хотя это и компромиссные варианты, по эксплуатационным характеристикам, в первую очередь энергопотреблению и нагреву, они существенно проигрывают интегрированным решениям.

Между моделями с интегрированной и выделенной графикой явно образовался провал. И производители стали старательно думать, как бы совместить мощную графику и низкое энергопотребление, тем самым значительно повысив универсальность ноутбуков.

Теоретически, можно создать видеочип, который умел бы управлять частотами в зависимости от нагрузки (впрочем, это просто и уже реализовано), динамически отключал бы ненужные блоки процессора и память, уменьшая потребление в простое (впрочем, и это уже в той или иной степени реализовано). Но это трудный и долгий путь, и не факт, что реализуемый — что было можно, уже внедрили в современные чипы. Однако есть и более простое решение — иметь в системе и тот, и другой графический чип, переключаясь между ними.

Одним из оригинальных и интересных решений стала практически уже неживая технология XGP от ATI/AMD (сразу скажу о ней, ибо идея мне очень понравилась, но… увы). Внутри ноутбука стоит интегрированный чип, а мощный выносится во внешнюю коробку и подключается к ноутбуку по быстрому интерфейсу PCI-E x16 (а не х1). Огромное преимущество такого решения в том, что дома вы получаете мощную рабочую станцию, а в дороге — долгоиграющий ноутбук. А еще — отличный выход на внешний монитор и удобную док-станцию… В общем, плюсов у технологии было много, но ее надо было развивать и популяризировать. Однако AMD, славная своими традициями убивать куриц, несущих золотые яйца, выступила в своем репертуаре: закрыла ее патентом и, имея мизерную долю на рынке ноутбуков, решила гордо продвигать  XGP самостоятельно «в пику Intel». Результаты мы видим… точнее, не видим. А жаль, идея, повторюсь, была отличнейшая.

Более аккуратная NVIDIA еще с древних времен борьбы с 3Dfx усвоила истину, что производительность, качество и пр. — ничто перед общественным мнением. Этот правильный подход позволяет компании занимать лидирующие позиции на рынке вне зависимости от производительности и качества выпускаемых на рынок мобильных решений (за настольные не скажу).

Так вот, NVIDIA пошла сама и подпихнула ATI на направление создания переключающейся графики. Суть ее состоит в том, что в ноутбуке разведено сразу два чипа (это снимает конкуренцию между Intel и NVIDIA как производителями графических решений для ноутбуков), между которыми можно переключаться, когда это нужно. В теории все просто: если на повестке дня стоит мощная задача, требующая высокой производительности, используется мощный внешний графический процессор, когда же ничего особенного не происходит — он отключается, а в работу включается интегрированный адаптер, который, конечно, слабее, но при этом потребляет значительно меньше энергии.

В первом поколении было реализовано «ручное переключение». Например, у меня был один из первых Sony серии  Z, и там это выполнено с помощью большого переключателя на корпусе. Сдвигая ползунок в разные стороны, можно включить либо графику от NVIDIA, либо встроенный чип Intel. Дергаешь его — и драйвер предлагает закрыть все приложения перед тем, как переключить графический чип, т. к. иначе ноутбук может зависнуть (и действительно зависал, теряя данные из открытых приложений). Очень весело работать, особенно когда открыто тридцать приложений, и закрыть их не представляется возможным — дешевле на работу не ходить. При этом польза от переключения была сомнительной: в ноутбуке установлен Geforce 9400, трехмерные способности которого очень скромны, разве что HDMI только через него работает. И это, кстати говоря, была уже не самая первая реализация платформы, та вообще требовала перезагрузки системы. Но это, в общем, старые и уже ненужные решения. А что было дальше?

Современная переключаемая графика и NVIDIA Optimus

Сейчас у меня на тесте два ноутбука ASUS, один — с технологией NVIDIA Optimus, второй — без нее. При это они оба с переключаемой графикой, более того — с автоматически переключаемой! Так в чем же между ними разница?

Сначала про «более старую» технологию. На современных ноутбуках ASUS нет кнопки переключения между графическими чипами, все реализовано «автоматически». Как? Через схемы питания. Для каждой из них прописано, в каких условиях какой адаптер использовать. Т. е., например, ставишь «высокая производительность» — и у тебя и от сети, и от батарей работает высокопроизводительный (ну, если можно так назвать G210M) чип NVIDIA. Ставишь «сбалансированно» — и при работе от сети у тебя будет работать производительный чип, а как перейдешь на батареи — система переключится на встроенную графику Intel. Ставишь «экономия энергии» — и всегда будет работать встроенная графика. Таким образом, переключение графического чипа зависит от двух параметров: выставленная схема управления питанием и работа от сети или батареи.

Однако в жизни с переключением не все так гладко, как описано выше. Частенько графика не переключается, мотивируя это тем, что ей мешают те или иные запущенные приложения, и их надо закрыть. Но это не всегда удобно, например, если переключению мешает рабочее приложение или система просит выключить фильм, который вы смотрите. В результате весь смысл переключаемой графики теряется.  Кроме того, у «ручного» переключения есть и ряд других недостатков.

Впрочем, даже если бы с технической стороны все работало бы безупречно, остается много других моментов, в силу которых ноутбук будет работать неоптимально. Например, отнюдь не всегда при работе от сети требуется высокая производительность и наоборот. Причем этот недостаток будет проявляться как у неискушенного пользователя (который просто не знает, как переключение работает), так и у продвинутого: ему придется постоянно переключаться в ручном режиме, через схемы питания, а о необходимости переключения очень легко забыть. Кстати говоря, даже те пользователи, которые разбираются в этих схемах работы и готовы иногда вручную контролировать параметры работы ноутбука, все равно хотели бы иметь внятный автоматический режим. Он просто удобнее и позволяет освободить голову для рабочих задач. При ручном управлении можно элементарно забыть переключиться и быстро высадить батарейку.

Так и появилась  «более новая технология», т. е. тот самый Optimus. Миллионы хомячков… т. е., простите, казуальных геймеров на ноутбуках (звучит страшно, но их действительно много) не хотят разбираться в таких тонкостях, как схемы питания или даже наличие внутри ноутбука того или иного видеоадаптера, считая, что главный показатель скорости ноутбука — наклейка на клавиатуре. Поэтому им не всегда удается задействовать в играх нужный чип, вот и случаются жалобы в техподдержку, что купил типа игровой ноутбук, а графика (бедный встроенный Intel) не тянет. Опять же, даже грамотные пользователи не всегда готовы возиться с капризами процесса переключения. Я, например, увидев просьбу о закрытии нужных приложений, просто не перехожу на другой адаптер. А это плохо сказывается либо на скорости, либо на времени автономной работы.

 Поэтому была разработана технология, позволяющая зайти с другого конца: драйвер при переключении смотрит не на схему питания, а на запускаемые приложения. Запустил Word? Тебе вполне хватит и интегрированного Intel. Запустил современную игрушку — вот тебе внешняя производительная графика. Закрыл игрушку, вернулся в Word? Все опять переключилось обратно, причем без каких-либо действий с твоей стороны. Казалось бы, очень удобно и казуально, и к тому же весьма продвинуто с технологической точки зрения.

И провозившись всего-то минут десять, я сумел настроить одно приложение…

Тонкое место технологии в том, что Optimus реагирует на исполняемый файл программы. Т. е. сделал настройку на pcmark.exe — и графика переключится, стоит запустить этот файл. Однако если запустить файл pcmark-2.exe — то умный компьютер не переключится, ибо не получал такой команды.

Поэтому очевидно, что эта система требует пусть разовой, но гораздо более серьезной настройки, чем предыдущая версия. И мало кто из казуалов (а речь идет в первую очередь о них) будет с ней возиться. Так вот, предчувствуя, что пользователи не будут мучиться (или вообще хоть что-то делать) с созданием профилей в панели управления, NVIDIA делает упреждающий шаг и предлагает онлайн-настройки: т. е. набирается база данных приложений с прописанными под каждое графическими настройками, после чего эта база закачивается в ноутбук (с разрешения пользователя, разумеется). Таким образом, утилита управления Optimus уже «знает» большое количество приложений и может определить, какой чип и с какими графическими настройками использовать в соответствии с рекомендациями «сверху».

Хотя в драйвере реализован механизм, задействующий видеокарту NVIDIA, если приложение делает вызов Direct3D или DXVA (ускорение воспроизведения видео). Т. е. зависимость от приложений не абсолютна.

Так что, технология NVIDIA Optimus — просто программная нашлепка над технологически старым аппаратным решением?

Разумеется, я лукавлю. Потому что на аппаратном уровне тоже много чего поменялось: теперь встроенная и внешняя графика работают не отдельно («работать может только один из нас!»), а сотрудничают, динамически переключаясь между собой, при этом внешний чип использует некоторые функции интегрированного (кадровый буфер), а в минуты простоя полностью отключается, но изображение на экране остается за счет встроенной графики. Удобно? Да! Экономично? Да! Эргономично? Еще как да!

Аппаратная реализация технологии NVIDIA Optimus

Взглянем подробнее на то, как технология реализована с аппаратной точки зрения.

Вот как дело обстояло до ее внедрения:

В системе устанавливалось два независимых видеоадаптера. При переключении с одного адаптера на другой система фактически останавливалась, и отключающийся адаптер начинал «сдавать дела» — освобождал свою память. Далее он отключался и включался новый (отсюда мигание экрана) и еще некоторое время система «приходила в себя» — новый адаптер устанавливал взаимодействие с системой. При этом схема взаимодействия Intel — NVIDIA такова, что не всегда данные можно безболезненно перекинуть с одного адаптера на другой — как минимум, не совпадают архитектуры. Cоответственно, при использовании трехмерных приложений или приложений, использующих оверлей (возможно, и других типов — тут я не уверен) переключить графику невозможно, их придется закрыть. Помимо этого, в системе приходилось ставить дополнительный чип — мультиплексор (на схеме назван Muxes), который перенаправляет данные с выбранной видеокарты на устройство вывода изображения.Такой мультиплексор должен быть для каждого устройства вывода (внутренний монитор, внешний монитор и т. д.).

Еще один аспект — ранее система допускала наличие только одного видеодрайвера в системе, соответственно, приходилось делать еще и программные нашлепки, которые бы позволяли запускать разные драйвера для встроенной и интегрированной графики), но сейчас эта проблема решена на уровне ОС.

Как видите, на схеме указан Display Driver Interposer. Это программа, которая управляет переключением графического чипа в системе, делая видимым для ОС тот или иной драйвер. Соответственно, для работы необходим этот уровень плюс программный слой между интерпозером и вторым чипом, ну и надо договориться с производителем. Кстати, если я правильно понял, Windows 7 допускает наличие в системе двух активных видеоадаптеров с разными драйверами, так что эта проблема более-менее разрешена с помощью Microsoft.

Как мы помним, в новом поколении платформ Intel очень сильно изменил схему взаимодействия компонентов. В частности, добрая половина графического чипа переехала в общий корпус с процессором, а «снаружи» осталась только часть, отвечающая непосредственно на вывод изображения.

В том числе и на этом основана новая схема взаимодействия. Чип NVIDIA теперь подключается не параллельно и независимо, а включается в общую работу с IGP через шину PCI Express. Разводка платы в этом случае проще, отпала нужда в мультиплексорах, а внешний чип подключается через общую шину. Однако у системы появилось много других особенностей, о которых поговорим ниже. Посмотрим, как работает платформа, в которой реализован Optimus.

Если вы не используете приложения, требующие мощной выделенной графики, у вас подключено интегрированное ядро. В этом случае выводом изображения на экран занимается встроенный чип, внешний чип NVIDIA полностью отключен и вообще не потребляет энергии.

При запуске приложения, требующего внешнюю видеокарту, этот чип включается.

Однако Optimus реализован так, что выводом изображения на экран занимается по-прежнему интегрированный видеоадаптер. Т. е. в этом случае у нас работают сразу два графических контроллера: один готовит картинку, второй выводит ее на экран. Благодаря этому переключение происходит мгновенно и незаметно для пользователя.

И тут возникает следующее узкое место, которое надо преодолеть. Помните, когда в традиционной схеме происходило переключение, чип «сгружал» данные? Так вот, внешняя карта NVIDIA после формирования кадра должна передать его в оперативную память, откуда его заберет интегрированная видеокарта и выведет на экран.

Но при этом сам чип начнет выгружать данные из кадрового буфера в системную память и будет заниматься только этим, а не своими прямыми обязанностями — расчетом следующего кадра. Соответственно, производительность будет крайне невысокой.

Для решения этой проблемы компания разработала технологию Optimus Copy Engine.

Это самостоятельный механизм копирования, который занимается исключительно тем, что выводит данные в системную память, не отвлекая на это ресурсы основного чипа. Таким образом, технически Copy engine представляет собой отдельный (это важно) механизм, который забирает из локальной памяти адаптера NVIDIA сформированный кадр и отправляет его в оперативную память, откуда его должен забрать интегрированный контроллер и вывести на экран. Остается вопрос — а какие будут накладные расходы?

Программная часть NVIDIA Optimus

C программной точки зрения все достаточно просто: у нас есть та же утилита, которую может видеть любой владелец ноутбука с адаптером NVIDIA. Просто там теперь появилась еще одна закладка, где прописываются данные для приложений.

Обратите внимание, что можно выбрать, какая из видеокарт используется по умолчанию.

А мы перейдем ко второй закладке, на которой, собственно, и указаны профили для разных приложений. Как уже упоминалось, драйвер переключает графический чип в двух ситуациях.

Первый вариант — это когда приложение отправляет запрос на использование специальной функции. Сюда относится DXVA (аппаратное ускорение видео с помощью DirectX), собственно DirectX и вроде бы CUDA. В случае, если приложение хочет воспользоваться одной из этих функций, то драйвер сразу переключит его на более производительный адаптер NVIDIA.

Второй вариант — профиль приложения. Для каждого приложения (а оно идентифицируется по исполняемому файлу) составляется свой профиль, в т. ч. — какой графический адаптер и какие настройки оно должно использовать. Если драйвер видит, что запущено это приложение, он переключает настройки графики в соответствии с указанными в профиле, в том числе выбирает видеоадаптер.

На словах все просто. В реальности бывают шероховатости: например, до переустановки у меня активировалась карта NVIDIA при включении DXVA, а после — уже нет. Хотя плеер по-прежнему писал, что DXVA используется. После чистовой переустановки системы мы проверим еще раз, переключается ли видеокарта или нет.

Маркетинг, маркетинг…

Ну что же, теперь, когда мы уже примерно представляем себе теоретические аспекты, но до того, как посмотрим на практические, я хотел бы обратить внимание вот на что.

Технически говоря, NVIDIA Optimus не привносит ничего нового, она лишь позволяет более грамотно использовать имеющиеся ресурсы. Можно представить себе шкалу, на одном конце которой производительность, на другой — энергопотребление. Optimus позволяет динамически двигать баланс. Раньше ноутбук был либо мощный, либо экономичный. Сейчас ничего не изменилось кроме того, что ноутбук научился чуть лучше сам подбирать оптимальное положение на этой шкале.

Однако из маркетинговых материалов можно сделать вывод, что ноутбук стал и производительным, и экономичным, т. е. обе чаши весов поднялись вверх.

Как видите, из слайда следует, что улучшатся оба параметра одновременно, да еще и до уровня, который не достигали системы без переключаемой графики. Понятно, что на самом деле так не получится.

На этой мажорной ноте запустим полученные на тест ноутбуки и посмотрим, как обстоит дело в реальности.

Практическая реализация

Компания NVIDIA была столь любезна, что предоставила для тестирования целых два ноутбука: один из них просто с автоматически переключаемой графикой, второй — с технологией Optimus. Должен сказать, что, как это очень часто бывает, ноутбуки пришли на тест с загаженной и плохо работающей системой. После первых тестов я попытался обновить драйвера, но это не принесло желаемого эффекта. Тесты на чистой системе с новым драйвером будут описаны во второй части нашего обзора.

Тем не менее, нам удалось прогнать основные тесты.

PCMark VantageASUS UL50Vt
Non-optimus
ASUS UL50Vf
Optimus
NVIDIAIntelNVIDIAIntel
PCMark Score3870385331283019
Memories Score2659209822461810
TV and Movies Score2612258214872202
Gaming Score2941189317631689
Music Score4099407520433352
Communications Score3592369516832870
Productivity Score3116326614372589
HDD Score3340332531673306

Результаты, мягко говоря, обескураживающие. Если результаты системы без Optimus достаточно адекватны и показывают, что графическая система ноутбука влияет на один тест (еще есть разница в тесте подсистемы памяти, но непонятно почему) из всех, то результаты ноутбука на Optimus представляют собой кашу. Даже если предположить, что я перепутал колонки (а это не так), то все равно, очень сложно объяснить, почему производительность этого ноутбука в Gaming одинакова, а в других тестах — в режиме работы с Intel результаты выше.

Пришлось переустанавливать систему и драйвера, в т. ч. установить новый драйвер для NVIDIA Optimus от производителя (версия 189.42). Вроде бы обновление прошло успешно, хотя после переустановки Optimus отказывался сохранять настройки, отличные от дефолтных. Пришлось химичить, впрочем, это не должно было сказываться на результатах тестов.

Итак, посмотрим, что произошло после чистки системы и установки новой системы на платформу Optimus.

PCMark VantageNon-optimusOptimus
новыестарыеновыестарые
PCMark Score3740387028903128
Memories Score2496265922472246
TV and Movies Score2529261213721487
Gaming Score2899294124431763
Music Score3982409932742043
Communications Score3495359229331683
Productivity Score3232311626281437
HDD Score3258334032153167

Результаты немного улучшились и стабилизировались, однако нельзя не отметить, что новая система отстает везде, во всех тестах, и это отставание нельзя списать на погрешность измерений (хотя погрешность там будь здоров, стоит хотя бы сравнить новые и старые данные по системе без Optimus, где драйвера НЕ менялись, просто проведено повторное тестирование через неделю). Поскольку непонятно, какие из аппаратных характеристик как влияют на тест, фантазировать можно долго. Не будем этого делать и попробуем перепроверить данные. Посмотрим, что скажет сама установленная система.

PCMark VantageNon-optimusOptimus
NVIDIAIntelNVIDIA/Intel
Процессор4.94.94.1
Память5.45.55.0
Графика4.93.93.9
Графика для игр5.83.45.4
Жесткий диск5.65.75.6

Системе с Optimus было позволено переключать графику в автоматическом режиме (собственно, иного выхода с плохо работающим драйвером не было), поэтому результат для нее единый.

Что интересно, данные рейтинга Windows 7 в общем и целом подтверждают выводы, сделанные выше. Во-первых, судя по результатам теста ноутубка с обычной переключаемой графикой можно примерно увидеть, какую разницу в рейтинге имеет интегрированный Intel и внешняя NVIDIA G210M. А во-вторых — что система Optimus стабильно отстает даже в тестах ОС, максимально изолированных от ситуации с драйверами и ПО.

Причем результаты, как обычно, иначе как странными не назовешь. Во-первых, непонятно серьезное отставание процессора. В ноутбуках есть технология ASUS Turbo 33, но она отключена (судя по показаниям переключателя на десктопе). Вряд ли в одном ноутбуке она активировалась, а в другом нет. Причем расхождение очень существенное.

Серьезно отличаются результаты графической системы, но по ним можно сделать вывод, что при анализе параметра «графика» система работала на встроенной видеокарте, а «графика для игр» — перешла на внешнюю. Во время тестов было видно, когда ноутбук переключил адаптер — это произошло во время теста возможностей в Direct3D (т. е. в этом случае автоматическое переключение сработало).

Таким образом, на данном этапе с предоставленным семплом и предоставленной операционной системой (приходится делать много оговорок) производительность системы на NVIDIA Optimus не дотягивает до такого же ноутбука, но оснащенного обычной переключаемой графикой. Хочу еще раз обратить внимание, что процессоры, объем оперативной памяти и видеоподсистема у тестируемых ноутбуков одинаковые. Исходя из этого, во второй части материала мы еще раз протестируем ноутбуки на чистой системе.

Время работы от батарей

Улучшенное время работы от батарей — одно из основных заявленных преимуществ технологии NVIDIA Optimus. Давайте посмотрим, может быть здесь новая технология более эффективна?

Емкость батарей примерно одинакова 79114 мВт·ч и 80514 мВт·ч у Optimus и Non-Optimus соответственно. На практике такая разница почти не влияет на результаты. Традиционно система работала на адаптивной схеме питания с установками по умолчанию.

 Non-optimusOptimus
NVIDIAIntelNVIDIAIntel
Reader8 ч. 20 мин.9 ч. 08 мин.7 ч. 02 мин.8 ч. 15 мин.
Video4 ч. 04 мин.6 ч. 40 мин.3 ч. 07 мин.4 ч. 57 мин.

Первое, что хотелось бы отметить по результату тестирования — внушительное абсолютное время работы и очень хорошая оптимизация энергопотребления (она тем лучше, чем больше разница между временем работы вхолостую и под нагрузкой).

Второе — интересная разница в работе в зависимости от используемого адаптера. Как видите, при работе в простое использование чипа NVIDIA отнимает где-то час автономной работы. Однако при работе под нагрузкой (причем нагрузкой специфической — воспроизведение видео) эта разница становится не меньше, а больше. Таким образом, при не очень сильной нагрузке все равно стоит использовать встроенный адаптер, а преимуществ в автономной работе с адаптером NVIDIA вы вообще вряд ли добьетесь.

Наконец, третий и самый интересный для нас вывод: при любых условиях использования ноутбук на NVIDIA Optimus проигрывает обычному ноутбуку около одного часа плюс-минус 10 минут.

После чистки драйверов я еще раз провел тест, чтобы посмотреть, что получится. Обычная система показала 9 ч. 18 мин., система на Optimus (с переставленной ОС и новым драйвером) — 7 ч. 55 мин.

Таким образом, выигрыша во времени работы от батарей тоже нет. Больше всего меня смущает проигрыш системы на Optimus в режиме чтения и с графической системой Intel. Мне кажется чрезвычайно странным столь стабильный проигрыш на один час (или даже чуть больше) автономной работы.

Вывод

Исходя из вышеприведенных тестов было решено установить чистые системы на оба ноутбука, поставить на них драйвера и уже на чистых системах провести объективное тестирование. Оно будет изложено в обзоре, посвященном новым ноутбукам ASUS линейки UL50V. Хотя полностью объективным оно все равно не будет, т. к. ноутбук на Optimus у нас находится в статусе семпла.

Пока же, если абстрагироваться от результатов тестов, то Optimus предлагает неплохой вариант решения для тех, кто не хочет управлять системой вручную. В конце концов, и поклонников ручной коробки передач в автомобилях становится все меньше, большинство предпочитает «автоматы» за их комфорт, и ради этого готовы мириться с их недостатками.

Между прочим, это хорошая аналогия. У автоматической коробки передач много недостатков и ограничений: она сложнее, более нежная в эксплуатации, в ней больше потери при передаче момента (хуже экономичность), она не всегда адекватно переключает передачи. Но при этом она дает большой прирост в комфорте: не надо забивать голову переключением передач и делать много лишних движений.

То же можно сказать и про Optimus. Он не всегда адекватно переключается, у него есть свои ограничения, у него ниже эффективность. Но при этом Optimus дарит вам комфорт — не нужно лазить в настройки, оно как бы все «само» происходит. Поэтому для тех пользователей, кто и раньше не умел пользоваться переключаемой графикой (не умеет пользоваться ручным переключением передач в автомобиле), Optimus — однозначный плюс. Теперь они смогут с большей эффективностью пользоваться компьютером (смогут ездить). Для тех, кто знаком с переключением графики, но ленится лазить по настройкам, это тоже плюс — проще подстроиться под особенности и ограничения Optimus (как проще подстроиться под тормознутость и алгоритм переключения автомата), чем постоянно переключать графику в ручном режиме. Остаются лишь привыкшие полностью контролировать каждый чих компьютера, но и для них в Optimus можно найти преимущества: быстрое переключение графики и отсутствие зависимости от включенных приложений (как езда на автомате в ручном режиме).

Плата за это — производительность и время автономной работы (хотя это все-таки нуждается в уточнении).

Если посмотреть «с плохой стороны», то Optimus — набор костылей, который вроде бы создает у пользователя впечатление, что «все здорово», но какими внутренними средствами это достигнуто! Причем, если присмотреться, то костыли тут везде: в аппаратной части один чип подключили к другому вместо прямого вывода. Сформированный кадр выдергивает из памяти одного чипа и суют в другой, что повлекло за собой даже необходимость создания отдельной линии копирования данных из видеопамяти в системную память и обратно. Программно система основана на мощнейшем костыле — имени исполняемого файла. В древние времена от названия экзешника тестового пакета в драйверах включались «оптимизации», позволявшие получить результат «получше» выйти вперед при отсутствии реального преимущества, сейчас сделали еще шаг дальше: теперь для этого включается целый внешний чип. Правда, есть и прогрессивный режим переключения при задействовании Direct3D и DXVA, но если в фильме ноутбук переключится на внешнюю графику — это минус час автономной работы, т. е. можно банально не успеть досмотреть фильм. Нужно ли такое «ускорение»? А поскольку очевидно, что целевая аудитория с настройками возиться не станет, то из интернета будет подаваться набор универсальных рецептов: как пользователю сделать лучше по мнению производителя.

Это мнение подтверждают и результаты производительности — если они не улучшатся и на чистой системе, то мнение лишь укрепится. Optimus не предлагает ни роста производительности, ни роста времени работы от батарей. Все, что он предлагает — это повышение удобства для не любящих настраивать собственную систему пользователей и возможность для производителей не делать кнопку переключения графики на корпусе — за счет падения и производительности, и автономности. А следующим шагом, очевидно, будет очередной рост вычислительных ресурсов — чтобы скрыть их падение в результате «повышения удобства».

Службы nvidia можно отключить. Побеждаем Nvidia Optimus, или запуск игр на дискретном графическом ускорителе (обновлено)

Всем привет ребята. Говорим мы сегодня о фирменном софте, то есть о софте, который делает производитель исключительно для своих устройств. Вот такое как Nvidia Display Container LS вы можете встретить на компе, где есть видюха от NVIDIA, думаю что это понятно. Однако непонятно другое, а именно то, что это блин за программа то?

Начал копать, так бы сказать исследовать глубины интернета, чтобы узнать про Nvidia Display Container LS… И вот что я узнал. Короче получается что эта штука является службой. Нашел комментарий одного чела, он пишет что служба Nvidia Display Container LS нужна для отображения панели управления Nvidia, и если эту службу вырубить, то панелька эта работать не будет =(

На другом сайте я тоже нашел инфу, что Nvidia Display Container LS (внутренне название службы вроде как NVDisplay.ContainerLocalSystem) отвечает за панель управления Nvidia. Короче я думаю что так оно и есть. Эту панель управления можно запустить например через контекстное меню рабочего стола, смотрите что я имею ввиду:

Также я думаю что иконка Nvidia в трее также может барахлить, если служба будет отключена.

Вот нашел картинку, тут она и есть эта служба, вот она в списке всех служб:

Значит ребят, во-первых, у вас может возникнуть вопрос, как же попасть в это окно со службами? Очень просто. Вам нужно зажать кнопки Win + R и далее вставить такую команду:

И вот потом откроется список служб. Если вы уверены в том что служба Nvidia Display Container LS вам не нужна, то вы можете ее отключить, для этого ищете ее в списке, потом нажимаете два раза по ней, появится такое окошко (только у вас будет все на русском):

Тут выбираете в Тип запуска: Отключена и потом нажимаете кнопку Остановить. Службу выключить можно, если вам не нужна эта панель управления Nvidia, думаю там есть настройки всякие, но можно настроить все, и потом уже службу отключить =)

Но вот мне стало интересно, а под каким процессом работает служба Nvidia Display Container LS? Начал штурмовать интернет по этому вопросу и ответ был найден, если я все верно понимаю, то служба работает под таким процессом как NVDisplay.Container.exe и он запускается из данной папки:

C:\Program Files\NVIDIA Corporation\Display.NvContainer\

Ух ты, еще кое что узнал! Но то что я сейчас напишу, то это вы это, ну если и захотите делать, то делайте на свой страх и риск.. Короче вроде службу Nvidia Display Container LS можно удалить такой командой (но я бы не удалял):

Ее нужно уставлять в командую строку, которую вызвать можно так, вы зажимаете Win + R и пишите такую команду:

Нажимаете ОК и все, у вас черное окно появится, это и есть командная строка. Но как по мне, то удаление службы, это уж больно радикальный метод, думаю что можно обойтись и простым отключением…

Нашел еще команды. В общем чтобы сначала остановить службу, а потом отключить автозапуск, после чего удалить, то вам нужно вводить поочередно такие команды:

sc.exe stop "NVDisplay.ContainerLocalSystem"
sc.exe config "NVDisplay.ContainerLocalSystem" start= disabled
sc.exe delete "NVDisplay.ContainerLocalSystem"

Понятное дело что вводить я имею ввиду в командную строку! =)

Кстати по поводу панели управления Nvidia, вот как она выглядит, смотрите:

А вот кстати значок в панели управления:

Этот значок и запускает панельку управления Nvidia!

Ну что ребята, я надеюсь что мы решили задачу и разгадали тайну о том что такое Nvidia Display Container LS =) И напоследок контрольный вопрос и контрольный ответ. Можно ли эту службу отключать? Думаю что можно, она не выполняет никакой критически важной функции. Если что, потом включите обратно. Удачи ребятушки!

Телеметрия она нынче вообще уже везде. В Microsoft как-то решили засунуть ее в Windows, прокатило, и потом другие разработчики ПО тоже в меру сил и таланта тоже «телеметрить» начали если не все подряд, то многое. Кому-то из этого, наверняка, какая-то польза есть, но точно не всем. Собственно, именно поэтому юзеры часто стремятся отключить телеметрию эту самую сразу, как только она обнаруживает себя.

В свою очередь, разработчики стараются сделать так, чтобы она себя вела как можно незаметнее. И делают это каждый раз по-разному.

К примеру, nVidia давеча спрятала телеметрию среди драйверов. Притом так, что у юзера, которому так или иначе приходится эти драйвера устанавливать, нет совершенно никакой возможности отменить установку программных компонентов телеметрии.

Кстати, далеко не каждый пользователь, у которого есть комп с видеокартой nVidia, знает, что некая программка (и не одна), вот так вот незаметно установившись на его собственный комп, потом прилежно мониторит всё, что ей нужно, отправляя

Благословите Nouveau, или про мои мучения с Nvidia Optimus. Часть 1. Прелесть документации Arch

Прежде чем я начну


Перед тем, как начать основное повествование, я бы хотел уточнить несколько моментов. Статья направлена в первую очередь на обладателей ноутбуков с технологией Nvidia Optimus, желающих установить себе GNU/Linux(далее Linux). Материал направлен на то, чтобы вышеуказанная ЦА ознакомилась с возможными решениями вопроса и на то, чтобы облегчить и ускорить ею его решение. Кроме того, статья не в последнюю очередь является мотивирующей, и направлена на понимание людьми одной простой истины: в Linux, как и в жизни, всегда найдётся обходной путь, и если Вы сдадитесь, лучше(в большинстве случаев) не станет.
Qui quaerit, reperit
— Латинская поговорка

Предисловие


До поры до времени я был обычным линуксоидом. Тестил разные дистрибутивы, потихоньку узнавал новое. Просто потому, что мне было интересно. Как правило, «знания» ограничивались Ubuntu и её форками, а также Fedora и ещё парой «user-friendly» дистрибутивов. Но, как гласит ещё одна латинская поговорка, omnia fluunt, omnia mutantur, то есть все течёт, всё меняется, и понятно, что так не могло продолжаться вечно.

Всё хорошо начиналось


Следует отметить, что у меня было не очень большое раздолье для экспериментов: относительно слабый ПК, который еле-еле тянул GNOME 3, и медленный интернет, который сильно усложнял общую ситуацию. Но тогда большего для мальчика 12 лет и не нужно было. В конце концов мне надоело экспериментировать, я установил Windows 10 и на несколько лет забыл о Linux.

Время шло, и где-то через 2 года я понял, что пришло время обновить мой замшелый кусок железа ПК, и начал копить деньги. Что-то выручил с продаж своих вещей, что-то дарили, более половины суммы накинули родители, пришлось даже принести в жертву продать свой Xbox(!)потешить своё ЧСВ повысить skill'ы в Linux. На этот раз решил попытаться установить Arch. Слышал, что у него очень хорошая документация. И начал.

Прелесть документации Arch


Установка прошла быстро и относительно безболезненно. Опять же, благодаря документации. После установки системы и DE в лице KDE Plasma, я попробовал подключить ноутбук к своему внешнему монитору, поскольку у монитора диагональ 24' а у дисплея ноутбука только 15,6'. Ничего не произошло, на монитор сигнал не поступил. Как всегда, я начал гуглить. И после 30 мин поисков я обнаружил, что проблема связана с технологией Nvidia Optimus.
Немного о Nvidia Optimus

Nvidia — хорошая компания. За свою 25-летнюю историю они реализовали немало относительно хороших решений. Nvidia Optimus — одно из таких. Сабж представляет собой гибридную технологию для обеспечения корректной работы двух видеокарт(как правило, мощной графики Nvidia и встроенной Intel) на ноутбуках. Если она работает в Windows правильно настроена, она помогает сберечь электроэнергию и ресурсы ноутбука. Всё это отлично, но что натолкнуло меня на написание сего опуса, так это то, что эта распрекраснейшая технология в Linux по словам разработчиков работает только частично, а по моим её настройка требует много, много нервов, времени и сил.

Прелесть документации Arch(продолжение)


После того, как я узнал об истинном корне проблемы, я поначалу обрадовался что определил «где собака зарыта»(HDMI-выход был только у карты Nvidia), и первым моим шагом было чтение официальной документации Arch. Суть её заключалась в том, чтобы при помощи редактирования xorg.conf и .xinitrc заставить X использовать только карту Nvidia. После выполнения указанных шагов и перезагрузки… появился черный экран. В документации говорилось, что в таком случае необходимо проверить, нет ли в .xinitrc амперсандов, а если их нет, использовать «Альтернативную конфигурацию», которая заставляла X использовать только карту Intel. Это меня не устроило, поскольку карта Intel уже использовалась по умолчанию и этот вариант мне не подходил. Также были варианты для различных DM. Они также не подошли, так как ни один из них по разным причинам не мог запустить X-сервер.
Описывать каждый из них отдельно было бы очень длинным и бессмысленным занятием.

Qui quaerit, reperit


Это выражение в переводе с латинского обозначает «Кто ищет, находит». Я не зря поместил его в начало, поскольку как по мне это выражение станет идеальной моралью для этой статьи.

Я был в отчаянии. Два дня я тщетно пытался найти решение, рыскал по зарубежным форумам(только по ним, поскольку на православном ЛОРе ответ был таков: Вы никак не запустите X через Nvidia. Это невозможно, смиритесь). Но всё-таки, пасмурным утром третьего дня поисков я наткнулся на тред(ссылка в подвале) на девелоперском форуме Nvidia, в котором было расписано, как Nvidia Optimus имплементируется в Arch на ноутбуках Dell. Я сразу же понял — я спасён! Выполнив шаги, я перезапустился и… черный экран. Безусловно, я расстроился, но тут я вспомнил: я же не прописал в .xinitrc строки для запуска DE. Прописав exec startkde, я снова перезапустился и всё заработало. X запустился через Nvidia. Долгих четыре дня ушло у меня на установку и настройку Arch, и всё же я это сделал!

Разбор полётов


Теперь давайте разберем инструкцию из вышеуказанного треда. Начнём:

Сперва необходимо включить поддержку KMS(Kernel Mode Setting, метод настройки разрешения непосредственно в ядре), добавив в параметры ядра(файл /etc/default/grub) в строку GRUB_CMDLINE_LINUX_DEFAULT= параметр

nvidia-drm.modeset=1

Затем создаём скрипт для DM(менеджера входа). Рассмотрим вариант с LightDM. Создаём скрипт /etc/lightdm/display_setup.sh со следующим содержанием:
#!/bin/sh xrandr --setprovideroutputsource modesetting NVIDIA-0 xrandr --auto

Этим скриптом мы указываем поставщика и устанавливаем максимально возможное разрешение экрана.

Сделаем созданный скрипт исполняемым:

chmod +x /etc/lightdm/display_setup.sh

Заставим LightDM выполнять вышеуказанный скрипт при запуске. Сперва отредактируем /etc/lightdm/lightdm.conf:
nano /etc/lightdm/lightdm.conf

Впишем параметр
display-setup-script=/etc/lightdm/display_setup.sh

Инструкцию для SDDM можете посмотреть в уже упомянутом мною треде, ссылки в подвале.

Теперь нам необходимо обновить микрокод ЦП(больше о микрокоде по ссылкам в подвале):

 sudo pacman -S intel-ucode

После обновления микрокода установим ворох пакетов от Nvidia:
sudo pacman -S lib32-mesa-demos mesa-demos libva-vdpau-driver nvidia nvidia-libgl lib32-nvidia-utils nvidia-settings lib32-opencl-nvidia

Примечание: Некоторые из пакетов могут быть недоступны. В таком случае устанавливайте всё по отдельности. Пакеты, которые будут недоступны, пропускайте.
Включим демон nvidia.persistenced, отвечающий за персистентность(больше о ней читайте по ссылке в подвале) работы драйвера Nvidia:
systemctl enable nvidia-persistenced.service

Автоматически сконфигурируем GRUB:
sudo grub-mkconfig -o /boot/grub/grub.cfg

Создадим загрузочный RAM-диск:
mkinitcpio -p linux

Проверим .xinitrc:
nano ~/.xinitrc

Если не вписали, впишем
exec gnome-session

для GNOME и
exec startkde

для KDE Plasma.

Перезагрузимся:

reboot

После перезагрузки ноутбука логинимся под своей учетной записью и наслаждаемся миром Arch.

О Bumblebee и PRIME


Возможно, Вы заметили, что я ничего не сказал о «костылях», которые направлены на обеспечение корректной работы Nvidia Optimus в Linux: Bumblebee и PRIME.
Кроме того, завести карту Nvidia у меня вышло лишь с проприетарным драйвером, Nouveau не работал(поэтому статья и называется «Благословите Nouveau».
Что касается лично моего опыта работы с ними, то он мал и плачевен: оба костыля в упор не видели мою видеокарту Nvidia. Если Вам они интересны, в подвале вы найдете ссылки на материалы по ним.

Послесловие


Если вы прочли всю статью, то вы герой (ну, или модератор).

При написании статьи я старался разбавлять её для Вас относительно смешными шутками, чтобы как-то оправдать отсутствие картинок в ней. Надеюсь, что вы достигли дзена после прочтения.

Список источников


О микрокоде: ru.wikipedia.org/wiki/Микрокод
О Bumblebee: wiki.archlinux.org/index.php/Bumblebee_(Русский)
О PRIME: wiki.archlinux.org/index.php/PRIME
Тред: devtalk.nvidia.com/default/topic/1027679/linux/optimus-support-for-arch-linux-for-dell-i7559-dual-graphics-intel-nvidia-gtx-960m-laptop-/2
О персистентности: ru.wikipedia.org/wiki/Персистентность

Технология NVIDIA Optimus | Русскоязычная документация по Ubuntu

Технология

NVIDIA Optimus - технология, созданная компанией NVIDIA для продления срока работы компьютера от аккумулятора. Технология в основном используется в мобильных компьютерах и ноутбуках. Nvidia Optimus использует дискретный GPU для рендеринга когда это необходимо, и отключает питание дискретного GPU когда он не используется.

Bumblebee

Bumblebee нацелен на поддержку Nvidia Optimus на ноутбуках для GNU/Linux дистрибутивов. Используя Bumblebee, вы можете использовать Nvidia карту для рендеринга графики, которая потом будет выведена через карту Intel. Bumblebee официально поддерживается и находится в репозиториях Ubuntu 13.10 Saucy Salamander и новее. Официально Bumblebee поддерживает Ubuntu 12.04.x, 13.04, 13.10, 14.04. Более подробно про установку и использование Bumblebee пожно почитать на странице: Bumblebee.

Nvidia Prime

Начиная с Ubuntu 13.10 и Ubuntu 12.04.3 - появился новый пакет nvidia-prime предоставляющий официальную поддержку технологии Nvidia Optimus от Ubuntu. Nvidia Prime позволяет выбрать, какую видеокарту использовать: дискретную Nvidia или встроенную Intel. И начиная с версии 0.5 nvidia-prime при выборе видеокарты Intel, отключает питание дискретной карты Nvidia, обеспечивая снижение энергопотребления и более тихую работу системы охлаждения. Более подробно про Nvidia Prime можно почитать на странице: Nvidia Prime.

PRIME (свободный драйвер nouveau)

Начиная с Ubuntu 12.04.4 появилась возможность задействовать технологию Optimus с помощью свободного драйвера для видеокарт Nvidia, с версии x86-video-nouveau 1.0.5. Начиная с версии ядра Linux 3.13 по умолчанию включено динамическое переключение между Intel и Nvidia, для экономии энергопотребления. Более подробно про PRIME можно почитать на странице: Nouveau PRIME.

Bumblebee, Nvidia Prime и Nouveau PRIME не совместимы между собой. Поэтому Вам надо выбрать и использовать что-то одно из них. Рекомендуется использовать Bumblebee, т.к. он стабилен, дает приемлемую производительность и почти полностью копирует технологию Nvidia Optimus. Поэтому, чтобы правильно установить проприетарный драйвер nVidia и Bumblebee, удалите nvidia-prime или удостоверьтесь в его отсутствии:
sudo apt-get purge nvidia-prime

Базовая Установка Bumblebee (рекомендуемая)

Перед установкой убедитесь что система полностью обновлена. Для этого запустите менеджер обновлений или введите необходимые команды в терминале и полностью обновите систему. Все ошибки возникшие из-за не обновленной системы перед установкой не будут приняты к рассмотрению.

Если нужно запускать супер мощные игры, то лучше использовать закрытый драйвер nvidia (при этом, могут быть проблемы с 2D графикой и разрешением экрана). Если нужен просто комп для стабильной работы и пару средних игрушек - то лучше свободный.

sudo apt-get update sudo apt-get upgrade
  1. Откройте терминал (по умолчанию в Ubuntu Ctrl+Alt+T)

  2. Добавьте репозиторий Bumblebee выполнив команду
    sudo add-apt-repository ppa:bumblebee/stable
  3. Обновите список пакетов
    sudo apt-get update
  4. Установите Bumblebee

    1. Для Ubuntu 12.04
      sudo apt-get install bumblebee bumblebee-nvidia virtualgl virtualgl-libs-ia32 primus primus-libs-ia32
    2. Для Ubuntu 12.04.3
      sudo apt-get install bumblebee bumblebee-nvidia virtualgl virtualgl-libs-ia32 primus primus-libs-ia32 linux-headers-generic-lts-raring
    3. Для Ubuntu 12.10
      sudo apt-get install bumblebee bumblebee-nvidia virtualgl virtualgl-libs-ia32 primus primus-libs-ia32 linux-headers-generic
    4. Для Ubuntu 13.10 и 14.04
      sudo apt-get install bumblebee bumblebee-nvidia virtualgl virtualgl-libs-ia32 primus primus-libs-ia32
  5. Перезагрузите компьютер по завершению установки

Ну вот собственно и все. У вас стоят все нобходимые пакеты для максимального сохранения энергии ноутбука.

Продвинутая Установка Bumblebee (для продвинутых пользователей)

Для продвинутых пользователей, если по какой-то причине вы не хотите устанавливать проприетарный драйвер Nvidia или 32 битные библиотеки (например вам нужно просто отключить видеокарту Nvidia и не использовать ее), вы можете выполнить установку самого Bumblebee и не более выполнив команду

sudo apt-get install --no-install-recommends bumblebee

В зависимости от ваших потребностей вы можете дополнить установку добавив в конце команды следующие пакеты

  • bumblebee-nvidia - Поддержка проприетарных драйверов (активируется по умолчанию при установке)

  • virtualgl - Бэкенд VirtualGL

  • virtualgl-libs-ia32 - 32 битные библиотеки для запуска 32 битных приложений через VirtualGL бэкенд

  • primus - Бэкенд Primus

  • primus-libs-ia32 - 32 битные библиотеки для запуска 32 битных приложений через Primus бэкенд

Использование Bumblebee

Чтобы запустить приложение через видеокарту Nvidia использую bumblebee есть 2 способа. Первый с использованием VirtualGL и второй с Primus.

Для обычных пользователей я рекомендую запускать приложения через Primus так как он дает больше производительность по сравнению с VirtualGL.

  • Чтобы запустить приложение используя VirtualGL, откройте терминал и выполните
    optirun [options] <application> [application parameters]
    • Например
       optirun firefox
  • Чтобы запустить приложение используя Primus, откройте терминал и выполните
    optirun -b primus [options] <application> [application parameters]
    • Например
       optirun -b primus firefox

Не пытайтесь запустить оконный менеджер (особенно это так как вы просто поломаете систему), установку приложений или другие графически не сложные программы/установки через Bumblebee.

Обновление драйверов Nvidia

На свой страх и риск, вы можете обновить драйвера Nvidia до самой последней версии, для этого откройте терминал и выполните команды

  1. Добавьте экспериментальный репозиторий с последними обновлениями
    sudo apt-add-repository ppa:xorg-edgers/ppa
  2. Обновите список пакетов
    sudo apt-get update
  3. Установите последний драйвер, на момент написания 331 версии
    sudo apt-get install nvidia-331 nvidia-settings bumblebee-nvidia
  4. Удалите репозиторий из списка чтобы не обновить все пакеты в системе до тестовых
    sudo apt-add-repository -r ppa:xorg-edgers/ppa
  5. Обновите список еще раз
    sudo apt-get update
  6. Перезагрузите компьютер по завершению установки.

Вы можете установить любую доступную в репозитории версию драйвера указанным выше способом, просто заменив версию драйвера с 331 на нужную вам.

Удаление Bumblebee

Чтобы полностью удалить Bumblebee из системы, откройте терминал и выполните следующие команды

sudo apt-get purge bumblebee && sudo apt-get --purge autoremove

Эти команды удалять Bumblebee и все связанные пакеты. Если вы также хотите удалить репозиторий Bumblebee то выполните

sudo apt-get install ppa-purge && sudo ppa-purge ppa:bumblebee/stable

Все, Bumblebee был успешно удален из системы.

Устранение неисправностей

Как отключить Nvidia Optimus - Ноутбуки и готовые системы

Искать в

  • Везде
  • Темы
  • Этот форум
  • Эта тема
  • Больше вариантов...

Найдите результаты, содержащие ...

  • Все слова из моего поискового запроса
  • Любые слов из моего поискового запроса

Найти результаты в ...

  • Заголовки и тело контента
  • Только заголовки контента
.

Как отключить карту Nvidia в ноутбуке? - Ноутбуки и готовые системы

Искать в

  • Везде
  • Темы
  • Этот форум
  • Эта тема
  • Больше вариантов...

Найдите результаты, содержащие ...

  • Все слова из моего поискового запроса
  • Любые слов из моего поискового запроса

Найти результаты в ...

  • Заголовки и тело контента
  • Только заголовки контента
.

Нужна помощь в отключении NVIDIA Optimus !!

Привет, пользователи этого замечательного форума!
Я давний читатель и всегда восхищался талантом модераторов здесь, мы прошли долгий путь ... Я успешно настроил двойную загрузку между Windows 8.1 и OS X 10.10.4, используя Clover . У меня ASUS X550LDV со следующими характеристиками:
Intel Core i7 (haswell)
Intel HD4400
Nvidia geforce 820m
Realtek ALC233

Мне удалось заставить все работать нормально, полный qe / ci, ethernet, звук, наушники, тачпад, usb, яркость, клавиши fn.
Единственное, что мне осталось сделать, - это пропатчить мой dsdt, чтобы карта Nvidia была отключена в OS X, чтобы сэкономить заряд батареи и снизить температуру.
На этом компьютере прошло 6 месяцев проб и ошибок. Просмотреть вложение 144904Просмотреть приложение 144905Просмотреть приложение 144906, потому что я никогда не был хорош в языке ACPI или исправлении DSDT.

Я был бы очень признателен, если бы кто-нибудь взял прикрепленный мной DSDT и отключил NVIDIA.
Спасибо

.

[Руководство] Отключение дискретной графики в ноутбуках с двумя графическими процессорами

Обзор

Цель этого руководства - показать вам, как отключить дискретное графическое устройство с помощью изменений DSDT / SSDT в «переключаемых» ноутбуках с двумя графическими процессорами (например, Intel. + Nvidia [Optimus] и Intel + Radeon).

Поскольку в этих ноутбуках можно использовать только устройство Intel, дискретное устройство обычно остается активным и потребляет электроэнергию, что способствует нагреву, шуму и использованию батареи. Хотя устройство обычно можно отключить в BIOS, лучше отключить его с помощью специальной настройки ACPI, чтобы устройство можно было использовать при загрузке Windows.

Несмотря на то, что это относительно простой патч (иногда всего лишь изменение одной строки), из-за того, что патч применяется к одному или нескольким SSDT, существует множество ловушек, в которые можно попасть. Кроме того, для определенных конфигураций машины / ACPI требуются разные подходы, что усложняет работу. Пример набора DSDT / SSDT, который используется в этом руководстве, является одной из наиболее сложных настроек, поэтому он охватывает большинство проблем, с которыми вы можете столкнуться в своем собственном.

Вы должны выполнить это пошаговое руководство на примере, прежде чем исправлять свой собственный.

В этом руководстве / примере используется ноутбук «Asus UX303LN» с Intel HD4400 + Nvidia. Таблицы, извлеченные Clover F4 (каталог ACPI / origin), представлены в приложении к этому сообщению.

Примечание. Здесь также есть полное руководство по исправлению (для этого же компьютера): https://www.tonymacx86.com/threads/guide-using-clover-to-hotpatch-acpi.200137/

Требования к исправлению

Цель довольно простая. Эти машины предоставляют метод _OFF, обычно в SSDT, который можно вызвать для отключения питания дискретного устройства.Самое простое решение - вызвать _OFF из соответствующего метода _INI. Обратите внимание, что метод _OFF может находиться в DSDT или может иметь другое имя (GPOF, OPOF, _PS3 и т. Д.)

Некоторые реализации _OFF не могут быть вызваны из _INI, поскольку они обращаются к пространству EC (встроенный контроллер). Для этих машин _OFF (или его часть) должен быть отложен до _REG (когда Arg0 == 3 и Arg1 == 1, см. Спецификацию ACPI для получения дополнительной информации о _REG). В некоторых случаях вызов из _REG выполняется слишком поздно и либо неэффективен, либо приводит к сбою.В таком случае необходимо отредактировать _OFF для удаления зависимостей EC, чтобы его можно было вызвать из _INI. Код, который был удален из _OFF, затем вставляется в _REG, так что эффект тот же, хотя работа с EC выполняется позже. Это относится к примеру настройки ACPI в этом руководстве.

Примечание №1: Не все реализации _OFF имеют код, связанный с EC. В этом случае нет необходимости перемещать любой такой код в _REG, поскольку его просто не существовало изначально.

Примечание. # 2: Не все наборы ACPI имеют _INI в пути _OFF.В этом случае вы просто добавляете _INI, который отключается. Проще всего добавить его непосредственно перед методом _OFF:

Базовое исправление

Важно понимать, как извлекать, разбирать и исправлять файлы DSDT / SSDT, а также как их устанавливать для загрузчика и т. Д. описано в моем руководстве: http://www.tonymacx86.com/yosemite-laptop-support/152573-guide-patching-laptop-dsdt-ssdts.html. Вы должны ознакомиться с ним, прежде чем пытаться использовать это руководство.

Поскольку установка исправлений для основ важна, мы сделаем это в первую очередь здесь, прежде чем приступить к установке исправлений, необходимых для отключения карты Nvidia в примере.

В этом руководстве предполагается, что наиболее распространенные исправления переименования выполняются в config.plist / ACPI / DSDT / Patches. И он будет предполагать, что AutoMerge = true (относительно новая функция Clover, добавленная RehabMan). Эти исправления и настройки по умолчанию включены в списки руководств: https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/

В руководстве по установке исправлений ACPI (ссылка приведена выше) тип конфигурации ACPI, предполагаемый этим руководством, - «Частичное исправление с исправленными SSDT», как описано в разделе «Рекомендуемые конфигурации».

Сначала файлы извлекаются (вы можете просто скачать файлы примеров), затем разбираются с помощью iasl:


После разборки мы можем приступить к исправлению различных файлов. Поскольку у нас есть общие переименования в config.plist и мы используем AutoMerge = true, нам нужно только применить функциональные исправления, на которые не распространяются значения по умолчанию из config.лист. И нет необходимости исправлять ошибки в файле, если он не требует исправления. Вместо этого файл просто исключен из ACPI / пропатчен.

Для DSDT.dsl:
«Исправить ошибку PARSEOP_ZERO (агрессивно)«
»Исправить ошибку ADBG«
»Переименовать методы _DSM в XDSM«
»Исправление IRQ«
»Исправление SMBUS«
»Исправление проверки ОС (Windows 8)«
"Добавить IMEI"
"Исправить RTC"
"Исправить _WAK Arg0 v2"
"ASUS N55SL / VivoBook"
"USB3 _PRW 0x6D (мгновенное пробуждение)"
"Audio Layout 12"

Поскольку наша конфигурация.plist имеет общие переименования, ни один из SSDT не требует каких-либо исправлений, кроме тех, которые необходимы для отключения дискретного графического устройства. На этом этапе мы готовы взглянуть на SSDT, чтобы определить патчи, необходимые для отключения устройства.

Исправление для дискретного отключения

Помните цель? Вызов _OFF из _INI ...

Теперь ... как найти SSDT с _OFF. Мы можем использовать grep:

Код:

  grep -l Метод. * _ OFF *.DSL  

Что показывает:

Кроме того, приятно знать, где находятся методы _INI:

Код:

  grep -l Метод. * _ INI * .dsl  

Что показывает:

Код:

  DSDT.dsl SSDT-6.dsl SSDT-7.dsl SSDT-8.dsl  

Примечание: SSDT-7 и SSDT-8 перечислены снова. Скорее всего, здесь находятся _OFF и связанный _INI ...

Мы также могли бы открывать каждый файл отдельно в MaciASL и искать _OFF и _INI, но использование grep немного проще и быстрее.

Когда мы открываем SSDT-7.dsl и ищем «Метод (_INI», мы находим это:

Код:

  Метод (_INI, 0, NotSerialized) // _INI: инициализировать { Магазин (Zero, \ _SB.PCI0.RP05.PEGP._ADR) }  

Это типичный метод _INI для дискретного устройства, который мы хотим исправить, поэтому он вызывает _OFF.

Если мы щелкнем по телу метода, мы увидим «путь» ACPI, в котором находится этот метод. MaciASL показывает его в строке состояния: SSDT -> \ _SB.PCI0.RP05.PEGP -> _INI. Теперь мы знаем, что путь к _OFF также должен быть \ _SB.PCI0.RP05.PEGP._OFF.

Итак, мы знаем, что _OFF находится либо в SSDT-7.dsl, либо в SSDT-8.dsl. Если вы откроете SSDT-7.dsl и поищите _OFF, вы обнаружите, что это метод внутри макроса PowerResource. Это не тот метод _OFF, который нам нужен. Откройте SSDT-8.dsl и найдите там _OFF, и вы найдете обычный метод _OFF, который мы ищем. Итак, теперь мы знаем, где находится _OFF. Нам нужно знать, как это необходимо для проверки кода для потенциального доступа к EC.

В SSDT-8.dsl _OFF определяется следующим образом:

Код:

  Метод (_OFF, 0, Serialized) // _OFF: отключение питания { Если (LEqual (CTXT, Zero)) { \ _SB.PCI0.LPCB.EC0.SPIN (0x96, ноль) Если (LNotEqual (GPRF, One)) { Магазин (VGAR, VGAB) } Магазин (One, CTXT) } SGOF () }  

Если вы изучите код, вы увидите, что он обращается к EC (\ _SB.PCI0.LPCB. EC0 .SPIN (0x96, ноль). Это будет проблемой и предотвратит полное выполнение _OFF при вызове из _INI. Имейте в виду, что это не всегда очевидно. Код мог вызвать метод, не связанный напрямую с EC, который, в свою очередь, вызывает метод в EC (непрямой доступ). Так что вам, возможно, придется покопаться. Этот пример был очевиден, поскольку путь к методу включает EC0.

Лучший способ справиться с доступом EC - это удалить код нарушения из _OFF.

Мы можем сделать это вручную или использовать патч вроде этого:

Код:

  в метку метода _OFF parent_label \ _SB.PCI0.RP05.PEGP code_regex. * EC. * Removeall_matched;  

Модифицированный метод _OFF:

Код:

  Метод (_OFF, 0, Serialized) // _OFF: отключение питания { Если (LEqual (CTXT, Zero)) { Если (LNotEqual (GPRF, One)) { Магазин (VGAR, VGAB) } Магазин (One, CTXT) } SGOF () }  

После внесения этого изменения попытайтесь скомпилировать SSDT-8.dsl. Вы заметите, что в нем есть ошибки. На самом деле, мы должны были исправить эти ошибки, прежде чем вносить изменения. Но мы можем исправить их сейчас, применив патч «Очистить / исправить ошибки (SSDT)». Это устраняет некоторые ошибки, но остается одна дополнительная ошибка в строке 620:
.

Код:

  Магазин (TCAP, \ _PR.CPU0._PTC ())  

Этот код недействителен и фактически будет пропущен средой выполнения ACPI. \ _PR.CPU0._PTC - это метод, и, конечно, нельзя хранить что-то «в» методе.Мы можем просто прокомментировать этот код:

Код:

  // Магазин (TCAP, \ _PR.CPU0._PTC ())  

У нас все еще должна быть удаленная строка \ _SB.PCI0.LPCB. EC0 .SPIN (0x96, Zero), выполняется в _REG, так что имейте это в виду.

Теперь, когда мы исправили _OFF, давайте вызовем его из _INI, определенного в SSDT-7.dsl.

Можно применить патч "Отключить от _INI (SSDT)". Но путь нашего метода немного отличается от обычного, поэтому нам нужно изменить патч.Кроме того, мы вызываем _OFF, который определен в SSDT-8.dsl, поэтому нам нужно объявление External.

Измененный патч:

Код:

  в метку метода _INI parent_label \ _SB.PCI0.RP05.PEGP insert начать // добавлено для выключения nvidia / radeon \ n Внешний (\ _ SB.PCI0.RP05.PEGP._OFF, MethodObj) \ n _OFF () \ n конец;  

После применения этого патча исправленный _INI теперь читает:

Код:

  Метод (_INI, 0, NotSerialized) // _INI: инициализировать { Магазин (Ноль, \ _SB.PCI0.RP05.PEGP._ADR) // добавлено для выключения nvidia / radeon Внешний (\ _ SB.PCI0.RP05.PEGP._OFF, MethodObj) _OFF () }  

Теперь нам нужно обратить внимание на DSDT _REG. Метод _REG должен выполнять работу EC, которую выполнял _OFF до того, как мы его исправили.

Вот оригинальный _REG (для EC0) в DSDT:

Код:

  Метод (_REG, 2, NotSerialized) // _REG: Доступность региона { Если (LEqual (Arg0, 0x03)) { Магазин (Arg1, ECFL) } }  

В моем репо есть патч для вызова _OFF из _REG.Мы можем использовать его как основу для того, что нам нужно:

Код:

  в метку метода _REG parent_hid PNP0C09 insert начать // добавлено для выключения nvidia / radeon \ n Если (LAnd (LEqual (Arg0,3), LEqual (Arg1,1))) \ n {\ n Внешний (\ _ SB.PCI0.PEG0.PEGP._OFF, MethodObj) \ n \ _SB.PCI0.PEG0.PEGP._OFF () \ n } \ n конец;  

Вместо вызова _OFF мы хотим, чтобы он вызывал SPIN, как это делал исходный _OFF.

Модифицированный патч:

Код:

  в метку метода _REG parent_hid PNP0C09 insert начать // добавлено для выключения nvidia / radeon \ n Если (LAnd (LEqual (Arg0,3), LEqual (Arg1,1))) \ n {\ n \ _SB.PCI0.LPCB.EC0.SPIN (0x96, ноль) \ n } \ n конец;  

Измененный _REG после исправления:

Код:

  Метод (_REG, 2, NotSerialized) // _REG: Доступность региона { Если (LEqual (Arg0, 0x03)) { Магазин (Arg1, ECFL) } // добавлено для выключения nvidia / radeon Если (LAnd (LEqual (Arg0,3), LEqual (Arg1,1))) { \ _SB.PCI0.LPCB.EC0.SPIN (0x96, ноль) } }  

На этом исправление завершено. На этом этапе все исправленные файлы могут быть скомпилированы и помещены в ACPI / patched.

В ACPI помещаются только пропатченные файлы:
DSDT.aml (имеет исправления ядра, исправление _REG)
SSDT-7.aml (имеет исправление _INI)
SSDT-8.aml (имеет исправление _OFF)

Обратите внимание, что это сложный пример, и не все ноутбуки будут иметь одинаковую конфигурацию. В большинстве случаев _INI и _OFF, связанные с дискретным устройством, находятся в одном SSDT.В этом случае нет необходимости использовать внешнее объявление. Вы можете напрямую использовать патч «Вызов _OFF из _INI (SSDT)». У некоторых он даже есть в DSDT (опять же, вы можете использовать патч напрямую). И не все методы _OFF обращаются к EC, поэтому перемещение кода, связанного с EC, в _REG не требуется.

Также возможно, что код, связанный с EC, состоит из более чем одной строки. Весь такой код следует переместить в _REG.

Проблемы сна / пробуждения

У некоторых ноутбуков есть проблемы со спящим / пробуждением или даже выключением / перезапуском с установленным патчем.Так было с HP ProBook (с Radeon). Исправление состоит в том, чтобы повторно включить карту перед сном и отключить ее при пробуждении.

Для этого в репозитории есть патч. Это называется «Отключить / включить на _WAK / _PTS (DSDT)».

Но поскольку этот DSDT имеет _OFF / _ON на пути, отличном от ожидаемого патчем, нам необходимо изменить его.

Оригинальный патч:

Код:

  в метку метода _PTS code_regex ([\ s \ S] *) replace_matched начать Внешний (\\ _ SB.PCI0.PEG0.PEGP._ON, MethodObj) \ n Если (CondRefOf (\\ _ SB.PCI0.PEG0.PEGP._ON)) {\\ _ SB.PCI0.PEG0.PEGP._ON ()} \ n % 1 конец; в метку метода _WAK code_regex (Return \ s + \ (. *) replace_matched начать Внешний (\\ _ SB.PCI0.PEG0.PEGP._OFF, MethodObj) \ n Если (CondRefOf (\\ _ SB.PCI0.PEG0.PEGP._OFF)) {\\ _ SB.PCI0.PEG0.PEGP._OFF ()} \ n % 1 конец;  

Модифицированный патч (PEG0 изменен на RP05):

Код:

  в метку метода _PTS code_regex ([\ s \ S] *) replace_matched начать Внешний (\\ _ SB.PCI0.RP05.PEGP._ON, MethodObj) \ n Если (CondRefOf (\\ _ SB.PCI0.RP05.PEGP._ON)) {\\ _ SB.PCI0.RP05.PEGP._ON ()} \ n % 1 конец; в метку метода _WAK code_regex (Return \ s + \ (. *) replace_matched начать Внешний (\\ _ SB.PCI0.RP05.PEGP._OFF, MethodObj) \ n Если (CondRefOf (\\ _ SB.PCI0.RP05.PEGP._OFF)) {\\ _ SB.PCI0.RP05.PEGP._OFF ()} \ n % 1 конец;  

Если у вашего ноутбука нет проблем с режимом сна / пробуждения / перезапуска / выключения при отключенном дискретном устройстве, то этот патч вам не нужен. Вам нужно сначала протестировать свой ноутбук, чтобы определить, нужен ли он.

Примечание. Если вы пропатчили _OFF для удаления кода, связанного с EC, и вы вызываете _OFF из _WAK, вам также может потребоваться выполнить этот удаленный код в _WAK. Один из способов сделать это - иметь XOFF, который является исходным / не исправленным _OFF, который вы можете вызывать из _WAK вместо вызова (исправленного) _OFF.

Старые ноутбуки

Вы заметите, что старые ноутбуки могут не иметь _OFF или иметь пустой _OFF. В таких случаях вы можете заметить, что требуется _PS3. В некоторых случаях _PS3 не будет работать, если не будет вызван связанный _DSM с соответствующими параметрами.Подробности в сообщении № 96 этой ветки: http://www.tonymacx86.com/yosemite-...graphics-dual-gpu-laptops-10.html#post1056748

Отчеты о проблемах

Если у вас есть проблемы с вашими DSDT / SSDT в исправлении или исправлении ошибок, пожалуйста, предоставьте все собственные файлы, с которыми вы работаете.

Если вы пытаетесь отключить дискретную карту в соответствии с этим руководством, но она не работает, предоставьте данные «Отчеты о проблемах» в соответствии с часто задаваемыми вопросами.

Прочтите FAQ, «Отчеты о проблемах».Внимательно. Прикрепите все запрошенные файлы / вывод.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/

Пример приложения

В качестве примера ACPI, установленного в этом руководстве, используются следующие файлы:

.

Как настроить профили и настройки Optimus?

Технология NVIDIA Optimus разработана так, чтобы быть прозрачной для конечного пользователя и полностью автоматизированной. NVIDIA также разработала Optimus, который полностью настраивается в соответствии с вашими конкретными предпочтениями. В этой статье рассказывается о различных настройках, доступных вам в Панели управления NVIDIA.

Как я могу изменить графический процессор по умолчанию для программы?

Вы можете активировать настройку в Панели управления NVIDIA, которая позволяет вам переопределить настройку профиля приложения Optimus и выбрать конкретный графический процессор для использования.Чтобы включить этот параметр, нажмите «Просмотр» в строке меню панели управления NVIDIA, затем выберите выделенный параметр, как показано на изображении ниже.

Этот параметр теперь позволяет щелкнуть правой кнопкой мыши любой исполняемый файл или ярлык и выбрать графический процессор, который будет использоваться при запуске приложения. Как показано на следующем изображении, вы просто используете соответствующий пункт меню, чтобы выбрать конкретный графический процессор, который вы хотите использовать для приложения.

Как просмотреть существующие настройки Optimus для конкретной программы?

В любой момент вы можете подтвердить, какие настройки Optimus будет использовать с определенным названием или приложением, обратившись к списку профилей приложений Optimus в Панели управления NVIDIA.Щелкнув вкладку «Настройки программы», как показано на рисунке ниже, вы можете просмотреть предпочтительный графический процессор для обширного списка приложений.

Как мне создать настройки Optimus для новой программы?

Если вы столкнетесь с редкой ситуацией, когда приложение еще не имеет профиля приложения Optimus, вы можете быстро и легко создать его прямо из Панели управления NVIDIA. Для этого выполните следующие простые шаги:

1.Откройте панель управления NVIDIA

.

2. Выберите «Управление настройками 3D»

3. Выберите вкладку «Настройки программы»

4. Нажмите кнопку «Добавить»

5. Найдите и выберите исполняемый файл приложения, для которого вы хотите создать профиль для

.

6. Выберите предпочтительный графический процессор для использования в раскрывающемся меню

.

Смотрите также

Звоните:
8 (937) 357-2107