WSL2 Ubuntu升级后Emacs启动触发Segment Fault问题求助
Emacs在WSL2 Ubuntu升级后启动触发Segment Fault问题解决建议
环境信息
- Windows 10
- WSL2
- Ubuntu 22.04.3 LTS
- Emacs 28.1(build 1.x86_64-pc-linux-gnu,GTK+ Version 3.24.20,cairo version 1.16.0),编译于2022-05-31
问题描述
Ubuntu系统升级后,Emacs GUI版本启动即触发Segment Fault错误。执行emacs -Q(跳过用户配置)仍出现相同错误,但emacs -nw(终端模式)可正常启动;xeyes能正常运行,说明X Window系统工作正常。
回溯日志
$ emacs& [1] 566 ~ $ Backtrace: emacs[0x530a92] emacs[0x4269f7] emacs[0x426ee1] emacs[0x52efed] emacs[0x52f06d] /lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7f2118225520] /usr/lib/wsl/drivers/nv_dispig.inf_amd64_7e5fd280efaa5445/libnvwgf2umx.so(+0x1471253)[0x7f21014c9253] /usr/lib/wsl/drivers/nv_dispig.inf_amd64_7e5fd280efaa5445/libnvwgf2umx.so(+0x1470e54)[0x7f21014c8e54] /usr/lib/wsl/drivers/nv_dispig.inf_amd64_7e5fd280efaa5445/libnvwgf2umx.so(+0x14c11c5)[0x7f21015191c5] /usr/lib/wsl/drivers/nv_dispig.inf_amd64_7e5fd280efaa5445/libnvwgf2umx.so(+0x2aa8719)[0x7f2102b00719] /usr/lib/wsl/drivers/nv_dispig.inf_amd64_7e5fd280efaa5445/libnvwgf2umx.so(+0x2aa5bd5)[0x7f2102afdbd5] /usr/lib/wsl/drivers/nv_dispig.inf_amd64_7e5fd280efaa5445/libnvwgf2umx.so(+0x2aa653a)[0x7f2102afe53a] /usr/lib/wsl/drivers/nv_dispig.inf_amd64_7e5fd280efaa5445/libnvwgf2umx.so(+0x2c445d4)[0x7f2102c9c5d4] /usr/lib/wsl/lib/libD3D12Core.so(+0x2dbab3)[0x7f2110df3ab3] /usr/lib/wsl/lib/libD3D12Core.so(+0x2fee0c)[0x7f2110e16e0c] /usr/lib/wsl/lib/libD3D12Core.so(+0x24c73f)[0x7f2110d6473f] /usr/lib/wsl/lib/libd3d12.so(+0xc47c9)[0x7f21111617c9] /usr/lib/wsl/lib/libd3d12.so(+0x492ca)[0x7f21110e62ca] /usr/lib/wsl/lib/libd3d12.so(+0x4919c)[0x7f21110e619c] /usr/lib/wsl/lib/libd3d12.so(+0x4910f)[0x7f21110e610f] /usr/lib/wsl/lib/libd3d12.so(+0x482a9)[0x7f21110e52a9] /usr/lib/wsl/lib/libD3D12Core.so(+0x242fb2)[0x7f2110d5afb2] /usr/lib/wsl/lib/libD3D12Core.so(+0x244533)[0x7f2110d5c533] /usr/lib/wsl/lib/libD3D12Core.so(+0x244d3b)[0x7f2110d5cd3b] /usr/lib/wsl/lib/libd3d12.so(+0x4851c)[0x7f21110e551c] /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so(+0xb4cb56)[0x7f2111d7cb56] /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so(+0xb4b10c)[0x7f2111d7b10c] /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so(+0xb4b3ba)[0x7f2111d7b3ba] /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so(+0xacdf0)[0x7f21112dcdf0] /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so(+0x6edf6b)[0x7f211191df6b] /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so(+0x6edea7)[0x7f211191dea7] /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so(+0xad703)[0x7f21112dd703] /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so(+0xb6749)[0x7f21112e6749] /lib/x86_64-linux-gnu/libGLX_indirect.so.0(+0x30243)[0x7f2113193243] /lib/x86_64-linux-gnu/libGLX_indirect.so.0(+0x36380)[0x7f2113199380] /lib/x86_64-linux-gnu/libGLX_indirect.so.0(+0x32eb5)[0x7f2113195eb5] /lib/x86_64-linux-gnu/libepoxy.so.0(epoxy_glx_version+0x2f)[0x7f2117f3945f] /lib/x86_64-linux-gnu/libgdk-3.so.0(+0x74840)[0x7f211c1b0840] /lib/x86_64-linux-gnu/libgdk-3.so.0(+0x7beb9)[0x7f211c1b7eb9] /lib/x86_64-linux-gnu/libgdk-3.so.0(+0x69aab)[0x7f211c1a5aab] /lib/x86_64-linux-gnu/libgdk-3.so.0(gdk_display_manager_open_display+0x14f)[0x7f211c17468f] ... ^C [1]+ Segmentation fault emacs
解决建议
- 强制使用软件渲染:编辑
~/.bashrc或~/.zshrc,添加export LIBGL_ALWAYS_SOFTWARE=1,执行source ~/.bashrc生效后再启动Emacs。此方法绕过WSL2与NVIDIA驱动的GPU加速兼容性问题。 - 更新WSL2内核与NVIDIA驱动:在Windows PowerShell中执行
wsl --update更新WSL2内核;同时下载并安装Windows端最新NVIDIA显卡驱动(WSL2的GPU驱动依赖Windows端组件)。 - 升级/重新编译Emacs:当前使用的Emacs 28.1编译于2022年,可能与升级后的系统依赖库不兼容。可通过PPA安装新版本:
或自行编译Emacs,确保链接最新的GTK、cairo等系统库。sudo add-apt-repository ppa:kelleyk/emacs sudo apt update && sudo apt install emacs29 - 禁用GTK3硬件加速:在shell配置文件中添加
export GDK_BACKEND=x11,重启终端后启动Emacs,强制GTK3使用X11后端而非GPU加速后端。
内容的提问来源于stack exchange,提问作者Chihiro Fukazawa
相关产品推荐
相关产品推荐

