![Ubuntu 19.10 2011 年初 17 英寸 Macbook Pro 上的混合显卡](https://linux22.com/image/1171839/Ubuntu%2019.10%202011%20%E5%B9%B4%E5%88%9D%2017%20%E8%8B%B1%E5%AF%B8%20Macbook%20Pro%20%E4%B8%8A%E7%9A%84%E6%B7%B7%E5%90%88%E6%98%BE%E5%8D%A1.png)
最后更新:Ubuntu 20.04 修复了所有问题。默认是英特尔,它会在需要时自动使用专用显卡(到目前为止!)如果它不起作用,现在在应用程序菜单中有一个选项,当您右键单击应用程序时 > 它会显示“使用专用显卡启动”。
问题解决:为了避免出现空白屏幕,我不得不使用 grub 中的“nomodeset”命令来启动操作系统。执行 radeon.modeset=0 会导致屏幕空白。因此,我将其设置为 intel.modeset=0,默认使用英特尔 GPU 启动,效果非常好,而且我发现电池寿命非常长!最后,为了使用我的专用 GPU,我在想要使用的软件上使用 DRI_PRIME=1 命令。
对于任何使用 Macbook 阅读本文的人来说,这可能是您的解决方案。我搜索了很多次以找到此解决方案。如果您需要使用 nomodeset 进行启动,则很可能是某个地方的图形驱动程序出现故障。这可能不完全是您的解决办法,但它确实是一个很好的起点。
干杯!
我想我也会一步一步地做一个小的描述,因为这在早期配备专用 GPU 的 MacBook 中似乎很常见。
因此,首先安装 Ubuntu。如果可以,那就太好了。如果在不使用“安全图形模式”的情况下安装时出现空白屏幕,则很可能是驱动程序没有正常工作。因此,请在安全图形模式下安装,然后重新启动。如果重新启动后出现空白屏幕,则需要通过 USB 或 CD 或安装操作系统时使用的其他任何方式启动到“尝试使用安全图形的 ubuntu”模式。
进入桌面后,打开终端。
您将需要编辑 grub 文件才能使用通用驱动程序或英特尔驱动程序(如果可以立即使用)。在将启动命令更改为 intel.modeset=0 后,我没有重新安装操作系统,因此我不确定它是否会立即起作用。但无论如何,以下编辑的概念是相同的:
从这个答案中我知道如何编辑我的 grub 根目录,因为 Macbook 没有与其他计算机相同的 BIOS 或输入功能。 https://askubuntu.com/a/941322/1068231
Run from the Live CD, and either install Ubuntu or move on if already done
Check your installed partition with the command "gparted". It opens a Window telling you where you installed Ubuntu. In my case it was /dev/sda2 which contained an ext4 partition.
Mount the partition: sudo mount /dev/sdXY /mnt
Then mount/bind the directories Grub needs to access:
sudo mount --bind /dev /mnt/dev &&
sudo mount --bind /dev/pts /mnt/dev/pts &&
sudo mount --bind /proc /mnt/proc &&
sudo mount --bind /sys /mnt/sys
Then move on to this environment using chroot, which I found a supersmart idea: sudo chroot /mnt
You should now be able to edit /etc/default/grub, as the others pointed out. Like: sudo vi /etc/default/gruband change the line GRUB_CMDLINE_LINUX_DEFAULT="nomodeset" **Or do intel.modeset=0 here** I found it very useful to also remove quiet and splash so I could see something moving on behind the scenes.
然后执行 sudo update-grub
我将以介绍开始,因为这是我的第一篇文章。我玩过 Ubuntu 11-13 版本。那是很久以前的事了,我决定朝这个方向努力,以了解有关 Debian 的更多信息,并尽可能抵制 OSX 和 Windows。(希望有一天能 100% 做到!)
无论如何,我有一台旧的但金色的 2011 年初 17 英寸 Macbook Pro,并且由于不支持 OSX(即使有一个循环可以使其真正工作......)我决定使用 Ubuntu 19.10,并最终在 20.04 发布时升级到它。
现在,谈谈我的问题。这台笔记本电脑配有 Intel HD Graphics 3000 和 Radeon HD 6750M。
当我第一次尝试安装 Ubuntu LTS 时,在“安装 Ubuntu”上按下回车键后,屏幕立即变黑。然后我尝试了 Ubuntu 19.10,情况也一样。所以我用安全图形模式安装了,成功了!这让我相信我的显卡出了点问题。我确实知道两张显卡都运行良好,所以不可能是硬件问题。
在安全图形模式下安装 Ubuntu 后,我遇到了另一个问题。安装完成后,系统提示我移除 USB 并重新启动,我照做了。同样的事情也发生了,经过一番调查,我不得不在 Grub2 中的其中一行中添加“nomodeset”命令。我启动到“在安全图形模式下尝试 ubuntu”,并使用 chroot 编辑 Grub2 根目录,添加了“nomodeset”行,这解决了我的启动问题。现在我可以启动,并且几乎可以正常使用我的操作系统。当我进入系统时,我进行了所有更新和升级,计算机运行良好。除了图形。
据我所知,“nomodeset”行已禁用我使用图形驱动程序的能力。我遇到了一个错误,当我进入挂起模式时,我的背光在唤醒设备后不会重新打开。我可以听到我的音频上下按动,所以我知道系统已打开但背光已关闭。但这对我来说不是什么大问题。 微小修改:新的驱动程序设置也修复了我的暂停问题
我主要想使用我的专用 AMD 卡来运行 3D 程序和视频游戏(如果需要)。
所以这是比较棘手的部分。
如何在执行正常任务时使用英特尔卡,并在使用要求更高的软件时切换到视频卡?(为了节省电池,这对我来说很重要)
而且由于“nomodeset”行是我可以启动操作系统的唯一方法,安装驱动程序可以解决我的问题吗?
从表面上看,我已经拥有 Intel 卡和 Radeon 卡的原装驱动程序(Radeon 使用“radeon”驱动程序)。此外,我的“其他驱动程序”选项卡无法识别任何显卡。但是,在我的“关于”部分,在图形旁边,它显示“llvmpipe(LLVM 9.0,256 位)”,这似乎是某种通用显示驱动程序。可能是因为 nomodeset 命令而使用的。
所以据我理解,需要去掉‘nomodeset’,并且我的英特尔卡需要成为我的默认卡,而且我还需要某种命令来在两个 GPU 之间切换。
如果你能读到这里,谢谢你。我期待任何建议。我已经花了一天时间研究这个问题,但似乎还没有取得任何进展。:D
编辑:
我发现了一个有趣的现象。重新安装 Ubuntu 19.10 后,我让它完全启动,我可以调整键盘灯设置,音频也可以调整。屏幕仍然空白。我认为屏幕上只有一个连字符或下划线,没有其他内容。
同样重要的是,在安装后重新启动的第一次启动中,出现了一条简短的消息,内容是“UMS 无法识别 AMD 之类的东西”
这是否意味着它尝试加载 Radeon 驱动程序,但找不到正确的驱动程序?
另外要说的是......我也尝试过从 AMD 网站安装专有驱动程序,它说我的 Xorg 要么已经过时,要么对于驱动程序来说太新了。
这是我的 lshw -c video 命令:
*-display UNCLAIMED
description: VGA compatible controller
product: Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M]
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:01:00.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm pciexpress msi vga_controller bus_master cap_list
configuration: latency=0
resources: memory:90000000-9fffffff memory:b0800000-b081ffff ioport:2000(size=256) memory:b0820000-b083ffff
*-display UNCLAIMED
description: VGA compatible controller
product: 2nd Generation Core Processor Family 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
configuration: latency=0
resources: memory:b0000000-b03fffff memory:a0000000-afffffff ioport:3000(size=64)
我的 lspci -nn | grep VGA 命令:
00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0126] (rev 09)
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] [1002:6741]
安装 xerver-xorg-video-radeon 命令:
sudo apt 安装 xserver-xorg-video-radeon 正在读取软件包列表...完成 构建依赖关系树
正在读取状态信息...完成 xserver-xorg-video-radeon 已经是最新版本 (1:19.0.1-1ubuntu1)。 xserver-xorg-video-radeon 设置为手动安装。 以下软件包已自动安装并且不再需要: gir1.2-geocodeglib-1.0 gir1.2-gst-插件库-1.0 gir1.2-gudev-1.0 gir1.2-udisks-2.0 grilo-plugins-0.3-base gstreamer1.0-gtk3 guile-2.2-libs libboost-date-time1.67.0 libboost-filesystem1.67.0 libboost-iostreams1.67.0 libboost-locale1.67.0 libcdr-0.1-1 libclucene-contribs1v5 libclucene-core1v5 libcmis-0.5-5v5 libcolamd2 libcurl4 libdazzle-1.0-0 libe-book-0.1-1 libeot0 libepubgen-0.1-1 libetonyek-0.1-1 libevent-2.1-6 libfreerdp-client2-2 libfreerdp2-2 libgc1c2 libgom-1.0-0 libgpgmepp6 libgpod-common libgpod4 libgrilo-0.3-0 liblangtag-common liblangtag1 liblirc-client0 liblua5.3-0 libminiupnpc17 libmspub-0.1-1 libodfgen-0.1-1 liborcus-0.14-0 libqqwing2v5 libraw19 librevenge-0.0-0 librsync2 libsgutils2-2 libsuitesparseconfig5 libvncclient1 libwinpr2-2 libxmlsec1 libxmlsec1-nss lp-解决 媒体播放器信息 python3-bcrypt python3-紧固件 python3-future python3-lib2to3 python3-lockfile python3-mako python3-markupsafe python3-monotonic python3-paramiko syslinux syslinux-common syslinux-legacy usb-creator-通用 使用“sudo apt autoremove”来删除它们。 升级了 0 个,新安装了 0 个,要删除 0 个,并且未升级 0 个。
同样的事情也发生在了英特尔命令上。^
附言:我想奖励那些帮助我度过难关的人,也许我会给你订披萨或别的东西。哈哈
另一个更新:
我将“nomodeset”更改为“radeon.modeset=0”,结果还是一样,启动后进入登录屏幕,但显示屏仍然关闭(我可以调整音量和键盘亮度)。但随后我按了 ctrl+alt+f2 或 f3,它弹出了一个终端,屏幕开始工作!
我感觉我越来越接近了。
编辑3:
我确认我的驱动程序是最新的,包括英特尔和 AMD 驱动程序。nomodeset 导致系统使用通用驱动程序。当我禁用通用驱动程序时,我的显示器停止工作。
编辑4:
我将其设置为使用 intel.modeset=0 启动,并且它工作正常,但当我登录时,屏幕上除了背景之外什么都没有。我花了一段时间才意识到它检测到了两个显示器!我移动鼠标,它最终出现在“第二个”显示器上。因此,右键单击 > 显示设置 > 单个显示器,现在它显示我的两个 GPU 都被检测到了!!!!哇!我的滚动和鼠标移动看起来顺畅多了。
我将测试一些程序并希望报告最后的更新。
最后更新! :
一切都运行良好!默认情况下,英特尔 GPU 用于所有操作,而对于需要使用其他 GPU 的任何操作,我都使用 DRI_PRIME=1 命令!!!
为了使用 DRI_PRIME=1,我使用了本指南: https://wiki.archlinux.org/index.php/PRIME 我必须将 AMD 卡设置在 Intel 卡之前。这样做之后,它仍然使用 Intel 卡,但启用了命令“DRI_PRIME=1”以使用我的第二张 AMD 卡。
例如,在 Steam 视频游戏中,在启动选项中,我会输入:
‘DRI_PRIME=1%命令%’
多么美妙的旅程啊。