When booting `lineage-22.1-20250202-UNOFFICIAL-virtio_arm64only.img` on Debian 13 ARM `libvirt` at some point I face every 5 seconds:

```
init: starting service 'vendor.boot-default'...
libprocessgroup: Failed to find NormalIoPriority process profile
init: ... started service 'vendor.boot-default' has pid 178
init: Service 'vendor.boot-default' (pid 178) received signal 6
init: Sending signal 9 to service 'vendor.boot-default' (pid 178)
process group...
libprocessing: Removed cgroup /sys/fs/cgroup/uid_1000/pid_178
```

How to solve this issue?
Aug 12, 11:35pm

The error you're encountering, particularly the line:

text
libprocessgroup: Failed to find NormalIoPriority process profile

is a known issue in Android-based systems (like LineageOS) running on non-Android kernels (e.g., a standard Linux kernel under libvirt). This happens because the Android-specific cgroup and process group configurations (like NormalIoPriority) are not available or compatible with the host kernel.


Root Cause

  • LineageOS (and Android in general) expects certain cgroup v1 features and process profiles (e.g., NormalIoPriority) to be present in the kernel.
  • Debian 13 (and most modern Linux distributions) use cgroup v2 by default, which does not support these legacy Android-specific profiles.
  • The libprocessgroup library (part of Android's init system) fails to find these profiles, causing the service to crash repeatedly.

Solutions

1. Force cgroup v1 on the Host (Recommended)

Since LineageOS expects cgroup v1, you can configure your Debian 13 host to use cgroup v1 for the VM.

Steps:

  1. Edit the kernel command line for the VM in libvirt:

    • Open the VM's XML configuration:
      bash
      virsh edit <vm-name>
    • Add the following to the <kernel> or <cmdline> section:
      xml
      <cmdline>systemd.unified_cgroup_hierarchy=0</cmdline>
      (This forces the VM to use cgroup v1.)
  2. Alternatively, pass it via QEMU args (if using virt-install or qemu directly):

    bash
    -append "systemd.unified_cgroup_hierarchy=0"
  3. Restart the VM and check if the error persists.


2. Modify LineageOS Init Scripts (Advanced)

If you cannot switch to cgroup v1, you may need to patch LineageOS's init scripts to avoid relying on NormalIoPriority.

Steps:

  1. Extract the init binary from the LineageOS image.
  2. Modify the init.rc or vendor.boot-default.rc to remove or comment out the NormalIoPriority process group.
  3. Repack the image and test.

⚠️ Warning: This requires deep knowledge of Android internals and may break other functionality.


3. Use a Custom Kernel with Android Support

If you're running LineageOS in a VM, consider:

  • Using a kernel with Android-specific patches (e.g., android-kernel or a custom linaro kernel).
  • Checking if LineageOS provides a virtio-compatible kernel for ARM64.

4. Check for LineageOS-Specific Fixes

  • Search the LineageOS GitHub/GitLab for issues related to libprocessgroup and NormalIoPriority.
  • Example: LineageOS Gerrit or XDA Developers.

5. Debugging Further

If the issue persists:

  • Check the full logcat output for more details:
    bash
    adb logcat
  • Look for missing cgroup controllers in /sys/fs/cgroup/.

Next Steps

  1. Try forcing cgroup v1 first (Solution 1) – this is the most straightforward fix.
  2. If that fails, check LineageOS forums for ARM64-specific guidance.
  3. If you're comfortable with kernel tweaks, Solution 3 (custom kernel) may be necessary.

Would you like help with any of these steps in more detail? For example, modifying the libvirt XML or extracting the init scripts?

Aug 12, 11:35pm

This is a shared conversation and may include unverified content that doesn't reflect Mistral AI's views. Login to resume chatting.

Vibe can make mistakes. Check answers. Learn more