All of lore.kernel.org
 help / color / mirror / Atom feed
* support another hardware
@ 2008-10-20 15:22 Sledz, Steffen
  2008-10-20 15:59 ` Cliff Brake
  0 siblings, 1 reply; 14+ messages in thread
From: Sledz, Steffen @ 2008-10-20 15:22 UTC (permalink / raw)
  To: openembedded-devel

After Alex announced support for the hammerhead board we would try to add another hardware. It is the OXE810SE, an ARM926EJ-S based consumer network-attached storage (NAS) device (see <http://www.oxsemi.com/products/storage/OXE810SE.html>).

We have some experience with OE, made and fixed some bb recipes, but miss the experience in adding a complete new machine. Is there a guide line, manual, tutorial or something like this giving step-by-step help for this (and warning of the pitfalls)? I missed it in the wiki. The only documentation i found is this one: <http://bec-systems.com/oe/html/index.html>. But the part "Adding a new Machine" ist just a three bullet list. :(

I believe, the easiest part is writing the new machine config file. But all the stuff choosing the best kernel configuration (derived/integrated from/with others?) seems the hardest task in my opinion.

Steffen

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: support another hardware
  2008-10-20 15:22 support another hardware Sledz, Steffen
@ 2008-10-20 15:59 ` Cliff Brake
  2008-10-21  6:49   ` Sledz, Steffen
  0 siblings, 1 reply; 14+ messages in thread
From: Cliff Brake @ 2008-10-20 15:59 UTC (permalink / raw)
  To: openembedded-devel

On Mon, Oct 20, 2008 at 11:22 AM, Sledz, Steffen <sledz@dresearch.de> wrote:
> After Alex announced support for the hammerhead board we would try to add another hardware. It is the OXE810SE, an ARM926EJ-S based consumer network-attached storage (NAS) device (see <http://www.oxsemi.com/products/storage/OXE810SE.html>).
>
> We have some experience with OE, made and fixed some bb recipes, but miss the experience in adding a complete new machine. Is there a guide line, manual, tutorial or something like this giving step-by-step help for this (and warning of the pitfalls)? I missed it in the wiki. The only documentation i found is this one: <http://bec-systems.com/oe/html/index.html>. But the part "Adding a new Machine" ist just a three bullet list. :(
>
> I believe, the easiest part is writing the new machine config file. But all the stuff choosing the best kernel configuration (derived/integrated from/with others?) seems the hardest task in my opinion.

There is really not much more to it than create a machine conf, and a
kernel configuration.  For the kernel, the preferred approach seems to
be to use a generic linux-2.6.xx.bb recipe, and add your machine to
the version you support.  Occasionally, other packages will have
machine specific tweaks, but that is not required.

Cliff

-- 
=======================
Cliff Brake
http://bec-systems.com



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: support another hardware
  2008-10-20 15:59 ` Cliff Brake
@ 2008-10-21  6:49   ` Sledz, Steffen
  2008-10-21  7:37     ` Koen Kooi
  0 siblings, 1 reply; 14+ messages in thread
From: Sledz, Steffen @ 2008-10-21  6:49 UTC (permalink / raw)
  To: openembedded-devel

> There is really not much more to it than create a machine conf, and a
> kernel configuration.  For the kernel, the preferred approach seems to
> be to use a generic linux-2.6.xx.bb recipe, and add your machine to
> the version you support.  Occasionally, other packages will have
> machine specific tweaks, but that is not required.

Are there conventions in naming of the kernel recipes? If i look into the relevant directories i can see various methods:

1. "${MACHINE}-kernel" (e.g. mx21ads.conf)
2. "linux-${MACHINE}" (e.g. magicbox.conf)
3. fix names like "linux-wrap-geode" for wrap.conf

Is one of them preferred?

Steffen



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: support another hardware
  2008-10-21  6:49   ` Sledz, Steffen
@ 2008-10-21  7:37     ` Koen Kooi
  2008-10-21  9:06       ` Sledz, Steffen
  2008-10-21 13:43       ` Sledz, Steffen
  0 siblings, 2 replies; 14+ messages in thread
From: Koen Kooi @ 2008-10-21  7:37 UTC (permalink / raw)
  To: openembedded-devel

On 21-10-2008 08:49, Sledz, Steffen wrote:
>> There is really not much more to it than create a machine conf, and a
>> kernel configuration.  For the kernel, the preferred approach seems to
>> be to use a generic linux-2.6.xx.bb recipe, and add your machine to
>> the version you support.  Occasionally, other packages will have
>> machine specific tweaks, but that is not required.
>
> Are there conventions in naming of the kernel recipes? If i look into the relevant directories i can see various methods:
>
> 1. "${MACHINE}-kernel" (e.g. mx21ads.conf)
> 2. "linux-${MACHINE}" (e.g. magicbox.conf)
> 3. fix names like "linux-wrap-geode" for wrap.conf
>
> Is one of them preferred?

None of the above. As Cliff said in his earlier mail:

   "For the kernel, the preferred approach seems to be to use a generic 
linux-2.6.xx.bb recipe, and add your machine to the version you support."

So:

a) find out which kernel version your custom kernel is (e.g 2.6.27)
b) extract the diff (diff -Nurd linux-2.6.27/ linux-2.6.27-mymachine/)
c) add SRC_URI_append_mymachine = "file://mymachine.diff" to linux_2.6.27.bb
d) put defconfig in packages/linux/linux-2.6.27/mymachine/defconfig

Step b) is optional if you already have a diff.

If you really, really need to be 'special'[1][2] you can create your 
'own' kernel recipe with the naming options you mentioned, then please 
use linux.inc to the basics working well. If even that is not 'special' 
enough, then well, you are on your own.

By reusing a linux_2.6.xx recipe you can easily see what kind of patches 
other machines are applying and how issues with that kernel get solved.

Most of the time people that add new hardware to OE go through something 
like this (ARM example):

- add mymachine.conf, linux-mymachine_2.6.xx.bb, openmymachine.conf distro
- complain toolchain doesn't build, copy over versions from angstrom to 
get it fixed
- complain their device doesn't boot, change defconfig to support EABI 
to get it fixed
- complain NFS doesn't work, change defconfig to get that fixed

The toolchain problems wouldn't have been there if people had used an 
existing, working distro like angstrom, the kernel issues mentioned 
above are all handled automagically by linux.inc.

So people, please start by reusing existing things and creating your own 
stuff *when need arises*, not when NIH arises.

</rant>

regards,

Koen

[1] Which you really don't need, but companies seem to feel better when 
their name is plastered all over the place e.g. linux-mycompany_2.6.27.bb.
[2] No, I'm not a native English speaker, but yes, I do understand the 
special-between-quotes connotation.




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: support another hardware
  2008-10-21  7:37     ` Koen Kooi
@ 2008-10-21  9:06       ` Sledz, Steffen
  2008-10-21 10:53         ` Cliff Brake
  2008-10-21 13:43       ` Sledz, Steffen
  1 sibling, 1 reply; 14+ messages in thread
From: Sledz, Steffen @ 2008-10-21  9:06 UTC (permalink / raw)
  To: openembedded-devel

> None of the above. As Cliff said in his earlier mail:
> 
> "For the kernel, the preferred approach seems to be to use 
> a generic linux-2.6.xx.bb recipe, and add your machine to the
> version you support."
> ...

Thanx. That's a lot of help.

I would start an "Adding Machine" page with this info in the wiki. OK?

Steffen



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: support another hardware
  2008-10-21  9:06       ` Sledz, Steffen
@ 2008-10-21 10:53         ` Cliff Brake
  2008-10-21 11:09           ` Sledz, Steffen
  0 siblings, 1 reply; 14+ messages in thread
From: Cliff Brake @ 2008-10-21 10:53 UTC (permalink / raw)
  To: openembedded-devel

On Tue, Oct 21, 2008 at 5:06 AM, Sledz, Steffen <sledz@dresearch.de> wrote:
>> None of the above. As Cliff said in his earlier mail:
>>
>> "For the kernel, the preferred approach seems to be to use
>> a generic linux-2.6.xx.bb recipe, and add your machine to the
>> version you support."
>> ...
>
> Thanx. That's a lot of help.
>
> I would start an "Adding Machine" page with this info in the wiki. OK?

Please do.

Thanks,
Cliff

-- 
=======================
Cliff Brake
http://bec-systems.com



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: support another hardware
  2008-10-21 10:53         ` Cliff Brake
@ 2008-10-21 11:09           ` Sledz, Steffen
  0 siblings, 0 replies; 14+ messages in thread
From: Sledz, Steffen @ 2008-10-21 11:09 UTC (permalink / raw)
  To: openembedded-devel

> > I would start an "Adding Machine" page with this info in 
> > the wiki. OK?
> 
> Please do.

I did: <http://wiki.openembedded.net/index.php/Adding_a_new_Machine>



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: support another hardware
  2008-10-21  7:37     ` Koen Kooi
  2008-10-21  9:06       ` Sledz, Steffen
@ 2008-10-21 13:43       ` Sledz, Steffen
  2008-10-21 14:08         ` Koen Kooi
  1 sibling, 1 reply; 14+ messages in thread
From: Sledz, Steffen @ 2008-10-21 13:43 UTC (permalink / raw)
  To: openembedded-devel

> a) find out which kernel version your custom kernel is (e.g 2.6.27)
> b) extract the diff (diff -Nurd linux-2.6.27/ linux-2.6.27-mymachine/)
> c) add SRC_URI_append_mymachine = "file://mymachine.diff" to 
>    linux_2.6.27.bb
> d) put defconfig in packages/linux/linux-2.6.27/mymachine/defconfig

It seems to be necessary to add DEFAULT_PREFERENCE_mymachine = "1" too. Right?




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: support another hardware
  2008-10-21 13:43       ` Sledz, Steffen
@ 2008-10-21 14:08         ` Koen Kooi
  2008-10-22  8:24           ` Sledz, Steffen
  0 siblings, 1 reply; 14+ messages in thread
From: Koen Kooi @ 2008-10-21 14:08 UTC (permalink / raw)
  To: openembedded-devel

On 21-10-2008 15:43, Sledz, Steffen wrote:
>> a) find out which kernel version your custom kernel is (e.g 2.6.27)
>> b) extract the diff (diff -Nurd linux-2.6.27/ linux-2.6.27-mymachine/)
>> c) add SRC_URI_append_mymachine = "file://mymachine.diff" to
>>     linux_2.6.27.bb
>> d) put defconfig in packages/linux/linux-2.6.27/mymachine/defconfig
>
> It seems to be necessary to add DEFAULT_PREFERENCE_mymachine = "1" too. Right?

yeah, forgot about that, sorry.

regards,

Koen




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: support another hardware
  2008-10-21 14:08         ` Koen Kooi
@ 2008-10-22  8:24           ` Sledz, Steffen
  2008-10-22  8:31             ` Koen Kooi
  0 siblings, 1 reply; 14+ messages in thread
From: Sledz, Steffen @ 2008-10-22  8:24 UTC (permalink / raw)
  To: openembedded-devel

I've created/changed oxe810.conf and linux_2.6.24.bb in the described way and tried to build the angstrom distro using minimal-image.bb.

The good news is that the kernel build without problems. :)

The bad one that building the root_fs fails with:

| Collected errors:
|  * ERROR: Cannot satisfy the following dependencies for task-boot:
|        *  base-passwd *  busybox *  initscripts *  modutils-initscripts *  netbase *  udev *  sysvinit *  sysvinit-pidof *  tinylogin *

Hmmmm? What's wrong here? Building the same image for other machines works fine.

Steffen



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: support another hardware
  2008-10-22  8:24           ` Sledz, Steffen
@ 2008-10-22  8:31             ` Koen Kooi
  2008-10-22  8:36               ` Sledz, Steffen
  0 siblings, 1 reply; 14+ messages in thread
From: Koen Kooi @ 2008-10-22  8:31 UTC (permalink / raw)
  To: openembedded-devel

On 22-10-2008 10:24, Sledz, Steffen wrote:
> I've created/changed oxe810.conf and linux_2.6.24.bb in the described way and tried to build the angstrom distro using minimal-image.bb.
>
> The good news is that the kernel build without problems. :)
>
> The bad one that building the root_fs fails with:
>
> | Collected errors:
> |  * ERROR: Cannot satisfy the following dependencies for task-boot:
> |        *  base-passwd *  busybox *  initscripts *  modutils-initscripts *  netbase *  udev *  sysvinit *  sysvinit-pidof *  tinylogin *
>
> Hmmmm? What's wrong here? Building the same image for other machines works fine.

Looks like a package arch problem, could you show the oxe810.conf?

regards,

Koen





^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: support another hardware
  2008-10-22  8:31             ` Koen Kooi
@ 2008-10-22  8:36               ` Sledz, Steffen
  2008-10-22  9:15                 ` Koen Kooi
  0 siblings, 1 reply; 14+ messages in thread
From: Sledz, Steffen @ 2008-10-22  8:36 UTC (permalink / raw)
  To: openembedded-devel

> Looks like a package arch problem, could you show the oxe810.conf?

#@TYPE: Machine
#@NAME: OXE810(D)SE NAS devices
#@DESCRIPTION: Machine configuration for Oxford OXE810(D)SE NAS devices http://www.oxsemi.com/products/storage/nas.html

TARGET_ARCH = "arm"

MACHINE_FEATURES = "kernel26 ext2 pci ethernet serial"

PREFERRED_PROVIDER_virtual/kernel = "linux"

require conf/machine/include/tune-arm926ejs.inc



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: support another hardware
  2008-10-22  8:36               ` Sledz, Steffen
@ 2008-10-22  9:15                 ` Koen Kooi
  2008-10-22  9:34                   ` Sledz, Steffen
  0 siblings, 1 reply; 14+ messages in thread
From: Koen Kooi @ 2008-10-22  9:15 UTC (permalink / raw)
  To: openembedded-devel

On 22-10-2008 10:36, Sledz, Steffen wrote:
>> Looks like a package arch problem, could you show the oxe810.conf?
>
> #@TYPE: Machine
> #@NAME: OXE810(D)SE NAS devices
> #@DESCRIPTION: Machine configuration for Oxford OXE810(D)SE NAS devices http://www.oxsemi.com/products/storage/nas.html
>
> TARGET_ARCH = "arm"
>
> MACHINE_FEATURES = "kernel26 ext2 pci ethernet serial"
>
> PREFERRED_PROVIDER_virtual/kernel = "linux"
>
> require conf/machine/include/tune-arm926ejs.inc

Try adding PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5te"

regards,

Koen




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: support another hardware
  2008-10-22  9:15                 ` Koen Kooi
@ 2008-10-22  9:34                   ` Sledz, Steffen
  0 siblings, 0 replies; 14+ messages in thread
From: Sledz, Steffen @ 2008-10-22  9:34 UTC (permalink / raw)
  To: openembedded-devel

> Try adding PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5te"

Thx, that works. ;-)

Steffen

PS: What's the exact meaning of these settings?



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2008-10-22  9:34 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-20 15:22 support another hardware Sledz, Steffen
2008-10-20 15:59 ` Cliff Brake
2008-10-21  6:49   ` Sledz, Steffen
2008-10-21  7:37     ` Koen Kooi
2008-10-21  9:06       ` Sledz, Steffen
2008-10-21 10:53         ` Cliff Brake
2008-10-21 11:09           ` Sledz, Steffen
2008-10-21 13:43       ` Sledz, Steffen
2008-10-21 14:08         ` Koen Kooi
2008-10-22  8:24           ` Sledz, Steffen
2008-10-22  8:31             ` Koen Kooi
2008-10-22  8:36               ` Sledz, Steffen
2008-10-22  9:15                 ` Koen Kooi
2008-10-22  9:34                   ` Sledz, Steffen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.