-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Binary images cannot reliably be reproduced #5
Comments
I haven't had a chance to hack on this kind of project much lately, but I have incidentally recently tossed a copy into a couple low-memory (12 and 16MB respectively) 486 boxes I had out to see what happened, and it dies on "Booting kernel failed: Invalid argument" after apparently successfully decompressing the rootfs cpio. I don't think it's memory related because the whole system only seems to take up about 900K of RAM on machines where it does work, but it is a sign things are kind of brittle. One of those machines is ...quirky... and I'm not surprised, but the other one boots from a tomsrtbt or NetBSD floppy, so there is a bug in this setup. My images were built on an up-to-date-at-the-time Arch machine (implicitly 64-bit), and IIRC used the repo syslinux from the host, looks like 6.04. When you say .config, you're referring to the kernel menuconfig output? Are you seeing config differences outside the toolchain section, or just the toolchain? Last time I was playing with it I generated a couple variant kernels with different feature options, and I'm not sure which one I put online, there is quite a bit of size variation as you touch feature flags. It's possible it's a syslinux issue, there is an old report https://wiki.syslinux.org/wiki/index.php?title=Syslinux_6.02_notes#Booting_kernel_failed:_Invalid_argument of handoff problems causing this kind of behavior, but they were theoretically solved in 2014 with 6.03, and we're unlikely to be encountering older versions on the host systems listed -- though maybe syslinux is trying to do something (memory allocations? Touching the MM registers?) that's a problem on super feeble machines. |
Thank you for your reply. I'll reply to your observations below.
I tried your floppy image using QEMU and with 16MB it will not boot it hangs (different symptom, in my case I get a reboot).
I checked, it is the same as mine, but for some reason when I create the image with my version it will not work.
Yes. I compared my
Just toolchain
I don't think I checked with your I will post some more data later |
Here are some of the diffs I see:
|
Hi,
Context
I was trying this on my own and one of the problems I had is that my kernel boots under QEMU but not on real hardware.
Then I found your instructions (and those of @papppmac, here: https://www.insentricity.com/a.cl/283 and here: https://pappp.net/?p=45560)
When I tried your images they boot on my hardware, although I encountered the issue #2 which I was able to work-around.
I also noticed that
syslinux
probably needs to be a specific version as well because one of the first issues that I had to solve was that my hardware would hang on my first attempt withsyslinux
, even if it did work on QEMU.I worked around that by using some old diskette that had a working version, so I still don't know what the issue was.
I don't think the hardware is too special as it can run older versions of Linux (it is a Pentium machine)
Issue
Even if using your exact instructions and
.config
files I'm still unable to reproduce your binary images, neither in size nor in behaviour.My kernel images are slightly larger, but more annoyingly, they don't boot on real hardware. Yet again, they do boot on QEMU.
I don't know if an error is shown because it reboots immediately after finishing loading the kernel+rootfs.
I have not yet tried to enable earlyprintk to debug either.
I have noticed by comparing the
.config
that the toolchains are not exactly the same. My hypothesis is that the toolchain could be the problem. I tried setting the processor to 486 but it does the same.The problem is the kernel itself. As replacing it with the one from your images works.
Here are my tests:
Questions
Does it rings a bell to you (or anybody else passing by)?
Would you mind sharing the details of your build machine? (distro version, 32 vs 64 bit, and so on)
(for what is worth, I'm using Ubuntu 20.04 64bit)
Thank you!
The text was updated successfully, but these errors were encountered: