Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] Building 2.6.19 with Soekris 4801 target
@ 2006-12-05  2:37 Eric Malkowski
  2006-12-05  7:50 ` Bernhard Fischer
  0 siblings, 1 reply; 4+ messages in thread
From: Eric Malkowski @ 2006-12-05  2:37 UTC (permalink / raw)
  To: buildroot

Hi-

I wanted to build up the latest buildroot w/ latest kernel for a Soekris
4826 board (same as 4801 w/ different interfaces) and wanted to report I
had to modify the toolchain/kernel-headers/kernel-headers.mk file to get
uClibc 0.9.28's "fix_includes.sh" script to be happy.

I built w/ the following options:

Target Arch: i386
Variant:     i586
Headers:     2.6.19  (uses full kernel to snarf headers -- nice)
uClibc:      0.9.28  (not snapshot)
Binutils:    2.16.91.0.7
GCC:         3.4.2
Busybox:     1.2.2   (not snapshot)
kernel:      2.6.19

Using the following from target/device/Soekris/net4801
by picking it in main buildroot config as target device:

busybox.config
linux.config (modified to trim it down tight / geode w/ 27mhz clock etc)
linux.mk     (which is different than more recent device/x86/i386/linux.mk)
uClibc.config   (had to re-capture because first build stopped to ask
questions the uClibc.config checked into svn doesn't have defaults for)

I had to add to "Target Optimizations" -march=i586 to give myself the
confidence everything would be built optimized for 586 instead of 386 to
get the most out of the geode processor (I wanted to see -march=i586 on
all compile lines for packages like openssh, ssl, wireless tools, etc
which is about the extent of my package selections).

Is the default binutils 2.1.16.91.0.7 and gcc 3.4.2 the best things to use
for 2.6.19 w/ uclibc 0.9.28 ??  should I use a newer gcc / binutils for
any reason?

Anyway - The uClibc 0.9.28's fix_includes.sh script in extra/scripts under
it's tree would whine about not being able to detect the version of the
kernel and bail out.  make headers_install of full tree yields an
include/linux/version.h that doesn't have UTS_RELEASE defined and no
uts_release.h file.

I saw that fix_includes.sh would be happy w/ a $KERNEL_SOURCE/Makefile
which is what Erik's pre-made kernel headers packages in the past would
provide.

So I made the following mod to toolchain/kernel-headers/kernel-headers.mk
to copy over the 2.6.19 top level Makefile to the linux headers dir and
voila:

[malk at testbed buildroot]$ svn diff toolchain/kernel-headers/kernel-headers.mk
Index: toolchain/kernel-headers/kernel-headers.mk
===================================================================
--- toolchain/kernel-headers/kernel-headers.mk  (revision 16776)
+++ toolchain/kernel-headers/kernel-headers.mk  (working copy)
@@ -150,6 +150,7 @@
 $(LINUX_HEADERS_DIR)/.configured: $(LINUX_HEADERS_UNPACK_DIR)/.patched
        (cd $(LINUX_HEADERS_UNPACK_DIR) ; \
         $(MAKE) ARCH=$(KERNEL_ARCH) INSTALL_HDR_PATH=$(LINUX_HEADERS_DIR)
headers_install)
+       cp $(LINUX_HEADERS_UNPACK_DIR)/Makefile $(LINUX_HEADERS_DIR)
        touch $(LINUX_HEADERS_DIR)/.configured
 else
 # the sanitized kernel-headers


Not sure if the above is the right fix, but it works for me w/ this config.
Was pretty smooth booting up my 4826 over the network via pxeboot.  I find
the 27 mhz clock "takeover" for the buggy tsc that doesn't tick when halt
instruction is executed a little whacky, but it looks good.  I'll try some
tests to see how nice the high res timer stuff looks (fine grained
select() timeouts I would assume).  I absolutely love linux as an embedded
OS and high res timers / more real-time capable 2.6 kernel etc. are things
that make a buildroot type setup like this very attractive.  Thanks for
everyone's work in keeping uClibc and buildroot going.

-Eric

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

* [Buildroot] Building 2.6.19 with Soekris 4801 target
  2006-12-05  2:37 [Buildroot] Building 2.6.19 with Soekris 4801 target Eric Malkowski
@ 2006-12-05  7:50 ` Bernhard Fischer
  2006-12-05  8:22   ` Bernhard Fischer
  0 siblings, 1 reply; 4+ messages in thread
From: Bernhard Fischer @ 2006-12-05  7:50 UTC (permalink / raw)
  To: buildroot

On Mon, Dec 04, 2006 at 09:37:41PM -0500, Eric Malkowski wrote:

>So I made the following mod to toolchain/kernel-headers/kernel-headers.mk
>to copy over the 2.6.19 top level Makefile to the linux headers dir and
>voila:
>
>[malk at testbed buildroot]$ svn diff toolchain/kernel-headers/kernel-headers.mk
>Index: toolchain/kernel-headers/kernel-headers.mk
>===================================================================
>--- toolchain/kernel-headers/kernel-headers.mk  (revision 16776)
>+++ toolchain/kernel-headers/kernel-headers.mk  (working copy)
>@@ -150,6 +150,7 @@
> $(LINUX_HEADERS_DIR)/.configured: $(LINUX_HEADERS_UNPACK_DIR)/.patched
>        (cd $(LINUX_HEADERS_UNPACK_DIR) ; \
>         $(MAKE) ARCH=$(KERNEL_ARCH) INSTALL_HDR_PATH=$(LINUX_HEADERS_DIR)
>headers_install)
>+       cp $(LINUX_HEADERS_UNPACK_DIR)/Makefile $(LINUX_HEADERS_DIR)
>        touch $(LINUX_HEADERS_DIR)/.configured
> else
> # the sanitized kernel-headers
>

Could you look if calling make prepare (or something like make
include/linux/version.h) works for installing version.h proper?
Since you seem to have an (improper) version.h, it looks like it is in
the headers_install list already, so perhaps that'd do the trick.

TIA for checking,
Bernhard

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

* [Buildroot] Building 2.6.19 with Soekris 4801 target
  2006-12-05  7:50 ` Bernhard Fischer
@ 2006-12-05  8:22   ` Bernhard Fischer
  2006-12-06  3:51     ` Eric Malkowski
  0 siblings, 1 reply; 4+ messages in thread
From: Bernhard Fischer @ 2006-12-05  8:22 UTC (permalink / raw)
  To: buildroot

On Tue, Dec 05, 2006 at 08:50:36AM +0100, Bernhard Fischer wrote:
>On Mon, Dec 04, 2006 at 09:37:41PM -0500, Eric Malkowski wrote:
>
>>So I made the following mod to toolchain/kernel-headers/kernel-headers.mk
>>to copy over the 2.6.19 top level Makefile to the linux headers dir and
>>voila:
>>
>>[malk at testbed buildroot]$ svn diff toolchain/kernel-headers/kernel-headers.mk
>>Index: toolchain/kernel-headers/kernel-headers.mk
>>===================================================================
>>--- toolchain/kernel-headers/kernel-headers.mk  (revision 16776)
>>+++ toolchain/kernel-headers/kernel-headers.mk  (working copy)
>>@@ -150,6 +150,7 @@
>> $(LINUX_HEADERS_DIR)/.configured: $(LINUX_HEADERS_UNPACK_DIR)/.patched
>>        (cd $(LINUX_HEADERS_UNPACK_DIR) ; \
>>         $(MAKE) ARCH=$(KERNEL_ARCH) INSTALL_HDR_PATH=$(LINUX_HEADERS_DIR)
>>headers_install)
>>+       cp $(LINUX_HEADERS_UNPACK_DIR)/Makefile $(LINUX_HEADERS_DIR)
>>        touch $(LINUX_HEADERS_DIR)/.configured
>> else
>> # the sanitized kernel-headers
>>
>
>Could you look if calling make prepare (or something like make

Ah, no. The old uClibc release had version checks that are removed for
good from uClibc trunk.

To please uClibc-0.9.28, we can copy the Makefile, but i ask you to
update the patch to delete that Makefile if the kernel version is >=
2.6.18 and uClibc-0.9.28 is used, right after the configure-step from
uClibc.

thanks,

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

* [Buildroot] Building 2.6.19 with Soekris 4801 target
  2006-12-05  8:22   ` Bernhard Fischer
@ 2006-12-06  3:51     ` Eric Malkowski
  0 siblings, 0 replies; 4+ messages in thread
From: Eric Malkowski @ 2006-12-06  3:51 UTC (permalink / raw)
  To: buildroot

This is what I came up with.  The check for uclibc version 0.9.28 AND
kernel >= 2.6.18 I came up with is pretty ugly.  I'm also not certain it
would work right for kernels w/ 4 version numbers like 2.6.15.3 and such.

[malk at testbed buildroot]$ svn diff toolchain/uClibc/uclibc.mk
toolchain/kernel-headers/kernel-headers.mk
Index: toolchain/uClibc/uclibc.mk
===================================================================
--- toolchain/uClibc/uclibc.mk  (revision 16786)
+++ toolchain/uClibc/uclibc.mk  (working copy)
@@ -53,6 +53,8 @@
 UCLIBC_NOT_TARGET_ENDIAN:=LITTLE
 endif

+UCLIBC_KERNEL_HEADERS_VERSION:=$(strip $(subst ",,
$(BR2_DEFAULT_KERNEL_HEADERS)))
+
 $(DL_DIR)/$(UCLIBC_SOURCE):
        mkdir -p $(DL_DIR)
        $(WGET) -P $(DL_DIR) $(UCLIBC_SITE)/$(UCLIBC_SOURCE)
@@ -133,6 +135,13 @@
                HOSTCC="$(HOSTCC)" \
                pregen install_dev && \
        touch $(UCLIBC_DIR)/.configured
+ifeq ("$(strip $(UCLIBC_VER))","0.9.28")
+ifeq ("$(findstring 2.6.,$(UCLIBC_KERNEL_HEADERS_VERSION))","2.6.")
+ifneq ("$(strip $(filter-out 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17,$(subst 2.6.,,$(UCLIBC_KERNEL_HEADERS_VERSION))))","")
+       rm -f $(LINUX_HEADERS_DIR)/Makefile
+endif
+endif
+endif

 $(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(LIBFLOAT_TARGET)
        $(MAKE1) -C $(UCLIBC_DIR) \
Index: toolchain/kernel-headers/kernel-headers.mk
===================================================================
--- toolchain/kernel-headers/kernel-headers.mk  (revision 16786)
+++ toolchain/kernel-headers/kernel-headers.mk  (working copy)
@@ -150,6 +150,7 @@
 $(LINUX_HEADERS_DIR)/.configured: $(LINUX_HEADERS_UNPACK_DIR)/.patched
        (cd $(LINUX_HEADERS_UNPACK_DIR) ; \
         $(MAKE) ARCH=$(KERNEL_ARCH) INSTALL_HDR_PATH=$(LINUX_HEADERS_DIR)
headers_install)
+       cp $(LINUX_HEADERS_UNPACK_DIR)/Makefile $(LINUX_HEADERS_DIR)
        touch $(LINUX_HEADERS_DIR)/.configured
 else
 # the sanitized kernel-headers


> On Tue, Dec 05, 2006 at 08:50:36AM +0100, Bernhard Fischer wrote:
>>On Mon, Dec 04, 2006 at 09:37:41PM -0500, Eric Malkowski wrote:
>>
>>>So I made the following mod to
>>> toolchain/kernel-headers/kernel-headers.mk
>>>to copy over the 2.6.19 top level Makefile to the linux headers dir and
>>>voila:
>>>
>>>[malk at testbed buildroot]$ svn diff
>>> toolchain/kernel-headers/kernel-headers.mk
>>>Index: toolchain/kernel-headers/kernel-headers.mk
>>>===================================================================
>>>--- toolchain/kernel-headers/kernel-headers.mk  (revision 16776)
>>>+++ toolchain/kernel-headers/kernel-headers.mk  (working copy)
>>>@@ -150,6 +150,7 @@
>>> $(LINUX_HEADERS_DIR)/.configured: $(LINUX_HEADERS_UNPACK_DIR)/.patched
>>>        (cd $(LINUX_HEADERS_UNPACK_DIR) ; \
>>>         $(MAKE) ARCH=$(KERNEL_ARCH)
>>> INSTALL_HDR_PATH=$(LINUX_HEADERS_DIR)
>>>headers_install)
>>>+       cp $(LINUX_HEADERS_UNPACK_DIR)/Makefile $(LINUX_HEADERS_DIR)
>>>        touch $(LINUX_HEADERS_DIR)/.configured
>>> else
>>> # the sanitized kernel-headers
>>>
>>
>>Could you look if calling make prepare (or something like make
>
> Ah, no. The old uClibc release had version checks that are removed for
> good from uClibc trunk.
>
> To please uClibc-0.9.28, we can copy the Makefile, but i ask you to
> update the patch to delete that Makefile if the kernel version is >=
> 2.6.18 and uClibc-0.9.28 is used, right after the configure-step from
> uClibc.
>
> thanks,
>

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

end of thread, other threads:[~2006-12-06  3:51 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-05  2:37 [Buildroot] Building 2.6.19 with Soekris 4801 target Eric Malkowski
2006-12-05  7:50 ` Bernhard Fischer
2006-12-05  8:22   ` Bernhard Fischer
2006-12-06  3:51     ` Eric Malkowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox