自定义主板笔记本搭载GTX1050Ti,Ubuntu禁用nouveau仍无法启动,求彻底屏蔽GPU的方法
自定义主板笔记本搭载GTX1050Ti,Ubuntu禁用nouveau仍无法启动,求彻底屏蔽GPU的方法
这种自定义硬件的兼容性问题确实挺闹心的,不过咱们可以通过内核参数和驱动绑定的方式,让Ubuntu彻底跳过你的GTX1050Ti,之后你再按需加载模块修改寄存器就行,具体步骤如下:
一、临时屏蔽GPU,先正常启动Ubuntu
- 当你用Ubuntu安装介质或尝试启动系统时,等GRUB菜单出现(如果没显示,BIOS机型按住Shift,UEFI机型按Esc),按
e键编辑当前启动项。 - 找到以
linux开头的那一行,把光标移到行尾,添加以下内核参数:
这里的pci=nomsi,pci=noaer,nouveau.modeset=0,video=efifb:off,video=vesa:off pci-stub.ids=10de:XXX10de:XXX是你GTX1050Ti的PCI设备ID,你可以在Windows设备管理器里查看显卡的“硬件ID”,或者在能正常启动的Tiny Linux里运行lspci -nn | grep NVIDIA,会得到类似10de:1c82的ID,替换进去就行。 - 按
Ctrl+X或F10启动系统,这时候内核会把GPU交给pci-stub驱动托管,不会加载任何显卡相关驱动,应该就能正常进入系统了。
二、永久设置屏蔽参数,避免每次手动编辑
- 进入系统后,打开终端,编辑GRUB配置文件:
sudo nano /etc/default/grub - 找到
GRUB_CMDLINE_LINUX_DEFAULT这一行,把刚才的参数添加到引号里,比如:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=nomsi,pci=noaer,nouveau.modeset=0,video=efifb:off,video=vesa:off pci-stub.ids=10de:1c82" - 保存退出(nano里按
Ctrl+O,回车确认,再按Ctrl+X),然后更新GRUB:
下次启动系统就会自动屏蔽GPU了。sudo update-grub
三、后续手动加载nouveau并修改寄存器
当你需要操作GPU时,按以下步骤来:
- 先解绑
pci-stub驱动,找到你的GPU的PCI地址(用lspci查看,比如0000:01:00.0),运行:echo -n "0000:01:00.0" | sudo tee /sys/bus/pci/drivers/pci-stub/unbind - 然后加载nouveau模块:
sudo modprobe nouveau - 这时候你就可以编辑需要的寄存器了。
额外注意事项
- 如果上述参数还是不行,可以尝试添加
acpi=off或noapic,但这可能会影响其他硬件的功能,谨慎使用。 - Tiny Linux能正常启动是因为它的内核默认不主动初始化显卡设备,而Ubuntu的通用内核会尝试枚举所有PCI设备,所以需要手动强制屏蔽。
备注:内容来源于stack exchange,提问作者Vlad Panov
相关产品推荐
相关产品推荐

