/sys/kernel/debug (Ubuntu 13.10) 中没有 vga/vgaswitcheroo

fpg*_*ost 3 intel radeon vgaswitcheroo hybrid-graphics

我知道关于这个问题的一些其他线程,但我已经尝试了那些没有成功的选项:

sudo su
cat /sys/kernel/debug/vgaswitcheroo/switch
Run Code Online (Sandbox Code Playgroud)

cat: /sys/kernel/debug/vgaswitcheroo/switch: No such file or directory
Run Code Online (Sandbox Code Playgroud)

可能是因为我xorg.conf只设置了英特尔设备?

/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
Run Code Online (Sandbox Code Playgroud)

对于模式集,我有:

cat /sys/module/i915/parameters/modeset
-1
Run Code Online (Sandbox Code Playgroud)

不太确定这是否有问题?但我也尝试使用i915.modeset=1 radeon.modeset=1选项启动,并验证模式集确实是 1。我还检查了mount | grep /sys/kernel/debug显示

none on /sys/kernel/debug type debugfs (rw)
Run Code Online (Sandbox Code Playgroud)

所以这是正确安装的。

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
Run Code Online (Sandbox Code Playgroud)

我的内核似乎是用正确的选项编译的:

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
Run Code Online (Sandbox Code Playgroud)

那为什么会vgaswitcheroo失踪呢?

fpg*_*ost 6

我发现了这个

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.
Run Code Online (Sandbox Code Playgroud)

所以我认为我的系统(是最近的笔记本电脑)很可能是MUX-less(即只有英特尔卡实际连接到显示器),虽然我可以“切换” AMD Catalyst Control Centre(我应该勇敢/愚蠢地安装fglrx) 这实际上只是:“高性能”-> 将硬图形计算外包给 dGPU,然后将它们重新路由回 iGPU 进行显示,“低性能/良好的电池”-> 在 iGPU 上进行计算,然后直接发送到显示器。我也无法在 BIOS 中切换 GPU,这也表明MUX-less.

因此,我可能永远无法使用 VGA switcheroo。

另一个考虑是radeon驱动程序尚未正式支持我的卡(8670M代号为Mars XT太阳系系列,不要与OLAND混淆)。因此,当我使用开源驱动程序启动时,我会收到类似No screens foundradeon 的消息。鉴于那里switcheroo需要 radeon 和 intel,它可能会以某种方式失败,因为 radeon 驱动程序不支持我的卡。

如果这是真的,就会引出一个问题,即如何在系统中的 ATI/Intel 卡(不带fglrx)之间切换MUX-less