Dan Magenheimer
2009-Jun-23 23:06 UTC
[Xen-devel] upstream xen-ified kernel building challenge
A fun challenge for those of you who eat raw upstream kernels for lunch: 1) Untar an upstream (say 2.6.30) kernel.org kernel 2) From the bash command line ONLY, execute one or more commands to configure the kernel so "make" will build a fully xen-ified kernel. (Everything else can use the defconfig default.) For extra credit: 3) Determine the shortest sequence of commands to do the above. After many tries, I have not been able to do (2) at all. I always have to fall back to an existing .config file that was created using menuconfig. (I *suspect* this is because PARAVIRT_GUEST is defined in Kconfig using a menuconfig line rather than a config line, but am unsure.) Dan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Marc - A. Dahlhaus [ Administration | Westermann GmbH ]
2009-Jun-24 10:04 UTC
Re: [Xen-devel] upstream xen-ified kernel building challenge
Hello Dan, it could look like this: cat > .config << "EOF" CONFIG_PARAVIRT_GUEST=y CONFIG_XEN=y CONFIG_PARAVIRT=y CONFIG_PARAVIRT_SPINLOCKS=y CONFIG_PARAVIRT_CLOCK=y CONFIG_X86_CMPXCHG64=y CONFIG_HIGHMEM64G=y CONFIG_X86_PAE=y CONFIG_ARCH_PHYS_ADDR_T_64BIT=y CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_XEN_NETDEV_FRONTEND=y CONFIG_XEN_KBDDEV_FRONTEND=y CONFIG_FB_SYS_FILLRECT=y CONFIG_FB_SYS_COPYAREA=y CONFIG_FB_SYS_IMAGEBLIT=y CONFIG_FB_SYS_FOPS=y CONFIG_FB_DEFERRED_IO=y CONFIG_XEN_FBDEV_FRONTEND=y EOF yes '''' | make oldconfig (the options could be shortened with a for loop but it would make it unreadable...) I think the oldconfig run will get and set your arch and shift options if needed for x86_64 but i haven''t testet that but it should work on 32bit PAE systems... have fun, Marc Am Dienstag, den 23.06.2009, 16:06 -0700 schrieb Dan Magenheimer:> A fun challenge for those of you who eat raw upstream kernels > for lunch: > > 1) Untar an upstream (say 2.6.30) kernel.org kernel > 2) From the bash command line ONLY, execute one or more > commands to configure the kernel so "make" will build > a fully xen-ified kernel. (Everything else can > use the defconfig default.) > > For extra credit: > 3) Determine the shortest sequence of commands to do > the above. > > After many tries, I have not been able to do (2) at all. > I always have to fall back to an existing .config file > that was created using menuconfig. (I *suspect* this is > because PARAVIRT_GUEST is defined in Kconfig using a > menuconfig line rather than a config line, but am unsure.) > > Dan > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Dan Magenheimer
2009-Jun-24 16:49 UTC
RE: [Xen-devel] upstream xen-ified kernel building challenge
Thanks Marc! It looks like the magic key I was missing is CONFIG_HIGHMEM64G. The following works for a 32-bit 2.6.30 kernel. It misses the frame buffer drivers and paravirtualized spinlocks but results in a kernel runnable on Xen. cat > .config << "EOF" CONFIG_PARAVIRT_GUEST=y CONFIG_XEN=y CONFIG_HIGHMEM64G=y EOF yes '''' | make oldconfig> -----Original Message----- > From: Marc - A. Dahlhaus [ Administration | Westermann GmbH ] > [mailto:mad@wol.de] > Sent: Wednesday, June 24, 2009 4:04 AM > To: Dan Magenheimer > Cc: Xen-devel > Subject: Re: [Xen-devel] upstream xen-ified kernel building challenge > > > Hello Dan, > > it could look like this: > > cat > .config << "EOF" > CONFIG_PARAVIRT_GUEST=y > CONFIG_XEN=y > CONFIG_PARAVIRT=y > CONFIG_PARAVIRT_SPINLOCKS=y > CONFIG_PARAVIRT_CLOCK=y > CONFIG_X86_CMPXCHG64=y > CONFIG_HIGHMEM64G=y > CONFIG_X86_PAE=y > CONFIG_ARCH_PHYS_ADDR_T_64BIT=y > CONFIG_PHYS_ADDR_T_64BIT=y > CONFIG_XEN_NETDEV_FRONTEND=y > CONFIG_XEN_KBDDEV_FRONTEND=y > CONFIG_FB_SYS_FILLRECT=y > CONFIG_FB_SYS_COPYAREA=y > CONFIG_FB_SYS_IMAGEBLIT=y > CONFIG_FB_SYS_FOPS=y > CONFIG_FB_DEFERRED_IO=y > CONFIG_XEN_FBDEV_FRONTEND=y > EOF > yes '''' | make oldconfig > > (the options could be shortened with a for loop but it would make it > unreadable...) > > I think the oldconfig run will get and set your arch and shift options > if needed for x86_64 but i haven''t testet that but it should work on > 32bit PAE systems... > > have fun, > > Marc > > Am Dienstag, den 23.06.2009, 16:06 -0700 schrieb Dan Magenheimer: > > A fun challenge for those of you who eat raw upstream kernels > > for lunch: > > > > 1) Untar an upstream (say 2.6.30) kernel.org kernel > > 2) From the bash command line ONLY, execute one or more > > commands to configure the kernel so "make" will build > > a fully xen-ified kernel. (Everything else can > > use the defconfig default.) > > > > For extra credit: > > 3) Determine the shortest sequence of commands to do > > the above. > > > > After many tries, I have not been able to do (2) at all. > > I always have to fall back to an existing .config file > > that was created using menuconfig. (I *suspect* this is > > because PARAVIRT_GUEST is defined in Kconfig using a > > menuconfig line rather than a config line, but am unsure.) > > > > Dan > > > > _______________________________________________ > > Xen-devel mailing list > > Xen-devel@lists.xensource.com > > http://lists.xensource.com/xen-devel > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Dan Magenheimer
2009-Jun-24 21:23 UTC
RE: [Xen-devel] upstream xen-ified kernel building challenge
*Sigh* Though this kernel is runnable on Xen, it crashes early with a bad system call. So the default (2.6.30 32-bit) kernel build, with Xen configs added, doesn''t boot. (I have a config that works, its just frustrating as I''d really like to find the magic key! And the diffs between the working version and the "min" version (below) are too extensive!)> -----Original Message----- > From: Dan Magenheimer > Sent: Wednesday, June 24, 2009 10:50 AM > To: Marc - A. Dahlhaus [ Administration | Westermann GmbH ] > Cc: Xen-devel > Subject: RE: [Xen-devel] upstream xen-ified kernel building challenge > > > Thanks Marc! It looks like the magic key I was missing is > CONFIG_HIGHMEM64G. The following works for a 32-bit 2.6.30 > kernel. It misses the frame buffer drivers and paravirtualized > spinlocks but results in a kernel runnable on Xen. > > cat > .config << "EOF" > CONFIG_PARAVIRT_GUEST=y > CONFIG_XEN=y > CONFIG_HIGHMEM64G=y > EOF > yes '''' | make oldconfig > > > -----Original Message----- > > From: Marc - A. Dahlhaus [ Administration | Westermann GmbH ] > > [mailto:mad@wol.de] > > Sent: Wednesday, June 24, 2009 4:04 AM > > To: Dan Magenheimer > > Cc: Xen-devel > > Subject: Re: [Xen-devel] upstream xen-ified kernel building > challenge > > > > > > Hello Dan, > > > > it could look like this: > > > > cat > .config << "EOF" > > CONFIG_PARAVIRT_GUEST=y > > CONFIG_XEN=y > > CONFIG_PARAVIRT=y > > CONFIG_PARAVIRT_SPINLOCKS=y > > CONFIG_PARAVIRT_CLOCK=y > > CONFIG_X86_CMPXCHG64=y > > CONFIG_HIGHMEM64G=y > > CONFIG_X86_PAE=y > > CONFIG_ARCH_PHYS_ADDR_T_64BIT=y > > CONFIG_PHYS_ADDR_T_64BIT=y > > CONFIG_XEN_NETDEV_FRONTEND=y > > CONFIG_XEN_KBDDEV_FRONTEND=y > > CONFIG_FB_SYS_FILLRECT=y > > CONFIG_FB_SYS_COPYAREA=y > > CONFIG_FB_SYS_IMAGEBLIT=y > > CONFIG_FB_SYS_FOPS=y > > CONFIG_FB_DEFERRED_IO=y > > CONFIG_XEN_FBDEV_FRONTEND=y > > EOF > > yes '''' | make oldconfig > > > > (the options could be shortened with a for loop but it would make it > > unreadable...) > > > > I think the oldconfig run will get and set your arch and > shift options > > if needed for x86_64 but i haven''t testet that but it should work on > > 32bit PAE systems... > > > > have fun, > > > > Marc > > > > Am Dienstag, den 23.06.2009, 16:06 -0700 schrieb Dan Magenheimer: > > > A fun challenge for those of you who eat raw upstream kernels > > > for lunch: > > > > > > 1) Untar an upstream (say 2.6.30) kernel.org kernel > > > 2) From the bash command line ONLY, execute one or more > > > commands to configure the kernel so "make" will build > > > a fully xen-ified kernel. (Everything else can > > > use the defconfig default.) > > > > > > For extra credit: > > > 3) Determine the shortest sequence of commands to do > > > the above. > > > > > > After many tries, I have not been able to do (2) at all. > > > I always have to fall back to an existing .config file > > > that was created using menuconfig. (I *suspect* this is > > > because PARAVIRT_GUEST is defined in Kconfig using a > > > menuconfig line rather than a config line, but am unsure.) > > > > > > Dan > > > > > > _______________________________________________ > > > Xen-devel mailing list > > > Xen-devel@lists.xensource.com > > > http://lists.xensource.com/xen-devel > > > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel