Unacceptable Boot Time (Solved)

I found the time to boot to be lamentable, “out of the box” after a fresh install of openSUSE Leap 15.0. Given that the OS is installed on a SSD, it should not be so and I’ve known better before. I took a number of steps (in the order shown below), and it’s all wonderful now.

btrfsmaintenance

I’m a bit lazy to go stare at the logs, so I try to figure it out from “what it says” on the screen upon boot. First thing, I saw it would seemingly hang a few seconds with a chron job of btrfsmaintenance. Given that there is not a single btrfs partition on that system, that is very curious.

Easiest solution (in my case): remove btrfsmaintenance from system.

Wicked Network Manager

Wicked indeed. I did see in the past (say openSUSE 13.1) things at boot get bogged down because it’s preparing a network interface and shows up a countdown (some 15 seconds maybe?). This is a wired connection. The delay in setting up the interface should be about zero (isn’t that systemd junk supposed to be multi-tasking?!).

Solution: Switched to NetworkManager using Yast. No more silly delay.

Boot time is getting better, but I still have that problem of the animation at boot time that keeps going on and on. Sometimes just a long time, sometimes seemingly forever, and sometimes not long at all. That’s not annoying; that’s utterly unreliable! I did see that in the past though, and now I’m in the mood to nail that for good.

Homemade kernel config

I see messages like this at boot time:
ata3: softreset failed (device not ready)

And not for the first time. Maybe it’s time to do something about it? I did some readings, and this computer has a chipset SB 700, which (we are told) requires the kernel configuration:
CONFIG_SATA_PMP=n

Really? Build a whole kernel just for that? Well let’s try it. I’ve been using Gentoo in the last few years, so I’m familiar with that step, though never dared with openSUSE. Is there anything special to do here, like openSUSE patches to be applied against the kernel? Good news: you grab a vanilla kernel and you’re done. At first, I modified the config of the kernel shipped with openSUSE. That was taking forever to build! Enough. I grabbed a config from a Gentoo install on the same machine, stripped Gentoo specific section, and we are done in no time. Also going lean:

from: 6.8 MB kernel, ~250 MB modules
to: 6.6 MB kernel, 6.9 MB modules

Nice. Obviously you got to do your homework and know your partner to reach this, and that’s good only if you don’t change hardware every five minutes (that machine is largely unchanged since 2009, so I think it will be fine).

The message about “softreset” disappeared, but it would still randomly hang at boot at the loading animation. Well, that’s good: I was thinking that’s nasty if people got to rebuild the kernel to get things working properly, and especially with older hardware, as we keep repeating that as a selling point for Linux. At least now I got 4.14 kernel, which is LTS.

Plymouth (the #1 culprit)

The kernel log has a long list of something wrong with a bunch of Qt stuff when it’s stuck at the animation. Ok. So maybe disable that thing and hope of the best?

Solution: Add to the kernel option in grub2 the following: plymouth.enable=0. It’s fine now. Later on, remove that plymouth thing from system. Boot time is too short to be worth loading and displaying an animation.

Wicked -> /etc/sysconfig/network/config

CHECK_DUPLICATE_IP=“yes” -> CHECK_DUPLICATE_IP=“no”
WAIT_FOR_INTERFACES=“30” -> WAIT_FOR_INTERFACES=""

That being said, boot time is insignificant. You should rarely have to reboot. If you do, you are doing it wrong.

Thanks for the trick.

As for reboot, that computer is generally used by other people than me, so I’m going with their workflow (to get them to use Linux rather than creepy Win10 is a satisfying achievement). If it was up to me, it would be mostly sleep/wake (like s2ram) than on/off. Actually… that computer stays unused sometimes (if not often) for consecutive days, so I’m not sure I would use sleep.