Commit Graph

7639 Commits

Author SHA1 Message Date
Thomas Petazzoni
f507921d39 linux: add support for initramfs
In Buildroot, the kernel is built and installed *before* the root
filesystems are built. This allows the root filesystem to correctly
contain the kernel modules that have been installed.

However, in the initramfs case, the root filesystem is part of the
kernel. Therefore, the kernel should be built *after* the root
filesystem (which, in the initramfs case simply builds a text file
listing all files/directories/devices/symlinks that should be part of
the initramfs). However, this isn't possible as the initramfs text
file would lack all kernel modules.

So, the solution choosen here is to keep the normal order: kernel is
built before the root filesystem is generated, and to add a little
quirk to retrigger a kernel compilation after the root filesystem
generation.

To do so, we add a ROOTFS_$(FSTYPE)_POST_TARGETS variable to the
fs/common.mk infrastructure. This allows individual filesystems to set
a target name that we should depend on *after* generating the root
filesystem itself (contrary to normal ROOTFS_$(FSTYPE)_DEPENDENCIES,
on which we depend *before* generating the root filesystem).

The initramfs code in fs/initramfs/initramfs.mk uses this to add a
dependency on 'linux26-rebuild-with-initramfs'.

In linux/linux.mk, we do various things :

 * If BR2_TARGET_ROOTFS_INITRAMFS is enabled (i.e if initramfs is
   enabled as a root filesystem type), then we create an empty
   rootfs.initramfs file (remember that at this point, the root
   filesystem hasn't been generated) and we adjust the kernel
   configuration to include an initramfs. Of course, in the initial
   kernel build, this initramfs will be empty.

 * In the linux26-rebuild-with-initramfs target, we retrigger a
   compilation of the kernel image, after removing the initramfs in
   the kernel sources to make sure it gets properly rebuilt (we've
   experienced cases were modifying the rootfs.initramfs file wouldn't
   retrigger the generation of the initramfs at the kernel level).

This is fairly quirky, but initramfs really is a special case, so in
one way or another, we need a little quirk to solve its specialness.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-22 21:20:28 +02:00
Thomas Petazzoni
4944e8c883 linux: add support for linux26-{menuconfig,xconfig,gconfig} targets
These targets allow the user to customize the configuration of the
Linux kernel. After changing the kernel configuration, the next time
the user runs "make", the kernel is rebuilt to take into account the
new configuration (not rebuilt from scratch).

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-22 21:20:27 +02:00
Thomas Petazzoni
100c09a53b linux: adjust kernel config according to the Buildroot configuration
We only adjust the configuration or ARM EABI and IPv6. The (more
complicated) initramfs case is handled in a separate commit. The user
is expected to take care of all other configuration details (like
having Netfilter enabled to make iptables work, etc.)

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-22 21:20:27 +02:00
Thomas Petazzoni
0802370746 Add generic functions to enable/set/disable options in kconfig files
The KCONFIG_ENABLE_OPT, KCONFIG_SET_OPT and KCONFIG_DISABLE_OPT are
new make functions to respectively enable, set and disable options in
Kconfig-like files (as used by the kernel, uClibc or Busybox).

They can be used as follows :

 $(call KCONFIG_ENABLE_OPT,CONFIG_FOOBAR,/path/to/.config)
 $(call KCONFIG_SET_OPT,CONFIG_BARFOO,foobar,/path/to/.config)
 $(call KCONFIG_DISABLE_OPT,CONFIG_FARBOO,/path/to/.config)

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-22 21:20:27 +02:00
Thomas Petazzoni
dc4d5647a5 linux: Add dependency on host-module-init-tools
In order to not depend on module init tools being installed on the
development environment of the Buildroot user, let's build module init
tools for the host.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-22 21:20:27 +02:00
Thomas Petazzoni
dcc08e84a5 module-init-tools: bump version + convert to autotools
The "remove-index" patch is no longer needed, the newer version of
module-init-tools correctly uses strchr().

The "module-init-tools" patch, whose main purpose was to disable the
generation of man pages (it requires docbook2man), is replaced by a
simpler implementation,
module-init-tools-3.11-add-manpages-config-option.patch.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-22 21:20:26 +02:00
Thomas Petazzoni
9497c0fee2 module-init-tools: remove support for cross-depmod
The new infrastructure to build the Linux kernel doesn't use a
cross-depmod. This isn't needed with modern module-init-tools that
most distros include perfectly handle this.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-22 21:20:26 +02:00
Thomas Petazzoni
c7ee5853a0 iso9660: take into account the linux changes
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-22 21:20:26 +02:00
Thomas Petazzoni
fe1cba690a Remove old Linux infrastructure
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-22 21:20:26 +02:00
Thomas Petazzoni
487e21cff6 New, simpler, infrastructure for building the Linux kernel
This patch introduces a single, simple, infrastructure to build the
Linux kernel. The configuration is limited to :

 * Kernel version: a fixed recent stable version, same as kernel
   headers version (for internal toolchains only), custom stable
   version, or custom tarball URL

 * Kernel patch: either a local file, directory or an URL

 * Kernel configuration: either the name of a defconfig or the
   location of a custom configuration file

 * Kernel image: either uImage, bzImage, zImage or vmlinux.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-22 21:20:25 +02:00
Peter Korsgaard
cd7459b4ee docs: Document location of .config for out-of-tree builds
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-21 23:07:12 +02:00
Peter Korsgaard
f63440cc43 docs: fix git-over-http description
This has now finally been setup.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-21 23:02:32 +02:00
Peter Korsgaard
e9220ad60b Config.in.mirrors: Use sources.buildroot.net as default backup site
The buildroot/busybox/uClibc VM is running low on disk space, and we've
been asked to move the source mirrors off-site.

A redirect has been setup between the old buildroot.net/downloads/sources/
and sources.buildroot.net, so old .configs continue to work, but we might
as well use the official one now.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-21 23:02:31 +02:00
Peter Korsgaard
bec3480a44 check-host-sed.sh: use mktemp for temporary file
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-21 23:02:31 +02:00
Peter Korsgaard
b50fedbcd3 check-lxdialog.sh: use mktemp for temporary file
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-21 23:02:24 +02:00
Peter Korsgaard
a4c99e8fb0 package/config: create .depend in object directory
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-21 23:02:07 +02:00
Peter Korsgaard
2cc210c92f kconfig: build in BUILD_DIR/buildroot-config
This way the main buildroot dir can be completely read-only for
out-of-tree builds

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-21 22:16:34 +02:00
Peter Korsgaard
2691d80803 Makefile: fix make <blah>_defconfig
Make sure we only pass O=<path> if we were originally called like that,
otherwise we might end up looking for the .config in the wrong place.

Likewise, when changing between using O= or not (or simply running
make <blah>_defconfig in a pristine source tree), we do end up having
a .config, but no .config.cmd. It isn't really critical so just continue
even if we couldn't read it.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-21 22:16:34 +02:00
Peter Korsgaard
b8cca06b50 cleanup/simplify kconfig changes for O= builds
No functional change.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-21 22:11:31 +02:00
Will Wagner
39ca6d50d8 Move config files into output directory for out-of-tree build
Closes #1213

Signed-off-by: Will Wagner <will_wagner@carallon.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-21 22:06:00 +02:00
Peter Korsgaard
868ed55b45 CHANGES: #835 is closed
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-18 22:13:12 +02:00
Gustavo Zacarias
c32ce8b56b ncurses: bump to 5.7
Closes #2038

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-18 19:23:38 +02:00
Peter Korsgaard
1e627bf212 uClibc: 0.9.31.config: enable UCLIBC_SV4_DEPRECATED option
Needed by xfsprogs.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-18 11:48:58 +02:00
Peter Korsgaard
4342271319 ntfsprogs: fix fuse dependency
The ntfsprogs configure script would add hardcoded host dirs to the
pkg-config search path, confusing configure if libraries were installed
on the host and not on the target.

At the same time, ensure that fuse is build before ntfsprogs (if enabled),
so the fuse support gets built.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-18 11:19:45 +02:00
Peter Korsgaard
bde127c3bc ntfsprogs: disable crypto support
The ntfsprogs crypto support requires libgnutls, which we don't have
in BR, and the autodetection in configure gets confused when the host
has a libcrypt-config.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-18 09:19:24 +02:00
Peter Korsgaard
dfa2a513e1 squashfs: fix build with uClibc
squashfs used the get_nprocs() GNU extension, instead of directly
calling sysconf(), breaking the build on uClibc.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-17 22:45:22 +02:00
cmchao
4f3f291a3b lrzsz: convert to autotools infrastructure
Signed-off-by: cmchao <cmchao@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-16 22:42:33 +02:00
Gustavo Zacarias
b767b8d1ab libart: fix staging install
The libart package had a couple of typos so it never really installed to
staging. So fix it.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-16 21:45:51 +02:00
Peter Korsgaard
5fd095b374 toolchain: remove gcc 4.1.2 and non-sysroot support
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-15 23:16:55 +02:00
Peter Korsgaard
144e4ed085 toolchain/gcc: Use 4.3.x like for 4.4, get rid of older 4.3.x versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-15 22:58:17 +02:00
Gustavo Zacarias
947a9b8586 toolchain: bump gcc 4.3.x series to 4.3.5
Closes #2065

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-15 22:54:44 +02:00
Paul Jones
36391de0db Fix potentially conflicting build flags
Change the default target optimisation value so
it does not conflict with gcc optimization level

Signed-off-by: Paul Jones <paul@pauljones.id.au>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-15 10:50:15 +02:00
Luca Ceresoli
5db7204c80 ffmpeg: add user-defined configure parameters
Closes #401

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-15 08:52:17 +02:00
Luca Ceresoli
56e4d69254 ffmpeg: allow customization of codecs, (de)muxers and other components
Add the option to customize the list of decoders, encoders, muxers, demuxers,
parsers, protocols, bsfs and filters to be built into ffmpeg, and to compile or
exclude input and output devices.

[Peter: fix qstrip invocation]
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-14 23:39:15 +02:00
Luca Ceresoli
5253efadb0 ffmpeg: add commandline programs
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-14 23:39:15 +02:00
Luca Ceresoli
13293407c9 ffmpeg: add new package
[Peter: configure doesn't support --disable-nls / --disable-largefile,
 needs largefile support in toolchain]
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-14 23:39:07 +02:00
Peter Korsgaard
d2f6fcd1b4 at91dataflashboot: fix patch target
Touch destination file so the patch target isn't rerun for every
invocation.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-14 23:06:37 +02:00
Peter Korsgaard
1e17790cf2 at91bootstrap: add help text
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-14 22:33:08 +02:00
Peter Korsgaard
a7a3e7577a CHANGES: update with changes from Thomas' bootloaders-cleanup branch
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-14 22:25:32 +02:00
Peter Korsgaard
db55d4b80a at91bootstrap: don't depend on BR .config
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-14 22:21:11 +02:00
Peter Korsgaard
22b80a23fc Merge branch 'bootloaders-cleanup' of git://git.busybox.net/~tpetazzoni/git/buildroot 2010-06-14 21:41:12 +02:00
Peter Korsgaard
f4b7efe504 busybox: add 1.16.2 devmem fix for access to the highest page
From busybox git.

Devmem used to always map 2 pages in case the access would cross a page
boundary, which fails if you try to access the highest page.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-14 09:47:49 +02:00
Peter Korsgaard
6ed87eac98 busybox: bump 1.16.x version
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-14 09:45:38 +02:00
Peter Korsgaard
dff1d590b2 ipsec-tools: bump version, convert to autotools format and simplify Config.in
Closes #2035

- Remove -Werror from CFLAGS
- Always enable ipv6 support if available in toolchain
- Always install into staging

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-13 23:46:26 +02:00
Peter Korsgaard
5485120b47 vpnc: remove unused legacy patches
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-13 23:43:13 +02:00
Thomas Petazzoni
fa2a311b77 linux: fix dependency on mkimage
After the rework of the U-Boot configuration/compilation process, we
need to slightly rework how target/linux/Makefile.in.advanced depends
on mkimage on the host to produce an uImage.

target/linux/Makefile.in doesn't need to be fixed as it just doesn't
handle this dependency for the moment.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-13 15:20:28 +02:00
Thomas Petazzoni
6cc9d936a9 Add support for the Barebox bootloader
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-12 16:03:24 +02:00
Thomas Petazzoni
ef81363d69 at91dataflashboot: add two patches
The first patch allows to build with an EABI toolchain. The second
patch disables the install step of at91dataflashboot Makefile since it
tries to copy files to /tftpboot.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-12 13:38:49 +02:00
Thomas Petazzoni
470888bede at91dataflashboot: add a patch step
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-12 13:38:48 +02:00
Thomas Petazzoni
a4c1f06350 at91dataflashboot: various fixes
Fix the URL, fix the directory to which it gets unpacked, fix make
target names to be lower-case only.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-12 13:38:48 +02:00