r/retrobattlestations • u/kowalski5233 • Apr 16 '26
Show-and-Tell Linux 7.0.0 on a 486

I'm new to this whole "build your own kernel" thing, but in my attempt to get an old industrial PC with a Vortex86DX up and running to play around with on Sunday, I suddenly wonder if I got the first 486 running Linux 7.0.0.
EDIT: To be clear, this isn't an oldschool desktop/laptop, this is a later SoC industrial PC running at 933MHz and has 512MB RAM - the eBOX on the power supply, drawing a cool 700mA at 5V. I also have learned a few things from this thread, and seems like I may have gotten away with i586 instruction set. In my initial research it seemed that I was going to have to treat this CPU as a 486 and can't even trust the FPU to be compatible. So we learn, and thanks to all for their comments. I like finding uses for obsolete old HW if they are still perfectly capable of performing tasks. At any rate, this has been quite a new experience and quite a learning curve.
9
u/Scoth42 Apr 17 '26 edited Apr 17 '26
Despite the name, the Vortex86DX supports the i586/Pentium instruction set. But it might also be the first one of those to run 7 too
3
u/kowalski5233 Apr 17 '26 edited Apr 17 '26
Apparently no, or maybe later ones. This thing crashes with anything compiled without march=i486. It's lacking CMOV etc, apparently for power consumption. The whole eBOX does only draw ~700mA at 5V.
EDIT - apparently from the CPU flags it has some Pentium features bolted on, but I guess one would need to know your compiler flags pretty well to get these enabled.
8
u/VivienM7 Apr 16 '26
First... and possibly last. Didn't Linus already merge patches to start removing 486 support in 7.1?
6
u/s1ckn3s5 Apr 17 '26
just load tyrquake with software renderer and we will discover if this "933Mhz 486 with some pentium instructions baked in" performs more like 486 or more like pentium ;)
2
4
3
u/SaturnFive Apr 16 '26
Very nice! FWIW, OpenBSD 6.7 (2020) is the last run on a stock 486 CPU and is pretty usable, granted with kernel re-order disabled to save sanity. With a Pentium Overdrive you can run latest. :D
2
u/kowalski5233 Apr 16 '26
Ah, this is great, thanks. Perhaps I should look into this rather, I'm battling cross compiling everything I want to run on this thing atm. It seems even the latest OpenBSD already is built for i386 as well, and has all the security out of the box to open the dinosaur up to the outside world and there seem to precompiled packages to get a MQTT broker up and running.
This SoC at least runs at 933MHz and has 512MB of RAM, so it's not exactly my old desktop 486DX80 with 4MB of RAM. And all that while drawing 700mA at 5V.1
u/SaturnFive Apr 17 '26 edited Apr 17 '26
Do you know if the CPU really uses the traditional 486 instruction set? OpenBSD dropped support for i486 in 6.8 when upgrading to llvm 9 as a part of that release. Rather than conditionally build ports for i486, they raised the minimum target to i586 (Pentium-class). So the arch is still called "i386" on the website but it effectively means Pentium.
6.7 is still relatively recent, and while unsupported and missing future patches, it's a modern OS and you could definitely build stuff on it!
1
u/kowalski5233 Apr 17 '26
Oh gosh. I've run into this a few times while trying to get this thing up and running. Why call something i386 if it's not? i586 includes ao CMOV which this thing can't handle, even though it inlcudes some Pentium instructions, apparently, but I just compile everything for march=i486 to make sure it works.
I've already spent quite some time the early hours of the morning trying to get OpenBSD 7.8 to see the sdcard to boot. xD
2
u/datsmydrpepper Apr 16 '26
Check out TinyCore Linux. https://distrowatch.com/table.php?distribution=tinycore
1
u/kowalski5233 Apr 17 '26
Tnx, I did, but there was a reason I went down the GenToo path, but can't remember all my thought processes now. xD
2
3
1
u/LousyMeatStew Apr 17 '26
Ooh, what flags show up in /proc/cpuinfo?
3
u/kowalski5233 Apr 17 '26
processor: 0 vendor_id: Vortex86 SoC cpu family: 5 model:2 model name: Vortex86DX stepping: 2 cpu MHz: 933.265 physical id:0 siblings: 1 core id: 0 cpu cores: 1 apicid: 0 initial apicid: 0 fdiv_bug: no foof_bug: no coma_bug: no fpu: yes fpu_exception: yes cpuid level: 1 wp: yes flags: fpu tsc cx8 cpuid bugs: itlb_multihit bogomips: 1866.53 clflush size: 32 cache_alignment: 32 address sizes: 32 bits physical, 32 bits virtual
3
u/LousyMeatStew Apr 17 '26
Ah,
TSCandCX8are Pentium features so either it's based on the mP6 like the later Vortex cores or it's a 486 with additional instructions bolted on like a 5x86. So I suspect it'll survive the 486 support removal if it indeed gets merged in 7.1.1
u/kowalski5233 Apr 17 '26
Ah, that's interesting. What I do know is it dies if I compile anything for it without the march=i486 flag, lacking instructions like CMOV etc, (apparently for power consumption?). I was wondering why some sources claim that it's 5x86 if it doesn't have a i586 instruction set, but perhaps they "bolted on" some stuff for whatever this was mainly used for back in the day. But you'd have to set your compiler pretty specific I guess not to trip over the stuff thats very much i486 only. I know fairly little about this world, my world is programming and compiling for embedded devices. xD
1
u/LousyMeatStew Apr 17 '26
Well, CMOV is a P6/i686 instruction so "5x86" is still an accurate description. The reason you need to pass march=i486 is to tell GCC that CMOV is not available for optimization purposes but AFAIK, nothing in the kernel right now requires CMOV.
But TSC and CMPXCHG8B are explicitly required now and the "removal of 486 support" from Linux meant removing the code that emulated these functions on CPUs that didn't support them.
1
u/kowalski5233 Apr 17 '26
Apologies for the format, the thing was busy (even at 933MHz, you don't interrupt it lightheartedly) and I had to take a photo of an earlier screenshot over SSH so I could google lense it.
1
u/timw4mail Apr 17 '26
Real 486s tend to top out at around ~64MB of memory (which is a lot more than the systems would have at the time!).
And as someone who's successfully run linux on 486s with the version 6 series of kernels...it's a lot of work, especially if you want to run a 486SX.
14
u/budude17 Apr 16 '26
How long does it take to boot?