ubuntu上electron开发,操作hid设备

455 阅读2分钟

ubuntu上使用electron开发,操作hid设备,报错权限不足,需要更改用户组权限解决这个问题。另外打包后程序放到麒麟系统上运行,报错基础库找不到,需要降低g++版本解决这个问题。

权限不足

  • 临时解决方案
sudo chmod 666 /dev/hidraw0

打包后运行报错信息

ubuntu 22系统打包后运行正常,把.deb包放到麒麟系统上就报错了。 image.png

/lib/x86_64-linux-gnu/libstdc++.so.6:version 'GLIBC_3.4.32' not found
/lib/x86_64-linux-gnu/libc.so.6:version 'GLIBC_2.33' not found

解决方法

  • 使用命令在 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 文件中查找包含 "LIBCXX" 字符串
srtings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep LIBCXX
  • 以下是在utuntu上的日志。
dev@dev-A320M-S2H:/$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep LIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBCXX_3.4.29
GLIBCXX_3.4.30
GLIBCXX_3.4.31
GLIBCXX_3.4.32
GLIBCXX_3.4.33
GLIBCXX_TUNABLES
GLIBCXX_DEBUG_MESSAGE_LENGTH

  • 在ubuntu上到GLIBCXX_3.4.33 ,而在麒麟系统中到GLIBCXX_3.4.30,所以找不到GLIBCXX_3.4.32,然后就报错了。
  • GLIBCXX_3.4.33的版本与nodejs的编译环境有关,主要与g++的版本有关。
  • 解决方案就是降低打包编译环境下g++版本。 把ubuntu上G++版本从13.2 版本,降低到g++9 .
要将Ubuntu上的g++版本从13.2降低到g++9,请按照以下步骤操作:

1.  首先,安装g++-9:

sudo apt install g++-9

2.  然后,更新系统的默认g++版本为g++-9:

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 60

3.  检查当前使用的g++版本:

g++ --version

4.  如果需要更改g++的版本,可以使用以下命令:

sudo update-alternatives --config g++

然后根据提示选择要使用的g++版本。

5.  最后,再次检查g++版本以确保更改已生效:
g++ --version
  • 降低g++版本之后麒麟系统上HID通讯就可以正常运行了。