Gentoo Proprietary Softwares Workaround

Introduction

在使用linux的时候,有时你会不得不面对安装一些专有软件的困境。
如果你运气好,可能在网上可以找到一些解决这些问题的教程,如果运气不好,你可能就有些束手无策了。 这篇文章主要就我个人在处理这些软件时遇到的问题以及附带的一些解决方案。

我的电脑环境:

  • Gentoo Linux x86_64
  • Linux Kernel: 6.6.32
  • Wayland Compositor: Hyprland
  • CPU/GPU: Intel 13900H/Xe Graphics

QQ/Wechat

在QQ推出新版本之前,在Linux上安装使用QQ一直是一件难事,不过自从QQ NT版本出现后,tx逐渐优化了他们的软件对Linux的支持。

gentoo用户可以使用 eselect repository enable gentoo-zh 来启用gentoo-zh软件源安装 或者使用flatpak版本(方便,且自带沙盒,便于管理)

Vivado

建议直接使用 flatpak 版本的 Vivado, 不仅省时省力,还给 Vivado 提供了一个简单的沙盒环境,强烈推荐👍

接下来就是臭名昭著的Vivado了 在最新版的安装包中,Vivado 看似取消了对不兼容 Linux 发行版的安装限制, 但在最后一步 Generating installed devices list 时会因为系统缺少 libtinfo.so.5 而卡住。 解决方法是安装 ncurses:5``ncurses-compat 及相关库。Gentoo 已经不再提供老版本的 ncurses 了,所以你可能需要先自己处理一下相关运行时, 并在运行Vivado安装程序时在前面加上 LD_PRELOAD='linbtinfo.so.5'

其次,建议在安装完成后把Vivado文件夹内的lib中对不同发行版的运行库 Rhel SuSE Ubuntu 全部复制出来,放到上级目录 lnx64.o 中。

Xilinx_Support

Vitis

基本上操作与 Vivado 相同,但也建议将 lib 文件夹内的运行库依赖拷贝出来,不然有可能会遇到启动时无反应的问题。 注: flatpak 版本也可能会遇到上述问题,需要手动解决一下。

Wayland HIDPI设置

Vivado好像不会采用环境变量的设置,但是在Vivado的设置界面 Tools -> Settings -> Display 可以手动设置缩放

调用外部编辑器

调用时需要重置运行库设置(不使用Vivado自己的),可以通过写一个外部脚本实现。 不记得之前是从哪里看到这个解决方案的了。。。等我找到再贴上来吧。

#!/usr/bin/bash
unset LD_LIBRARY_PATH
emacsclient -n -w "$1" > /dev/null 2>&1

在 flatpak 版本调用外部编辑器:
先在主机上设置.v文件的默认编辑器,再在 Vivado 中设置使用 xdg-open [filename] 打开

STM32CubeMX

貌似 CubeMX 在 Gentoo 下还是会无法生成 STM32CubeIDE 项目,目前还没搞明白具体为什么会这样。。。
查日志的时候看到的报错都是 NullPointerException,有点无语😅

现在可能的解决方案:

  • 在它的设置里更换 STM32CubeMX 的源仓库,不要让他放在家目录下,可能可以解决无法生成 CubeIDE 项目的问题。
  • 使用 distrobox,每次都使用 distrobox 里的 ubuntu 容器打开 CubeMX,但还是有机率会挂。
  • 使用 flatpak 或者 docker 之类的工具给他打一个包,但问题是每次它自动更新都会失败, 也就意味着你可能需要每次更新都得为他打一个包。理论上最优解,但可能比较费事。
  • 使用 STM32CubeIDE。相对来说比较简单的解决方法,但还是有时候会莫名其妙闪退, 而且 Eclipse 我也有点用不习惯。。。
  • 使用 PlatformIO 或者 CMSIS 库,一劳永逸解决问题 (真的有人想在它给的注释中间写代码吗) ,但学习成本相对来说会比较高。

Matlab

基本上是字面意义上的开箱即用,按照官方教程安装完就可以直接使用了。可能装完之后还会有一些 opengl 和 wayland 缩放的问题, 不过基本上按照 Arch Wiki 上的教程都可以解决,还是非常舒适的。



 

f3rmata

I’m just sittin’ here watching the wheels going round and round.