How do I build/install the kernel on a XO?
dilinger at laptop.org
Mon Apr 9 12:45:48 EDT 2007
Hal Murray wrote:
> I found a recipe for building the kernel at
> I've got a FC6 system. git clone, make oldconfig,and make seemed to do
> something sensible.
That should work. We do the builds on an FC6 system as well.
> I'm a bit suspicious of the .config file. I'd expect one/some of these to be
> # CONFIG_M386 is not set
> # CONFIG_M486 is not set
> # CONFIG_M586 is not set
> # CONFIG_M586TSC is not set
> # CONFIG_M586MMX is not set
> # CONFIG_M686 is not set
> # CONFIG_X86_GENERIC is not set
> Is that really the right config file? (Maybe I fatfingered something?)
That is correct. Note that the following *is* set:
That's our cpu, and optimizing for other x86 cpus causes us to end up
with the wrong cache line size.
> make install tries do a normal install on the current system.
> I'm assuming I can do the build on a handy machine, transport the bits to a
> running XO, install them there, and then reboot. Is that reasonable?
> A: My handy machine is FC6 on an Intel PC. I'm assuming
> that's close enough to the XO that I don't have to do a real
> cross-compile type build.
> B: I'm willing to re-install everything from scratch/flash if
> my new kernel doesn't work.
> Assuming I'm on the right track, does anybody have a simple recipe for the
> transport/install step? I'll be happy with transport via flash or scp.
Basically, I do:
- make oldconfig
- make modules_install
- tar zcvf modules.tar.gz /lib/modules/$VERS
- scp arch/i386/boot/bzImage System.map modules.tar.gz $XO:
Replace $VERS with the version of the kernel that's being built, and $XO
with the user at host of your xo machine.
Once it's on the xo, I ssh in, untar modules.tar.gz (into /lib/modules),
copy the bzImage and System.map files into /boot, and update the
/boot/vmlinuz symlink to point to the bzImage. Reboot, and you should
be all set.
Note that this is for booting off nand; if you're booting off a flash
disk or something, there's are the extra steps of running 'mkinitrd' on
the xo after you've untarred modules, and then updating the
/boot/initrd.img symlink to point to the newly created initrd.
> My XO:/boot/ has things like:
> Do I need them and/or what are they used for and where do they come from?
They come from the rpm generation script; I'm not entirely sure what
they're used for. I never bother copying them, though.
More information about the Devel