Ubuntu 下 VLC 无法启动(Segmentation fault)终极解决方案

Ubuntu 下 VLC 无法启动(Segmentation fault)终极解决方案

目录

Ubuntu 下 VLC 无法启动(Segmentation fault)终极解决方案

——Intel Alder Lake-P / Iris Xe + Snap VLC 的隐藏大坑

在 Ubuntu Desktop 上启动 VLC 时,报错信息如下:

Driver does not support the 0x46a6 PCI ID. libGL error: failed to create dri screen libGL error: failed to load driver: iris VLC media player 3.0.20 Vetinari (revision 3.0.20-1-g2617de71b6)[00006053694bda00] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface. Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway. Fontconfig warning: FcPattern object width does not accept value [75100) Segmentation fault (core dumped)

这大概率是踩中了 Intel Iris Xe + Snap VLC + 老版本 Mesa 的组合大坑。


一、问题现象

在这里插入图片描述

通过 Ubuntu 自带的应用商店(官网也挂着商店链接)无论是点击图标还是终端执行 vlc,都会出现:

  • 桌面点击 VLC 无反应或闪退
  • 终端启动直接 Segmentation fault
  • 日志中出现 Driver does not support the 0x46a6 PCI ID

二、运行环境(典型触发条件)

  • Ubuntu Desktop:22.04 / 24.04 / 25.10 均可能
  • CPU / GPU
    Intel Alder Lake-P GT2(Iris Xe Graphics)
    PCI ID:0x46a6
  • VLC 版本:3.0.20(Ubuntu 默认)

确认显卡:

lspci |grep -i vga # 输出如下: 00:02.0 VGA compatible controller: Intel Corporation Alder Lake-P GT2 [Iris Xe Graphics](rev 0c)

三、错误信息解读:关键在这一句

Driver does not support the 0x46a6 PCI ID 

这句话的含义非常明确:

  • VLC 在初始化 OpenGL
  • 调用的是 Mesa / libGL
  • 但当前 Mesa 版本 不认识 Alder Lake-P(0x46a6)
  • 导致 OpenGL 初始化失败
  • VLC 在 GUI 初始化阶段直接崩溃

四、为什么升级 Mesa 也没用?

尝试升级 Mesa :

sudo add-apt-repository ppa:kisak/kisak-mesa sudoapt update sudoapt upgrade 

升级后系统 Mesa 确实变新了,但 VLC 依旧崩溃

原因非常隐蔽:

升级的是系统 Mesa,但 VLC 用的不是系统 Mesa。

五、真正的根因:Snap 版 VLC 自带“老 Mesa”

Ubuntu 默认安装 VLC 的方式是:

/snap/bin/vlc 

Snap 的特点是:

每个应用自带独立运行时(包括 Mesa / libGL)
与系统 Mesa 完全隔离

这意味着:

组件使用的 Mesa
系统(升级的)✔ 新 Mesa
Snap VLC(沙盒内)❌ 老 Mesa(不支持 0x46a6)

所以:

  • 无论怎么升级系统 Mesa
  • Snap VLC 仍然使用它自己的老版本 Mesa
  • 仍然不支持 Alder Lake-P
  • 仍然 Segfault

确认是否在用 Snap 版:

which vlc 

如果输出:

/snap/bin/vlc 

那问题就找到了。


六、正确解决方案(核心)

卸载 Snap 版 VLC → 安装 APT 版 VLC → 使用系统 Mesa

1. 移除 Snap VLC

sudo snap remove vlc 

确认已删除:

snap list |grep vlc 

2. 安装 APT 版 VLC

官网也提供了命令:

在这里插入图片描述
sudoapt update sudoaptinstall vlc 

确认路径:

which vlc 

应为:

/usr/bin/vlc 

3. 首次启动(可选)

QT_QPA_PLATFORM=xcb vlc --avcodec-hw=none --vout=x11 

此时 VLC 应能正常打开 GUI。


七、一个常见小坑:bash 路径缓存

如果卸载 Snap 后执行:

bash: /snap/bin/vlc: No such file or directory 

这是因为 bash 缓存了旧路径。

清除缓存:

hash -r 

或直接重开终端。


八、最终验证

which vlc # /usr/bin/vlc vlc # GUI 正常启动,无崩溃

错误全部消失:

  • ❌ Driver does not support the 0x46a6 PCI ID
  • ❌ libGL error
  • ❌ Segmentation fault

九、原理总结(一句话版)

Snap VLC 使用的是“自带的老 Mesa”,APT VLC 使用的是“系统的 Mesa”,而 Alder Lake-P 只在较新的 Mesa 中被支持。

Read more

Python实现 MCP 客户端调用(高德地图 MCP 服务)查询天气示例

Python实现 MCP 客户端调用(高德地图 MCP 服务)查询天气示例

文章目录 * MCP 官网 * MCP 官方文档中文版 * 官方 MCP 服务示例 * Github * MCP 市场 * 简介 * 架构 * 高德地图 MCP 客户端示例 * python-sdk 客户端 * java-sdk 客户端 MCP 官网 * https://modelcontextprotocol.io/introduction MCP 官方文档中文版 * https://app.apifox.com/project/5991953 官方 MCP 服务示例 * https://github.com/modelcontextprotocol/servers Github * python-sdk:https://github.com/modelcontextprotocol/python-sdk * java-sdk:

By Ne0inhk
43-dify案例分享-MCP-Server让工作流秒变第三方可调用服务

43-dify案例分享-MCP-Server让工作流秒变第三方可调用服务

1.前言 之前我们为大家介绍过MCP SSE插件,它能够支持MCP-server在Dify平台上的调用,从而帮助Dify与第三方平台提供的MCP-server进行无缝对接。有些小伙伴提出了疑问:既然Dify可以通过MCP SSE插件调用其他平台的MCP-server,那么Dify的工作流或Chatflow是否也能发布为MCP-server,供其他支持MCP client的工具使用呢?今天,我们将为大家介绍一款Dify插件——mcp-server,它能够实现这一功能,即将Dify的工作流或Chatflow发布为MCP-server,供其他第三方工具调用。 插件名字叫做MCP-server,我们在dify插件市场可以找到这个工具 Mcp-server 是一个由 Dify 社区贡献的 Extension 类型插件。安装后,你可以把任何 Dify 应用转变成符合 MCP 标准的 Server Endpoint,供外部 MCP 客户端直接访问。它的主要功能包括: * **暴露为 MCP 工具:**将 Dify 应用抽象为单一 MCP 工具,供外部 MCP 客户端(如

By Ne0inhk
【MCP】详细了解MCP协议:和function call的区别何在?如何使用MCP?

【MCP】详细了解MCP协议:和function call的区别何在?如何使用MCP?

本文介绍了MCP大模型上下文协议的的概念,并对比了MCP协议和function call的区别,同时用python sdk为例介绍了mcp的使用方式。 1. 什么是MCP? 官网:https://modelcontextprotocol.io/introduction 2025年,Anthropic提出了MCP协议。MCP全称为Model Context Protocol,翻译过来是大模型上下文协议。这个协议的主要为AI大模型和外部工具(比如让AI去查询信息,或者让AI操作本地文件)之间的交互提供了一个统一的处理协议。我们常用的USB TypeC接口(USB-C)统一了USB接口的样式,MCP协议就好比AI大模型中的USB-C,统一了大模型与工具的对接方式。 MCP协议采用了C/S架构,也就是服务端、客户端架构,能支持在客户端设备上调用远程Server提供的服务,同时也支持stdio流式传输模式,也就是在客户端本地启动mcp服务端。只需要在配置文件中新增MCP服务端,就能用上这个MCP服务器提供的各种工具,大大提高了大模型使用外部工具的便捷性。 MCP是开源协议,能让所有A

By Ne0inhk