【信创】解决擎云L410无法运行Electron应用问题
本文最后更新于 266 天前,其中的信息可能已经有所发展或是发生改变。

0x00 前言

华为擎云L410是华为商用终端信创产品线的一台笔记本电脑,采用麒麟990处理器,Mali-G76作为GPU,广泛应用于国企、政府、事业单位等有国产化要求的单位。华为擎云L410目前官方提供两种操作系统,分别是统信UOS和银河麒麟。本文主要针对在银河麒麟上运行较高版本的Electron(大于v20)应用程序出现的 undefined symbol: gbm_bo_map 问题提供临时解决方案。经测试,本方法对 Visual Studio Code、Typora、GitHub Desktop、Clash For Windows 等Electron应用程序均有效,接下来以安装Github Desktop后解决 gbm_bo_map 问题为例,介绍解决方案。

0x01 安装GitHub Desktop

打开终端,通过apt可直接从银河麒麟软件源安装 GitHub Desktop

sudo apt install github-desktop -y

安装后在终端输入

github-desktop

尝试启动,发现终端返回:github-desktop: symbol lookup error: github-desktop: undefined symbol: gbm_bo_map 错误

此问题来自于新版本的Electron调用了一个gbm特性,华为的旧版本Mali驱动中没有编译该特性,而统信UOS最新版使用的1.4.2版本的驱动中已经增加了 gbm_bo_map 符号,因此只需将相应的动态链接库挪过来即可(文件将在文末给出)

0x02 解决问题

首先,在终端输入

which github-desktop

查询app可执行文件位置,得到返回值:/usr/bin/github-desktop

随后通过file命令确认具体文件位置

file /usr/bin/github-desktop

得到返回值:/usr/bin/github-desktop: symbolic link to /usr/lib/github-desktop/github-desktop,可知/usr/bin/github-desktop是一个符号链接。再继续通过file寻找可执行文件:

file /usr/lib/github-desktop/github-desktop

得到返回值:/usr/lib/github-desktop/github-desktop: ELF64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=37bbe6c35dc3c9b5f3c4af284d91aa40e094931c, not stripped;可知/usr/lib/github-desktop/github-desktop就是我们在寻找的二进制可执行文件位置。

执行ls查看目录情况(注意 是查看可执行文件所在目录):

ls /usr/lib/github-desktop/

出现如上图所示的目录结构,则可知此文件夹就是一个标准的Electron应用程序结构(包括chrome_100_percent.pak、chrome-sandbox)等。接下来我们需要把高版本的Mali动态链接库拷贝到这个文件夹。在终端打开我提供的新版本GPU驱动文件夹:

文件夹内有:libgbm.so.1 libmali.so.0 libwayland-client.so.0 三个动态链接库。我们需要把它们复制到需要动态链接库的Electron应用的文件夹内

sudo cp ./libgbm.so.1 /usr/lib/github-desktop/
sudo cp ./libwayland-client.so.0 /usr/lib/github-desktop/
sudo cp ./libmali.so.0 /usr/lib/github-desktop/

复制完成后,应用程序即可正常打开和启动:

0x03 附件及注意事项

下载文中提到的Mali驱动:

本地下载:Mali驱动.zip

通过百度网盘下载:Mali驱动.zip 提取码: y2dh

注意事项

您不应该将本文所附的任何动态链接库直接放置在系统lib路径(如/lib或/lib64)内,以免影响系统图形界面的稳定性;在复制前做好必要的文件备份,以免出错,本文中所有指令都仅供参考,请您依据实际情况适时地修改。

本方法在搭载中标麒麟V7(工程机系统)、银河麒麟V10 SP1 2203和银河麒麟V10 SP1 2303的华为擎云L410上测试均未发现任何问题,在统信UOS或华为擎云W515(亦搭载麒麟990芯片)上未测试过,理论上也可以用。

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇