Регистры PCI-E во время загрузки(видео черный экран)

Добрый день!
Использую Arch linux 4.13.4-1 на macbook pro 2010 mid. Благодаря отличным мануалам работает все, кроме видеокарты Nvidia (GeForce320M) на драйвере Nvidia, после запуска X (i3wm) черный экран. Мануал говорит о том, что необходимо установить регистры PCI-E для поддержки шины на видеокарте и VGA на мосту. Проблема в том, что я не использую GRUB, а использую systemd-boot и не могу въехать как правильно написать правило для udev. Знающие подскажите, в правильном ли направлении я двигаюсь и как прописать правило для udev.
 sudo setpci -s "00:17.0" 3e.b
[sudo] пароль для user:
00
[user@workstation ~]$ sudo setpci -s "04:00.0" 04.b
07
sudo lshw -businfo -class bridge -class display
[sudo] пароль для user:
Bus info          Device  Class          Description
====================================================
pci@0000:00:00.0          bridge         MCP89 HOST Bridge
pci@0000:00:03.0          bridge         MCP89 LPC Bridge
pci@0000:00:0e.0          bridge         NVIDIA Corporation
pci@0000:00:15.0          bridge         NVIDIA Corporation
pci@0000:00:16.0          bridge         NVIDIA Corporation
pci@0000:00:17.0          bridge         MCP89 PCI Express Bridge
pci@0000:04:00.0          display        MCP89 [GeForce 320M]
lspci -nn
00:00.0 Host bridge [0600]: NVIDIA Corporation MCP89 HOST Bridge [10de:0d60] (rev a1)
00:00.1 RAM memory [0500]: NVIDIA Corporation MCP89 Memory Controller [10de:0d68] (rev a1)
00:01.0 RAM memory [0500]: NVIDIA Corporation Device [10de:0d6d] (rev a1)
00:01.1 RAM memory [0500]: NVIDIA Corporation Device [10de:0d6e] (rev a1)
00:01.2 RAM memory [0500]: NVIDIA Corporation Device [10de:0d6f] (rev a1)
00:01.3 RAM memory [0500]: NVIDIA Corporation Device [10de:0d70] (rev a1)
00:02.0 RAM memory [0500]: NVIDIA Corporation Device [10de:0d71] (rev a1)
00:02.1 RAM memory [0500]: NVIDIA Corporation Device [10de:0d72] (rev a1)
00:03.0 ISA bridge [0601]: NVIDIA Corporation MCP89 LPC Bridge [10de:0d80] (rev a2)
00:03.1 RAM memory [0500]: NVIDIA Corporation MCP89 Memory Controller [10de:0d7b] (rev a1)
00:03.2 SMBus [0c05]: NVIDIA Corporation MCP89 SMBus [10de:0d79] (rev a1)
00:03.3 RAM memory [0500]: NVIDIA Corporation MCP89 Memory Controller [10de:0d69] (rev a1)
00:03.4 Co-processor [0b40]: NVIDIA Corporation MCP89 Co-Processor [10de:0d7a] (rev a1)
00:04.0 USB controller [0c03]: NVIDIA Corporation MCP89 OHCI USB 1.1 Controller [10de:0d9c] (rev a1)
00:04.1 USB controller [0c03]: NVIDIA Corporation MCP89 EHCI USB 2.0 Controller [10de:0d9d] (rev a2)
00:06.0 USB controller [0c03]: NVIDIA Corporation MCP89 OHCI USB 1.1 Controller [10de:0d9c] (rev a1)
00:06.1 USB controller [0c03]: NVIDIA Corporation MCP89 EHCI USB 2.0 Controller [10de:0d9d] (rev a2)
00:08.0 Audio device [0403]: NVIDIA Corporation MCP89 High Definition Audio [10de:0d94] (rev a2)
00:0a.0 SATA controller [0106]: NVIDIA Corporation MCP89 SATA Controller (AHCI mode) [10de:0d88] (rev a2)
00:0b.0 RAM memory [0500]: NVIDIA Corporation Device [10d:0d75] (rev a1)
00:0e.0 PCI bridge [0604]: NVIDIA Corporation Device [10de:0d9a] (rev a1)
00:15.0 PCI bridge [0604]: NVIDIA Corporation Device [10de:0d9b] (rev a1)
00:16.0 PCI bridge [0604]: NVIDIA Corporation Device [10de:0d9b] (rev a1)
00:17.0 PCI bridge [0604]: NVIDIA Corporation MCP89 PCI Express Bridge [10de:0d76] (rev a1)
01:00.0 FireWire (IEEE 1394) [0c00]: LSI Corporation FW643 [TrueFire] PCIe 1394b Controller [11c1:5901] (rev 08)
02:00.0 Network controller [0280]: Broadcom Limited BCM4322 802.11a/b/g/n Wireless LAN Controller [14e4:432b] (rev 01)
03:00.0 Ethernet controller [0200]: Broadcom Limited NetXtreme BCM5764M Gigabit Ethernet PCIe [14e4:1684] (rev 10)
04:00.0 VGA compatible controller [0300]: NVIDIA Corporation MCP89 [GeForce 320M] [10de:08a0] (rev a2)
tichm3
Мануал говорит о том, что необходимо установить регистры PCI-E для поддержки шины на видеокарте и VGA на мосту.
В данном "мануале" не учтен один существенный нюанс, а именно, не каждый загрузчик подойдет для изменения значения регистров PCI при загрузке с использованием setpci. Загрузчик должен содержать модуль setpci. В Grub2 такой модуль имеется.
При использовании загрузчиков, которые не имеют данного модуля, этот модуль должен быть загружен до выполнения операций по изменению значений регистров с использованием setpci.
Ошибки не исчезают с опытом - они просто умнеют
tichm3
sudo setpci -s "00:17.0" 3e.b
[sudo] пароль для user:
00
[user@workstation ~]$ sudo setpci -s "04:00.0" 04.b
07
так а после этого у вас работает?
Ошибки в тексте-неповторимый стиль автора©
vasek
tichm3
Мануал говорит о том, что необходимо установить регистры PCI-E для поддержки шины на видеокарте и VGA на мосту.
В данном "мануале" не учтен один существенный нюанс, а именно, не каждый загрузчик подойдет для изменения значения регистров PCI при загрузке с использованием setpci. Загрузчик должен содержать модуль setpci. В Grub2 такой модуль имеется.
При использовании загрузчиков, которые не имеют данного модуля, этот модуль должен быть загружен до выполнения операций по изменению значений регистров с использованием setpci.
Именно поэтому я думал пойти путем правил udev.
indeviral
tichm3
sudo setpci -s "00:17.0" 3e.b
[sudo] пароль для user:
00
[user@workstation ~]$ sudo setpci -s "04:00.0" 04.b
07
так а после этого у вас работает?
Нет. Так как одно из значений имеет вывод 00. Откатил на Nouveau.
что то я )), просто введите
# setpci -s "00:17.0" 3e.b=8
# setpci -s "04:00.0" 04.b=7
если после этого заработает, то что-нибудь придумаем
Ошибки в тексте-неповторимый стиль автора©
tichm3
одно из значений имеет вывод 00
Это говорит о том, что загрузчик не меняет значение регистра.
tichm3
как прописать правило для udev
Не знаю, поможет ли это. Значения регистров должны изменяться до загрузки драйвера видеокарты.

EDIT 1 - хотя я не понял в какой момент ты менял эти значения?
Ошибки не исчезают с опытом - они просто умнеют
indeviral
что то я )), просто введите
# setpci -s "00:17.0" 3e.b=8
# setpci -s "04:00.0" 04.b=7
если после этого заработает, то что-нибудь придумаем
[user@workstation ~]$ sudo setpci -s "04:00.0" 04.b=7
[user@workstation ~]$ sudo setpci -s "00:17.0" 3e.b=8
[user@workstation ~]$ sudo setpci -s "04:00.0" 04.b
07
[user@workstation ~]$ sudo setpci -s "00:17.0" 3e.b
08
Сработало
vasek
tichm3
одно из значений имеет вывод 00
Это говорит о том, что загрузчик не меняет значение регистра.
tichm3
как прописать правило для udev
Не знаю, поможет ли это. Значения регистров должны изменяться до загрузки драйвера видеокарты.

EDIT 1 - хотя я не понял в какой момент ты менял эти значения?
Я их не менял. Пока просто понятно, что они не верные и нужно их как-то поменять при загрузке.
$ cat /etc/udev/rules.d/10-nvidia-fix.rules
KERNELS=="0000:00:17.0", SUBSYSTEMS=="pci",  RUN+="/usr/bin/setpci -s '00:17.0' 3e.b=8"
KERNELS=="0000:04:00.0", SUBSYSTEMS=="pci",  RUN+="/usr/bin/setpci -s '04:00.0' 04.b=7"
Ошибки в тексте-неповторимый стиль автора©
 
Зарегистрироваться или войдите чтобы оставить сообщение.