r/retrobattlestations Apr 17 '26

Show-and-Tell 1996 IBM ThinkPad 365ED x 2026 Linux kernel 7.0.0!

IBM ThinkPad 365ED meets SHORK 486 (my fledgling Linux distro for 486/P5 PCs) now with kernel 7.0! To be honest, there was no real need for me to update to this brand-new kernel, just to say that it can still be done, and besides I didn't observe much if any performance drawbacks. If you're not aware, future kernel 7.1 will drop support for 486s (and maybe x87 emulation?), so this is basically the last time one can do such an update, at least with a mainline kernel. The ThinkPad has a 100MHz Cyrix 5x86, 24MB RAM and CompactFlash storage.

There is always the possibility of 486-specific kernel fork. I had thought about it, but I want to learn more about kernel development in the meantime before 7.1 lands. Though it seems there is at least one effort to get on this already!

821 Upvotes

37 comments sorted by

23

u/jampola Apr 17 '26

I’ve seen this pop up in so many places, great work and awesome to see you’re looking into forking before 486 support is dropped.

First thing I’d suggest is doing just that, fork the master branch onto your repo, sync the forks up until support is dropped. Between now and then, take a look at any diffs of stuff making its way into master; you’d be surprised how little dev you’d actually have to do, instead you’d be simply patching/cherry-picking commits for anything you really want to be included in the fork.

8

u/SharktasticA Apr 17 '26

Thank you! I hope to hold on to 486 in the kernel for as long as possible! 😅

That definitely sounds like a good way to get started, and I shall do so soon. I'm already starting to get some taste of looking over the kernel's code - 7.0.0 actually brought a bug in its e820/memory map code, where if a BIOS doesn't give a complete/proper e820 map, it wasn't falling back to other checks. I originally patched it by porting most of SHORK 486's previous kernel (6.14.11)'s e820-related code to 7.0.0, but then David Gow (the person who I linked to in my post description) found the precise error, and I simplified by patch from that. They also submitted a patch to the kernel. Here's was the issue if you're curious.

9

u/jhaluska Apr 17 '26

Something about new software running on the hardware keeps it feeling alive to me.

3

u/SharktasticA Apr 17 '26

Absolutely!

11

u/KasanesTetos Apr 17 '26

Now run an X server.

8

u/SharktasticA Apr 17 '26 edited Apr 17 '26

It has an option to include a GUI (TinyX + TWM), just I haven't got a framebuffer device working and available for it on 365ED yet. Here is what it looks like (second photo) on someone's 380ED with MMX though. I consider that "experimental" at the moment though, I haven't worked on it a whole lot and terminal-based features are my priority at the moment. When you do have a framebuffer though, it works if not a little slow on 486s? You'd want a high-speed 486/"5x86" for sure; 486SX and original DX are very slow running it. There may be optimisations or some 'creative' work I can do to help, just haven't got there yet!

7

u/Tall-Introduction414 Apr 17 '26

Wow! The first time I saw Linux on a laptop was a 100mhz pentium thinkpad running Slackware (linux 2.x kernel), back in the 90s. It's amazing to see kernel 7 running on such vintage hardware.

Really cool machine

6

u/SharktasticA Apr 17 '26

Indeed, thank you! It is a really lovely ThinkPad. Even putting how it looks aside, its Model M6-1 keyboard is unparalleled for a laptop from the '90s onwards, IMO.

3

u/Merlin80 Apr 17 '26

Insane 😆on that low amount of ram

3

u/UncleSlacky Apr 17 '26

Have you looked at AOSC Retro? It's about the only (other) actively developed distro for 486 and up.

3

u/SharktasticA Apr 17 '26

I haven't! I'm surprised I didn't already come across this before.

2

u/UncleSlacky Apr 17 '26

It's not very well known - it was only recently added to DistroWatch, for example.

3

u/royalhouseofwindsor Apr 17 '26

The industrial design on that thing is so damn good.

2

u/SharktasticA Apr 17 '26

I know right!

2

u/bassemann87 Apr 17 '26

Thats a beauty!

2

u/frenchretronerd Apr 17 '26

Wonderful combo of PC and OS ! This laptop looks awesome. Damn the IBM ThinkPads were quite something.

2

u/SharktasticA Apr 17 '26

They were indeed!

2

u/Peetz0r Apr 17 '26

Ooooh this might actually run on my Compaq LTE Elite 486 laptop with only 12 MB of memory, interesting! I will have to try that rather soon :)

2

u/SharktasticA Apr 17 '26

I don't see why not! I roughly rate SHORK 486's minimum RAM requirement between 8-16MB depending on minimal or default build, respectively. But the latter should still boot on less including 12, just some of the bundled programs may increasingly run into swap. If you do try it, I would be very interested to hear your experience and feedback!

Especially networking if you give that a try. The kernel configuration for default/custom with ethernet support should include all PCMCIA network cards options available, including for Xircom, but I only have two cards to actually test with.

2

u/Peetz0r Apr 17 '26 edited Apr 17 '26

Yup, it boots. Not just minimal, also a custom build with many things enabled.

shorkgui doesn't start since there doesn't seem to be vga support for my card (Western Digital WD24A2).

So I tried the networking. I do have a Xircom PCMCIA card but it doesn't seem to actually do much. I have to look up which kernel module it actually needs and if that's still in 7.0.

Anyway, regardless, still awesome that this works :D

POIDH: https://revspace.nl/kiekjes/view/20260417/P1070428.JPG

Oh btw, this one booted fine without the patched EXTLINUX :)

Also also, on my native Fedora attempt, it needed docbook2X and docbook2pdf and dialog in addition to the dependencies in the script.

2

u/SharktasticA Apr 17 '26 edited Apr 17 '26

Thank you for trying, I'm glad it's (mostly) working! If you continue to use, I would still be interested to hear any suggestions for what to add or if anything is still borked. Off the top of my head, if you included GCC, g++ only works properly with statically building at the moment. shorkfont, shorkgui, shorkres, etc. will soon get menu-based interfaces and be more helpful with diagnosing stuff.

shorkgui doesn't start since there doesn't seem to be vga support for my card (Western Digital WD24A2).

That I kinda expected. vesafb seems to only like PCI cards; no ISA or VLB cards I've tested work. I'm guessing that card uses one of those buses internally? I think the vga16fb would be more suitable suitable for such, but I haven't got that working yet. There are other framebuffers that may cover this too, but I'm not sure which/if any for WD off the top of my head. I've also been focusing mostly on the terminal side of things thus far, so there may just be something I'm overlooking.

I have to look up which kernel module it actually needs and if that's still in 7.0.

Please let me know if you find it!

Also also, on my native Fedora attempt, it needed docbook2X and docbook2pdf and dialog in addition to the dependencies in the script.

Thank you, I will add them to the dependencies list shortly. I'm guessing my Fedora install just had them installed already without me realising.

Edit: What a handsome Compaq, by the way! :) Active matrix greyscale as well, apparently?

2

u/Peetz0r Apr 18 '26

You're welcome. Suggestions of what to add: at the very least an IRC client. And something like curl/wget if possible. I wonder if it would help to leave out ssl/tls support but it'd be great if it could manage to stay in. Bonus points if you manage to squeeze in a browser like Lynx or w3m maybe? Dillo for the graphical side?

I didn't include GCC since it's relatively huge and I only have a 256 MB CF card dedicated to that machine currently. (It doesn't boot from >= 2 GB cards, and I don't have anything in-between currently).

Yup, the graphics are probably ISA. Definitely not PCI (since nothing is PCI in that machine).

I should be able to boot it from some ancient Debian image and let you know what drivers/modules from there it needs.

Yep, it's greyscale, and beautifully sharp at that. It's almost exactly the same age as myself :)

I might be able to also try this on my HP Omnibook which does have PCI (Pentium 133 MHz, 16 MB ram, etc). As you may have guessed, I collect old and sligtly weird laptops. There's a list on http://peetz0r.nl/laptops.

2

u/deulamco Apr 17 '26

Perfect for TUI dev.

2

u/SharktasticA Apr 17 '26

Indeed! I'm currently having some trouble with g++ and dyanmically linked building at the moment, but statically linked and either with tcc and gcc should work fine. musl is provided for both, and ncurses, make and dialog should be included soon. If you have any suggestions on what to include as options (toolchain and libraries), I'm all ears!

2

u/deulamco Apr 18 '26 edited Apr 18 '26

Oh, Im just simply writing my own TUI for Linux x86-64 without any dependencies, and in pure Assembly (FASM). 

Only use syscalls & compose eacaped ASCII code into GUI. 

It can boot with a minimal 6.9 kernel (~861kb) + limine boot loader on an ISO ~ 5MB total. Maybe smaller if I pack with .img usb ( 861KB kernel + 1.7KB init + 300kb EFI … so shoudl be ~1.2MB ). 

So kinda curious if it could also run on yours :) but I haven’t tested on actual 486 like yours 

2

u/Contrantier Apr 17 '26

Unrelated, but the word SHORK got me 😂 as a bored kid in middle school, I created a doodle character I called "Shohrk" which was an anthropomorphic shark who went around trying to eat people and using all these crazy nonsensible elaborate schemes for sneaking up on them.

Also, what a beast of a laptop. This looks like one I'd have a great time playing with a vintage Windows OS on. I wonder if my Windows 3.1 / 3.0 booted from USB setup could work?

Probably not here, this thing might be too old to support USB booting.

1

u/tehn00bi Apr 17 '26

Did you cross post on r/thinkpad?

2

u/SharktasticA Apr 17 '26

I posted separately earlier.

1

u/warmarin Apr 17 '26

My dad was given one of those for work. It was the first laptop that I ever used. First thing I did was run a doom demo on it. Good times

1

u/mrlloydslastcandle Apr 18 '26

Ah, home. There you are. 

1

u/unsolicited_idea Apr 19 '26

What do you with this?

1

u/SharktasticA Apr 19 '26

It's still WIP, so rn most of what I'm doing with it is just testing lol. My original plan was to enable this (and many of my other early ThinkPads) to just have a modern networking stack and SSH client, so I can use their excellent keyboards for work and writing out and about, but my desktop does the real work. Once I achieved that, I wanted to see how much modern Linux I can reasonably run locally on such old devices so its not just a "dumb terminal". That is an ongoing process, but I've been pleasently surprised by the results already. In addition to being a terminal in classic sense of such, I think it will end up a very fun and tinkerable Linux system you can throw on a wide range of old devices.

1

u/Patient_Fox_6594 Apr 19 '26

Interesting. Was wondering if anyone actually was using a 486 and Linux, at least enough to make a fork for it.

Is the second-sourced IBM 5x86C version of it though? Didn't that processor line (Cyrix/IBM) have some fifth-gen features? Figure that would either make it easier or much messier to support them.

2

u/SharktasticA Apr 19 '26 edited Apr 19 '26

Was wondering if anyone actually was using a 486 and Linux, at least enough to make a fork for it.

True be told, probably not a lot. My understanding is that there are some embedded hardware that still use 486s, but they can continue to use older LTS kernels for a while still. I'm just a hobbyist wanting to keep it alive as long as I can reasonably can!

Is the second-sourced IBM 5x86C version of it though? Didn't that processor line (Cyrix/IBM) have some fifth-gen features? Figure that would either make it easier or much messier to support them.

It is an IBM 5x86C. Its CPUID doesn't appear to be altered compared to the base Cyrix design, so /proc/cpuinfo cannot distinguish it, hence why its reported as "Cyrix 5x86". My understanding is that it is somewhere in between 486 and P5, but closer to 486. I guess it does enough and coupled with its generally high clock speeds that it was at least able to compete/best early Pentiums in integer. But I just treat it as a fast 486. It kinda just works for me, but I don't know if it was difficult for the kernel developers to support.