Tiny Core Linux
Tiny Core Base => TCB Talk => Topic started by: danielibarnes on April 28, 2025, 05:04:09 PM
-
This conversation came up a few years back (https://forum.tinycorelinux.net/index.php/topic,25983.msg166677.html#msg166677), but looks like it will happen now. Ingo Molnar wants to remove 486 support from the Linux kernel:
x86: Remove support for TSC-less and CX8-less CPUs (https://lore.kernel.org/lkml/20250425084216.3913608-1-mingo@kernel.org)
-
Also note that, due to a bug, TC16 doesn't boot on a 486 unless the kernel is recompiled using the patch (https://lore.kernel.org/lkml/20250414095933.GAZ_zchcLNPpUHF9IN@fat_crate.local/) I suggested here (https://forum.tinycorelinux.net/index.php/topic,27578.msg178458.html#msg178458).
-
I do wish that TC will continue to offer a kernel which supports 486 in future versions.
-
That's the aim - if possible
-
Is there any browser in the TCE library that works on the 486? Or is a custom build of firefox or chromium needed for that?
-
Also note that, due to a bug, TC16 doesn't boot on a 486 unless the kernel is recompiled using the patch (https://lore.kernel.org/lkml/20250414095933.GAZ_zchcLNPpUHF9IN@fat_crate.local/) I suggested here (https://forum.tinycorelinux.net/index.php/topic,27578.msg178458.html#msg178458).
The patch does not apply cleanly?
-
@cparke
Firefox or Chromium on a 486 is madness, there's no hope of that. elinks-nodep.tcz is a good web browser option for 486 except it doesn't do HTTPS. links.tcz should work if you have more patience and RAM. Also dillo.tcz and links-full.tcz if you have enough RAM to run X. I'm not sure about netsurf.tcz, and anything based on Firefox or Chrome browser engines (eg. Brave) will have vastly higher system requirements.
@Juanito
The patch applied for me on the latest kernel release, but "patch" wouldn't apply it to arch/x86/kernel/cpu/microcode/amd.c in kernel v6.12.11.
I'm not that good with "patch", there might be options that will make it work. Since the function that's changed is identical I copied the changed lines over manually. It might also be different if you use Git, which I'm even more lost with.
I can look back at it again if you really want, but I just deleted all the kernel building stuff from my VPS to save space last night since I thought nothing more was happening with it!
-
This patch is only going to help up until they remove the 486 support, from that point forward it’s a much bigger task to maintain if at all.
Hard to say if/when they will do it. It does look like the fix CNK mentioned was just merged into mainline. Perhaps they’ll keep the 486 support in unit after the next long term kernel release.
-
Right.
i can remember buying my first new PC, after much concideration and i managed to get it to be a 586
at great value and pleasing.
That was in 1996. "Cyrix 5x86 " chip.
so i don't know the exact date i486 was introduced, but maybe 1991 .....?
Perplexity says 1989 ....
so nearly 37 years ago.
i have no doubt that billions of the working machines still exist.
regards
-
This patch is only going to help up until they remove the 486 support, from that point forward it’s a much bigger task to maintain if at all.
Sure, I wouldn't expect TCL to keep 486 support if they do that.
It does look like the fix CNK mentioned was just merged into mainline.
Great, yes I see it here (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5214a9f6c0f56644acb9d2cbb58facf1856d322b).
-
It still doesn't apply cleanly:
patch -Np1 -i ../linux-6.12.11_i486_fix.patch
patching file arch/x86/include/asm/microcode.h
patching file arch/x86/kernel/cpu/microcode/amd.c
Hunk #1 FAILED at 1098.
1 out of 1 hunk FAILED -- saving rejects to file arch/x86/kernel/cpu/microcode/amd.c.rej
patching file arch/x86/kernel/cpu/microcode/core.c
patching file arch/x86/kernel/cpu/microcode/intel.c
Hunk #1 succeeded at 395 (offset 6 lines).
patching file arch/x86/kernel/cpu/microcode/internal.h
patching file arch/x86/kernel/head32.c
arch/x86/kernel/cpu/microcode/amd.c is only 1091 lines long and the code around that point does not resemble the patch.
The code does appear around line 610, so I'll try to compile with a manual patch...
-
Yeah the reason "patch" can't find the new location is the lines immediately under the last change to that file is different in the later kernel versions:
6.12 (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/x86/kernel/cpu/microcode/amd.c?h=v6.12):
if (dis_ucode_ldr || c->x86_vendor != X86_VENDOR_AMD || c->x86 < 0x10)
return 0;
find_blobs_in_containers(&cp);
if (!(cp.data && cp.size))
return -EINVAL;
6.14 (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/x86/kernel/cpu/microcode/amd.c?h=v6.14):
if (dis_ucode_ldr || c->x86_vendor != X86_VENDOR_AMD || c->x86 < 0x10)
return 0;
if (!find_blobs_in_containers(&cp))
return -EINVAL;
That difference doesn't seem to matter for the code of the patch, and there are no other changes in the later versions of that function.
-
Test kernel compiled - could somebody with an i486 give it a go please?
http://tinycorelinux.net/16.x/x86/release/distribution_files/i486/bzImage
..temporarily replace the existing vmlinuz in your bootloader config with bzImage above to test.
-
Boots fine on my 486DX2 PC!