Open minux opened 9 years ago
minux,
have you tried using winocm's GenericBooter-next? https://github.com/winocm/GenericBooter-next Unfortunately the GenericBooter found here has gotten outdated, so I'll probably replace it with winocm's version.
Btw, to save you some trouble, you can use my ramdisk which has been verified to work with the kernel in it's current state: https://www.dropbox.com/s/j5id402t2er59vh/ramdisk_new.dmg?dl=0
Hi b-man, thank you very much for both pointers.
I tried GenericBooter-next, and it worked perfectly. Please consider replace GenericBooter with that one. And the iOS 4.3.5 ramdisk works much better than the one in the old reddit post.
Btw, how did you build the ramdisk? Are you building the required libSystem, dyld and launchd or are they copied from an ipsw image? Does the xnu kernel support any block and network devices provided by qemu?
I obtained that ramdisk a while back from winocm. Unfortunately building the userspace in a portable way (on Linux and on Mac) has turned into one mammoth of a task. I've spent quite a bit of time trying to come up with a build system for things like Libc/launchd/dyld/dispatch/ect. I'm thinking the best route to go would be to use autotools.
As for networking and block device support, the qemu port supports neither. However winocm has created a basic semi-functional (apparently deadlocks if you root to mmc - but this could be outdated info) mmc driver that can be used on the beagleboard: https://github.com/winocm/OMAP3-Drivers - perhaps this could be used as a reference to start work on a PL180 mmc driver?
Another important thing to note at this time is that I'm not sure how well dynamically loaded kexts work as I haven't tested out this functionality yet. I know that statically linking the drivers via a kernelcache should work however.
I built a kernel at rev 4720e5ed3c83c20c7da88659959b10ffea0b0aa4, and extracted ramdisk from the uImage posted at the reddit post (http://www.reddit.com/r/jailbreak/comments/1q04wa/bootable_armxnu_kernel_with_sample_root_filesystem/).
The qemu command line I used is: qemu-system-arm -serial stdio -M realview-pb-a8 -m 512 -kernel SampleBooter.elf.uImage -append 'rd=md0 debug=0x16e serial=3 -v -s'
It outputs the following and then hangs:
I've managed to extract the bootloader used in the aforementioned reddit post, and it could boot the kernel just fine (although bootstrap server of launchd still crashes and I still couldn't figure out how to execute any command from the "stuipidshell" prompt). The first few lines of qemu serial output are: