银河麒麟系统下龙芯浏览器无法使用中文输入法的解决方案

前言

近段时间,我报名参加了软件杯大赛,赛题为设计一个能够运行在银河麒麟系统上的运维智能体,(且系统需运行在国产龙芯架构上)。但是我没有想到,系统自带的龙芯浏览器[1]居然在默认情况下无法使用中文输入法,从而导致无法键入中文。所以这篇文章将会介绍下如何解决这个问题。

问题表现与相关信息

本问题发生在软件杯大赛发放的比赛用虚拟机上。CPU架构为loongarch,芯片为Loongson-3A5000。操作系统版本为 “银河麒麟高级服务器操作系统V11(2503)”,龙芯浏览器大版本为V3 ,详细版本号为3.3.1814.2。如图1所示。

系统与浏览器的版本相关信息截图
图1 系统与浏览器的版本相关信息截图

当我们在任意其他应用,比如图2中的银河麒麟系统的全局搜索页面中,输入法是可以正常使用的。

图2 在麒麟系统的全局搜索中 输入法正常工作截图
图2 在麒麟系统的全局搜索中 输入法正常工作截图

但是在龙芯浏览器中,如图3,即使输入法是启用的,无论如何都无法显示输入法窗口,无法正确键入中文。

右下角红框处展示了输入法已开启,但是浏览器仍然无法输入中文的截图
图3 右下角红框处展示了输入法已开启,但是浏览器仍然无法输入中文的截图

问题分析

经过我的各种测试,发现龙芯浏览器作为 GTK/CHROMIUM程序,在默认情况下并没有正确加载GTK输入法模块。经过进一步的排查后发现,系统中的immodules.cache没有正确生成,导致龙芯浏览器无法接入Fcitx5[2],从而致使浏览器启动时候无法加载输入法。所以重新生成输入法模块缓存即可解决这个问题。

解决方案

首先下列操作均需要系统root权限,先用下面命令提升到root权限。(请勿多次输错密码,银河麒麟操作系统服务器版本输错多次密码会锁定)

sudo su

拿到权限后执行下面命令,安装缺少的组件,并重构输入法缓存。

dnf install fcitx5-frontend-gtk2 fcitx5-frontend-gtk3 fcitx5-frontend-qt5 fcitx5-gtk fcitx5-qt
sh -c '/usr/bin/gtk-query-immodules-2.0-64 > /usr/lib64/gtk-2.0/2.10.0/immodules.cache'
sh -c '/usr/bin/gtk-query-immodules-3.0-64 > /usr/lib64/gtk-3.0/3.0.0/immodules.cache'

安装过程中可能需要输入y字符来进行确认。执行完成后的界面如图4所示

命令执行完成后的程序截图
图4 命令执行完成后的屏幕截图

此时打开龙芯浏览器,重新尝试键入中文,此时可以发现输入法能够正常工作了,如图5所示,问题解决。

输入法恢复后的屏幕截图
图5 输入法恢复后的屏幕截图

参考

  1. ^龙芯浏览器是一款基于CHROMIUM的浏览器,相关文档详见https://www.loongnix.cn/zh/api/lbrowser/
  2. ^银河麒麟系统内带的输入法框架为Fcitx5(小企鹅输入法5),官网:https://fcitx-im.org/

--------------

本文标题为:

银河麒麟系统下龙芯浏览器无法使用中文输入法的解决方案

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,记得载明出处。
内容有问题?想与我交流下?点此哦,欢迎前来交流~
上一篇