Solved Upgrade to 15.1 on a Lenovo M93p Tiny

Hi there,

Yesterday I jumped the gun, and attempted an upgrade from 15.0 to 15.1 Release, and thought I'd share my experience. The system is a fairly old Lenovo M93p Tiny, with using drm-kmod/i915. Unfortunately, it fell at the first fence, when at first boot, after applying the new kernel, the boot process kernel panicked and then went into a boot loop. Thankfully I was able to boot from from previous environment. So probably should have waiting a few weeks maybe. However I've got another machine with exact same specs, and did a clean from scratch install of 15.1, without incident so..¯\_(ツ)_/¯. I would say that I did follow the procedure correctly, doing the necessary updates etc. before attempting the upgrade. I've got to say, however, that this is the first time I've done an major or minor upgrade and had this happen to me. Its always been pretty smooth.

Any way, i'd thought I'd share that.

Mark
 
Have you upgraded your kmod ports? Especially drm-kmod?
You have to: pkg upgrade -fr FreeBSD-ports-kmods
And verify that each kmod is well for your kernel (you can see that in the name of the package).

A good measure is to disable the load of i915kms and automatic start of Xorg if any. After reboot, you load manually the i915kms kmod and see what happen.
 
A good measure is to disable the load of i915kms and automatic start of Xorg if any. After reboot, you load manually the i915kms kmod and see what happen.
Disabling the DRM drivers is good. Just leave it off until you've done the entire upgrade of the base OS. Then upgrade the kmods. Once that's done you can try enabling them again.

The 'problem' starts when the kernel is upgraded and that first reboot. It'll try to load the DRM driver built for 15.0 on a 15.1 kernel. That's going to cause problems.

Thankfully I was able to boot from from previous environment.
Booting in single user mode should work too. If you have the DRM driver correctly in kld_list it won't get loaded in single user mode, thus not crash the system[*]. Then disable kld_list, reboot and continue the upgrade process.

[*] This is one of the reasons to use kld_list instead of loader.conf, because loader.conf WILL load those kernel modules in single user mode. You could circumvent that by dropping to the loader prompt, load the kernel yourself, and boot it to single user mode. But that's a bit more tricky.
 
judging from the responses, the drm driver was probably the culprit, which goes along with my thinking. I'll disable loading the driver in kld_list and see what happens.
Thanks
 
Have you upgraded your kmod ports? Especially drm-kmod?
You have to: pkg upgrade -fr FreeBSD-ports-kmods
And verify that each kmod is well for your kernel (you can see that in the name of the package).

A good measure is to disable the load of i915kms and automatic start of Xorg if any. After reboot, you load manually the i915kms kmod and see what happen.
I'll do that, plus disable loading i915, and see what happens. Thanks.
 
OK, slight update, commenting out kld_list appears to do the trick, and if I'd done a bit of homework first, I would have known. Never mind.

On a side note, I've not another old PC, a HP Pavilion 550-182na, which has go an ancient Nvidia NVS 310 card in it. That upgrade to 15.1 went without incident.

Thanks
 
an ancient Nvidia NVS 310 card
The 'regular' NVidia driver typically doesn't depend on kernel functions that change, so they often "just work". Things get a lot more hairy if you use the NVidia-DRM drivers, similar to the Intel/AMD DRM drivers, those depend on LinuxKPI in the kernel and that's a very fast moving target.

Edit: That old NVidia driver probably still works because it's using 8.0 or 9.0 kernel calls. Those still work because a GENERIC kernel has COMPAT_FREEBSD8. And I'm pretty sure those old 8.0 kernel calls haven't changed in at least 10 years :D
 
Back
Top