Skip to contentSkip to conversation

Storing board configuration ?

Buildroot Thomas Petazzoni 4 participants 5 messages Jun 20, 2010 – Jun 23, 2010

lore
Share & tools
lore
#0 lore raw

Hello,

The work on cleaning up the target/ directory has been making some progress lately: bootloaders-cleanup has been merged, linux-cleanup has been through a first review phase and Dmytro Milinevskyy has contributed the cleanup of the filesystem skeleton.

The last big part is the "board support", i.e what allows to configure Buildroot to build a system for a particular hardware board, without the user having to worry about kernel/bootloader/toolchain details.

Instead of having configuration details defined in makefiles in target/device, I'd like to use defconfigs instead.

However, defconfigs are not perfect : they are large and they get out-dated pretty quickly because they must store the value of *every* existing option.

For that reason, I'm wondering whether we should limit the defconfigs to the important options for a particular board and remove all other option values. This would leave ~30 lines to a human-written defconfig instead of ~1000 lines of automatically-generated defconfigs.

A "mini-defconfig" could look like :

======================================================================
# General
BR2_HAVE_DOT_CONFIG=y
BR2_arm=y
BR2_arm926t=y
BR2_ARM_EABI=y
BR2_PROJECT="at91sam9263ek"
BR2_HOSTNAME="AT91SAM9263EK"

# Root filesystem
BR2_TARGET_ROOTFS_JFFS2=y
BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K=y
BR2_TARGET_ROOTFS_JFFS2_PAGESIZE=0x800
BR2_TARGET_ROOTFS_JFFS2_EBSIZE=0x20000
BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER=y
BR2_TARGET_ROOTFS_JFFS2_PAD=y
BR2_TARGET_ROOTFS_JFFS2_PADSIZE=0x02000000
BR2_TARGET_ROOTFS_JFFS2_LE=y

# Boot
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="at91sam9263ek"
BR2_TARGET_UBOOT_2009_01=y
BR2_TARGET_AT91BOOTSTRAP=y
BR2_TARGET_AT91BOOTSTRAP_BOARD="at91sam9263ek"
BR2_TARGET_AT91BOOT_DATAFLASHCARD=y
BR2_AT91BOOTSTRAP_JUMP_TO_DEFAULT=y
BR2_AT91BOOTSTRAP_JUMP_ADDR="0x23F00000"

# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_2_6_34=y
BR2_LINUX_KERNEL_USE_DEFCONFIG=y
BR2_LINUX_KERNEL_DEFCONFIG="at91sam9263ek"
======================================================================

But if we do that, we would have to modify the main Makefile so that when an user does "make foobar_defconfig", configs/foobar_defconfig is used and for all options non-specified in the defconfig, the default options would be choosen. So something like :

%_defconfig: $(TOPDIR)/configs/%_defconfig
cp $^ .config
@yes "" | $(MAKE) oldconfig

What do you think about this ?

Regards,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#1 lore raw
Quoted 7 lines

-----Original Message-----
From: buildroot-bounces at busybox.net [mailto:buildroot- bounces at busybox.net] On Behalf Of Thomas Petazzoni
Sent: Sunday, 20 June 2010 10:36 PM
To: buildroot at busybox.net
Subject: [Buildroot] Storing board configuration ?

Quoted 8 lines

Hello,

The work on cleaning up the target/ directory has been making some progress lately: bootloaders-cleanup has been merged, linux-cleanup has been through a first review phase and Dmytro Milinevskyy has contributed the cleanup of the filesystem skeleton.

The last big part is the "board support", i.e what allows to configure

Buildroot

Quoted 1 line

to build a system for a particular hardware board, without the user having

to

Quoted 3 lines

worry about kernel/bootloader/toolchain details.

Instead of having configuration details defined in makefiles in

target/device,

Quoted 3 lines

I'd like to use defconfigs instead.

However, defconfigs are not perfect : they are large and they get

out-dated

Quoted 1 line

pretty quickly because they must store the value of *every* existing

option.

Quoted 2 lines

For that reason, I'm wondering whether we should limit the defconfigs to

the

Quoted 1 line

important options for a particular board and remove all other option

values.

Quoted 43 lines

This would leave ~30 lines to a human-written defconfig instead of ~1000 lines of automatically-generated defconfigs.

A "mini-defconfig" could look like :

==========================================================
============
# General
BR2_HAVE_DOT_CONFIG=y
BR2_arm=y
BR2_arm926t=y
BR2_ARM_EABI=y
BR2_PROJECT="at91sam9263ek"
BR2_HOSTNAME="AT91SAM9263EK"

# Root filesystem
BR2_TARGET_ROOTFS_JFFS2=y
BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K=y
BR2_TARGET_ROOTFS_JFFS2_PAGESIZE=0x800
BR2_TARGET_ROOTFS_JFFS2_EBSIZE=0x20000
BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER=y
BR2_TARGET_ROOTFS_JFFS2_PAD=y
BR2_TARGET_ROOTFS_JFFS2_PADSIZE=0x02000000
BR2_TARGET_ROOTFS_JFFS2_LE=y

# Boot
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="at91sam9263ek"
BR2_TARGET_UBOOT_2009_01=y
BR2_TARGET_AT91BOOTSTRAP=y
BR2_TARGET_AT91BOOTSTRAP_BOARD="at91sam9263ek"
BR2_TARGET_AT91BOOT_DATAFLASHCARD=y
BR2_AT91BOOTSTRAP_JUMP_TO_DEFAULT=y
BR2_AT91BOOTSTRAP_JUMP_ADDR="0x23F00000"

# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_2_6_34=y
BR2_LINUX_KERNEL_USE_DEFCONFIG=y
BR2_LINUX_KERNEL_DEFCONFIG="at91sam9263ek"
==========================================================
============

Quoted 3 lines

But if we do that, we would have to modify the main Makefile so that when an user does "make foobar_defconfig", configs/foobar_defconfig is used and for all options non-specified in the defconfig, the default options

would

Quoted 7 lines

be choosen. So something like :

%_defconfig: $(TOPDIR)/configs/%_defconfig
cp $^ .config
@yes "" | $(MAKE) oldconfig

What do you think about this ?

Sounds good to me - I actually had the same idea the other day, but I don't know enough to do anything about it.

Paul.

#2 lore raw
Quoted 82 lines · Paul Jones
Quoted 7 lines

-----Original Message-----
From: buildroot-bounces at busybox.net [mailto:buildroot- bounces at busybox.net] On Behalf Of Thomas Petazzoni
Sent: Sunday, 20 June 2010 10:36 PM
To: buildroot at busybox.net
Subject: [Buildroot] Storing board configuration ?

Quoted 8 lines

Hello,

The work on cleaning up the target/ directory has been making some progress lately: bootloaders-cleanup has been merged, linux-cleanup has been through a first review phase and Dmytro Milinevskyy has contributed the cleanup of the filesystem skeleton.

The last big part is the "board support", i.e what allows to configure

Buildroot

Quoted 1 line

to build a system for a particular hardware board, without the user having

to

Quoted 3 lines

worry about kernel/bootloader/toolchain details.

Instead of having configuration details defined in makefiles in

target/device,

Quoted 3 lines

I'd like to use defconfigs instead.

However, defconfigs are not perfect : they are large and they get

out-dated

Quoted 1 line

pretty quickly because they must store the value of *every* existing

option.

Quoted 2 lines

For that reason, I'm wondering whether we should limit the defconfigs to

the

Quoted 1 line

important options for a particular board and remove all other option

values.

Quoted 43 lines

This would leave ~30 lines to a human-written defconfig instead of ~1000 lines of automatically-generated defconfigs.

A "mini-defconfig" could look like :

==========================================================
============
# General
BR2_HAVE_DOT_CONFIG=y
BR2_arm=y
BR2_arm926t=y
BR2_ARM_EABI=y
BR2_PROJECT="at91sam9263ek"
BR2_HOSTNAME="AT91SAM9263EK"

# Root filesystem
BR2_TARGET_ROOTFS_JFFS2=y
BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K=y
BR2_TARGET_ROOTFS_JFFS2_PAGESIZE=0x800
BR2_TARGET_ROOTFS_JFFS2_EBSIZE=0x20000
BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER=y
BR2_TARGET_ROOTFS_JFFS2_PAD=y
BR2_TARGET_ROOTFS_JFFS2_PADSIZE=0x02000000
BR2_TARGET_ROOTFS_JFFS2_LE=y

# Boot
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="at91sam9263ek"
BR2_TARGET_UBOOT_2009_01=y
BR2_TARGET_AT91BOOTSTRAP=y
BR2_TARGET_AT91BOOTSTRAP_BOARD="at91sam9263ek"
BR2_TARGET_AT91BOOT_DATAFLASHCARD=y
BR2_AT91BOOTSTRAP_JUMP_TO_DEFAULT=y
BR2_AT91BOOTSTRAP_JUMP_ADDR="0x23F00000"

# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_2_6_34=y
BR2_LINUX_KERNEL_USE_DEFCONFIG=y
BR2_LINUX_KERNEL_DEFCONFIG="at91sam9263ek"
==========================================================
============

Quoted 3 lines

But if we do that, we would have to modify the main Makefile so that when an user does "make foobar_defconfig", configs/foobar_defconfig is used and for all options non-specified in the defconfig, the default options

would

Quoted 2 lines

be choosen. So something like :

Quoted 9 lines
Quoted 5 lines

%_defconfig: $(TOPDIR)/configs/%_defconfig
cp $^ .config
@yes "" | $(MAKE) oldconfig

What do you think about this ?

Sounds good to me - I actually had the same idea the other day, but I don't know enough to do anything about it.

Already been done, see Aboriginal Linux build system which uses mini-configs and for the scripts to handle them. Previously known as Firmware Linux.
http://aboriginal.impactlinux.com/

Mike

Quoted 11 lines

Paul.

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

#3 lore raw
In reply to Thomas Petazzoni
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

Hi,

Thomas> But if we do that, we would have to modify the main Makefile so that Thomas> when an user does "make foobar_defconfig", configs/foobar_defconfig is Thomas> used and for all options non-specified in the defconfig, the default Thomas> options would be choosen. So something like :

Thomas> %_defconfig: $(TOPDIR)/configs/%_defconfig
Thomas> cp $^ .config
Thomas> @yes "" | $(MAKE) oldconfig

Thomas> What do you think about this ?

I like it. It will ofcourse hide any new questions you might have wanted to get asked about, but that's not so bad.

Signature · 1 line
Bye, Peter Korsgaard
#4 lore raw
Quoted 8 lines

-----Original Message-----
From: buildroot-bounces at busybox.net [mailto:buildroot- bounces at busybox.net] On Behalf Of Peter Korsgaard
Sent: Thursday, 24 June 2010 7:03 AM
To: Thomas Petazzoni
Cc: buildroot at busybox.net
Subject: Re: [Buildroot] Storing board configuration ?

Quoted 8 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <thomas.petazzoni@free-

electrons.com> writes:

Hi,

Thomas> But if we do that, we would have to modify the main Makefile so
that Thomas> when an user does "make foobar_defconfig", configs/foobar_defconfig is Thomas> used and for all options

non-specified

Quoted 10 lines

in the defconfig, the default Thomas> options would be choosen. So something like :

Thomas> %_defconfig: $(TOPDIR)/configs/%_defconfig
Thomas> cp $^ .config
Thomas> @yes "" | $(MAKE) oldconfig

Thomas> What do you think about this ?

I like it. It will ofcourse hide any new questions you might have wanted

to get

Quoted 1 line

asked about, but that's not so bad.

We could add another command like make foobar_defconfig_ask to cover both cases.

Paul.