• 0 Posts
  • 50 Comments
Joined 1 year ago
cake
Cake day: June 23rd, 2024

help-circle



  • Sure. The following are the bits that I’m pretty sure are universal. The rest – mostly configuring my audio interface – is IMO fairly specific to my system and can be found in my dotfiles.

    • Limits for Pipewire:
      # /etc/security/limits.d/25-pw-rlimits.conf
      @pipewire   - rtprio  95
      @pipewire   - nice    -19
      @pipewire   - memlock 4194304
      
    • Add the realtime group and grant it access to /dev/cpu_dma_latency so Ardour can prevent the system from going into idle:
      # /etc/udev/rules.d/40-realtime-privileges.rules
      KERNEL=="cpu_dma_latency", GROUP="realtime"
      
    • Add threadirqs and preempt=full to the kernel commandline
    • Disable VM swap readahead since Kinoite uses ZRAM anyways:
      # /etc/sysctl.d/50-audio.conf
      vm.page-cluster = 0
      
    • Set IO scheduler to None for SSDs and NVMe:
      # /etc/udev/rules.d/60-block-scheduler.rules
      ACTION=="add|change", SUBSYSTEM=="block", ATTR{queue/rotational}=="0", KERNEL=="nvme?n?", ATTR{queue/scheduler}="none"
      ACTION=="add|change", SUBSYSTEM=="block", ATTR{queue/rotational}=="0", KERNEL=="sd?", ATTR{queue/scheduler}="none"
      

    I’m not using a preempt kernel or anything like that; I’ve only gotten into audio when Pipewire had already hit the scene and I’ve found it to be good enough with these settings.


  • Right, if you insist: Fedora Kinoite, Thinkpad X1 Carbon 4th Gen, some sysctl tweaks for low-latency audio.

    Yesterday I realized my password database (which I sync between computers/phones via Syncthing) was broken, because I had failed to regularly manage upgrades for my Syncthing container, and Syncthing had recently released a v2.0. My monitoring was insufficient and so I hadn’t noticed the Syncthing container on my laptop hadn’t been running since ~September. When I got Syncthing running again, I had already made changes to my password database on all three synced devices, so Syncthing generated a number of password.sync-conflict-<date>-<time>.kdbx files. Normally that’s not a big deal because my password manager has the ability to merge two password databases together, but this time around 400 entries showed issues when merging.

    So, armed with a big ol’ mug of mulled wine, I bit the bullet and started checking entries manually. After a trip to the KeePassXC bug tracker and the merger code, it turned out that the entries only differred in a few seconds in the _LAST_MODIFIED attribute, which can happen when my laptop is a) on battery, which causes the system clock to go a little off when the voltage drops and b) disconnected from the internet so the NTP client doesn’t have a change to sync time. Both happened a lot during the months the time my password database had failed to sync – we had gone to Paris (lovely place, can wholly recommend a visit) and my GF’s daughter is in the habit of watching shows on the computer without plugging in the power.

    So I shrugged, merged anyway, ignored the error messages, deleted the sync-conflict files, and called it a day. Maybe the wine played a role in that decision, maybe not.

    Thank you for coming to my TED‌ talk.







  • I, cannot disguise,
    all the stomach pains
    and the walking of the cranes
    when you, do come out
    and you whisper up to me
    in your life of tragedy
    But I cannot grow
    till you eat the last of me
    oh when will I be free
    and you, a parasite
    just find another host
    just another fool to roast
    cause you
    my tapeworm tells me what to do
    you
    my tapeworm tells me where to go
    Pull the tapeworm out of your ass, HEY
    Pull the tapeworm out of your ass, HEY
    Pull the tapeworm out of your ass, HEY
    Pull the tapeworm out of your ass, HEY