openeuler2403系统安装ukui使用intel AX210驱动蓝牙与WiFI
openeuler2403系统安装ukui使用intel AX210驱动蓝牙与WiFI
一,安装UKUI图形界面与VNC
在 openEuler 2403 上配置 VNC 服务,主要分为安装依赖和配置服务两大步骤。核心是安装 tigervnc-server,并以你想要登录的普通用户身份来配置运行它。
安装准备
在配置 VNC 之前,请确保系统已具备图形界面并安装好了 VNC 服务器软件包。
安装桌面环境(如 GNOME 或 UKUI)
如果你的 openEuler 是最小化安装,需要先安装一个图形界面。
# sudo dnf install ukui -y
安装 TigerVNC 服务端
sudo dnf install tigervnc-server -y
安装 tigervnc-server 包即可,它已经包含了所需的核心组件。
在 openEuler 2403 中给 UKUI 桌面环境配置 VNC 时,最常见的黑屏问题,几乎都是因为 ~/.vnc/xstartup 这个配置文件没有正确启动 UKUI 会话。
核心步骤:正确配置 xstartup 文件
这个问题的根源在于,VNC 服务启动时默认运行的是一个极其精简的 xstartup 脚本,它并没有告诉系统要启动完整的 UKUI 桌面环境。我们需要手动修改这个文件,让它来唤醒 UKUI。
请按以下步骤操作:
登录并进入个人目录:请用你准备用来运行 VNC 服务的那个“普通用户”账号登录系统。
备份并编辑 xstartup:
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
备份好原文件后,我们用编辑器创建一个全新的 xstartup 文件,并写入正确的配置。
vi ~/.vnc/xstartup
请将下面的内容完整地复制进去:
#!/bin/sh
# 1. 清除冲突的环境变量
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
# 2. 设置 UKUI 所必需的环境变量
export XDG_RUNTIME_DIR=/tmp/runtime-$USER
export XDG_CURRENT_DESKTOP=UKUI
# 3. 启动 D-Bus 会话
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
eval $(dbus-launch --sh-syntax)
export DBUS_SESSION_BUS_ADDRESS
fi
# 4. 设置美观的灰蓝色背景
xsetroot -solid "#5A6E7A"
# 5. 启动 UKUI 桌面环境
exec ukui-session
对复制粘贴的内容稍作解释:
第 1 部分:清除可能导致问题的变量,让 UKUI 在干净的环境里启动。
第 2 部分:明确告诉系统,我们要启动的是 UKUI 桌面。
第 3 部分:启动 UKUI 依赖的 D-Bus 通信服务。
第 4 部分:设置桌面的背景色,方便判断 UKUI 是否已加载。等一切正常后,你就可以随意更换背景了。
第 5 部分:这是最核心的一步,exec ukui-session 命令会正式启动整个 UKUI 桌面环境。
赋予文件可执行权限:配置文件创建好了,系统还必须知道它可以运行。这一步至关重要,没有权限文件就无法执行。
chmod +x ~/.vnc/xstartup
启动与连接
修改好配置后,就可以启动或重启 VNC 服务了。
停止当前会话:如果 VNC 服务正在运行,需要先把它停下来。
vncserver -kill :1
启动新会话:
vncserver :1 -geometry 1920x1080 -depth 24
参数说明:
:1:表示这是 VNC 服务的第一个桌面,它对应的端口号是 5901。
-geometry 1920x1080:设置远程桌面的分辨率,你可以按自己的需求修改。
-depth 24:设置颜色的深度为 24 位,以获得更好的显示效果。
防火墙放行端口:
sudo firewall-cmd --add-port=5901/tcp --permanent
sudo firewall-cmd --reload
使用客户端连接:现在,你可以用 VNC 客户端(比如 RealVNC 或 TigerVNC),连接到 你的服务器IP地址:1(比如 192.168.1.100:1)并输入密码,应该就能成功看到 UKUI 的桌面了。
二,Intel AX210 WiFI驱动安装
1,查看是否认出设备,明显已找到AX210
# lspci | grep -i network |grep AX210
05:00.0 Network controller: Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz (rev 1a)
在 openEuler 2403 上安装 UKUI 后,Intel AX210 网卡无法驱动,很可能只是缺少了对应的固件包。别担心,我们按下面的步骤来排查,很可能就解决了。
第一步:确认内核基础
openEuler 2403 基于 Linux 6.6 内核,此版本内置的 iwlwifi 驱动完全支持 AX210。我们先用 uname -r 命令确认一下内核版本,只要看到 6.x.x 就满足要求了。
第二步:检查固件与驱动
这很可能就是问题所在。依次执行以下命令来确认:
查看网卡是否被识别:执行 lspci | grep -i network。
正常输出:会看到类似 Intel Corporation Wi-Fi 6 AX210... 的信息,说明硬件已被系统检测到。
如果没有输出:请检查网卡是否正确安装,或在 BIOS/UEFI 中是否被禁用。
检查内核模块是否加载:执行 lsmod | grep iwlwifi。
正常输出:如果返回了包含 iwlwifi 的条目,说明核心驱动已加载。
如果没有输出:尝试手动加载驱动 sudo modprobe iwlwifi 并再次检查。
定位根本原因:执行 dmesg | grep -i iwlwifi 查看内核日志,这是最关键的一步。
...no suitable firmware found!:缺少固件,这是最常见的问题。
...Failed to start RT ucode...:固件加载失败,同样需要更新固件包。
...Timeout waiting for PNVM load...:PNVM 文件加载超时,这是一个已知的兼容性问题,我们会在后文提供解决方法。
...required key not available:安全启动阻止。如果系统启用了 Secure Boot(安全启动),它可能会拒绝加载未签名的驱动模块,导致网卡无法工作。
查找错误信息:会看到具体的失败原因,例如:
第三步:对症下药,解决问题
根据第二步发现的错误类型,选择对应的修复方法。
错误:“No suitable firmware found!” 或 “Failed to start RT ucode...”
这表明缺少正确的固件包,也是最常见的问题。你需要为系统安装正确的驱动和固件。openEuler 使用 dnf 作为软件包管理器:
安装固件包:
sudo dnf updates
sudo dnf install linux-firmware-iwlwifi
注意:请先确认 linux-firmware-iwlwifi 是否为 openEuler 仓库中确切的软件包名,你可以用 dnf search iwlwifi 来搜索。
如果包名不符,请手动更新:
如果包管理器无法安装,可以尝试从 Linux 固件仓库手动下载最新的固件文件:
# 克隆整个固件仓库(文件较大,可选择下载)
git clone
# 或只下载AX210所需的特定固件# 你需要根据 dmesg 错误中提示的具体 .ucode 版本号来下载
sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/iwlwifi-ty-a0-gf-a0-<版本号>.ucode -P /lib/firmware/
请将 <版本号> 替换为 dmesg 日志中提示缺失的文件名(例如 66, 77, 89 等)。。完成后重启系统。
我这里安装 linux-iwlwifi-firemwar后,加载模块发现报错:
sudo modprobe -r iwlwifi
sudo modprobe iwlwifi
查看日志有报错:
[root@euler88 opt]# dmesg | grep -i iwlwifi
[ 12.364052] iwlwifi 0000:05:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-60.ucode failed with error -2
[ 12.364122] iwlwifi 0000:05:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-59.ucode failed with error -2
[ 12.364126] iwlwifi 0000:05:00.0: no suitable firmware found!
[ 12.364128] iwlwifi 0000:05:00.0: minimum version required: iwlwifi-ty-a0-gf-a0-59
[ 12.364131] iwlwifi 0000:05:00.0: maximum version supported: iwlwifi-ty-a0-gf-a0-83
[ 12.364133] iwlwifi 0000:05:00.0: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
查看都是空连接,实际 文件不存在。
[root@euler88 opt]# ls /lib/firmware/iwlwifi-ty-a0-gf-a0-* -al
lrwxrwxrwx. 1 root root 42 3月11日 12:27 /lib/firmware/iwlwifi-ty-a0-gf-a0-59.ucode -> intel/iwlwifi/iwlwifi-ty-a0-gf-a0-59.ucode
lrwxrwxrwx. 1 root root 42 3月11日 12:27 /lib/firmware/iwlwifi-ty-a0-gf-a0-66.ucode -> intel/iwlwifi/iwlwifi-ty-a0-gf-a0-66.ucode
lrwxrwxrwx. 1 root root 42 3月11日 12:27 /lib/firmware/iwlwifi-ty-a0-gf-a0-72.ucode -> intel/iwlwifi/iwlwifi-ty-a0-gf-a0-72.ucode
lrwxrwxrwx. 1 root root 42 3月11日 12:27 /lib/firmware/iwlwifi-ty-a0-gf-a0-73.ucode -> intel/iwlwifi/iwlwifi-ty-a0-gf-a0-73.ucode
lrwxrwxrwx. 1 root root 42 3月11日 12:27 /lib/firmware/iwlwifi-ty-a0-gf-a0-74.ucode -> intel/iwlwifi/iwlwifi-ty-a0-gf-a0-74.ucode
根据日志提示 最大是83,最小是59 ,按要求下载。
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/intel/iwlwifi/iwlwifi-ty-a0-gf-a0.pnvm
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/intel/iwlwifi/iwlwifi-ty-a0-gf-a0-89.ucode
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/intel/iwlwifi/iwlwifi-ty-a0-gf-a0-59.ucode
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/intel/iwlwifi/iwlwifi-ty-a0-gf-a0-83.ucode
cp iwlwifi-ty-a0-gf-a0* //usr/lib/firmware/intel/iwlwifi/ -a
我这里也下载了 pnvm文件,是因为日志有发现 PNVM 丢失,所以也要下载。
573.587994] iwlwifi 0000:05:00.0: Start IWL Error Log Dump:
[ 573.587996] iwlwifi 0000:05:00.0: Transport status: 0x0000004A, valid: 7
[ 573.588000] iwlwifi 0000:05:00.0: PNVM data is missing, please install iwlwifi-ty-a0-gf-a0.pnvm
三,最后验证WIFI
彻底卸载所有 iwlwifi 相关模块
因为 iwlwifi 被其他模块(如 iwlmvm)占用,我们需要按依赖顺序移除:
# 先检查有哪些 iwl 模块在用
lsmod | grep iwl
通常你会看到 iwlmvm、iwlwifi 和 iwlmei 等。按以下顺序卸载(如果某个模块不存在会报错,忽略即可):
modprobe -r iwlmvm
modprobe -r iwlmei
modprobe -r iwlwifi
最后确认模块已完全卸载:
lsmod | grep iwl
# 应该没有任何输出
重新加载驱动
modprobe iwlwifi
验证网卡是否正常工作
dmesg | grep iwlwifi | tail -20
ip a show
如果成功,你会看到类似这样的日志:
iwlwifi 0000:05:00.0: loaded firmware version 83...
iwlwifi 0000:05:00.0: Detected Intel(R) Wi-Fi 6 AX210...
并且 ip a 中会出现一个无线网卡接口(如 wlp5s0)。
为什么刚才 “Module in use”
iwlwifi 是底层硬件驱动,上层的 iwlmvm(MAC 层管理模块)会依赖它。如果 iwlmvm 已经加载,直接卸载 iwlwifi 就会报 “in use”。
所以要先卸载 iwlmvm,再卸载 iwlwifi。
目录 返回
首页