17.10 至 18.04 升级在启动过程中冻结

17.10 至 18.04 升级在启动过程中冻结

我刚刚买了一台可以正常工作的 Gateway P4 台式电脑,并将其从 16.04LTS 一路升级到 17.10,没有任何问题。当我尝试安装 18.04LTS 时,我遇到了启动问题。

我尝试过很多不同的方法重新安装,但启动问题没有任何改善。Ubuntu 徽标出现,圆点闪烁几次,然后鼠标指针冻结,系统完全没有响应。如果我在启动时从 grub 中的内核行中删除“quiet splash”,我可以看到它在启动第一个用户帐户 120 后不久就停止了。

这里有一个线索...如果我用 替换“quiet splash” nomodeset,它会完全启动,但仅处于 640x480 模式。

这是 i915 视频信息...

  *-display UNCLAIMED
       description: VGA compatible controller
       product: 82945G/GZ Integrated Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 02
       width: 32 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list
       configuration: latency=0
       resources: memory:e0300000-e037ffff ioport:20e0(size=8) memory:d0000000-dfffffff memory:e0380000-e03bffff memory:c0000-dffff

我怀疑我需要向 grub 添加一个特殊的 i915 视频控制器内核参数,以使视频正常工作。您对这个参数可能是什么有任何想法吗...或者还有其他想法吗?

更新#1:我刚刚发现,如果我启动到“恢复模式”,然后选择“恢复正常启动”,它会完全启动到 1024x768 4:3(应该是 16:9)的桌面。

更新 #2:从 17.10 升级到 18.04,启动失败。重新安装 18.04,启动失败。删除磁盘分区并清理 18.04,启动失败。安装 18.04“建议”软件,启动仍然失败。Ubuntu Live DVD 运行正常。

更新 #3:我找到了 i915 参数列表...

~$ modinfo -p i915
modeset:Use kernel modesetting [KMS] (0=disable, 1=on, -1=force vga console preference [default]) (int)
panel_ignore_lid:Override lid status (0=autodetect, 1=autodetect disabled [default], -1=force lid closed, -2=force lid open) (int)
semaphores:Use semaphores for inter-ring sync (default: -1 (use per-chip defaults)) (int)
enable_rc6:Enable power-saving render C-state 6. Different stages can be selected via bitmask values (0 = disable; 1 = enable rc6; 2 = enable deep rc6; 4 = enable deepest rc6). For example, 3 would enable rc6 and deep rc6, and 7 would enable everything. default: -1 (use per-chip default) (int)
enable_dc:Enable power-saving display C-states. (-1=auto [default]; 0=disable; 1=up to DC5; 2=up to DC6) (int)
enable_fbc:Enable frame buffer compression for power savings (default: -1 (use per-chip default)) (int)
lvds_channel_mode:Specify LVDS channel mode (0=probe BIOS [default], 1=single-channel, 2=dual-channel) (int)
lvds_use_ssc:Use Spread Spectrum Clock with panels [LVDS/eDP] (default: auto from VBT) (int)
vbt_sdvo_panel_type:Override/Ignore selection of SDVO panel mode in the VBT (-2=ignore, -1=auto [default], index in VBT BIOS table) (int)
reset:Attempt GPU resets (default: true) (bool)
error_capture:Record the GPU state following a hang. This information in /sys/class/drm/card<N>/error is vital for triaging and debugging hangs. (bool)
enable_hangcheck:Periodically check GPU activity for detecting hangs. WARNING: Disabling this can cause system wide hangs. (default: true) (bool)
enable_ppgtt:Override PPGTT usage. (-1=auto [default], 0=disabled, 1=aliasing, 2=full, 3=full with extended address space) (int)
enable_execlists:Override execlists usage. (-1=auto [default], 0=disabled, 1=enabled) (int)
enable_psr:Enable PSR (0=disabled, 1=enabled - link mode chosen per-platform, 2=force link-standby mode, 3=force link-off mode) Default: -1 (use per-chip default) (int)
alpha_support:Enable alpha quality driver support for latest hardware. See also CONFIG_DRM_I915_ALPHA_SUPPORT. (bool)
disable_power_well:Disable display power wells when possible (-1=auto [default], 0=power wells always on, 1=power wells disabled when possible) (int)
enable_ips:Enable IPS (default: true) (int)
fastboot:Try to skip unnecessary mode sets at boot time (default: false) (bool)
prefault_disable:Disable page prefaulting for pread/pwrite/reloc (default:false). For developers only. (bool)
load_detect_test:Force-enable the VGA load detect code for testing (default:false). For developers only. (bool)
force_reset_modeset_test:Force a modeset during gpu reset for testing (default:false). For developers only. (bool)
invert_brightness:Invert backlight brightness (-1 force normal, 0 machine defaults, 1 force inversion), please report PCI device ID, subsystem vendor and subsystem device ID to [email protected], if your machine needs it. It will then be included in an upcoming module version. (int)
disable_display:Disable display (default: false) (bool)
enable_cmd_parser:Enable command parsing (true=enabled [default], false=disabled) (bool)
use_mmio_flip:use MMIO flips (-1=never, 0=driver discretion [default], 1=always) (int)
mmio_debug:Enable the MMIO debug code for the first N failures (default: off). This may negatively affect performance. (int)
verbose_state_checks:Enable verbose logs (ie. WARN_ON()) in case of unexpected hw state conditions. (bool)
nuclear_pageflip:Force enable atomic functionality on platforms that don't have full support yet. (bool)
edp_vswing:Ignore/Override vswing pre-emph table selection from VBT (0=use value from vbt [default], 1=low power swing(200mV),2=default swing(400mV)) (int)
enable_guc_loading:Enable GuC firmware loading (-1=auto, 0=never [default], 1=if available, 2=required) (int)
enable_guc_submission:Enable GuC submission (-1=auto, 0=never [default], 1=if available, 2=required) (int)
guc_log_level:GuC firmware logging level (-1:disabled (default), 0-3:enabled) (int)
guc_firmware_path:GuC firmware path to use instead of the default one (charp)
huc_firmware_path:HuC firmware path to use instead of the default one (charp)
enable_dp_mst:Enable multi-stream transport (MST) for new DisplayPort sinks. (default: true) (bool)
inject_load_failure:Force an error after a number of failure check points (0:disabled (default), N:force failure at the Nth failure check point) (uint)
enable_dpcd_backlight:Enable support for DPCD backlight control (default:false) (bool)
enable_gvt:Enable support for Intel GVT-g graphics virtualization host support(default:false) (bool)

更新 #4:我目前正在我的 grub 内核行中运行i915.modeset=0,它正在启动,并且我得到了 1024x768(4:3)。

更新 #5:更新到内核 4.16.9 并不能解决问题。

更新 #6:@karel 的回答中的一部分提供了足够好的解决方法。从 gdm3 显示管理器切换到 lightdm 显示管理器即可。然后我也可以i915.modeset=0从 grub 内核行中删除。

sudo apt-get update
sudo apt-get install lightdm
# if lightdm wasn't already installed, it'll ask which dm you want
# if lightdm was already installed, then you need to:
sudo dpkg-reconfigure lightdm
# and choose lightdm over gdm3
reboot

更新 #7:

事实证明,问题不是 gdm3 与 lightdm 的问题。这是旧版 Intel GPU 的 gdm3/wayland 问题。要修复...

terminal...

  • cd /etc/gdm3# 更改目录
  • sudo pico custom.conf# 编辑此文件

查找并更改:

#WaylandEnable=false

对此:

WaylandEnable=false

保存文件。

  • sudo dpkg-reconfigure gdm3# 选择 gdm3 DM

选择 gdm3 并确定。

  • reboot# 重启计算机

笔记:

https://feeding.cloud.geek.nz/posts/linux-kernel-module-options-on-debian/

为 i915 设置内核选项

如何修复损坏的英特尔 GPU i915 驱动程序?

答案1

尝试从 tty 虚拟控制台登录到您的默认桌面环境。计算机启动时卡住后,可以通过按键盘组合键Ctrl+ Alt+访问虚拟控制台。使用您的用户名和密码登录虚拟控制台并运行以下命令。F3

sudo systemctl start graphical.target

如果这不起作用,请将登录显示管理器从 gdm3 切换到 lightdm。LightDM 是比 gdm3 更轻量级的登录显示管理器。

sudo apt install lightdm   
sudo dpkg-reconfigure lightdm 
sudo reboot  

sudo dpkg-reconfigure lightdm将打开一个新窗口,让您选择 lightdm 作为默认登录显示管理器。使用箭头键选择 lightdm,按下Tab键将焦点放在<确定>然后按Enter。然后运行以下命令重启sudo reboot

尝试从 Xorg 而不是 Wayland 启动。/etc/gdm3/custom.conf使用编辑sudo nano /etc/gdm3/custom.conf,取消注释#WaylandEnable=false,然后WaylandEnable=false运行sudo dpkg-reconfigure gdm3 # select gdm3

如果这不起作用,请查看是否至少可以切换到文本模式(出于故障排除目的),而不运行任何 GUI 内容(如 X 服务器)。

sudo systemctl start multi-user.target  

答案2

事实证明,问题不是 gdm3 与 lightdm 的问题。这是旧版 Intel GPU 的 gdm3/wayland 问题。要修复...

terminal...

  • cd /etc/gdm3# 更改目录
  • sudo pico custom.conf# 编辑此文件

查找并更改:

#WaylandEnable=false

对此:

WaylandEnable=false

保存文件。

  • sudo dpkg-reconfigure gdm3# 选择 gdm3 DM

选择 gdm3 并确定。

  • reboot# 重启计算机

相关内容