Arch Linux 安装 openpose 踩坑记录

尝试在 Arch Linux 上安装 CMU-Perceptual-Computing-Lab/openpose

  1. 使用 yay -S openpose安装遇到错误:

image-20240722093728360

在 AUR 的 openpose软件包 评论下找到可能的解决办法:

image-20240722094126178

没有找到 yay 安装时的具体错误位置,错误似乎相似,开始尝试:

没有找的这个文件,并且在 AUR 中的多个 caffe 都安装失败,也没有找到 abseillts 这个软件包。

  1. 尝试从源代码构建

根据教程走,遇到问题

image-20240722105914105

缺少 atlas-lapack 包,使用 yay 安装,遇到问题

image-20240722110031689

在 AUR 的 atlas-lapack 软件包评论下找到解决方案:

image-20240722110139489

参照解决办法注释警告行:

image-20240722110216233

重新安装,报新的错误(部分节选):

image-20240722110343284

image-20240722110357882

根据最后的大段提示,其中部分提到

CPU Throttling apparently enabled!
It appears you have cpu throttling enabled, which makes timings
unreliable and an ATLAS install nonsensical.

If your machine has OS throttling enabled, it is critical that you disable
it (with something like cpufreq-set).

如果您的机器启用了操作系统节流,则必须禁用它(使用类似 cpufreq-set 的命令)。有关详细信息,请参阅 INSTALL.txt。

翻译:

CPU 节流显然已启用!
看来您已启用 CPU 节流,这会使计时不可靠,ATLAS 安装毫无意义。

如果您的机器启用了操作系统节流,则必须禁用它(使用类似 cpufreq-set 的命令)。有关详细信息,请参阅 INSTALL.txt。

应该是指定评论提到的问题(我在解决上一个问题之前已经按照上面的做法做了,但是仍然报这个错误。再做一遍):

编辑:/etc/default/grub中的内容,修改以下行:

1
GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable"

评论是这么写的,但是我仅仅是把intel_pstate=disable添加到了末尾。

更新 grub :

1
grub-mkconfig -o /boot/grub/grub.cfg

启用 acpi-cpufreq 模块

1
2
3
4
su root # 切换到 root 用户
echo "acpi-cpufreq" > /etc/modules-load.d/acpi-cpufreq.conf
restart
exit # 退出 root 用户

找到问题所在了,原评论中写:

And then enable acpi-cpufreq module: su root echo “acpi-cpufreq” > /etc/modules-load.d/acpi-cpufreq.conf restart.

他把所有命令都写在了一行,我在终端执行的命令为:

1
echo "acpi-cpufreq" > /etc/modules-load.d/acpi-cpufreq.conf restart

我查看 /etc/modules-load.d/acpi-cpufreq.conf 发现其中内容是 acpi-cpufreq restart ,所以评论者的意思应该是把acpi-cpufreq写入,然后重启系统的意思。

现在cpupower可以正确设置频率了。禁用 throtling:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sudo pacman -S cpupower 
# 这里原评论
sudo cpupower frequency-set -g Performance
# 下面是输出:
Setting cpu: 0
Setting cpu: 1
Setting cpu: 2
Setting cpu: 3
Setting cpu: 4
Setting cpu: 5
Setting cpu: 6
Setting cpu: 7
Setting cpu: 8
Setting cpu: 9
Setting cpu: 10
Setting cpu: 11
Setting cpu: 12
Setting cpu: 13
Setting cpu: 14
Setting cpu: 15

这里应该就是应用于所有核心了。完成

但问题还是没有解决,给的教程是基于 intel cpu 的 ,前面编辑/etc/default/grub禁用的是 intel_pstate ,而我使用的是 AMD。

多方查找无果,放弃。

总结一下问题:

yay 安装 openpose 出错,需要两个包,其中一个是 caffe ,尝试使用 yay 安装 caffe

1
yay -S caffe-cuda # 使用GPU加速版本

报错:和 glog 有关,查了一下可能是版本问题,使用 downgrade 降级 glog:

1
sudo downgrade google-glog

从 0.7.0 降级到 0.6.0 ,重新安装,原本错误不再报。新错误找不到头文件 <opencv2/core/core.hpp>,查了一下,头文件实际位于:/usr/include/opencv4/opencv2/core/core.hpp,把/usr/include/opencv4/添加到 g++ 编译器的头文件搜索路径中:

1
2
3
4
vim ~/.zshrc # 使用 bash 就是~/.bashrc
# 添加下面一行,保存并退出
export CPLUS_INCLUDE_PATH=/usr/include/opencv4:$CPLUS_INCLUDE_PATH
source ~/.zshrc # 使修改立即生效