[РЕШЕНО] Деактивация дискретной nVidia на MacbookPro

> $ sudo ls /sys/kernel/debug
acpi           fault_around_bytes  mce               sched_features
bdi            frontswap           mei0              sleep_time
bluetooth      gpio                pinctrl           split_huge_pages
cleancache     hid                 pkg_temp_thermal  suspend_stats
clk            ieee80211           pm_genpd          tracing
dma_buf        iio                 pm_qos            usb
dri            intel_powerclamp    pstate_snb        wakeup_sources
dynamic_debug  kprobes             ras               x86
extfrag        kvm                 regmap            zswap
Я не красноглазик, я фаерфоксик ^_^
Могу и ошибаться, так как не спец по видеокартам и опираюсь на устаревшую информацию,........ но, насколько я понял, твоя видеокарта относится к MUX-less системе и отключить дискретку в Linux для NVidea не получиться ( у AMD, в отличии от NVidia, поддержка MUX-less гибридной графики в Linux имеется).
UPD …. насчет Маc не в курсе, но похоже имеется, раз у тебя отключалась.
There are two versions of hybrd graphics: MUXed and MUX-less. MUXed have a display MUX to switch the displays between the discrete and integrated cards. MUXed systems can be switched using vgaswitcheroo. MUX-less do not have a display MUX and the displays are only connected to the integrated card. On MUX-less systems, the discrete card is solely for rendering, not display. X Server 1.14 is required to support rendering and display from different cards. Most new laptops (2011+) are MUX-less.
И как пишут о проблемах этой системы с Nvidea - дискретная карта всегда включена (можно отключить в БИОСе, но не во всех типах ноутбуков) и возможен нагрев ноутбука).
Если в чем то не прав, спецы поправят ..... даже самому интересно ......
Ошибки не исчезают с опытом - они просто умнеют
MUXed have a display MUX to switch the displays between the discrete and integrated cards.
А разве gpu-switch не это делает?
В макоси вообще можно утилитку поставить и прямо на лету переключаться между интегрированной и дискретной графикой. Либо оставить авто-режим.
Ну и у людей же получалось на такой же модели (11.3) обмануть железо, сказав ему, что "загрузилась макось".
Я вот не пойму, что я не так сделал. И даже не знаю куда копать.

К слову. Осуществил свою задумку — снёс всё с efi-раздела, что не от эппла, из-под флешки установил заново base и base-devel (через pacstrap), из arch-chroot пересобрал ядро, установил из репы refind-efi и запустил refind-install. Из Арча он поставился не в /EFI/refind (как из макоси), а в /EFI/BOOT (/EFI на efi-разделе лежит в корне, это в Арче радел монтируется в /boot и получается /boot/EFI/BOOT). Тогда только обнаружил ошибку в своём refind.conf:
menuentry "Arch Linux" {
        icon     /EFI/BOOT/icons/os_arch.png
        volume   "[b]ArchLinux[/b]"
        loader   /vmlinuz-linux
        initrd   /initramfs-linux.img
        options  "root=PARTUUID=c9755d6e-85c8-4119-9b98-abb96d1f8a1d rw add_efi_memmap"
        submenuentry "Boot using fallback initramfs" {
                initrd /initramfs-linux-fallback.img
        }
        submenuentry "Boot to terminal" {
                add_options "systemd.unit=multi-user.target"
        }
}
В volume должна быть указана метка тома, на котором расположен образ ядра, а в моём случае он лежит на том же efi-разделе, у которого метка EFI. Исправил (без этого запускаться не хотела даже), и теперь я уже без bootclt напрямую из рефайнда стартую Арч.

Но блин, это не помогло решить проблему сабжа :( Невидия всё равно со своей термопушкой лезет.
Я уж sddm.conf проверил, думал это SDDM дискретку насильно врубает — но ничего там не заметил подозрительного.
Я не красноглазик, я фаерфоксик ^_^
Не зацикливайся на программных методах — попробуй другие способы, железные, например, мне известны следующие два
1. Уже описывал — перевод в режим to UMA, конечно, если это возможно на твоем железе и нужна схема …... но лучше обратиться к спецам по этой части и проконсультироваться о возможности такого ….. в больших городах есть типа мастерских, можно узнать там ….
2. Некоторые проделывают это через таблицу DSDT ….. погугли, нужны, конечно, знания..... и, насколько мне известно, на маках очень многое правят через DSDT....
UPD …. кстати, быстро нагуглилась одна статейка на эту тему …

PS.... насчет программных способов ........ не совсем понятно почему у тебя такой вывод
firefoxic
> $ sudo cat /sys/kernel/debug/vgaswitcheroo/switch
cat: /sys/kernel/debug/vgaswitcheroo/switch: No such file or directory
то ли не загружен модуль vga_switcheroo , то ли причина в этом MUX-less, который я никогда не юзал и ни хрена о нем не знаю.
Проверяй …. и если вдруг появиться, то пробуй отключить ...

PS .... то ли не загружен модуль vga_switcheroo .....
Имел ввиду не саму загрузку (так как он вшит в ядро, CONFIG_VGA_SWITCHEROO=y), а его активацию или как там правильно выразиться - enabling vga_switcheroo … Но, думаю не факт, что с его помощью тоже получится отключить дискретку ...
Ошибки не исчезают с опытом - они просто умнеют
покажите mkinitcpio.conf и Xorg.conf
mkinitcpio.conf
А вот с xorg.conf всё не так просто. Я думал, что у меня он вообще отсутствует, но стал проверять вообще все места, где Xorg может искать файлы конфигурации, и оказалось, что в /usr/share/X11/xorg.conf.d таки есть файлы.
> $ ls /usr/share/X11/xorg.conf.d
10-quirks.conf  40-libinput.conf  70-synaptics.conf  nvidia-drm-outputclass.conf
Но первые три не особо интересны. А вот невидиевский меня озадачил.
# This xorg.conf.d configuration snippet configures the X server to
# automatically load the nvidia X driver when it detects a device driven by the
# nvidia-drm.ko kernel module.  Please note that this only works on Linux kernels
# version 3.9 or higher with CONFIG_DRM enabled, and only if the nvidia-drm.ko
# kernel module is loaded before the X server is started.

Section "OutputClass"
	Identifier      "nvidia"
	MatchDriver     "nvidia-drm"
	Driver          "nvidia"
EndSection
Пробовал полностью закомментировать — чёрный экран после перезагрузки.
Пробовал по вики состряпать файлик для intel — тот же эффект (может не правильно состряпал чего).

В этих экспериментах заметил вот что. Если выставлять так, чтоб дискретке не за что было бы зацепиться (выше описанное комментирование) или файл для интела подсовывать, то при ребуте после gpu-switch -i я запуститься уже не могу — чёрный экран. Но если за дискретку что-то может зацепиться, и при этом тоже был до ребута запущен gpu-switch -i, то графика хоть и будет работать через дискретку, но регулировка яркости экрана начинает работать, которой нет (и экран глаза выжигает) при gpu-switch -d. То есть интел всё таки работает, но не для отрисовки графики. Значит всё-таки что-то требует при запуске эту дискретку. Осталось понять что именно.

Кстати, если сделать так, что дискретка стартонуть не может, но я вижу вывод на экране, но всё встаёт на этом месте. Может это о чём-то подскажет?
Я не красноглазик, я фаерфоксик ^_^
А если снести драйвер nvdia(зачем он если вы его выключаете) и поставить nouveau, тогда gpu-swith работает?(не забудьте удалить nvidia-drm-outputclass.conf). А xf86-video-intel стоит?
Тоже приходили такие мысли, надо попробовать.
Интеловский драйвер стоит.
Я не красноглазик, я фаерфоксик ^_^
Поменял nvidia на nouveau. Проблема не решилась. Даже теперь с gpu-switch -i чёрный экран, при всех остальных настройках таких, когда запускалось, но невидией и регулировкой яркости. Теперь стопудово невидия через nouveau работает, но открытый драйвер позволяет яркость регулировать, хоть это радует.

Косяк явно, либо в xorg, либо в intel. Пытался создать конфиг для драйвера интела. Получил чёрный экран. Когда полез с флешечного чрута комментить весь этот файл, решил запустить modprobe i915, мне выдало, что мол не может найти модуль в /lib/modules/4.7.6-1-ARCH/. В непонятках вышел, зашёл нормально в Арч. запустил модуль — никакой ошибки не выдал, и покопавшись в директории нашёл кучу всего для i915. Надеюсь, что это нормально, что из чрута модуль не запускается.

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

UPD: И вот тут я понял, что всё таки не правильно я как-то монтирую efi-раздел при установке.
mount /dev/sda1 /mnt/boot
При этом образ ядра размещаемый в /boot оказывается в корне этого раздела.
А теперь устанавливая ещё один Арч, я ещё один образ поставлю в то же место чтоли? Что ж за бардак там будет твориться если с десяток осей поставить?
Может в этом моя проблема, а не в иксах?
Я не красноглазик, я фаерфоксик ^_^
сделайте бекап и макбуковский сброс всего и вся и начните заново...
 
Зарегистрироваться или войдите чтобы оставить сообщение.