Category: technology

Blog posts about some interesting tech. May include some self-hosting and server tutorials, some ThinkPad magic etc.

  • Performance optimization on x200 with Void Linux

    Performance optimization on x200 with Void Linux

    ThinkPad X200: CPU tunings, C-states and dracut optimization

    The ThinkPad X200 is an old laptop, but it’s still great for everyday use (within reason, of course) — especially with a lightweight and unobtrusive distribution like Void Linux. The hardware of X200 is simple, well-known, and straightforward, making it a great choice for manual optimization.

    With a few tweaks to the settings, you can get the most out of the Core 2 Duo processor. You’ll have a faster boot, a more responsive system, and lower energy consumption, without any loss of stability.

    CPU governor: schedutil instead of ondemand

    The first thing I’d suggest adjusting is the CPU governor, since it directly affects how the processor responds to load.

    On Void Linux, you’ll need to install cpupower first:

    sudo xbps-install -S cpupower

    Then, we set the governor to schedutil:

    sudo cpupower frequency-set -g schedutil

    An active governor can be checked like this:

    cpupower frequency-info

    This setup doesn’t require a reboot, so you can test different modes right away.

    schedutil vs ondemand

    on demand

    It’s a classic governor that keeps an eye on the load and automatically increases the frequency if it needs to. It’s reliable, but it often reacts with a delay and works according to a simple “threshold” principle, meaning it only works when the CPU load measurement exceeds a predefined limit.

    schedule

    It’s a more modern approach that uses data directly from the Linux scheduler. The frequency is adjusted more precisely and faster, so the system works more fluidly — even on older CPUs like the Core 2 Duo.

    In practice, schedutil gives a “lighter” feel, especially for shorter, frequent workloads (opening applications, switching windows, I/O).

    C-states and cpuidle (ACPI)

    C-states are basically the processor’s energy levels when it’s not doing much. The idea is simple: when the CPU has nothing to do, it goes into a deeper sleep state and uses less power.

    The ThinkPad X200 has the following features:

    • C1: the basic state of rest
    • C2 is a deeper state that uses less energy.

    These two states might seem a bit basic compared to today’s CPUs, but they’re actually enough to cut down on consumption when the system’s not doing much, without messing with how quickly it responds.

    You can check the active CPU idle driver like this:

    cat /sys/devices/system/cpu/cpu0/cpuidle/current_driver

    This system uses ACPI_IDLE, which is standard for this generation of Intel processors and doesn’t require any extra settings.

    Why change dracut at all?

    Void Linux uses dracut to generate the initramfs — a minimal root filesystem that’s loaded before the real system. Its job is to get the hardware ready and make sure the kernel can mount the right root filesystem.

    The problem is that the default dracut configuration is very general: it includes network modules, supports various storage configurations and such, but we’re not planning on using any virtual drivers or file systems on this hardware.

    I wanted to go for a minimalistic approach to speed up the boot time:

    • Host-only initramfs

    Only what this laptop really needs goes into the initramfs.

    • Removing unnecessary modules

    Without network boot, RAID, LVM, encryption and virtualization.

    • Fast compression

    LZ4 decompresses significantly faster than gzip, which is clearly visible on an older CPU.

    I created a special configuration file for this optimization at /etc/dracut.conf.d/x200.conf.

    Here’s what it looks like in full:

    # Generate initramfs only for this hardware
    hostonly="yes"
    hostonly_cmdline="yes"
    
    # Do not include network modules
    omit_dracutmodules+=" network ifcfg "
    
    # Remove unnecessary storage and VM modules
    omit_dracutmodules+=" lvm mdraid multipath crypt btrfs nfs iscsi cifs fcoe vmware "
    
    # Uses fast compression
    compress="lz4"
    
    # Don't wait for devices that don't exist
    rd.retry=0
    
    # Minimal file systems
    filesystems+=" ext4 "
    
    # Do not add firmware that is not needed
    omit_drivers+=" nouveau radeon amdgpu "

    After changing the configuration, the initramfs is regenerated with the standard command:

    sudo dracut -f

    After applying CPU tuning and dracut optimization, the boot time dropped from about 42 to 27 seconds. This is especially noticeable during a cold start because the system reaches the login prompt faster and the whole process seems simpler and “cleaner”, without unnecessary pauses.

  • /e/OS on an old LG G6

    /e/OS on an old LG G6

    Hey, ever wondered what happens when you install /e/OS on a phone from a dusty drawer?

    With Android smartphones getting bigger and more complex, and Google keeping a close eye on them, it’s nice to use custom ROMs, microG, and similar options. As for the physical aspects of a phone, a 6.1-inch screen is considered compact these days. Crazy. Hey, have you ever thought about what it’d be like if there was an alternative? Like, what if there was a super compact phone with a simple, private, and secure Android system that was well-integrated?

    My LG G6, the old champ from 2017, was just sitting in a drawer for about a year. Before that, it was used a lot since it was released on the market. It might’ve been considered a big phone at one point, but now it feels nice and compact, and it’s super practical. I wanted to give it a new life—without Google, without a bunch of unnecessary apps, without AI enhancements, and with a system that respects privacy. I decided to try out /e/OS for a week.

    A new life for an old phone

    looks pretty, right?

    The LG G6 was used by someone else for two or three years before I got it, and then I used it for three full years. It’s got its share of scars, like a scratched camera, a loose USB port, and a screen that can’t keep up with the speed of modern panels. I’m used to 120Hz, so 60Hz screens feel “heavy” now. I’m a bit disappointed that the LG G6’s LCD IPS screen didn’t meet my expectations.

    Even so, using the small, simple phone was surprisingly comfortable. I’ve totally stopped thinking about how a phone is held and if it can be used with one hand when I’m judging phones. Now I think that should be one of the main things I look for. It doesn’t feel like it’s in the pocket of the pants, and it doesn’t ruin their shape (which is important for people who wear suits).

    The battery is decent, the size is perfect for one hand, and the design is still nice. No massive cases, no unnecessary sensors—just the basics. And it was exactly what I needed, even if I didn’t realize it at the time.

    I think I’ve developed a new desire: a modern, compact Android phone with a simple and elegant design.

    Manual installation and pleasant surprise

    I was pleasantly surprised by the manual installation.

    I decided to install /e/OS manually via the console from the computer. It was a bit of a challenge, especially with the loose USB port, but with some practice and good instructions, it all went smoothly. The process is similar to the one used for Lineage OS. You just flash the boot partition, boot the recovery partition, and then flash the ROM via ADB.

    The /e/OS installation instructions are pretty good, even for beginners, and the list of supported devices is long. But keep in mind that for most devices, the current ROM is usually behind the current Android and Lineage OS versions. This might be an issue for some folks, especially if they’re searching for specific features like the Modes option, which isn’t available for Android 13 (based on /e/OS for the LG G6). I actually missed that while I was at work.

    I was hooked right after the first boot. It’s got a minimalist design, simple icons, and everything is where it should be. It’s not bloatware, and there’s no Google. The system is light, the interface is fast, and the navigation is natural.

    even long dogs like new LG G6 and /e/OS

    Apps that respect your privacy

    Privacy is important to me, so I was using de-googled systems long before this experiment. I haven’t used a Google account in years, and I’m used to alternatives. /e/OS gave me a logical next step on that path. MicroG, a replacement for Google Play Services, works like a charm. Notifications, logins, and applications that require Google APIs work perfectly.

    Since breaking up with Google, I’ve only had what I really need on my phones: ProtonMail, Bitwarden, Signal, Aegis Authenticator, OsmAnd for navigation, and a few stock Android apps. It was the same with the /e/OS installation. I installed everything through App Lounge, which works stably even in anonymous mode — something I’ve had trouble with before on the Aurora Store.

    But the app for my banking is an exception. I tried both, the version that uses Google Play Services and the version from Huawei AppGallery, which doesn’t use them. None of them worked. But there might be a few things going on here, and I didn’t start an argument.

    WhatsApp, Signal (Play Services version), Microsoft Teams, ProtonMail, local train apps, and my mobile provider’s app all work just fine. As for FOSS applications, they work like they should.

    Still, years are years…

    Now, let’s talk about the hardware. As great as that little phone was, the LG G6 is showing its age. The refresh rate of 60 Hz makes the screen sluggish, and the phone gets hot when you put too much strain on it. The camera doesn’t meet today’s standards. Everything works, but it’s clear you’re using something old. The experiment was a nice change of pace, but it was obvious that /e/OS needed better hardware.

    There’s also an unfulfilled desire for a modern version of the LG G6 — a premium, elegant, compact phone that the world deserves.

    Transition – forever?

    What started as an experiment turned into everyday life. I also put /e/OS on my newer phone, but I keep my LG G6 as a nostalgic side device.

    It’s not just about the software. It’s all about having the right mindset — that we can have our privacy without having to give anything up. Even older devices can shine when you give them the right attention.

    If you’ve got an old phone, you’re itching to break away from Big Tech, and you’ve got a bit of technical patience, /e/OS is worth a try. And maybe, like it did for me, it’ll change your everyday life.

    /e/OS on Motorola Edge 30

    NB: I’m leaving some room for mistakes because we’re about to start the real in-depth testing of /e/OS now, after I installed it on my main phone.