Как проверить, какой графический контроллер используется

На моем ноутбуке Linux у меня есть два VGA-совместимых контроллера (информация из lshw):

  • Продукт: GK107 [GeForce GT 640M]
    физический идентификатор: 0
    информация об автобусе: pci @ 0000: 01: 00.0
    ..
    тактовая частота: 33 МГц
    Возможности: PM MSI PC Aliexpress vga_controller bus_master cap_list
    конфигурация: драйвер = латентность нуво =0
    ресурсы: irq:16 память:f2000000-f2ffffff память:e0000000-efffffff память:f0000000-f1ffffff ioport:3000(размер =128)
  • Продукт: 3-й процессор ядра Core Graphics Controller
    физический идентификатор: 2
    информация об автобусе: pci@0000:00:02.0
    тактовая частота: 33 МГц
    Возможности: msi pm vga_controller bus_master cap_list rom
    конфигурация: драйвер = задержка i915 =0
    ресурсы: irq:44 память:f3000000-f33fffff память:d0000000-dfffffff ioport:4000(размер =64)

lspci | grep VGA выход:

  • 00: 02.0 VGA-совместимый контроллер: Графический контроллер процессора Intel Core третьего поколения (версия 09)
  • 01: 00.0 VGA-совместимый контроллер: NVIDIA Corporation GK107 [GeForce GT 640M] (версия a1)

Когда я бегу glxgears У меня есть следующий вывод (пока приложение работает):

 Ошибка libGL: не удалось загрузить драйвер: i965
 Ошибка libGL: попробуйте еще раз с LIBGL_DEBUG=verbose для получения более подробной информации.
 XIO: фатальная ошибка ввода-вывода 11 (ресурс временно недоступен) на X-сервере ":0"
       после 2968 запросов (обработано 2966) с 0 оставшимися событиями.

Таким образом, я полагаю, что это не с Intel VGA?

Я установил следующие драйверы:

  • Intel-DRI
  • xf86-video-intel 2.20 (X.org Intel i810/i830/i915/945G/G965+ видео драйверы)
  • xf86-видео-нуво

1 Как я могу проверить, какой контроллер используется системой / программами?

2 Как я могу обеспечить использование конкретного контроллера?

3 Как я могу убедиться, что драйвер i965 загружен, а не i915 (из lshw выход)? (подходит для моего Intel AGP)

4 Почему lshw показывает часы: 33 МГц? Для GeForce 640M должно быть 625 МГц.

Я использую Linux Arch.

3 ответа

Решение
  1. Чтобы узнать, какой графический контроллер используется в настоящее время системой / программами, используйте следующие две команды:

    grep LoadModule /var/log/Xorg.0.log
    grep Driver /etc/X11/xorg.conf
    

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

  2. Определите это в /etc/X11/xorg.conf

    Не вдаваться в подробности, но определить Driver линия в Device раздел.

  3. Если он установлен и настроен в /etc/X11/xorg.confБежит. Имейте в виду, что драйверы иногда являются общими, то есть nvidia является драйвером для всех карт nvidia, поэтому i915 может быть подходящим драйвером для i965.

  4. @Hennes уже частично ответил на это выше. Кажется, это lshw ошибка, чтобы показать скорость шины PCI для каждого устройства на PCI или PCIe. Посмотрите на это изображение: NVidia GeForce GT220 (не мое, но у меня есть два NVidias и lshw для обоих, показывает 33 МГц).

  • 4

625 не является частотой шины для PCIe; Я думаю, вы путаете скорость линии, скорость подключения и скорость шины PCI. Линейная скорость бит на бит. В то время как шина PCI имеет ширину 32b. Таким образом, шина PCI может поддерживать частоту 33 МГц*32=1056 Мбит/с (разделяется между всеми устройствами). В то время как PCIe v1 обеспечивает 2,5 ГТ/с на линию, но транзакция не является битом (транзакция является битом в линии данных, но по линиям данных необходимо передавать много заголовков описаний пакетов; поэтому вы можете надеяться на 2,3 ГБ/с). с на строку).

Но... PCIe отображается по-другому; на самом деле, он динамически маршрутизируется и распределяется. Итак, дочерние карты объявлены на шине PCI (читай 32b 33 МГц), но физически отображаются на коммутаторе PCI; и коммутатор может выделить больше ресурсов (шириной 64 бита) с неустановленной скоростью.

USB примерно такая же лажа. USB3 — это скорость 5 Гбит/с, установленная через концентратор, на котором указано 480 Мбит/с. Корневой концентратор никогда не может объявить нечто большее, чем «высокая скорость» (480). Значит устройство там отображено. Но внутри «высокоскоростного канала» вы можете использовать «скорость передачи данных 5 Гбит/с». Вот почему деревья USB всегда показывают два дерева, когда есть USB3; и устройства USB3 имеют двойное сопоставление. Сопоставление устройства USB3 внутри дерева USB2 требуется, помимо прочего, для управления питанием (для расчета общего тока, потребляемого на ветвь после добавления других устройств USB2).

Вот почему я не удивлен и не обеспокоен, увидев элемент с частотой 625 МГц ниже шины 33 МГц.

А может быть, 625 — это частота оперативной памяти, вообще не связанная с шиной PCI.

  • 1

Чтобы узнать, обрабатывается ли карта водителем:

      $ lspci | grep -E "VGA|3D" | cut -f1 -d" " | while read id ; do lspci -v -s $id ; done | grep -i -e "VGA" -e "3D" -e "Kernel driver" -e "Kernel module"
01:05.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI RS880 [Radeon HD 4200] (prog-if 00 [VGA controller])
        Kernel driver in use: radeon
        Kernel modules: radeon
02:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI RV710 [Radeon HD 4350/4550] (prog-if 00 [VGA controller])
        Kernel driver in use: radeon
        Kernel modules: radeon
03:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI RV710 [Radeon HD 4350/4550] (prog-if 00 [VGA controller])
        Kernel driver in use: radeon
        Kernel modules: radeon

# lspci | grep -E "VGA|3D" | cut -f1 -d" " | while read id ; do lspci -v -s $id ; done | grep -i -e "VGA" -e "3D" -e "Kernel driver" -e "Kernel module"
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) (prog-if 00 [VGA controller])
        Kernel driver in use: i915
        Kernel modules: i915
01:00.0 VGA compatible controller: NVIDIA Corporation GF108GLM [NVS 5200M] (rev a1) (prog-if 00 [VGA controller])
        Kernel driver in use: nvidia
        Kernel modules: nvidia

Чтобы узнать, какая карта является картой по умолчанию для X:

      $ cat /var/log/Xorg.0.log | grep "PCI:"
[  4328.398] (--) PCI: (0:1:5:0) 1002:9710:1458:d000 rev 0, Mem @ 0xd8000000/134217728, 0xfdae0000/65536, 0xfd900000/1048576, I/O @ 0x0000ae00/256
[  4328.398] (--) PCI:*(0:2:0:0) 1002:954f:1462:1618 rev 0, Mem @ 0xb0000000/268435456, 0xfd6e0000/65536, I/O @ 0x0000ee00/256, BIOS @ 0x????????/131072
[  4328.398] (--) PCI: (0:3:0:0) 1002:954f:1462:1618 rev 0, Mem @ 0xc0000000/268435456, 0xfdfe0000/65536, I/O @ 0x0000de00/256, BIOS @ 0x????????/131072

# cat /var/log/Xorg.0.log | grep "PCI:"
[    30.924] (--) PCI:*(0@0:2:0) 8086:0166:1028:0534 rev 9, Mem @ 0xf6400000/4194304, 0xd0000000/268435456, I/O @ 0x0000f000/64, BIOS @ 0x????????/131072
[    30.924] (--) PCI: (1@0:0:0) 10de:0dfc:1028:1534 rev 161, Mem @ 0xf5000000/16777216, 0xe0000000/268435456, 0xf0000000/33554432, I/O @ 0x0000e000/128, BIOS @ 0x????????/524288

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

  • 2 / 3

xorg.conf может (должен очень) помочь, но я уже сообщил о десятке ошибок в Xorg о том, что он может игнорировать conf, даже не говоря об этом (и не говоря почему).

Другие вопросы по тегам