3 ms·
Super neat! I went through the same process for some AM5x86-133 industrial computers with 32 MiB of RAM. I didn't think to change PHYSICAL_START or use musl. It
by Teknoman117 5y ago
Super neat! I went through the same process for some AM5x86-133 industrial computers with 32 MiB of RAM. I didn't think to change PHYSICAL_START or use musl. It's usually set at the 16 MiB mark so that the kernel doesn't consume any of the memory in the ISA DMA / ISA device zone.
One thing I would recommend that I didn't see mentioned is switching to the SLOB allocator in the kernel. It's more space efficient than SLUB or SLAB, but it is slower if you have a large amount of memory. (It's hidden unless you set CONFIG_EXPERT).
The main problem I bumped into for minifying a modern Linux kernel is that so much of the modern Linux ecosystem (systemd, OpenRC, runit, etc.) expects a lot of the networking stack to be enabled, along with cgroups, namespaces, etc. In order to get a minimal Gentoo i486 image to boot, I needed to turn a lot of things on in the tinyconfig kernel. Admittedly, it's hard to image a Linux/Unix system without some form of networking :)
- anthk 5y agoOpenWRT would be "easier", but you must find the kernel configs and CFLAGS for i486 by yourself.