OE/angstrom and/or different kernels

I have to admit I'm new to OE, but I believe I have enough background
to work with it.

So I set up an OE according to http://elinux.org/BeagleBoardAndOpenEmbeddedGit,
except I set it up in a centos 5.2 environment.

I successfully made console-image, and it works fine.

I successfully made beagleboard-demo-image. I had to correct a few
things that didn't compile (about 7 of them).. I kept notes of the
fixes for next time. It works fine except (system info desktop app
crashes.)

I assume that having to deal with little fixes is normal.

There are a few different pointers to kernel source in this disucssion
board and others.

There's the angstrom kernel, which is missing a few features that are
in the kernel image that came installed on the board. (S-video for
example).

There's the kernel source thats on http://code.google.com/p/beagleboard/wiki/BeagleSourceCode:
Can I build it in its own directory, using the tool-chain thats been
built in my OE?
I assume so.
Would the angstrom image file system work, by replacing the kernel and
the kernel modules with the BeagleSourceCode version? I've yet to try
this.

I see in conf/machine/beagleboard.conf it says:
PREFERRED_PROVIDER_virtual/kernel = "linux-omap2"
Looking at packages/linux, i see linux-omap2_git.bb. Since there are
no other versions, i assume this is the one being used when I build
angstrom. Its source is: git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git
Can I point to something different here?

There's git clone git://source.mvista.com/git/linux-omap-2.6.git,
which is on the http://elinux.org/BeagleBoard#Linux_kernel page.
I'm assuming that this is more in line with the one on the
BeagleSourceCode page?

Then there's the kernels referenced under:
http://elinux.org/BeagleBoard#Experimental_kernel_patches_and_hacks

So, can one or more of these kernels be used with the OE/Angstrom
dist? Can they be mixed and matched? What is the preferred method of
incorportating one of these kernels into OE? Is it just a matter of
making custom .bb files, referencing the appropriate source locations,
then compiling and dealing with whatever incompatabilities show up?

An advice is greatly appreciated.

Kevin

You laid that out very clearly. I have a very similar set of questions, so I'm hoping that someone who has experience with this will take a bit of time to help out. I'm going to be doing some work on a kernel for a beagleboard plus extra hardware, and it would be very nice to know what pieces I can pick and choose from in the existing kernels.

         Brett

I have to admit I’m new to OE, but I believe I have enough background
to work with it.

So I set up an OE according to http://elinux.org/BeagleBoardAndOpenEmbeddedGit,
except I set it up in a centos 5.2 environment.

I successfully made console-image, and it works fine.

I successfully made beagleboard-demo-image. I had to correct a few
things that didn’t compile (about 7 of them)… I kept notes of the
fixes for next time. It works fine except (system info desktop app
crashes.)

I assume that having to deal with little fixes is normal.

There are a few different pointers to kernel source in this disucssion
board and others.

There’s the angstrom kernel, which is missing a few features that are
in the kernel image that came installed on the board. (S-video for
example).

There’s the kernel source thats on http://code.google.com/p/beagleboard/wiki/BeagleSourceCode:
Can I build it in its own directory, using the tool-chain thats been
built in my OE?
I assume so.
Would the angstrom image file system work, by replacing the kernel and
the kernel modules with the BeagleSourceCode version? I’ve yet to try
this.

I see in conf/machine/beagleboard.conf it says:
PREFERRED_PROVIDER_virtual/kernel = “linux-omap2”
Looking at packages/linux, i see linux-omap2_git.bb. Since there are
no other versions, i assume this is the one being used when I build
angstrom. Its source is: git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git
Can I point to something different here?

There’s git clone git://source.mvista.com/git/linux-omap-2.6.git,
which is on the http://elinux.org/BeagleBoard#Linux_kernel page.
I’m assuming that this is more in line with the one on the
BeagleSourceCode page?

Then there’s the kernels referenced under:
http://elinux.org/BeagleBoard#Experimental_kernel_patches_and_hacks

So, can one or more of these kernels be used with the OE/Angstrom
dist? Can they be mixed and matched? What is the preferred method of
incorportating one of these kernels into OE? Is it just a matter of
making custom .bb files, referencing the appropriate source locations,
then compiling and dealing with whatever incompatabilities show up?

I have been using the linux-omap_git.bb kernel (i.e. named linux-omap). AIUI this is 2.6.27 where many of the patches referenced by linux-omap2 have been upstreamed/superceded.

To include this kernel by default, I believe the easiest method is to create a local OE overlay, and in your overlay change beagleboard.conf preferred provider to linux-omap

John

Hi,

I usually just edit conf/machine/beagleboard.conf to change linux-
omap2 to linux-omap. And that works with the following exception:

The console image will build with linux-omap. But the beagleboard-
demo-image won't build -- because the .27 folks moved some things. So
edits need to be made to support .27. The thing that I have noted is
that .../include/machine/omapfb.h moved to .../include/asm-arm/omap-
arch/omapfb.h (or something like that).

So in order to build the full beagleboard-demo-image with linux-omap,
you will need to edit other recipes.

That being said, you can build the beagleboard-demo-image with linux-
omap2 (to get the rootfs). And then you can build the console-image
with linux-omap (to get the uImage). And you can mix and match the
uImage and rootfs.

Hopefully before long Angstrom will shift over to .27 and the recipes
will get updated.

I hope this helps.

Best regards,
Geof

Hi,

I usually just edit conf/machine/beagleboard.conf to change linux-
omap2 to linux-omap. And that works with the following exception:

The console image will build with linux-omap. But the beagleboard-
demo-image won’t build – because the .27 folks moved some things. So
edits need to be made to support .27. The thing that I have noted is
that …/include/machine/omapfb.h moved to …/include/asm-arm/omap-
arch/omapfb.h (or something like that).

So in order to build the full beagleboard-demo-image with linux-omap,
you will need to edit other recipes.

That being said, you can build the beagleboard-demo-image with linux-
omap2 (to get the rootfs). And then you can build the console-image
with linux-omap (to get the uImage). And you can mix and match the
uImage and rootfs.

Or you can just build the linux -omap bb file directly, with bitbake /path/to/linux-omap_git.bbm correct?

John

Moving to .27 would be a good thing, I'm busy trying to find out what
needs to get changed in OE to work with the header move in the kernel
and once that's done knock the dsplink build into shape for .27.

regards,

Koen

Thanks for this and all the other replies.
This is just exactly the kind of information I was after.
From these responses, I take away:

  1. An appropriate way to get another kernel is to do a local verlay (this is good since I set things up already to do a “board-specific” overlay and a “my-stuff-overlay”. I’ll probably put a new machine/beagleboard.conf in my board overlay).

  2. You can mix and match uImage and rootfs. I assume I’ll have to load up the appropriate kernel modules into the rootfs. I assume thats true unless something more “out of the ordinary” is done from userland which needs a kernel specific feature. Since I don’t really need watch videos for this project, I think I’m safe.

Kevin