It’s been quite a while since my last post here on this blog. But now the time has come to let everyone on the internet know the solution to a problem that I struggled with for a few days now – how to install LTSP 2019 on LUbuntu 16.04 with PXE booting.

Background

At work, we have around 100 old HP T5745 thin stations running ThinPro with kernel 2.2. They are old, and limited in many ways. One example is that it’s not possible to run anything newer than Windows Server 2012 through RDP, which is what we use them for. Finding an OS that is recent, fits in those small HDDs, and at the same time fulfills the hardware specs are next to impossible. For a little over a year now it’s been nagging me, “it should be possible”, “there must be some OS out there that let’s me install a recent version of rdesktop so that we can connect to our servers newer than Windows Server 2012”.

We’ve put interns on it, they failed. I’ve done some lame attempts trying to find something that worked, but didn’t had the time to really investigate. Until now.

What I’ve tried

So for the last week I’ve been trying all sorts of different combinations. I tried to install:

  • Ubuntu 18.04 with LTSP 2019
  • Ubuntu 18.04 with LTSP5
  • LUbuntu 18.04 with LTSP 2019
  • LUbuntu 18.04 with LTSP5
  • Ubuntu Minimal with its own TFTP server
  • ThinStation 6.2, 6.1, 6.0, and 5.6 (5.6 was nearly working and I was struggling with that for a whole day, but gave up after moments of frustration)

Then I tried some Raspberry Pi stuff:

  • PiNet (worked out of the box, but didn’t seem to be maintained, and wasn’t what I was looking for)
  • Several different combinations and hacks with PXE booting the Raspberry Pi 3 with different kernels and so on, and so on
  • LTSP for Raspberry Pi 2 and 3
  • LTSP 2019 for Raspberry Pi 2 and 3

Every time I ended up with something that booted the kernels, then hung in different ways. Every time if failed in one way, I investigated that, solved it, and then another issue arised. I was almost giving up.

A last desperate attempt

I took a day of the project to sort my thoughts, and then it hit me; why not try an older OS? Said and done, I installed LUbuntu 16.04 (i386) on a VMware server to act as LSTP host for the T5745. I didn’t do any upgrades and installed LTSP5 just to be sure it would be compatible with the old client machine, because hey, I’d already tried all the new stuff right. :)

To my surprise, it booted the kernels, and started the post process of the LTSP server. it got hung when failing to load the root system, but at least it got passed the kernel freeze I experienced the last thousand times I tried (it felt like a million times to be honest).

It got my hopes up, but after trying to get LTSP5 to work passed the error with loading the root system, I gave up on that one too.

The solution

Then I thought, hmm, since it posted in LTSP5, maybe it will post in LTSP 2019 as well, at least that one are maintained and recent. So on it again; clean install of LUbuntu 16.04, no upgrades, installed LTSP 2019 according to their docs and guess what – it actually worked!

The secret

When everything was up and running I made a snapshot of the VM to debug what the cause for the error actually was. I like to keep things updated, so the first thing I did was upgrading the OS with apt dist-upgrade, made a new ltsp image and booted the T5745 over PXE – nothing. Back to square one. So what was the difference? Pretty easy once I noticed it actually. It turned out to be that for some strange reason the T5745 can’t boot kernels newer than 4.10. When upgrading Ubuntu with dist upgrade the latest kernels were aṕplied (4.15) and it wouldn’t boot passed the kernels. Reverting back to 4.10 solved the issue.

Conclusion

It felt like I literally searched the whole internet for a solution. It turned out to be simple, use the Linux kernel 4.10 and it just works. The guys at LTSP 2019 were friendly enough to help me sort the last pieces of the puzzle as well, for example a current bug in LTSP which has to be worked around – but other than that, it’s all working great!

I hope this post helped others trying to archive the same thing as me – finding an OS or a solution to running something recent, on hardware that are too old to even exist. :)

Update 2019-11-05

As I pinpointed the issue down to being a kernel issue, I tried to install Ubuntu Mate 18.04 (32-bit) as the LTSP server, upgraded everything to the latest stuff, then downgraded the kernels to the latest 4.10 from mainline. I then installed LTSP 2019 according to their docs and it worked out of the box, without any issues at all. I tested the speed to and from the server in Epotes and got around 900 MB/s throughput.

I’m satisfied.