Нет vga / vgaswitcheroo в / sys / kernel / debug (Ubuntu 13.10)

Мне известны некоторые другие темы по этой проблеме, но я пробовал варианты, найденные в тех, которые безуспешно:

sudo su
cat /sys/kernel/debug/vgaswitcheroo/switch

дает

cat: /sys/kernel/debug/vgaswitcheroo/switch: No such file or directory

Может ли это быть потому что мой xorg.conf только настраивает устройство Intel?

Кажется, что /sys/kernel/debug смонтирован, и у меня нет каких-либо необычных опций загрузки:

cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-3.11.0-15-generic.efi.signed root=UUID=8a15962e-
ad4d-4eb0-96af-37d167313e92 ro quiet splash vt.handoff=7

Для modeset У меня есть:

cat /sys/module/i915/parameters/modeset
-1

Не совсем уверен, если это проблема или нет? Но я также попытался загрузиться с опциями i915.modeset=1 radeon.modeset=1 и проверил, что modeset действительно равен 1. Я также проверил, что mount | grep /sys/kernel/debug показал

none on /sys/kernel/debug type debugfs (rw)

, так что он смонтирован правильно.

lshw -C display показывает:

  *-display               
   description: VGA compatible controller
   product: Haswell-ULT Integrated Graphics Controller
   vendor: Intel Corporation
   physical id: 2
   bus info: pci@0000:00:02.0
   version: 09
   width: 64 bits
   clock: 33MHz
   capabilities: msi pm vga_controller bus_master cap_list rom
   configuration: driver=i915 latency=0
   resources: irq:60 memory:f0000000-f03fffff memory:e0000000-efffffff  ioport:5000(size=64)
  *-display
   description: Display controller
   product: Sun XT [Radeon HD 8670A/8670M/8690M]
   vendor: Advanced Micro Devices, Inc. [AMD/ATI]
   physical id: 0
   bus info: pci@0000:06:00.0
   version: 00
   width: 64 bits
   clock: 33MHz
   capabilities: pm pciexpress msi bus_master cap_list rom
   configuration: driver=radeon latency=0
   resources: irq:65 memory:d0000000-dfffffff memory:f0400000-f043ffff ioport:3000(size=256) memory:f0440000-f045ffff

Мое ядро, похоже, скомпилировано с правильными опциями:

grep -i switcheroo /boot/config-*
/boot/config-3.11.0-12-generic:CONFIG_VGA_SWITCHEROO=y
/boot/config-3.11.0-15-generic:CONFIG_VGA_SWITCHEROO=y

Так почему бы vgaswitcheroo отсутствовать?

3
задан 20 January 2014 в 23:16

2 ответа

Я нашел этот

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.

Так что я думаю, что весьма вероятно, что моя система (будучи очень недавним ноутбуком) имеет MUX-less (т.е. фактически подключена только карта Intel к дисплею), и хотя я могу «переключаться» через AMD Catalyst Control Centre (если я буду достаточно смелым / глупым, чтобы установить fglrx), это на самом деле сводится к следующему: «Высокая производительность» -> затем передать жесткие графические вычисления в dGPU перенаправьте их обратно через iGPU для отображения «Низкая производительность / хорошая батарея» -> выполните калибровку на iGPU, а затем отправьте непосредственно на дисплей. У меня также нет возможности переключать графические процессоры в BIOS, что также предполагает MUX-less.

Таким образом, я, вероятно, никогда не смогу использовать VGA switcheroo.

Еще одно соображение заключается в том, что драйвер radeon официально еще не поддерживает мою карту (кодовое название 8670M для солнечной системы Mars XT, не путать с OLAND). Таким образом, когда я загружаюсь с драйверами с открытым исходным кодом, я получаю сообщения типа No screens found для Radeon. Учитывая, что switcheroo для этого нужны Radeon и Intel, может произойти сбой, потому что драйвер Radeon не поддерживает мою карту.

Если это так, то возникает вопрос о том, как переключаться между картами ATI / Intel (без fglrx) в системе MUX-less.

0
ответ дан 20 January 2014 в 23:16

Согласно это


MUXLESS SYSTEMS

Первое, что вам нужно сделать, это включить дискретный графический процессор если он еще не включен:

# echo ON > /sys/kernel/debug/vgaswitcheroo/switch

Убедитесь, что это сработало, выполнив эту команду еще раз:

# cat /sys/kernel/debug/vgaswitcheroo/switch

Теперь нам нужно узнать идентификаторы, которые xrandr присвоил вашим картам. Сделайте это снова как обычный пользователь, а не root:

$ xrandr --listproviders
Providers: number : 3
Provider 0: id: 108 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3     outputs: 4 associated providers: 2 name:Intel
Provider 1: id: 69 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 0 associated providers: 2 name:radeon
Provider 2: id: 69 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 0 associated providers: 2 name:radeon

В моем случае в списке 3 карты. Обратите внимание, что оба предоставляют 1 и 2 имеют одинаковый идентификатор. В этом случае моя дискретная карта имеет идентификатор 69, а моя встроенная карта - идентификатор 108.

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

$ xrandr --setprovideroffloadsink 69 108

Где первое число - ваша дискретная карта, а второе - ваша интегрированная карта. Чтобы убедиться, что это сработало:

$ DRI_PRIME=1 glxinfo | grep renderer
OpenGL renderer string: Gallium 0.4 on AMD TURKS

Вы должны получить Gallium 0.4 в качестве средства визуализации. Отныне все ваши 3D-приложения будут отображаться на вашей карте ATI, нет необходимости перезапускать X.

Работал у меня в lenovo u400 с kubuntu 13.10.

0
ответ дан 20 January 2014 в 23:16

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

Похожие вопросы: