On Monday 22 October 2007 4:23:00 am Jocelyn Mayer wrote: > > I then generated some kernels that allow me to boot and use those 3 > > kernels. > > Here are 3 tarballs with: > > - a patch to be applied to the vanilla kernel sources to fix the > > mentionned bugs > > - the .config file I used to build the kernel > > - the zImage.prep image > > <http://perso.magic.fr/l_indien/qemu-ppc/linux-tests/linux-2.4.35-prep.ta > >r.bz2> > > <http://perso.magic.fr/l_indien/qemu-ppc/linux-tests/linux-2.6.12-prep.ta > >r.bz2> > > <http://perso.magic.fr/l_indien/qemu-ppc/linux-tests/linux-2.6.22-prep.ta > >r.bz2>
The thing is, that's done with ARCH=ppc and the Linux kernel is migrating to ARCH=powerpc. (This is apparently fallout from merging the 32-bit and 64-bit PowerPC architecture sources.) ARCH=ppc is deprecated and going away some time next year, they're migrating everything over to the new infrastructure in ARCH=powerpc. From an immediate practical standpoint, I can't use ARCH=ppc to build a system because that architecture doesn't support the "make headers_install" target so I can extract appropriate architecture-specific Linux kernel headers defining the system calls I can build a C library against. There's a series of 20+ patches to add proper prep support to arch=powerpc, but when those are applied the result runs on real prep hardware but not under qemu (due to the prep residual data in qemu not matching the Linux kernel's expectations). Rather than update the residual data qemu is generating so the linux kernel can parse it to add entries to a device tree, Milton just created a "qemu target" with the same set of hardware as a prep system but minus the boot logic. Instead he created a device tree data structure in the format Linux wants it, and a boot room that could feed that device tree to the Linux kernel directly. This was much simpler and mostly involved removing code rather than adding any. Getting the kernel to build a "qemu target" that runs on prep but doesn't have the prep packaging, boot wrapper, or residual data parsing logic, was 1 patch instead of 20+. Rob -- "One of my most productive days was throwing away 1000 lines of code." - Ken Thompson.