KDE Baloo 文件索引使用笔记

Baloo 是什么#

Baloo 是 KDE Plasma 自带的桌面文件搜索引擎(类似 Windows 索引服务 / macOS Spotlight)。

组件说明
baloo_file后台索引进程,递归扫描文件并写入数据库
balooctl6KDE 6 下的命令行管理工具(Fedora 44 / Plasma 6)
索引库默认在 ~/.local/share/baloo/index,可达数 GB

用途:KDE 启动器 / Dolphin 里按文件名、内容快速搜索。

开发场景下通常用不到——搜代码靠 IDE / rg,Baloo 反而可能拖慢系统。

典型问题(开发机 + 双系统)#

在 HP Pavilion Aero(Fedora 44 / KDE Plasma 6)上遇到过:

  • baloo_file 占 ~1.7GB 内存,进程状态 DN(卡在磁盘 I/O)
  • 索引库 ~4GB
  • 代码仓库放在 NTFS 分区 /run/media/ian/Windows/...(fuseblk 挂载)
  • Baloo 扫 NTFS + Cursor / git 文件监听叠加 → 整机卡顿、swap 暴涨

balooctl6 status 在 I/O 阻塞时可能卡几十秒才返回,本身也是症状。

HP Pavilion Aero Fedora 44 电池续航调优笔记

背景#

机器:HP Pavilion Aero 13-be1xxx,AMD Ryzen 5 5625U (Zen 3, 6c12t),36 Wh 小电池,2560×1600 IPS 屏,Fedora 44 / kernel 7.0 / KDE Plasma。

拔电跑 Cursor agent 编码时整机功率 9-12W,想压低 idle 基线并提升续航。

硬件画像(先确认)#

# 电池容量与状态
cat /sys/class/power_supply/BAT0/uevent

# CPU / pstate / EPP / boost
cat /sys/devices/system/cpu/amd_pstate/status                    # active
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor     # powersave
cat /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference

# 平台 profile(HP PMF / hp-wmi)
cat /sys/firmware/acpi/platform_profile_choices                  # cool quiet balanced performance

# Wi-Fi 省电
iw dev wlp1s0 get power_save

# 现有电源服务(不能同时跑 TLP 和 power-profiles-daemon)
systemctl is-active tlp power-profiles-daemon tuned

三项立刻能拿到的优化(实测有效)#

# 1. Wi-Fi 省电(MT7922 默认 off,开启省 ~0.3-0.5W)
sudo iw dev wlp1s0 set power_save on

# 2. EPP 拉到 power(idle 降 ~0.5-1W)
echo power | sudo tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference

# 3. 键盘背光关掉(如果有)
echo 0 | sudo tee /sys/class/leds/*kbd_backlight*/brightness 2>/dev/null

不要再去试 platform_profile=cool/quiet,本机 BIOS 拒收,见后文。

将钉钉deb转rpm

DingTalk Fedora Packager#

把官方钉钉 Linux .deb 包重新打成 Fedora 可安装的 .rpm。

这个项目不是通用 deb -> rpm 转换器,只处理钉钉包,并固化了 Fedora 上实际踩到的兼容问题。

处理代码#

![[build_dingtalk_rpm.py]]

背景#

官方钉钉 Linux 包主要面向 Debian/Ubuntu 系发行版。直接原样转换成 RPM 后,在 Fedora 上会遇到几个典型问题:

  • 菜单入口执行 /opt/apps/com.alibabainc.dingtalk/files/Elevator.sh,它会走钉钉自带的预加载逻辑。
  • 包内旧版 libm.so.6 会遮住 Fedora 系统库,导致 GLIBC_2.38、GLIBC_2.43 等符号找不到。
  • dingtalk_dll.so、libconference_new.so 带有 executable stack 标记,Fedora 会拒绝加载。
  • RPM 如果声明拥有 /usr/bin、/usr/share/applications 这类系统目录,会和 filesystem 包冲突。

这里的处理思路参考了 zhullyb/dingtalk-for-fedora,并整理成一个可以直接处理本地 .deb 的脚本。

已验证版本#

本次实际处理并验证通过的钉钉版本:

com.alibabainc.dingtalk_8.1.0.6021101_amd64.deb

生成并验证通过的 Fedora RPM:

com.alibabainc.dingtalk-8.1.0.6021101-4.x86_64.rpm

验证环境为 Fedora 44 x86_64,glibc 2.43。其他钉钉版本可以用脚本尝试处理,但需要重新验证启动和会议等核心功能。

环境依赖#

构建依赖:

sudo dnf install python3-rpm rpm cpio xz patchelf binutils tar

运行依赖会写进生成的 RPM,安装时由 dnf 自动处理:

Dedora

内存不够用导致的卡顿#

使用systemd-oomd去管理内存#

⚙️ 为什么浏览器可能还会偶尔卡顿?#

systemd-oomd 的触发机制比较“宽容”:它会等待系统资源压力达到一定阈值(基于 PSI 指标)才行动。在它出手之前,你可能已经感受到了短暂的卡顿。这是为了避免误杀而做的平衡设计——如果阈值设得太低,可能你正在编辑的文档还没来得及保存就被杀掉了。

🛠️ 如果你想让它更“积极”一点#

可以调整 systemd-oomd 的配置,让它响应更快。不过需要注意:修改系统默认配置有一定风险,建议先在测试环境尝试。

  1. 查看当前配置:

    cat /etc/systemd/oomd.conf

    通常这个文件是空的或只有注释,所有默认值都编译在二进制中。

  2. 创建自定义配置(需要 root 权限):

    sudo mkdir -p /etc/systemd/system/systemd-oomd.service.d
    sudo tee /etc/systemd/system/systemd-oomd.service.d/override.conf <<EOF
    [Service]
    Environment=SYSTEMD_OOM_DEFAULT_MEM_PRESSURE_LIMIT=10%
    Environment=SYSTEMD_OOM_DEFAULT_MEM_PRESSURE_DURATION_USEC=1s
    EOF

    上面的设置会把内存压力阈值从默认的 50% 降低到 10%,且持续时间从 5s 缩短到 1s。这意味着系统会更敏感、更早出手。

  3. 重新加载并重启服务:

    sudo systemctl daemon-reload
    sudo systemctl restart systemd-oomd

✅ 总结#

  • 你的 systemd-oomd 已经正常工作了,系统大概率不会因为浏览器内存泄露而彻底卡死。
  • 如果你依然遇到明显卡顿,可以:
    • 调整 systemd-oomd 的灵敏度(如上所示)。
    • 或者安装 earlyoom 作为第二道防线:sudo dnf install earlyoom && sudo systemctl enable --now earlyoom。