Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Jean-Christian de Rivaz <jc@eclis.ch>
To: buildroot@busybox.net
Subject: [Buildroot] svn commit: trunk/buildroot/target/linux
Date: Wed, 16 Apr 2008 20:22:46 +0200	[thread overview]
Message-ID: <480643F6.1070800@eclis.ch> (raw)
In-Reply-To: <065801c89fcd$c457f570$dfb5fea9@atmel.com>

Ulf Samuelsson a ?crit :
> 
>> Ulf Samuelsson a ?crit :
>>>> I think that we mess with two different goals:
>>>>
>>>> 1) Allow the build to complete by not using "/tftpboot". This is really 
>>>> important. As pointed many times:
>>>>  - System don't have alway a /tftpboot.
>>>>  - It is not alway writable by the users.
>>>>  - Superuser are not alway ok to do a /tftpboot just for an application.
>>> Linux is not built by default.
>> Are you talking about the Linux kernel ? If yes, this is not true at 
>> least for the at91sam9261 target.
>>
>>> If you enable Linux, then the normal build is the default.
>> Sorry, I don't understand your sentence. I make the test by using the 
>> default configuration of the at91sam9261 target. What do you means by 
>> "enable Linux" ?
>>
> 
> The default is not when you use the make <XXX>_defconfig.
> They you are using a predefined board, and that may have
> configuration items which are different from default settings.
> 
> Default is when you do the make menuconfig from scratch.

I am very surprised by this response. Users take buildroot because it 
have a target (that means an XXX_defconfig) that match there board (if 
it's a development kit) or that is a starting point to match there 
custom board. Maintainers taking buildroot for a new target will 
probably start by duplicate and modifying an existing XXX_defconfig that 
there will publish for the users. Configuring from scratch can be a 
painful and time consuming exercise that request knowledge in many area.

I take buildroot after some search on the internet about works related 
to the AT91SAM9261 processor. The first thing I tryed have been to do a 
make at91sam9261ek_deconfig and a make, just to evaluate the project 
maturity. I started the make menuconfig, but frankly I was boring to 
search what I should change in so many settings to get something working 
while a ready to go XXX_defconfig already exists. Just an an example: 
the make menuconfig have u-boot deselected by default, but without it 
the at91sam9261 target failed to compile. There is many traps like this 
one. It take many try an error cycle to find a good setting. I suspect 
that many users are likely to prefer to start from a "make 
XXX_defconfig" that just work. Anyway when a user have found a 
configuration that match there needs, it will save it configuration file 
and will use the menuconfig only to adjust a setting.

My point is that it's a bad idea trying to see two differents process 
between the make menuconfig and the make XXX_defconfig. The two methods 
should work out of the box.

>>> The problem only occurs when you do the advanced build
>>> and have the COPYTO_TFTPBOOT set.
>> Again what an "advanced build". If I wants to change the tftpboot path I 
>> simply edit the .config file. This method, default config or changes 
>> made by menuconfig make no difference for the Makefile.
>>
> 
> "Advanced build" is a selection done in the target/linux/Config.in's.

I my test I never changed the Linux kernel configuration, only the top 
level ".config". In fact I used exactly this command:

git clean -dfx && git reset --hard && git svn rebase && ( yes "" | make 
at91sam9261ek_defconfig ) && mv .config .config.def && sed 
's#/tftpboot#/var/lib/tftpboot#' < .config.def > .config  && ( yes "" | 
make )

Because on my system there is no such /tftpboot thing.

>>> There is an easy workaround, and that is to disable copying to /tftpboot if there is a problem.
>>> You can always copy manually from your BINARIES to wherever,
>>> or use the programmable COPYTO.
>> Yes, but this is not obvious from the user perspective.
>>
> 
> You only need to learn once.

I have changed the sed command of the above command to this:

sed 
's#/tftpboot#/var/lib/tftpboot#;s#BR2_LINUX_COPYTO_TFTPBOOT=y#BR2_LINUX_COPYTO_TFTPBOOT=n#' 
< .config.def > .config

Now the build can be completed, after this 3 commands:

yes "" | make
cp -pf 
project_build_arm/at91sam9261ek/linux-2.6.24.3/arch/arm/boot/uImage 
project_build_arm/at91sam9261ek/linux-2.6.24.3/uImage
yes "" | make

>>> Question is how much we need to protect the user from impossible combinations.
>> As mush as possible by replacing difficult and fragile things by simple 
>> and reliable ones.
> 
> 
>>>>  - It will not work as expected in case multiple users run buildroot.
>>>>  - It is the wrong path for a TFTP server in many new distributions.
>>>> So I think there is really no point to keep it (other than the effort to 
>>>> change little code in target/linux/Makefile.in.advanced). All the 
>>>> Makefile targets and results of the build at this stage must be only 
>>>> into the buildroot user tree.
>>> The point is that it simplifies the complete build to doing "make".
>> Exactly. Currently this goal in not reach because of the hardcoded 
>> /tftpboot in the Makefile.
> 
> No, the Makefile is not the problem, the ".config" is the problem,
> and that is an easy fix by the user.
> Now, the build will continue if the copy fails.

Sorry but I found this way of doing thing not a clean fix, but a hack. 
The problem is booth the Makefile and the ".config". The 
BR2_LINUX_COPYTO_TFTPBOOT must be removed completely in a way that the 
build in granted to complete whatever is set into BR2_LINUX_COPYTO. This 
last one could be by default "/tftpboot" if you like and must be the 
absolutely last operation of the full build process, like if the user 
manually copy the result files into the TFTP server directory. Really, 
BR2_LINUX_COPYTO_TFTPBOOT is a terrible bad thing that bring absolutely 
no feature that can't be done by BR2_LINUX_COPYTO alone. It only make 
thing confusing and error prone.

>>>> 2) Option to copy the result of the build into the TFTP server 
>>>> directory. This stage simply take the result of the previous stage and 
>>>> allow to have ready to go files available with the TFTP protocol at the 
>>>> end of the build. Technically the best way would be to know if there is 
>>>> a TFTP server installed and use the directory he serve as a default, or 
>>>> to not make a copy if none is installed. As this idea seem difficult to 
>>>> make, I agree that we can live with "/tftpboot" by default, even if I 
>>>> suspect that "/var/lib/tftpboot" will be more and more appropriate.
>>>>
>>>> This will not solve the possibility that multiple users clash there 
>>>> files into the TFTP directory, but at least this remove any possibility 
>>>> that there build are broken because of a common target in there 
>>>> Makefiles. Users that wants to share a common TFTP server should take 
>>>> each others to agree to a directory structure into the TFTP server that 
>>>> let each of them have a private space for theres files.
>>> As long as they do not use the same project name, there is no conflict.
>>> That is the purpose of the long file names.
>> Multiples users can work on the same targets.
> 
> And they will have to understand the conflict and 
> can use "make menuconfig" to resolve the problem.
> An easy way to do this, is to call the project:
> "Jean-Christian-at91sam9261"
> Then the binaries in will contain files like:
> "Jean-Christian-at91sam9261-linux-2.6.24.bin"

I have not tryed this, but after the build I have thoses file into the 
/var/lib/tftpboot:

-rw-r--r--  1 jcdr jcdr     553 2008-04-16 20:12 autoscript.at91sam9261ek
-rwxr-xr-x  1 jcdr jcdr  200708 2008-04-16 20:12 
at91sam9261ek-u-boot-1.2.0-atmel-20080416.bin
drwxrwxrwx  2 root root    4096 2008-04-16 20:12 .
-rwxr-xr-x  1 jcdr jcdr    4100 2008-04-16 20:12 
at91sam9261ek-dataflashboot-2.3.4.bin
-rw-r--r--  1 jcdr jcdr 1611128 2008-04-16 20:17 uImage

I wonder why the "uImage" is not prefixed with a "at91sam9261ek".

-- 
Jean-Christian de Rivaz

  reply	other threads:[~2008-04-16 18:22 UTC|newest]

Thread overview: 169+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-15 21:46 [Buildroot] svn commit: trunk/buildroot/target/linux ulf at uclibc.org
2008-04-15 22:31 ` Hamish Moffatt
2008-04-16  4:39   ` Ulf Samuelsson
2008-04-16  5:04     ` Ulf Samuelsson
2008-04-16  5:59       ` Jean-Christian de Rivaz
2008-04-16  8:25         ` Ulf Samuelsson
2008-04-16 12:30           ` Jean-Christian de Rivaz
2008-04-16 12:59             ` Ulf Samuelsson
2008-04-16 18:22               ` Jean-Christian de Rivaz [this message]
2008-04-16 19:21                 ` Ulf Samuelsson
2008-04-19 13:37                   ` Jean-Christian de Rivaz
2008-04-16 20:47                 ` Ulf Samuelsson
2008-04-19 12:43                   ` Jean-Christian de Rivaz
  -- strict thread matches above, loose matches on Subject: below --
2009-02-22 10:38 jacmet at uclibc.org
2009-02-04 23:15 jacmet at uclibc.org
2009-01-26 20:17 ulf at uclibc.org
2009-01-26 20:30 ` Peter Korsgaard
2009-01-26 21:24   ` Ulf Samuelsson
2009-01-26 21:29     ` Peter Korsgaard
2009-01-26 21:35       ` Ulf Samuelsson
2009-01-26 21:48         ` Peter Korsgaard
2009-01-26 22:25           ` Ulf Samuelsson
2009-01-27  5:58             ` Peter Korsgaard
2009-01-27 12:56         ` Hamish Moffatt
2009-01-29 14:33           ` Ulf Samuelsson
2009-01-29 23:09             ` Hamish Moffatt
2009-01-29 23:37               ` Ulf Samuelsson
2009-01-29 23:47                 ` Hamish Moffatt
2009-01-26 16:25 jacmet at uclibc.org
2009-01-25 23:42 ulf at uclibc.org
2009-01-25 23:14 ulf at uclibc.org
2009-01-25 21:48 ulf at uclibc.org
2009-01-25 21:54 ` Peter Korsgaard
2009-01-25 22:09   ` Ulf Samuelsson
2009-01-25 23:12     ` Markus Heidelberg
2009-01-25 23:24       ` Ulf Samuelsson
2009-01-26  5:58         ` Peter Korsgaard
2009-01-26 16:27 ` Peter Korsgaard
2009-01-26 19:28   ` Ulf Samuelsson
2009-01-26 19:30   ` Ulf Samuelsson
2009-01-26 19:39     ` Peter Korsgaard
2009-01-23  0:54 ulf at uclibc.org
2009-01-19 21:27 ulf at uclibc.org
2009-01-15 23:19 ulf at uclibc.org
2009-01-11 20:43 ulf at uclibc.org
2009-01-09  6:30 ulf at uclibc.org
2009-01-09  9:19 ` Peter Korsgaard
2009-01-09 17:40   ` Ulf Samuelsson
2009-01-13  0:05   ` Hamish Moffatt
2009-01-13  6:10     ` Hans-Christian Egtvedt
2009-01-15 22:12     ` Ulf Samuelsson
2009-01-08 22:58 ulf at uclibc.org
2009-01-09  9:17 ` Peter Korsgaard
2009-01-09 10:21   ` Thomas Petazzoni
2009-01-09 10:29     ` Bernhard Reutner-Fischer
2009-01-09 17:42       ` Ulf Samuelsson
2009-01-09 10:47     ` Peter Korsgaard
2009-01-06 23:00 ulf at uclibc.org
2009-01-06 21:42 ulf at uclibc.org
2009-01-07  6:09 ` Hans-Christian Egtvedt
2009-01-06 21:24 ulf at uclibc.org
2009-01-06 14:40 ulf at uclibc.org
2009-01-03  1:06 ulf at uclibc.org
2009-01-03 20:01 ` Peter Korsgaard
2009-01-03 19:37   ` Ulf Samuelsson
2009-01-03 21:12     ` Peter Korsgaard
2009-01-03 19:52   ` Ulf Samuelsson
2009-01-03 21:27     ` Peter Korsgaard
2009-01-03 20:59       ` Ulf Samuelsson
2008-12-20 21:45 ulf at uclibc.org
2008-12-20 21:45 ulf at uclibc.org
2008-12-20 20:57 ulf at uclibc.org
2008-12-23  9:05 ` Peter Korsgaard
2009-01-02 22:45   ` Ulf Samuelsson
2008-12-17 18:03 ulf at uclibc.org
2008-12-07  6:55 jacmet at uclibc.org
2008-11-29 21:56 ulf at uclibc.org
2008-11-30  9:51 ` Peter Korsgaard
2008-11-10 11:17 vanokuten at uclibc.org
2008-11-10 10:45 vanokuten at uclibc.org
2008-11-10 11:01 ` Bernhard Reutner-Fischer
2008-11-10 11:08   ` Ivan Kuten
2008-11-11 14:18   ` Julien Boibessot
2008-11-11 14:43     ` Bernhard Reutner-Fischer
2008-11-05 12:59 egtvedt at uclibc.org
2008-10-30 14:56 egtvedt at uclibc.org
2008-10-30 14:22 egtvedt at uclibc.org
2008-10-30 14:02 egtvedt at uclibc.org
2008-10-30 14:02 egtvedt at uclibc.org
2008-11-04 19:17 ` Thomas Petazzoni
2008-11-05  9:39   ` Hans-Christian Egtvedt
2008-11-05 12:50     ` Hans-Christian Egtvedt
2008-10-03  7:24 egtvedt at uclibc.org
2008-09-22 12:04 jacmet at uclibc.org
2008-08-23 20:25 ulf at uclibc.org
2008-07-13  6:33 jacmet at uclibc.org
2008-07-10 15:14 ulf at uclibc.org
2008-07-10 14:58 ulf at uclibc.org
2008-07-09 11:43 jacmet at uclibc.org
2008-07-03  8:15 ulf at uclibc.org
2008-05-12 21:15 ulf at uclibc.org
2008-04-16 22:54 ulf at uclibc.org
2008-04-15 17:10 ulf at uclibc.org
2008-04-15 17:43 ` Jean-Christian de Rivaz
2008-04-15 19:00   ` Ulf Samuelsson
2008-04-15 19:21     ` Jean-Christian de Rivaz
2008-04-15 19:44       ` Ulf Samuelsson
2008-04-15 21:09         ` Jean-Christian de Rivaz
2008-04-15 21:25           ` Ulf Samuelsson
2008-04-07 19:14 Samuelsson, Ulf
2008-04-06 15:28 Samuelsson, Ulf
2008-04-06 17:18 ` Peter Korsgaard
2008-04-06 12:07 Samuelsson, Ulf
2008-04-06 12:34 ` Peter Korsgaard
2008-04-06 15:25   ` Jean-Christian de Rivaz
2008-04-06 16:33     ` Nigel Kukard
     [not found]       ` <87iqyuu8d0.fsf@macbook.be.48ers.dk>
2008-04-07  0:29         ` Ulf Samuelsson
2008-04-07 14:01           ` Thiago A. Corrêa
2008-04-06 17:58 ` Thomas Lundquist
2008-04-06 10:32 ulf at uclibc.org
2008-04-06 10:30 nkukard at uclibc.org
2008-04-06 10:10 ulf at uclibc.org
2008-04-06 11:42 ` Peter Korsgaard
2008-04-06 10:02 ulf at uclibc.org
2008-03-31  5:42 ulf at uclibc.org
2008-04-01 11:09 ` Jean-Christian de Rivaz
2008-04-02 21:28   ` Ulf Samuelsson
2008-04-03  6:53     ` Jean-Christian de Rivaz
2008-04-04 15:24       ` Ulf Samuelsson
2008-04-02 21:28   ` Ulf Samuelsson
2008-03-30 20:22 jacmet at uclibc.org
2008-03-30 20:04 ulf at uclibc.org
2008-03-29 17:47 nkukard at uclibc.org
2008-03-21 17:57 ninevoltz at uclibc.org
2008-03-20 23:02 ulf at uclibc.org
2008-03-18 13:26 ulf at uclibc.org
2008-03-18  8:17 ulf at uclibc.org
2008-03-15  5:07 ulf at uclibc.org
2008-03-06 18:52 ninevoltz at uclibc.org
2008-01-10  9:31 ulf at uclibc.org
2007-10-18 12:37 ulf at uclibc.org
2007-10-18 11:58 ulf at uclibc.org
2007-10-13 23:07 ulf at uclibc.org
2007-10-13 18:37 ulf at uclibc.org
2007-09-29 16:38 aldot at uclibc.org
2007-09-26 23:21 ulf at uclibc.org
2007-09-23  9:58 ulf at uclibc.org
2007-09-23 11:13 ` Bernhard Fischer
2007-09-23 14:20   ` Ulf Samuelsson
2007-09-22 17:30 aldot at uclibc.org
2007-09-18 17:10 aldot at uclibc.org
2007-09-18 21:08 ` Ulf Samuelsson
2007-09-19  8:03   ` Bernhard Fischer
2007-09-19 21:46     ` Ulf Samuelsson
2007-09-19 21:18       ` Bernhard Fischer
2007-09-20 17:33         ` Ulf Samuelsson
2007-09-20 16:00           ` Bernhard Fischer
2007-09-05  6:48 ulf at uclibc.org
2007-09-04 21:24 aldot at uclibc.org
2007-08-21 13:21 aldot at uclibc.org
2007-08-21 13:29 ` Ulf Samuelsson
2007-08-19 22:30 ulf at uclibc.org
2007-08-19 22:28 ulf at uclibc.org
2007-08-01 11:52 ulf at uclibc.org
2007-07-23 14:43 aldot at uclibc.org
2007-07-20  7:43 ulf at uclibc.org
2007-07-17 13:28 sjhill at uclibc.org
2007-07-17  0:20 sjhill at uclibc.org
2007-07-11 14:42 ulf at uclibc.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=480643F6.1070800@eclis.ch \
    --to=jc@eclis.ch \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox