`/proc/cpuinfo` 里为什么有些字段是大写
lqgmeow
如题,首先感谢大佬们,在 Morefine 3a6000 迷你主机上安装 Loong Arch Linux 基本顺利
然后尝试 fastfetch
的时候先是发现仓库里的版本会 sagmentation fault,然后从 Arch x86 仓库抄了一个 PKGBUILD,删掉 yyjson 依赖就能编译运行了(已经提交 PR,不过我只在本机测试
然而 cpu 型号显示是 Unkown,于是看了下源代码,fastfetch
是通过解析 /proc/cpuinfo
识别 cpu 信息的,而 Loong Arch Linux 上 /proc/cpuinfo
里是 Model Name
而不是 x86 各种发行版上的 model name
,导致 fastfetch
不识别。还有很多其他的也是大写的,跟 x86 的发行版不一样。这个是有规范的吗,还是随便的吗?
seeseesee
Debian sid的情况和Arch类似,但识别没问题
lqgmeow
seeseesee 我今天试着改了下 fastfetch 源代码,发现是 /proc/cpuinfo
第一行后面空行的问题……它那个 parse 的函数原本就可以处理大小写了。可能 debian 上的 fastfetch 是打了补丁的?我是这么打补丁的,现在在我机器上没问题了
diff --git a/src/detection/cpu/cpu_linux.c b/src/detection/cpu/cpu_linux.c
index 5b948150..d83948b9 100644
--- a/src/detection/cpu/cpu_linux.c
+++ b/src/detection/cpu/cpu_linux.c
@@ -145,7 +145,7 @@ static const char* parseCpuInfo(FILE* cpuinfo, FFCPUResult* cpu, FFstrbuf* physi
while(getline(&line, &len, cpuinfo) != -1)
{
//Stop after the first CPU
- if(*line == '\0' || *line == '\n')
+ if((*line == '\0' || *line == '\n') && cpu->name.length > 0)
break;
(void)(
就是这么干跟 dev
分支是冲突的……下次更新要重写(
seeseesee
lqgmeow 前几天Debian sid更新了fastfetch,结果更新后出现了你在一楼碰到的问题了,看来以前的版本是手工修正过?要彻底改好估计要在上游打补丁。
lqgmeow
seeseesee 当时发帖第二天作者大佬就在 dev
分支更新了:https://github.com/fastfetch-cli/fastfetch/issues/1204
我也把作者的补丁向后移植到2.21.3,合并在了 PR 里 https://github.com/loongarchlinux/extra/pull/11