Jon*_*oss 4 linux fglrx grub drivers
这是我的问题:是否可以通过 grub 配置禁用 fglrx Linux 驱动程序或采取任何措施来抑制不跨硬件兼容的功能(例如 3D 加速)?如果是这样,这将如何完成?
具体来说,我在我在多台机器上使用的 SSD 上设置了我喜欢的软件开发环境,其中只有一些有独立的 Radeon GPU——其他有英特尔的 iGPU。在配备 Radeon GPU 的机器上,gmd 需要 fglrx 驱动程序才能流畅运行(没有它们,3D 加速特别糟糕)。我需要能够在 grub 中创建/选择启动选项,以允许我在使用 iGPU 的 Intel 设备或带有 Radeon GPU 的 AMD 设备上启动。
我发现的有关修改 grub 启动菜单的所有信息都已过时,因此我已转向 SU 进行澄清。
我在我的 PC 上设置了双启动:一个 SSD 上的 Windows 7 和另一个上的 Ubuntu Gnome 14.04(我主要使用 Ubuntu 进行软件开发)。我最近将我的电脑从几台 Radeon HD 7700 升级到了 AMD R9 280,此时 radeon 驱动程序停止工作以进行 3D 加速,导致一切都卡住了。然后我切换到 fglrx,所有问题都停止了。在我桌面的电子缩影中,一切都很好。
唯一的问题是,当我在办公室、房屋和城市之间跳来跳去时,我将这个 Ubuntu SSD 从一台机器转移到另一台机器。并非所有机器都有 Radeon GPU,这可能会导致 fglrx 驱动程序出现问题。例如,就在今天,我走进一间办公室,将我的 SSD 放入我收到的电脑中;它有一个 Intel CPU,没有独立的 GPU。Grub 会正常显示我的启动选项,但我尝试启动 Ubuntu(即使在“故障安全”图形模式下)也会失败。我很幸运有一个实时 USB 记忆棒,所以启动了实时发行版,安装/chroot 到 SSD,删除/清除 fglrx,然后重新启动。
这并不是真正的最佳解决方案。理想的解决方案是创建一个 grub 菜单选项以在没有特定于 fglrx 的 3D 加速的情况下启动。
root@toor:/$ grub-install --version
grub-install (GRUB) 2.02~beta2-9ubuntu1.3
root@toor:/$ uname -orvp
3.16.0-50-generic #67~14.04.1-Ubuntu SMP Fri Oct 2 22:07:51 UTC 2015 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
当安装了 fglrx 驱动程序时,在 Intel 机器上启动会导致一个相当烦人的现象:屏幕上会出现绿色字样,上面写着“正在启动 web 服务器 apache...”,然后无论选择哪个虚拟终端都会不断返回. 登录大约需要 5 分钟,sudo reboot因为带有绿色文本的屏幕每 2-10 秒就会接管一次(变化很大且不可预测的时间)。按 ctrl+alt+del 偶尔不会导致机器重新启动,或者有时它会在响应之前延迟半分钟左右。但是,当它确实响应时,gdm 启动屏幕会在重新启动之前非常短暂地出现。
您应该使用nomodeset参数:
无模式集
最新的内核已将视频模式设置移动到内核中。因此,当 X 服务器启动时,所有硬件特定时钟频率和视频卡上寄存器的编程都发生在内核中,而不是在 X 驱动程序中。这使得高分辨率漂亮的启动画面和闪烁成为可能从启动画面到登录屏幕的自由转换。不幸的是,在某些卡上,这不能正常工作,最终会出现黑屏。添加 nomodeset 参数指示内核在加载 X 之前不加载视频驱动程序并改为使用 BIOS 模式。
通过这种方式,您可以安全地启动,然后将选择适合您需要的驱动器的工作交给 X。你甚至可能决定不做任何编程,看看简单的命令是否
dpkg-reconfigure xserver-xorg
Run Code Online (Sandbox Code Playgroud)
(这适用于 Debian 和衍生产品,这是您的情况)可能适用于您的情况。
编辑:
可以完全禁用图形引导。复制
cp /etc/default/grub /etc/default/grub-orig
Run Code Online (Sandbox Code Playgroud)
编辑/etc/default/grub,注释掉这一行,
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Run Code Online (Sandbox Code Playgroud)
修改这一行看起来像
GRUB_CMDLINE_LINUX="text"
Run Code Online (Sandbox Code Playgroud)
然后取消注释这一行,
GRUB_TERMINAL=console
Run Code Online (Sandbox Code Playgroud)
保存,运行
update-grub
Run Code Online (Sandbox Code Playgroud)
当您重新启动时,如果您的安装没有损坏,您将进入文本模式。重新配置 X 后,您可以使用以下命令启动图形会话
startx
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27330 次 |
| 最近记录: |