Merge pull request #831 from ccrisan/better-firmware-update

Better firmware update
This commit is contained in:
Calin Crisan 2017-03-17 20:46:18 +02:00 committed by GitHub
commit e4b2abd652
3983 changed files with 59683 additions and 49065 deletions

10
.br-external.mk Normal file
View File

@ -0,0 +1,10 @@
#
# Automatically generated file; DO NOT EDIT.
#
BR2_EXTERNAL ?=
BR2_EXTERNAL_NAMES =
BR2_EXTERNAL_DIRS =
BR2_EXTERNAL_MKS =
# No br2-external tree defined.

408
Config.in
View File

@ -14,18 +14,23 @@ config BR2_HOSTARCH
string
option env="HOSTARCH"
config BR2_EXTERNAL
config BR2_BUILD_DIR
string
option env="BR2_EXTERNAL"
option env="BUILD_DIR"
# Hidden config symbols for packages to check system gcc version
config BR2_HOST_GCC_VERSION
string
option env="HOST_GCC_VERSION"
config BR2_HOST_GCC_AT_LEAST_4_5
bool
default y if BR2_HOST_GCC_VERSION = "4 5"
config BR2_HOST_GCC_AT_LEAST_4_6
bool
default y if BR2_HOST_GCC_VERSION = "4 6"
select BR2_HOST_GCC_AT_LEAST_4_5
config BR2_HOST_GCC_AT_LEAST_4_7
bool
@ -47,6 +52,11 @@ config BR2_HOST_GCC_AT_LEAST_5
default y if BR2_HOST_GCC_VERSION = "5"
select BR2_HOST_GCC_AT_LEAST_4_9
config BR2_HOST_GCC_AT_LEAST_6
bool
default y if BR2_HOST_GCC_VERSION = "6"
select BR2_HOST_GCC_AT_LEAST_5
# Hidden boolean selected by packages in need of Java in order to build
# (example: xbmc)
config BR2_NEEDS_HOST_JAVA
@ -74,6 +84,11 @@ config BR2_HOSTARCH_NEEDS_IA32_LIBS
config BR2_HOSTARCH_NEEDS_IA32_COMPILER
bool
# Hidden boolean selected by packages that need the host to have an
# UTF8 locale.
config BR2_NEEDS_HOST_UTF8_LOCALE
bool
source "arch/Config.in"
menu "Build options"
@ -120,9 +135,9 @@ config BR2_ZCAT
string "zcat command"
default "gzip -d -c"
help
Command to be used to extract a gzip'ed file to stdout.
zcat is identical to gunzip -c except that the former may
not be available on your system.
Command to be used to extract a gzip'ed file to stdout. zcat
is identical to gunzip -c except that the former may not be
available on your system.
Default is "gzip -d -c"
Other possible values include "gunzip -c" or "zcat".
@ -143,6 +158,13 @@ config BR2_XZCAT
Command to be used to extract a xz'ed file to stdout.
Default is "xzcat"
config BR2_LZCAT
string "lzcat command"
default "lzip -d -c"
help
Command to be used to extract a lzip'ed file to stdout.
Default is "lzip -d -c"
config BR2_TAR_OPTIONS
string "Tar options"
default ""
@ -162,8 +184,8 @@ config BR2_DEFCONFIG
default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
default "$(CONFIG_DIR)/defconfig"
help
When running 'make savedefconfig', the defconfig file will be saved
in this location.
When running 'make savedefconfig', the defconfig file will be
saved in this location.
config BR2_DL_DIR
string "Download dir"
@ -171,7 +193,8 @@ config BR2_DL_DIR
help
Directory to store all the source files that we need to fetch.
If the Linux shell environment has defined the BR2_DL_DIR
environment variable, then this overrides this configuration item.
environment variable, then this overrides this configuration
item.
The default is $(TOPDIR)/dl
@ -179,9 +202,9 @@ config BR2_HOST_DIR
string "Host dir"
default "$(BASE_DIR)/host"
help
Directory to store all the binary files that are built for the host.
This includes the cross compilation toolchain when building the
internal buildroot toolchain.
Directory to store all the binary files that are built for the
host. This includes the cross compilation toolchain when
building the internal buildroot toolchain.
The default is $(BASE_DIR)/host
@ -191,9 +214,9 @@ config BR2_PRIMARY_SITE
string "Primary download site"
default ""
help
Primary site to download from. If this option is set then buildroot
will try to download package source first from this site and try the
default if the file is not found.
Primary site to download from. If this option is set then
buildroot will try to download package source first from this
site and try the default if the file is not found.
Valid URIs are:
- URIs recognized by $(WGET)
- local URIs of the form file://absolutepath
@ -206,11 +229,11 @@ config BR2_PRIMARY_SITE_ONLY
If this option is enabled, downloads will only be attempted
from the primary download site. Other locations, like the
package's official download location or the backup download
site, will not be considered. Therefore, if the package is
not present on the primary site, the download fails.
site, will not be considered. Therefore, if the package is not
present on the primary site, the download fails.
This is useful for project developers who want to ensure
that the project can be built even if the upstream tarball
This is useful for project developers who want to ensure that
the project can be built even if the upstream tarball
locations disappear.
if !BR2_PRIMARY_SITE_ONLY
@ -219,32 +242,36 @@ config BR2_BACKUP_SITE
string "Backup download site"
default "http://sources.buildroot.net"
help
Backup site to download from. If this option is set then buildroot
will fall back to download package sources from here if the
normal location fails.
Backup site to download from. If this option is set then
buildroot will fall back to download package sources from here
if the normal location fails.
config BR2_KERNEL_MIRROR
string "Kernel.org mirror"
default "https://www.kernel.org/pub"
default "https://cdn.kernel.org/pub"
help
kernel.org is mirrored on a number of servers around the world.
The following allows you to select your preferred mirror.
kernel.org is mirrored on a number of servers around the
world. The following allows you to select your preferred
mirror. By default, a CDN is used, which automatically
redirects to a mirror geographically close to you.
Have a look on the kernel.org site for a list of mirrors, then enter
the URL to the base directory. Examples:
Have a look on the kernel.org site for a list of mirrors, then
enter the URL to the base directory. Examples:
http://www.XX.kernel.org/pub (XX = country code)
http://mirror.aarnet.edu.au/pub/ftp.kernel.org
config BR2_GNU_MIRROR
string "GNU Software mirror"
default "http://ftp.gnu.org/pub/gnu"
default "http://ftpmirror.gnu.org"
help
GNU has multiple software mirrors scattered around the world.
The following allows you to select your preferred mirror.
GNU has multiple software mirrors scattered around the
world. The following allows you to select your preferred
mirror. By default, a generic address is used, which
automatically selects an up-to-date and local mirror.
Have a look on the gnu.org site for a list of mirrors, then enter
the URL to the base directory. Examples:
Have a look on the gnu.org site for a list of mirrors, then
enter the URL to the base directory. Examples:
http://ftp.gnu.org/pub/gnu
http://mirror.aarnet.edu.au/pub/gnu
@ -261,8 +288,8 @@ config BR2_CPAN_MIRROR
string "CPAN mirror (Perl packages)"
default "http://cpan.metacpan.org"
help
CPAN (Comprehensive Perl Archive Network) is a repository
of Perl packages. It has multiple software mirrors scattered
CPAN (Comprehensive Perl Archive Network) is a repository of
Perl packages. It has multiple software mirrors scattered
around the world. This option allows you to select a mirror.
The list of mirrors is available at:
@ -276,24 +303,22 @@ config BR2_JLEVEL
int "Number of jobs to run simultaneously (0 for auto)"
default "0"
help
Number of jobs to run simultaneously. If 0, determine
automatically according to number of CPUs on the host
system.
Number of jobs to run simultaneously. If 0, determine
automatically according to number of CPUs on the host system.
config BR2_CCACHE
bool "Enable compiler cache"
help
This option will enable the use of ccache, a compiler
cache. It will cache the result of previous builds to speed
up future builds. By default, the cache is stored in
This option will enable the use of ccache, a compiler cache.
It will cache the result of previous builds to speed up future
builds. By default, the cache is stored in
$HOME/.buildroot-ccache.
Note that Buildroot does not try to invalidate the cache
contents when the compiler changes in an incompatible
way. Therefore, if you make a change to the compiler version
and/or configuration, you are responsible for purging the
ccache cache by removing the $HOME/.buildroot-ccache
directory.
contents when the compiler changes in an incompatible way.
Therefore, if you make a change to the compiler version and/or
configuration, you are responsible for purging the ccache
cache by removing the $HOME/.buildroot-ccache directory.
if BR2_CCACHE
@ -306,16 +331,19 @@ config BR2_CCACHE_DIR
config BR2_CCACHE_INITIAL_SETUP
string "Compiler cache initial setup"
help
Initial ccache settings to apply, such as --max-files or --max-size.
Initial ccache settings to apply, such as --max-files or
--max-size.
For example, if your project is known to require more space than the
default max cache size, then you might want to increase the cache size
to a suitable amount using the -M (--max-size) option.
For example, if your project is known to require more space
than the default max cache size, then you might want to
increase the cache size to a suitable amount using the -M
(--max-size) option.
The string you specify here is passed verbatim to ccache. Refer to
ccache documentation for more details.
The string you specify here is passed verbatim to ccache.
Refer to ccache documentation for more details.
These initial settings are applied after ccache has been compiled.
These initial settings are applied after ccache has been
compiled.
config BR2_CCACHE_USE_BASEDIR
bool "Use relative paths"
@ -324,55 +352,25 @@ config BR2_CCACHE_USE_BASEDIR
Allow ccache to convert absolute paths within the output
directory into relative paths.
During the build, many -I include directives are given with
an absolute path. These absolute paths end up in the hashes
that are computed by ccache. Therefore, when you build from a
different directory, the hash will be different and the
cached object will not be used.
During the build, many -I include directives are given with an
absolute path. These absolute paths end up in the hashes that
are computed by ccache. Therefore, when you build from a
different directory, the hash will be different and the cached
object will not be used.
To improve cache performance, set this option to y. This
allows ccache to rewrite absolute paths within the output
directory into relative paths. Note that only paths within
the output directory will be rewritten; therefore, if you
change BR2_HOST_DIR to point outside the output directory and
directory into relative paths. Note that only paths within the
output directory will be rewritten; therefore, if you change
BR2_HOST_DIR to point outside the output directory and
subsequently move it to a different location, this will lead
to cache misses.
This option has as a result that the debug information in the
object files also has only relative paths. Therefore, make
sure you cd to the build directory before starting gdb. See
the section "COMPILING IN DIFFERENT DIRECTORIES" in the
ccache manual for more information.
endif
config BR2_DEPRECATED
bool "Show options and packages that are deprecated or obsolete"
help
This option shows outdated/obsolete versions of packages and
options that are otherwise hidden.
if BR2_DEPRECATED
config BR2_DEPRECATED_SINCE_2015_05
bool
default y
config BR2_DEPRECATED_SINCE_2015_08
bool
default y
config BR2_DEPRECATED_SINCE_2015_11
bool
default y
config BR2_DEPRECATED_SINCE_2016_02
bool
default y
config BR2_DEPRECATED_SINCE_2016_05
bool
default y
the section "COMPILING IN DIFFERENT DIRECTORIES" in the ccache
manual for more information.
endif
@ -396,11 +394,11 @@ choice
config BR2_DEBUG_1
bool "debug level 1"
help
Debug level 1 produces minimal information, enough
for making backtraces in parts of the program that
you don't plan to debug. This includes descriptions
of functions and external variables, but no information
about local variables and no line numbers.
Debug level 1 produces minimal information, enough for making
backtraces in parts of the program that you don't plan to
debug. This includes descriptions of functions and external
variables, but no information about local variables and no
line numbers.
config BR2_DEBUG_2
bool "debug level 2"
@ -410,9 +408,9 @@ config BR2_DEBUG_2
config BR2_DEBUG_3
bool "debug level 3"
help
Level 3 includes extra information, such as all the
macro definitions present in the program. Some debuggers
support macro expansion when you use -g3.
Level 3 includes extra information, such as all the macro
definitions present in the program. Some debuggers support
macro expansion when you use -g3.
endchoice
endif
@ -425,16 +423,15 @@ config BR2_STRIP_strip
depends on !BR2_PACKAGE_HOST_ELF2FLT
help
Binaries and libraries in the target filesystem will be
stripped using the normal 'strip' command. This allows to
save space, mainly by removing debugging symbols. Debugging
symbols on the target are needed for native debugging, but
not when remote debugging is used.
stripped using the normal 'strip' command. This allows to save
space, mainly by removing debugging symbols. Debugging symbols
on the target are needed for native debugging, but not when
remote debugging is used.
config BR2_STRIP_none
bool "none"
help
Do not strip binaries and libraries in the target
filesystem.
Do not strip binaries and libraries in the target filesystem.
endchoice
config BR2_STRIP_EXCLUDE_FILES
@ -442,19 +439,19 @@ config BR2_STRIP_EXCLUDE_FILES
depends on !BR2_STRIP_none
default ""
help
You may specify a space-separated list of binaries and libraries
here that should not be stripped on the target.
You may specify a space-separated list of binaries and
libraries here that should not be stripped on the target.
config BR2_STRIP_EXCLUDE_DIRS
string "directories that should be skipped when stripping"
depends on !BR2_STRIP_none
default ""
help
You may specify a space-separated list of directories that should
be skipped when stripping. Binaries and libraries in these
directories will not be touched.
The directories should be specified relative to the target directory,
without leading slash.
You may specify a space-separated list of directories that
should be skipped when stripping. Binaries and libraries in
these directories will not be touched. The directories should
be specified relative to the target directory, without leading
slash.
choice
prompt "gcc optimization level"
@ -470,54 +467,67 @@ config BR2_OPTIMIZE_0
config BR2_OPTIMIZE_1
bool "optimization level 1"
help
Optimize. Optimizing compilation takes somewhat more time,
and a lot more memory for a large function. With -O, the
compiler tries to reduce code size and execution time,
without performing any optimizations that take a great deal
of compilation time. -O turns on the following optimization
Optimize. Optimizing compilation takes somewhat more time, and
a lot more memory for a large function. With -O, the compiler
tries to reduce code size and execution time, without
performing any optimizations that take a great deal of
compilation time. -O turns on the following optimization
flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
-fcprop-registers -floop-optimize -fif-conversion
-fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
-ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
-ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants
-O also turns on -fomit-frame-pointer on machines where doing
so does not interfere with debugging.
-ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants. -O
also turns on -fomit-frame-pointer on machines where doing so
does not interfere with debugging.
config BR2_OPTIMIZE_2
bool "optimization level 2"
help
Optimize even more. GCC performs nearly all supported optimizations
that do not involve a space-speed tradeoff. The compiler does not
perform loop unrolling or function inlining when you specify -O2.
As compared to -O, this option increases both compilation time and
the performance of the generated code. -O2 turns on all optimization
flags specified by -O. It also turns on the following optimization
flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls
Optimize even more. GCC performs nearly all supported
optimizations that do not involve a space-speed tradeoff. The
compiler does not perform loop unrolling or function inlining
when you specify -O2. As compared to -O, this option increases
both compilation time and the performance of the generated
code. -O2 turns on all optimization flags specified by -O. It
also turns on the following optimization flags:
-fthread-jumps -fcrossjumping -foptimize-sibling-calls
-fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm
-fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop
-frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns
-fschedule-insns2 -fsched-interblock -fsched-spec -fregmove
-fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks
-freorder-functions -falign-functions -falign-jumps -falign-loops
-falign-labels -ftree-vrp -ftree-pre
Please note the warning under -fgcse about invoking -O2 on programs
-fexpensive-optimizations -fstrength-reduce
-frerun-cse-after-loop -frerun-loop-opt -fcaller-saves
-fpeephole2 -fschedule-insns -fschedule-insns2
-fsched-interblock -fsched-spec -fregmove -fstrict-aliasing
-fdelete-null-pointer-checks -freorder-blocks
-freorder-functions -falign-functions -falign-jumps
-falign-loops -falign-labels -ftree-vrp -ftree-pre. Please
note the warning under -fgcse about invoking -O2 on programs
that use computed gotos.
config BR2_OPTIMIZE_3
bool "optimization level 3"
help
Optimize yet more. -O3 turns on all optimizations specified by -O2
and also turns on the -finline-functions, -funswitch-loops and
-fgcse-after-reload options.
Optimize yet more. -O3 turns on all optimizations specified by
-O2 and also turns on the -finline-functions, -funswitch-loops
and -fgcse-after-reload options.
config BR2_OPTIMIZE_G
bool "optimize for debugging"
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
help
Optimize for debugging. This enables optimizations that do not
interfere with debugging. It should be the optimization level
of choice for the standard edit-compile-debug cycle, offering
a reasonable level of optimization while maintaining fast
compilation and a good debugging experience.
config BR2_OPTIMIZE_S
bool "optimize for size"
help
Optimize for size. -Os enables all -O2 optimizations that do not
typically increase code size. It also performs further optimizations
designed to reduce code size. -Os disables the following optimization
flags: -falign-functions -falign-jumps -falign-loops -falign-labels
-freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays
Optimize for size. -Os enables all -O2 optimizations that do
not typically increase code size. It also performs further
optimizations designed to reduce code size. -Os disables the
following optimization flags: -falign-functions -falign-jumps
-falign-loops -falign-labels -freorder-blocks
-freorder-blocks-and-partition -fprefetch-loop-arrays
-ftree-vect-loop-version
endchoice
@ -526,16 +536,20 @@ config BR2_GOOGLE_BREAKPAD_ENABLE
bool "Enable google-breakpad support"
select BR2_PACKAGE_GOOGLE_BREAKPAD
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_USES_GLIBC
depends on BR2_HOST_GCC_AT_LEAST_4_8 # C++11
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
depends on BR2_USE_WCHAR
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC)
depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
help
This option will enable the use of google breakpad, a
library and tool suite that allows you to distribute an
application to users with compiler-provided debugging
information removed, record crashes in compact "minidump"
files, send them back to your server and produce C and C++
stack traces from these minidumps. Breakpad can also write
minidumps on request for programs that have not crashed.
This option will enable the use of google breakpad, a library
and tool suite that allows you to distribute an application to
users with compiler-provided debugging information removed,
record crashes in compact "minidump" files, send them back to
your server and produce C and C++ stack traces from these
minidumps. Breakpad can also write minidumps on request for
programs that have not crashed.
if BR2_GOOGLE_BREAKPAD_ENABLE
@ -563,12 +577,13 @@ choice
Enable stack smashing protection support using GCC's
-fstack-protector option family.
See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
See
http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
for details.
Note that this requires the toolchain to have SSP
support. This is always the case for glibc and eglibc
toolchain, but is optional in uClibc toolchains.
Note that this requires the toolchain to have SSP support.
This is always the case for glibc and eglibc toolchain, but is
optional in uClibc toolchains.
config BR2_SSP_NONE
bool "None"
@ -616,20 +631,19 @@ choice
help
Select the type of libraries you want to use on the target.
The default is to build dynamic libraries and use those on
the target filesystem, except when the architecture and/or
the selected binary format does not support shared
libraries.
The default is to build dynamic libraries and use those on the
target filesystem, except when the architecture and/or the
selected binary format does not support shared libraries.
config BR2_STATIC_LIBS
bool "static only"
help
Build and use only static libraries. No shared libraries
will be instaled on the target. This potentially increases
your code size and should only be used if you know what you
are doing. Note that some packages may not be available when
this option is enabled, due to their need for dynamic
library support.
Build and use only static libraries. No shared libraries will
be installed on the target. This potentially increases your
code size and should only be used if you know what you are
doing. Note that some packages may not be available when this
option is enabled, due to their need for dynamic library
support.
config BR2_SHARED_LIBS
bool "shared only"
@ -655,48 +669,67 @@ config BR2_PACKAGE_OVERRIDE_FILE
default "$(CONFIG_DIR)/local.mk"
help
A package override file is a short makefile that contains
variable definitions of the form <pkg>_OVERRIDE_SRCDIR,
which allows to tell Buildroot to use an existing directory
as the source directory for a particular package. See the
Buildroot documentation for more details on this feature.
variable definitions of the form <pkg>_OVERRIDE_SRCDIR, which
allows to tell Buildroot to use an existing directory as the
source directory for a particular package. See the Buildroot
documentation for more details on this feature.
config BR2_GLOBAL_PATCH_DIR
string "global patch directories"
help
You may specify a space separated list of one or more directories
containing global package patches. For a specific version
<packageversion> of a specific package <packagename>, patches are
applied as follows:
You may specify a space separated list of one or more
directories containing global package patches. For a specific
version <packageversion> of a specific package <packagename>,
patches are applied as follows:
First, the default Buildroot patch set for the package is applied
from the package's directory in Buildroot.
First, the default Buildroot patch set for the package is
applied from the package's directory in Buildroot.
Then for every directory - <global-patch-dir> - that exists in
BR2_GLOBAL_PATCH_DIR, if the directory
<global-patch-dir>/<packagename>/<packageversion>/ exists, then all
*.patch files in this directory will be applied.
<global-patch-dir>/<packagename>/<packageversion>/ exists,
then all *.patch files in this directory will be applied.
Otherwise, if the directory <global-patch-dir>/<packagename> exists,
then all *.patch files in the directory will be applied.
Otherwise, if the directory <global-patch-dir>/<packagename>
exists, then all *.patch files in the directory will be
applied.
menu "Advanced"
config BR2_COMPILER_PARANOID_UNSAFE_PATH
bool "paranoid check of library/header paths"
default y
help
By default, when this option is disabled, when the Buildroot
cross-compiler will encounter an unsafe library or header
path (such as /usr/include, or /usr/lib), the compiler will
display a warning.
cross-compiler will encounter an unsafe library or header path
(such as /usr/include, or /usr/lib), the compiler will display
a warning.
By enabling this option, this warning is turned into an
error, which will completely abort the build when such
unsafe paths are encountered.
By enabling this option, this warning is turned into an error,
which will completely abort the build when such unsafe paths
are encountered.
Note that this mechanism is available for both the internal
toolchain (through the toolchain wrapper and binutils patches)
and external toolchain backends (through the toolchain wrapper).
config BR2_REPRODUCIBLE
bool "Make the build reproducible (experimental)"
help
This option will remove all sources of non-reproducibility
from the build process. For a given Buildroot configuration,
this allows to generate exactly identical binaries from one
build to the other, including on different machines.
The current implementation is restricted to builds with the
same output directory. Many (absolute) paths are recorded in
intermediary files, and it is very likely that some of these
paths leak into the target rootfs. If you build with the
same O=... path, however, the result is identical.
This is labeled as an experimental feature, as not all
packages behave properly to ensure reproducibility.
endmenu
endmenu
@ -717,9 +750,4 @@ source "package/Config.in.host"
source "Config.in.legacy"
menu "User-provided options"
depends on BR2_EXTERNAL != "support/dummy-external"
source "$BR2_EXTERNAL/Config.in"
endmenu
source "$BR2_BUILD_DIR/.br2-external.in"

View File

@ -142,6 +142,402 @@ comment "build, or run, in unpredictable ways. "
comment "----------------------------------------------------"
endif
###############################################################################
comment "Legacy options removed in 2017.02"
config BR2_PACKAGE_PERL_DB_FILE
bool "perl-db-file removed"
select BR2_LEGACY
select BR2_PACKAGE_BERKELEYDB
select BR2_PACKAGE_PERL
help
DB_File can be built as a core Perl module, so the separate
perl-db-file package has been removed.
config BR2_KERNEL_HEADERS_4_7
bool "kernel headers version 4.7.x are no longer supported"
select BR2_KERNEL_HEADERS_4_4
select BR2_LEGACY
help
Version 4.7.x of the Linux kernel headers are no longer
maintained upstream and are now removed. As an alternative,
version 4.4.x of the headers have been automatically
selected in your configuration.
config BR2_KERNEL_HEADERS_4_6
bool "kernel headers version 4.6.x are no longer supported"
select BR2_KERNEL_HEADERS_4_4
select BR2_LEGACY
help
Version 4.6.x of the Linux kernel headers are no longer
maintained upstream and are now removed. As an alternative,
version 4.4.x of the headers have been automatically
selected in your configuration.
config BR2_KERNEL_HEADERS_4_5
bool "kernel headers version 4.5.x are no longer supported"
select BR2_KERNEL_HEADERS_4_4
select BR2_LEGACY
help
Version 4.5.x of the Linux kernel headers are no longer
maintained upstream and are now removed. As an alternative,
version 4.4.x of the headers have been automatically
selected in your configuration.
config BR2_KERNEL_HEADERS_3_14
bool "kernel headers version 3.14.x are no longer supported"
select BR2_KERNEL_HEADERS_3_12
select BR2_LEGACY
help
Version 3.14.x of the Linux kernel headers are no longer
maintained upstream and are now removed. As an alternative,
version 3.12.x of the headers have been automatically
selected in your configuration.
config BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS
bool "musl-cross 1.1.12 toolchain removed"
select BR2_LEGACY
help
The support for the prebuilt toolchain based on the Musl C
library provided by the musl-cross project has been removed.
Upstream doesn't provide any prebuilt toolchain anymore, use the
Buildroot toolchain instead.
config BR2_UCLIBC_INSTALL_TEST_SUITE
bool "uClibc tests now in uclibc-ng-test"
select BR2_LEGACY
select BR2_PACKAGE_UCLIBC_NG_TEST
help
The test suite of the uClibc C library has been moved into a
separate package, uclibc-ng-test.
config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
bool "Blackfin.uclinux.org 2014R1 toolchain removed"
select BR2_LEGACY
help
The ADI Blackfin toolchain has many bugs which are fixed in
more recent gcc and uClibc-ng releases. Use the Buildroot
toolchain instead.
config BR2_PACKAGE_MAKEDEVS
bool "makedevs removed"
select BR2_LEGACY
help
The makedevs tool is part of busybox. The Buildroot fork
should not be used outside of the Buildroot infrastructure.
config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A
bool "Arago ARMv7 2011.09 removed"
select BR2_LEGACY
help
The Arago toolchains are every old and not updated anymore.
config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE
bool "Arago ARMv5 2011.09 removed"
select BR2_LEGACY
help
The Arago toolchains are every old and not updated anymore.
config BR2_PACKAGE_SNOWBALL_HDMISERVICE
bool "snowball-hdmiservice removed"
select BR2_LEGACY
help
We no longer have support for the Snowball platform in
Buildroot, so this package was no longer useful.
config BR2_PACKAGE_SNOWBALL_INIT
bool "snowball-init removed"
select BR2_LEGACY
help
We no longer have support for the Snowball platform in
Buildroot, so this package was no longer useful.
config BR2_GDB_VERSION_7_9
bool "gdb 7.9 has been removed"
select BR2_LEGACY
help
The 7.9 version of gdb has been removed. Use a newer version
instead.
###############################################################################
comment "Legacy options removed in 2016.11"
config BR2_PACKAGE_PHP_SAPI_CLI_CGI
bool "PHP CGI and CLI options are now seperate"
select BR2_PACKAGE_PHP_SAPI_CLI
select BR2_PACKAGE_PHP_SAPI_CGI
select BR2_LEGACY
help
The PHP Interface options have been split up into a
separate option for each interface.
config BR2_PACKAGE_PHP_SAPI_CLI_FPM
bool "PHP CLI and FPM options are now separate"
select BR2_PACKAGE_PHP_SAPI_CLI
select BR2_PACKAGE_PHP_SAPI_FPM
select BR2_LEGACY
help
The PHP Interface options have been split up into a
separate option for each interface.
config BR2_PACKAGE_WVSTREAMS
bool "wvstreams removed"
select BR2_LEGACY
help
wvstreams is not maintained anymore since about 2009. It also
doesn't build anymore with recent compilers (GCC 5+).
config BR2_PACKAGE_WVDIAL
bool "wvdial removed"
select BR2_LEGACY
help
wvdial is not maintained anymore since about 2009. It also
doesn't build anymore with recent compilers (GCC 5+).
config BR2_PACKAGE_WEBKITGTK24
bool "webkitgtk 2.4.x removed"
select BR2_LEGACY
help
This legacy package only existed because some other packages
depended on that specific version of webkitgtk. However, the
other packages have been fixed. webkitgtk 2.4 is full of
security issues so it needs to be removed.
config BR2_PACKAGE_TORSMO
bool "torsmo removed"
select BR2_LEGACY
help
torsmo has been unmaintained for a long time, and nobody
seems to be interested in it.
config BR2_PACKAGE_SSTRIP
bool "sstrip removed"
select BR2_LEGACY
help
sstrip is unmaintained and potentially harmful. It doesn't
save so much compared to normal binutils strip, and there is
a big risk of binaries that don't work. Use normal strip
instead.
config BR2_KERNEL_HEADERS_4_3
bool "kernel headers version 4.3.x are no longer supported"
select BR2_KERNEL_HEADERS_4_1
select BR2_LEGACY
help
Version 4.3.x of the Linux kernel headers are no longer
maintained upstream and are now removed. As an alternative,
version 4.1.x of the headers have been automatically
selected in your configuration.
config BR2_KERNEL_HEADERS_4_2
bool "kernel headers version 4.2.x are no longer supported"
select BR2_KERNEL_HEADERS_4_1
select BR2_LEGACY
help
Version 4.2.x of the Linux kernel headers are no longer
maintained upstream and are now removed. As an alternative,
version 4.1.x of the headers have been automatically
selected in your configuration.
config BR2_PACKAGE_KODI_ADDON_XVDR
bool "kodi-addon-xvdr removed"
select BR2_LEGACY
help
According to the github project page:
https://github.com/pipelka/xbmc-addon-xvdr
this package is discontinued.
config BR2_PACKAGE_IPKG
bool "ipkg removed"
select BR2_LEGACY
help
ipkg dates back to the early 2000s when Compaq started the
handhelds.org project and it hasn't seen development since 2006.
Use opkg as a replacement.
config BR2_GCC_VERSION_4_7_X
bool "gcc 4.7.x support removed"
select BR2_LEGACY
help
Support for gcc version 4.7.x has been removed. The current
default version (4.9.x or later) has been selected instead.
config BR2_BINUTILS_VERSION_2_24_X
bool "binutils version 2.24 support removed"
select BR2_LEGACY
help
Support for binutils version 2.24 has been removed. The
current default version (2.26 or later) has been selected
instead.
config BR2_PACKAGE_WESTON_RPI
bool "Weston propietary RPI support is gone"
select BR2_LEGACY
help
Upstream decided the propietary (rpi-userland) weston composer
support wasn't worth the effort so it was removed. Switch to
the open VC4 support.
config BR2_LINUX_KERNEL_TOOL_CPUPOWER
bool "linux-tool cpupower"
depends on BR2_LINUX_KERNEL
select BR2_LEGACY
select BR2_PACKAGE_LINUX_TOOLS_CPUPOWER
help
Linux tool cpupower option was renamed.
config BR2_LINUX_KERNEL_TOOL_PERF
bool "linux-tool perf"
depends on BR2_LINUX_KERNEL
select BR2_LEGACY
select BR2_PACKAGE_LINUX_TOOLS_PERF
help
Linux tool perf option was renamed.
config BR2_LINUX_KERNEL_TOOL_SELFTESTS
bool "linux-tool selftests"
depends on BR2_LINUX_KERNEL
select BR2_LEGACY
select BR2_PACKAGE_LINUX_TOOLS_SELFTESTS
help
Linux tool selftests option was renamed.
config BR2_GCC_VERSION_4_8_ARC
bool "gcc arc option renamed"
select BR2_LEGACY
select BR2_GCC_VERSION_ARC
help
The option that selects the gcc version for the ARC
architecture has been renamed to BR2_GCC_VERSION_ARC.
config BR2_KERNEL_HEADERS_4_0
bool "kernel headers version 4.0.x are no longer supported"
select BR2_KERNEL_HEADERS_3_18
select BR2_LEGACY
help
Version 4.0.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed.
As an alternative, version 3.18.x of the headers have been
automatically selected in your configuration.
config BR2_KERNEL_HEADERS_3_19
bool "kernel headers version 3.19.x are no longer supported"
select BR2_KERNEL_HEADERS_3_18
select BR2_LEGACY
help
Version 3.19.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed.
As an alternative, version 3.18.x of the headers have been
automatically selected in your configuration.
config BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS
bool "libevas-generic-loaders package removed"
select BR2_LEGACY
select BR2_PACKAGE_EFL
help
With EFL 1.18, libevas-generic-loaders is now provided by the efl
package.
config BR2_PACKAGE_ELEMENTARY
bool "elementary package removed"
select BR2_LEGACY
select BR2_PACKAGE_EFL
help
With EFL 1.18, elementary is now provided by the efl package.
config BR2_LINUX_KERNEL_CUSTOM_LOCAL
bool "Linux kernel local directory option removed"
help
The option to select a local directory as the source of the Linux
kernel has been removed. It hurts reproducibility of builds.
In case you were using this option during development of your
Linux kernel, use the override mechanism instead.
###############################################################################
comment "Legacy options removed in 2016.08"
config BR2_PACKAGE_SYSTEMD_COMPAT
bool "systemd compatibility libraries have been removed"
select BR2_LEGACY
help
The systemd option to enable the compatibility libraries has
been removed. Theses libraries have been useless since a few
version, and have been fully dropped from the source since
v230.
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIVEADDER
bool "gst1-plugins-bad liveadder plugin removed"
select BR2_LEGACY
select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOMIXER
help
The functionality of the liveadder plugin of the
gst1-plugins-bad package has been merged into audiomixer.
config BR2_PACKAGE_LIBFSLVPUWRAP
bool "libfslvpuwrap has been renamed to imx-vpuwrap"
select BR2_LEGACY
select BR2_PACKAGE_IMX_VPUWRAP
help
The libfslvpuwrap has been renamed to match the renamed package.
config BR2_PACKAGE_LIBFSLPARSER
bool "libfslparser has been renamed to imx-parser"
select BR2_LEGACY
select BR2_PACKAGE_IMX_PARSER
help
The libfslparser has been renamed to match the renamed package.
config BR2_PACKAGE_LIBFSLCODEC
bool "libfslcodec has been renamed to imx-codec"
select BR2_LEGACY
select BR2_PACKAGE_IMX_CODEC
help
The libfslcodec has been renamed to match the renamed package.
config BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE_FIT_SIGNATURE_SUPPORT
bool "FIT support in uboot-tools has been refactored"
select BR2_LEGACY
select BR2_PACKAGE_DTC
select BR2_PACKAGE_DTC_PROGRAMS
select BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT
select BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT
select BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE
help
This option has been removed in favor of a more fine-grained
configuration, which is recommended. Selecting this option
enables FIT and FIT signature support for the target packages.
It will also select the dtc and openssl packages.
config BR2_PTHREADS_OLD
bool "linuxthreads (stable/old)"
select BR2_LEGACY
help
Linuxthreads have been reworked, BR2_PTHREADS_OLD is now
BR2_PTHREADS and the old BR2_PTHREADS - LT.new got removed.
config BR2_BINUTILS_VERSION_2_23_X
bool "binutils 2.23 removed"
select BR2_LEGACY
help
Binutils 2.23 has been removed, using a newer version is
recommended.
config BR2_TOOLCHAIN_BUILDROOT_EGLIBC
bool "eglibc support has been removed"
select BR2_LEGACY
help
The eglibc project no longer exists, as it has been merged
back into the glibc project. Therefore, support for eglibc
has been removed, and glibc should be used instead.
config BR2_GDB_VERSION_7_8
bool "gdb 7.8 has been removed"
select BR2_LEGACY
help
The 7.8 version of gdb has been removed. Use a newer version
instead.
###############################################################################
comment "Legacy options removed in 2016.05"
@ -220,12 +616,19 @@ config BR2_PACKAGE_QT5QUICK1
from upstream starting from Qt 5.6.
config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR
bool "uboot custom patch dir removed"
select BR2_LEGACY
string "uboot custom patch dir has been removed"
help
The uboot custom patch directory option has been removed. Use
the improved BR2_TARGET_UBOOT_PATCH option instead.
config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR_WRAP
bool
default y if BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR != ""
select BR2_LEGACY
# Note: BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR is still referenced from
# boot/uboot/Config.in
config BR2_PACKAGE_XDRIVER_XF86_INPUT_VOID
bool "xf86-input-void removed"
select BR2_LEGACY
@ -235,12 +638,12 @@ config BR2_PACKAGE_XDRIVER_XF86_INPUT_VOID
config BR2_KERNEL_HEADERS_3_17
bool "kernel headers version 3.17.x are no longer supported"
select BR2_KERNEL_HEADERS_3_18
select BR2_KERNEL_HEADERS_3_12
select BR2_LEGACY
help
Version 3.17.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed.
As an alternative, version 3.18.x of the headers have been
As an alternative, version 3.12.x of the headers have been
automatically selected in your configuration.
config BR2_GDB_VERSION_7_7
@ -302,7 +705,7 @@ config BR2_GCC_VERSION_4_5_X
version instead.
config BR2_PACKAGE_SQLITE_READLINE
bool "command-line editing support was updated"
bool "sqlite command-line editing support was updated"
select BR2_PACKAGE_NCURSES
select BR2_PACKAGE_READLINE
select BR2_LEGACY
@ -336,7 +739,7 @@ config BR2_PACKAGE_E2FSPROGS_FINDFS
This option attempted to enable findfs capabilities from
e2fsprogs but has not worked since July 2015 (due to
packaging changes). One can use BusyBox's findfs support or
enable the BR2_PACKAGE_UTIL_LINUX_FINDFS option.
enable the BR2_PACKAGE_UTIL_LINUX_BINARIES option.
config BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL
bool "openpowerlink debug option has been removed"
@ -381,12 +784,12 @@ config BR2_PACKAGE_CUPS_PDFTOPS
config BR2_KERNEL_HEADERS_3_16
bool "kernel headers version 3.16.x are no longer supported"
select BR2_KERNEL_HEADERS_3_18
select BR2_KERNEL_HEADERS_3_12
select BR2_LEGACY
help
Version 3.16.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed.
As an alternative, version 3.18.x of the headers have been
As an alternative, version 3.12.x of the headers have been
automatically selected in your configuration.
config BR2_PACKAGE_PYTHON_PYXML
@ -597,32 +1000,32 @@ config BR2_KERNEL_HEADERS_3_0
config BR2_KERNEL_HEADERS_3_11
bool "kernel headers version 3.11.x are no longer supported"
select BR2_KERNEL_HEADERS_3_12
select BR2_KERNEL_HEADERS_3_10
select BR2_LEGACY
help
Version 3.11.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed.
As an alternative, version 3.12.x of the headers have been
As an alternative, version 3.10.x of the headers have been
automatically selected in your configuration.
config BR2_KERNEL_HEADERS_3_13
bool "kernel headers version 3.13.x are no longer supported"
select BR2_KERNEL_HEADERS_3_14
select BR2_KERNEL_HEADERS_3_12
select BR2_LEGACY
help
Version 3.13.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed.
As an alternative, version 3.14.x of the headers have been
As an alternative, version 3.12.x of the headers have been
automatically selected in your configuration.
config BR2_KERNEL_HEADERS_3_15
bool "kernel headers version 3.15.x are no longer supported"
select BR2_KERNEL_HEADERS_3_18
select BR2_KERNEL_HEADERS_3_12
select BR2_LEGACY
help
Version 3.15.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed.
As an alternative, version 3.18.x of the headers have been
As an alternative, version 3.12.x of the headers have been
automatically selected in your configuration.
config BR2_PACKAGE_DIRECTFB_EXAMPLES_ANDI
@ -913,11 +1316,9 @@ config BR2_PACKAGE_KODI_PVR_ADDONS
config BR2_BINUTILS_VERSION_2_23_2
bool "binutils 2.23 option renamed"
select BR2_LEGACY
select BR2_BINUTILS_VERSION_2_23_X
help
The binutils version option has been renamed to match the
same patchlevel logic used by gcc. The new option is now
BR2_BINUTILS_VERSION_2_23_X.
Binutils 2.23.2 has been removed, using a newer version is
recommended.
config BR2_BINUTILS_VERSION_2_24
bool "binutils 2.24 option renamed"
@ -1174,11 +1575,12 @@ config BR2_PACKAGE_STRONGSWAN_TOOLS
deprecated.
config BR2_PACKAGE_XBMC_ADDON_XVDR
bool "xbmc options have been renamed"
bool "xbmc-addon-xvdr removed"
select BR2_LEGACY
select BR2_PACKAGE_KODI_ADDON_XVDR
help
The XBMC media center project was renamed to Kodi entertainment center
According to the github project page:
https://github.com/pipelka/xbmc-addon-xvdr
this package is discontinued.
config BR2_PACKAGE_XBMC_PVR_ADDONS
bool "xbmc options have been renamed"
@ -1430,12 +1832,12 @@ config BR2_PACKAGE_LIBELF
config BR2_KERNEL_HEADERS_3_8
bool "kernel headers version 3.8.x are no longer supported"
select BR2_KERNEL_HEADERS_3_10
select BR2_KERNEL_HEADERS_3_4
select BR2_LEGACY
help
Version 3.8.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed.
As an alternative, version 3.10.x of the headers have been
As an alternative, version 3.4.x of the headers have been
automatically selected in your configuration.
config BR2_PACKAGE_GETTEXT_TOOLS
@ -1588,22 +1990,22 @@ config BR2_PACKAGE_EVTEST_CAPTURE
config BR2_KERNEL_HEADERS_3_6
bool "kernel headers version 3.6.x are no longer supported"
select BR2_KERNEL_HEADERS_3_10
select BR2_KERNEL_HEADERS_3_4
select BR2_LEGACY
help
Version 3.6.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed.
As an alternative, version 3.10.x of the headers have been
As an alternative, version 3.4.x of the headers have been
automatically selected in your configuration.
config BR2_KERNEL_HEADERS_3_7
bool "kernel headers version 3.7.x are no longer supported"
select BR2_KERNEL_HEADERS_3_10
select BR2_KERNEL_HEADERS_3_4
select BR2_LEGACY
help
Version 3.7.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed.
As an alternative, version 3.10.x of the headers have been
As an alternative, version 3.4.x of the headers have been
automatically selected in your configuration.
config BR2_PACKAGE_VALA
@ -1776,22 +2178,22 @@ config BR2_KERNEL_HEADERS_3_1
config BR2_KERNEL_HEADERS_3_3
bool "kernel headers version 3.3.x are no longer supported"
select BR2_KERNEL_HEADERS_3_4
select BR2_KERNEL_HEADERS_3_2
select BR2_LEGACY
help
Version 3.3.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed.
As an alternative, version 3.4.x of the headers have been
As an alternative, version 3.2.x of the headers have been
automatically selected in your configuration.
config BR2_KERNEL_HEADERS_3_5
bool "kernel headers version 3.5.x are no longer supported"
select BR2_KERNEL_HEADERS_3_10
select BR2_KERNEL_HEADERS_3_4
select BR2_LEGACY
help
Version 3.5.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed.
As an alternative, version 3.10.x of the headers have been
As an alternative, version 3.4.x of the headers have been
automatically selected in your configuration.
config BR2_GDB_VERSION_7_2

345
Makefile
View File

@ -2,7 +2,7 @@
#
# Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
# Copyright (C) 2006-2014 by the Buildroot developers <buildroot@uclibc.org>
# Copyright (C) 2014-2016 by the Buildroot developers <buildroot@buildroot.org>
# Copyright (C) 2014-2017 by the Buildroot developers <buildroot@buildroot.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -24,24 +24,71 @@
# You shouldn't need to mess with anything beyond this point...
#--------------------------------------------------------------
# Trick for always running with a fixed umask
UMASK = 0022
ifneq ($(shell umask),$(UMASK))
# Delete default rules. We don't use them. This saves a bit of time.
.SUFFIXES:
# we want bash as shell
SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
else if [ -x /bin/bash ]; then echo /bin/bash; \
else echo sh; fi; fi)
# Set O variable if not already done on the command line;
# or avoid confusing packages that can use the O=<dir> syntax for out-of-tree
# build by preventing it from being forwarded to sub-make calls.
ifneq ("$(origin O)", "command line")
O := $(CURDIR)/output
endif
# Check if the current Buildroot execution meets all the pre-requisites.
# If they are not met, Buildroot will actually do its job in a sub-make meeting
# its pre-requisites, which are:
# 1- Permissive enough umask:
# Wrong or too restrictive umask will prevent Buildroot and packages from
# creating files and directories.
# 2- Absolute canonical CWD (i.e. $(CURDIR)):
# Otherwise, some packages will use CWD as-is, others will compute its
# absolute canonical path. This makes harder tracking and fixing host
# machine path leaks.
# 3- Absolute canonical output location (i.e. $(O)):
# For the same reason as the one for CWD.
# Remove the trailing '/.' from $(O) as it can be added by the makefile wrapper
# installed in the $(O) directory.
# Also remove the trailing '/' the user can set when on the command line.
override O := $(patsubst %/,%,$(patsubst %.,%,$(O)))
# Make sure $(O) actually exists before calling realpath on it; this is to
# avoid empty CANONICAL_O in case on non-existing entry.
CANONICAL_O := $(shell mkdir -p $(O) >/dev/null 2>&1)$(realpath $(O))
CANONICAL_CURDIR = $(realpath $(CURDIR))
REQ_UMASK = 0022
# Make sure O= is passed (with its absolute canonical path) everywhere the
# toplevel makefile is called back.
EXTRAMAKEARGS := O=$(CANONICAL_O)
# Check Buildroot execution pre-requisites here.
ifneq ($(shell umask):$(CURDIR):$(O),$(REQ_UMASK):$(CANONICAL_CURDIR):$(CANONICAL_O))
.PHONY: _all $(MAKECMDGOALS)
$(MAKECMDGOALS): _all
@:
_all:
@umask $(UMASK) && $(MAKE) --no-print-directory $(MAKECMDGOALS)
@umask $(REQ_UMASK) && \
$(MAKE) -C $(CANONICAL_CURDIR) --no-print-directory \
$(MAKECMDGOALS) $(EXTRAMAKEARGS)
else # umask
else # umask / $(CURDIR) / $(O)
# This is our default rule, so must come first
all:
# Set and export the version string
export BR2_VERSION := 2016.05
export BR2_VERSION := 2017.02
# Actual time the release is cut (for reproducible builds)
BR2_VERSION_EPOCH = 1488315000
# Save running make version since it's clobbered by the make package
RUNNING_MAKE_VERSION := $(MAKE_VERSION)
@ -81,7 +128,8 @@ export BR2_VERSION_FULL := $(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlo
noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \
defconfig %_defconfig allyesconfig allnoconfig silentoldconfig release \
randpackageconfig allyespackageconfig allnopackageconfig \
print-version olddefconfig
print-version olddefconfig distclean manual manual-html manual-split-html \
manual-pdf manual-text manual-epub
# Some global targets do not trigger a build, but are used to collect
# metadata, or do various checks. When such targets are triggered,
@ -92,80 +140,63 @@ noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconf
# We're building in two situations: when MAKECMDGOALS is empty
# (default target is to build), or when MAKECMDGOALS contains
# something else than one of the nobuild_targets.
nobuild_targets := source source-check \
legal-info external-deps _external-deps \
clean distclean help
nobuild_targets := source %-source source-check \
legal-info %-legal-info external-deps _external-deps \
clean distclean help show-targets graph-depends \
%-graph-depends %-show-depends %-show-version \
graph-build graph-size list-defconfigs \
savedefconfig printvars
ifeq ($(MAKECMDGOALS),)
BR_BUILDING = y
else ifneq ($(filter-out $(nobuild_targets),$(MAKECMDGOALS)),)
BR_BUILDING = y
endif
# Strip quotes and then whitespaces
qstrip = $(strip $(subst ",,$(1)))
#"))
# We call make recursively to build packages. The command-line overrides that
# are passed to Buildroot don't apply to those package build systems. In
# particular, we don't want to pass down the O=<dir> option for out-of-tree
# builds, because the value specified on the command line will not be correct
# for packages.
MAKEOVERRIDES :=
# Variables for use in Make constructs
comma := ,
empty :=
space := $(empty) $(empty)
# Include some helper macros and variables
include support/misc/utils.mk
ifneq ("$(origin O)", "command line")
O := output
CONFIG_DIR := $(TOPDIR)
# Set variables related to in-tree or out-of-tree build.
# Here, both $(O) and $(CURDIR) are absolute canonical paths.
ifeq ($(O),$(CURDIR)/output)
CONFIG_DIR := $(CURDIR)
NEED_WRAPPER =
else
# other packages might also support Linux-style out of tree builds
# with the O=<dir> syntax (E.G. BusyBox does). As make automatically
# forwards command line variable definitions those packages get very
# confused. Fix this by telling make to not do so
MAKEOVERRIDES =
# strangely enough O is still passed to submakes with MAKEOVERRIDES
# (with make 3.81 atleast), the only thing that changes is the output
# of the origin function (command line -> environment).
# Unfortunately some packages don't look at origin (E.G. uClibc 0.9.31+)
# To really make O go away, we have to override it.
override O := $(O)
CONFIG_DIR := $(O)
# we need to pass O= everywhere we call back into the toplevel makefile
EXTRAMAKEARGS = O=$(O)
NEED_WRAPPER = y
endif
# bash prints the name of the directory on 'cd <dir>' if CDPATH is
# set, so unset it here to not cause problems. Notice that the export
# line doesn't affect the environment of $(shell ..) calls, so
# explictly throw away any output from 'cd' here.
# line doesn't affect the environment of $(shell ..) calls.
export CDPATH :=
BASE_DIR := $(shell mkdir -p $(O) && cd $(O) >/dev/null && pwd)
BASE_DIR := $(CANONICAL_O)
$(if $(BASE_DIR),, $(error output directory "$(O)" does not exist))
# Handling of BR2_EXTERNAL.
#
# The value of BR2_EXTERNAL is stored in .br-external in the output directory.
# On subsequent invocations of make, it is read in. It can still be overridden
# on the command line, therefore the file is re-created every time make is run.
#
# When BR2_EXTERNAL is set to an empty value (e.g. explicitly in command
# line), the .br-external file is removed and we point to
# support/dummy-external. This makes sure we can unconditionally include the
# Config.in and external.mk from the BR2_EXTERNAL directory. In this case,
# override is necessary so the user can clear BR2_EXTERNAL from the command
# line, but the dummy path is still used internally.
# The location of the external.mk makefile fragments is computed in that file.
# On subsequent invocations of make, this file is read in. BR2_EXTERNAL can
# still be overridden on the command line, therefore the file is re-created
# every time make is run.
BR2_EXTERNAL_FILE = $(BASE_DIR)/.br-external
BR2_EXTERNAL_FILE = $(BASE_DIR)/.br-external.mk
-include $(BR2_EXTERNAL_FILE)
ifeq ($(BR2_EXTERNAL),)
override BR2_EXTERNAL = support/dummy-external
$(shell rm -f $(BR2_EXTERNAL_FILE))
else
_BR2_EXTERNAL = $(shell cd $(BR2_EXTERNAL) >/dev/null 2>&1 && pwd)
ifeq ($(_BR2_EXTERNAL),)
$(error BR2_EXTERNAL='$(BR2_EXTERNAL)' does not exist, relative to $(TOPDIR))
endif
override BR2_EXTERNAL := $(_BR2_EXTERNAL)
$(shell echo BR2_EXTERNAL ?= $(BR2_EXTERNAL) > $(BR2_EXTERNAL_FILE))
$(shell support/scripts/br2-external \
-m -o '$(BR2_EXTERNAL_FILE)' $(BR2_EXTERNAL))
BR2_EXTERNAL_ERROR =
include $(BR2_EXTERNAL_FILE)
ifneq ($(BR2_EXTERNAL_ERROR),)
$(error $(BR2_EXTERNAL_ERROR))
endif
# To make sure that the environment variable overrides the .config option,
@ -196,11 +227,18 @@ LICENSE_FILES_DIR_TARGET = $(LEGAL_INFO_DIR)/licenses
LICENSE_FILES_DIR_HOST = $(LEGAL_INFO_DIR)/host-licenses
LEGAL_MANIFEST_CSV_TARGET = $(LEGAL_INFO_DIR)/manifest.csv
LEGAL_MANIFEST_CSV_HOST = $(LEGAL_INFO_DIR)/host-manifest.csv
LEGAL_LICENSES_TXT_TARGET = $(LEGAL_INFO_DIR)/licenses.txt
LEGAL_LICENSES_TXT_HOST = $(LEGAL_INFO_DIR)/host-licenses.txt
LEGAL_WARNINGS = $(LEGAL_INFO_DIR)/.warnings
LEGAL_REPORT = $(LEGAL_INFO_DIR)/README
################################################################################
#
# staging and target directories do NOT list these as
# dependencies anywhere else
#
################################################################################
$(BUILD_DIR) $(TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST):
@mkdir -p $@
BR2_CONFIG = $(CONFIG_DIR)/.config
# Pull in the user's configuration file
@ -208,6 +246,17 @@ ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
-include $(BR2_CONFIG)
endif
# timezone and locale may affect build output
ifeq ($(BR2_REPRODUCIBLE),y)
export TZ = UTC
export LANG = C
export LC_ALL = C
export GZIP = -n
BR2_VERSION_GIT_EPOCH = $(shell GIT_DIR=$(TOPDIR)/.git $(GIT) log -1 --format=%at)
export SOURCE_DATE_EPOCH = $(if $(wildcard $(TOPDIR)/.git),$(BR2_VERSION_GIT_EPOCH),$(BR2_VERSION_EPOCH))
DEPENDENCIES_HOST_PREREQ += host-fakedate
endif
# To put more focus on warnings, be less verbose as default
# Use 'make V=1' to see the full commands
ifeq ("$(origin V)", "command line")
@ -227,11 +276,6 @@ else
Q = @
endif
# we want bash as shell
SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
else if [ -x /bin/bash ]; then echo /bin/bash; \
else echo sh; fi; fi)
# kconfig uses CONFIG_SHELL
CONFIG_SHELL := $(SHELL)
@ -279,6 +323,7 @@ HOSTLN := $(shell which $(HOSTLN) || type -p $(HOSTLN) || echo ln)
HOSTNM := $(shell which $(HOSTNM) || type -p $(HOSTNM) || echo nm)
HOSTOBJCOPY := $(shell which $(HOSTOBJCOPY) || type -p $(HOSTOBJCOPY) || echo objcopy)
HOSTRANLIB := $(shell which $(HOSTRANLIB) || type -p $(HOSTRANLIB) || echo ranlib)
SED := $(shell which sed || type -p sed) -i -e
export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTLD
export HOSTCC_NOCCACHE HOSTCXX_NOCCACHE
@ -357,6 +402,7 @@ unexport QMAKESPEC
unexport TERMINFO
unexport MACHINE
unexport O
unexport GCC_COLORS
GNU_HOST_NAME := $(shell support/gnuconfig/config.guess)
@ -376,6 +422,7 @@ KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \
-e s/arm.*/arm/ -e s/sa110/arm/ \
-e s/aarch64.*/arm64/ \
-e s/bfin/blackfin/ \
-e s/or1k/openrisc/ \
-e s/parisc64/parisc/ \
-e s/powerpc64.*/powerpc/ \
-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
@ -385,6 +432,7 @@ KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \
ZCAT := $(call qstrip,$(BR2_ZCAT))
BZCAT := $(call qstrip,$(BR2_BZCAT))
XZCAT := $(call qstrip,$(BR2_XZCAT))
LZCAT := $(call qstrip,$(BR2_LZCAT))
TAR_OPTIONS = $(call qstrip,$(BR2_TAR_OPTIONS)) -xf
# packages compiled for the host go here
@ -410,6 +458,7 @@ endif
# Scripts in support/ or post-build scripts may need to reference
# these locations, so export them so it is easier to use
export BR2_CONFIG
export BR2_REPRODUCIBLE
export TARGET_DIR
export STAGING_DIR
export HOST_DIR
@ -427,9 +476,7 @@ all: world
# Include legacy before the other things, because package .mk files
# may rely on it.
ifneq ($(BR2_DEPRECATED),y)
include Makefile.legacy
endif
include package/Makefile.in
include support/dependencies/dependencies.mk
@ -450,7 +497,15 @@ include boot/common.mk
include linux/linux.mk
include fs/common.mk
include $(BR2_EXTERNAL)/external.mk
# If using a br2-external tree, the BR2_EXTERNAL_$(NAME)_PATH variables
# are also present in the .config file. Since .config is included after
# we defined them in the Makefile, the values for those variables are
# quoted. We just include the generated Makefile fragment .br2-external.mk
# a third time, which will set those variables to the un-quoted values.
include $(BR2_EXTERNAL_FILE)
# Nothing to include if no BR2_EXTERNAL tree in use
include $(BR2_EXTERNAL_MKS)
# Now we are sure we have all the packages scanned and defined. We now
# check for each package in the list of enabled packages, that all its
@ -494,15 +549,6 @@ world: target-post-image
legal-info legal-info-prepare legal-info-clean printvars help \
list-defconfigs target-finalize target-post-image source-check
################################################################################
#
# staging and target directories do NOT list these as
# dependencies anywhere else
#
################################################################################
$(BUILD_DIR) $(TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST):
@mkdir -p $@
# Populating the staging with the base directories is handled by the skeleton package
$(STAGING_DIR):
@mkdir -p $(STAGING_DIR)
@ -612,7 +658,7 @@ target-finalize: $(PACKAGES)
$(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \
$(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake
find $(TARGET_DIR)/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -f
find $(TARGET_DIR)/lib $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/libexec \
find $(TARGET_DIR)/lib/ $(TARGET_DIR)/usr/lib/ $(TARGET_DIR)/usr/libexec/ \
\( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f
ifneq ($(BR2_PACKAGE_GDB),y)
rm -rf $(TARGET_DIR)/usr/share/gdb
@ -627,23 +673,20 @@ endif
rm -rf $(TARGET_DIR)/usr/info $(TARGET_DIR)/usr/share/info
rm -rf $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/doc
rm -rf $(TARGET_DIR)/usr/share/gtk-doc
-rmdir $(TARGET_DIR)/usr/share 2>/dev/null
rmdir $(TARGET_DIR)/usr/share 2>/dev/null || true
$(STRIP_FIND_CMD) | xargs -0 $(STRIPCMD) 2>/dev/null || true
if test -d $(TARGET_DIR)/lib/modules; then \
find $(TARGET_DIR)/lib/modules -type f -name '*.ko' -print0 | \
xargs -0 -r $(KSTRIPCMD); fi
# See http://sourceware.org/gdb/wiki/FAQ, "GDB does not see any threads
# besides the one in which crash occurred; or SIGTRAP kills my program when
# I set a breakpoint"
ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
find $(TARGET_DIR)/lib -type f -name 'libpthread*.so*' | \
find $(TARGET_DIR)/lib/ -type f -name 'libpthread*.so*' | \
xargs -r $(STRIPCMD) $(STRIP_STRIP_DEBUG)
endif
# Valgrind needs ld.so with enough information, so only strip
# debugging symbols.
find $(TARGET_DIR)/lib -type f -name 'ld-*.so*' | \
find $(TARGET_DIR)/lib/ -type f -name 'ld-*.so*' | \
xargs -r $(STRIPCMD) $(STRIP_STRIP_DEBUG)
test -f $(TARGET_DIR)/etc/ld.so.conf && \
{ echo "ERROR: we shouldn't have a /etc/ld.so.conf file"; exit 1; } || true
@ -701,8 +744,12 @@ legal-info: dirs legal-info-clean legal-info-prepare $(foreach p,$(PACKAGES),$(p
cat support/legal-info/README.warnings-header \
$(LEGAL_WARNINGS) >>$(LEGAL_REPORT); \
cat $(LEGAL_WARNINGS); fi
@echo "Legal info produced in $(LEGAL_INFO_DIR)"
@rm -f $(LEGAL_WARNINGS)
@(cd $(LEGAL_INFO_DIR); \
find * -type f -exec sha256sum {} + | LC_ALL=C sort -k2 \
>.legal-info.sha256; \
mv .legal-info.sha256 legal-info.sha256)
@echo "Legal info produced in $(LEGAL_INFO_DIR)"
show-targets:
@echo $(PACKAGES) $(TARGETS_ROOTFS)
@ -726,7 +773,7 @@ graph-depends: graph-depends-requirements
@$(INSTALL) -d $(GRAPHS_DIR)
@cd "$(CONFIG_DIR)"; \
$(TOPDIR)/support/scripts/graph-depends $(BR2_GRAPH_DEPS_OPTS) \
-o $(GRAPHS_DIR)/$(@).dot
--direct -o $(GRAPHS_DIR)/$(@).dot
dot $(BR2_GRAPH_DOT_OPTS) -T$(BR_GRAPH_OUT) \
-o $(GRAPHS_DIR)/$(@).$(BR_GRAPH_OUT) \
$(GRAPHS_DIR)/$(@).dot
@ -754,6 +801,9 @@ endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
HOSTCFLAGS = $(CFLAGS_FOR_BUILD)
export HOSTCFLAGS
.PHONY: prepare-kconfig
prepare-kconfig: outputmakefile $(BUILD_DIR)/.br2-external.in
$(BUILD_DIR)/buildroot-config/%onf:
mkdir -p $(@D)/lxdialog
PKG_CONFIG_PATH="$(HOST_PKG_CONFIG_PATH)" $(MAKE) CC="$(HOSTCC_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" \
@ -769,23 +819,23 @@ COMMON_CONFIG_ENV = \
KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
KCONFIG_TRISTATE=$(BUILD_DIR)/buildroot-config/tristate.config \
BR2_CONFIG=$(BR2_CONFIG) \
BR2_EXTERNAL=$(BR2_EXTERNAL) \
HOST_GCC_VERSION="$(HOSTCC_VERSION)" \
BUILD_DIR=$(BUILD_DIR) \
SKIP_LEGACY=
xconfig: $(BUILD_DIR)/buildroot-config/qconf outputmakefile
xconfig: $(BUILD_DIR)/buildroot-config/qconf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
gconfig: $(BUILD_DIR)/buildroot-config/gconf outputmakefile
gconfig: $(BUILD_DIR)/buildroot-config/gconf prepare-kconfig
@$(COMMON_CONFIG_ENV) srctree=$(TOPDIR) $< $(CONFIG_CONFIG_IN)
menuconfig: $(BUILD_DIR)/buildroot-config/mconf outputmakefile
menuconfig: $(BUILD_DIR)/buildroot-config/mconf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
nconfig: $(BUILD_DIR)/buildroot-config/nconf outputmakefile
nconfig: $(BUILD_DIR)/buildroot-config/nconf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
config: $(BUILD_DIR)/buildroot-config/conf outputmakefile
config: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
# For the config targets that automatically select options, we pass
@ -793,22 +843,22 @@ config: $(BUILD_DIR)/buildroot-config/conf outputmakefile
# no values are set for the legacy options so a subsequent oldconfig
# will query them. Therefore, run an additional olddefconfig.
oldconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
oldconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< --oldconfig $(CONFIG_CONFIG_IN)
randconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
randconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --randconfig $(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
allyesconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
allyesconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --allyesconfig $(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
allnoconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
allnoconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --allnoconfig $(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
randpackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
randpackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
@ -816,7 +866,7 @@ randpackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@rm -f $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
@ -824,7 +874,7 @@ allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@rm -f $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
@ -832,25 +882,24 @@ allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@rm -f $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
silentoldconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
silentoldconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
$(COMMON_CONFIG_ENV) $< --silentoldconfig $(CONFIG_CONFIG_IN)
olddefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
olddefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN)
defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
defconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN)
define percent_defconfig
# Override the BR2_DEFCONFIG from COMMON_CONFIG_ENV with the new defconfig
%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(TOPDIR)/configs/%_defconfig outputmakefile
@$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(TOPDIR)/configs/$@ \
$< --defconfig=$(TOPDIR)/configs/$@ $(CONFIG_CONFIG_IN)
%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(1)/configs/%_defconfig prepare-kconfig
@$$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(1)/configs/$$@ \
$$< --defconfig=$(1)/configs/$$@ $$(CONFIG_CONFIG_IN)
endef
$(eval $(foreach d,$(call reverse,$(TOPDIR) $(BR2_EXTERNAL_DIRS)),$(call percent_defconfig,$(d))$(sep)))
%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(BR2_EXTERNAL)/configs/%_defconfig outputmakefile
@$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(BR2_EXTERNAL)/configs/$@ \
$< --defconfig=$(BR2_EXTERNAL)/configs/$@ $(CONFIG_CONFIG_IN)
savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
savedefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< \
--savedefconfig=$(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) \
$(CONFIG_CONFIG_IN)
@ -872,6 +921,13 @@ ifeq ($(NEED_WRAPPER),y)
$(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O)
endif
# Even though the target is a real file, we mark it as PHONY as we
# want it to be re-generated each time make is invoked, in case the
# value of BR2_EXTERNAL is changed.
.PHONY: $(BUILD_DIR)/.br2-external.in
$(BUILD_DIR)/.br2-external.in: $(BUILD_DIR)
$(Q)support/scripts/br2-external -k -o "$(@)" $(BR2_EXTERNAL)
# printvars prints all the variables currently defined in our
# Makefiles. Alternatively, if a non-empty VARS variable is passed,
# only the variables matching the make pattern passed in VARS are
@ -889,13 +945,10 @@ clean:
$(LEGAL_INFO_DIR) $(GRAPHS_DIR)
distclean: clean
ifeq ($(DL_DIR),$(TOPDIR)/dl)
rm -rf $(DL_DIR)
endif
ifeq ($(O),output)
ifeq ($(O),$(CURDIR)/output)
rm -rf $(O)
endif
rm -rf $(BR2_CONFIG) $(CONFIG_DIR)/.config.old $(CONFIG_DIR)/..config.tmp \
rm -rf $(TOPDIR)/dl $(BR2_CONFIG) $(CONFIG_DIR)/.config.old $(CONFIG_DIR)/..config.tmp \
$(CONFIG_DIR)/.auto.deps $(BR2_EXTERNAL_FILE)
help:
@ -933,26 +986,17 @@ help:
@echo ' <pkg>-depends - Build <pkg>'\''s dependencies'
@echo ' <pkg>-configure - Build <pkg> up to the configure step'
@echo ' <pkg>-build - Build <pkg> up to the build step'
@echo ' <pkg>-show-depends - List packages on which <pkg> depends'
@echo ' <pkg>-show-rdepends - List packages which have <pkg> as a dependency'
@echo ' <pkg>-graph-depends - Generate a graph of <pkg>'\''s dependencies'
@echo ' <pkg>-graph-rdepends - Generate a graph of <pkg>'\''s reverse dependencies'
@echo ' <pkg>-dirclean - Remove <pkg> build directory'
@echo ' <pkg>-reconfigure - Restart the build from the configure step'
@echo ' <pkg>-rebuild - Restart the build from the build step'
ifeq ($(BR2_PACKAGE_BUSYBOX),y)
@echo ' busybox-menuconfig - Run BusyBox menuconfig'
endif
ifeq ($(BR2_LINUX_KERNEL),y)
@echo ' linux-menuconfig - Run Linux kernel menuconfig'
@echo ' linux-savedefconfig - Run Linux kernel savedefconfig'
@echo ' linux-update-defconfig - Save the Linux configuration to the path specified'
@echo ' by BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE'
endif
ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
@echo ' uclibc-menuconfig - Run uClibc menuconfig'
endif
ifeq ($(BR2_TARGET_BAREBOX),y)
@echo ' barebox-menuconfig - Run barebox menuconfig'
@echo ' barebox-savedefconfig - Run barebox savedefconfig'
endif
$(foreach p,$(HELP_PACKAGES), \
@echo $(sep) \
@echo '$($(p)_NAME):' $(sep) \
$($(p)_HELP_CMDS)$(sep))
@echo
@echo 'Documentation:'
@echo ' manual - build manual in all formats'
@ -979,17 +1023,34 @@ endif
@echo 'it on-line at http://buildroot.org/docs.html'
@echo
# List the defconfig files
# $(1): base directory
# $(2): br2-external name, empty for bundled
define list-defconfigs
@first=true; \
for defconfig in $(1)/configs/*_defconfig; do \
[ -f "$${defconfig}" ] || continue; \
if $${first}; then \
if [ "$(2)" ]; then \
printf 'External configs in "$(call qstrip,$(2))":\n'; \
else \
printf "Built-in configs:\n"; \
fi; \
first=false; \
fi; \
defconfig="$${defconfig##*/}"; \
printf " %-35s - Build for %s\n" "$${defconfig}" "$${defconfig%_defconfig}"; \
done; \
$${first} || printf "\n"
endef
# We iterate over BR2_EXTERNAL_NAMES rather than BR2_EXTERNAL_DIRS,
# because we want to display the name of the br2-external tree.
list-defconfigs:
@echo 'Built-in configs:'
@$(foreach b, $(sort $(notdir $(wildcard $(TOPDIR)/configs/*_defconfig))), \
printf " %-35s - Build for %s\\n" $(b) $(b:_defconfig=);)
ifneq ($(wildcard $(BR2_EXTERNAL)/configs/*_defconfig),)
@echo
@echo 'User-provided configs:'
@$(foreach b, $(sort $(notdir $(wildcard $(BR2_EXTERNAL)/configs/*_defconfig))), \
printf " %-35s - Build for %s\\n" $(b) $(b:_defconfig=);)
endif
@echo
$(call list-defconfigs,$(TOPDIR))
$(foreach name,$(BR2_EXTERNAL_NAMES),\
$(call list-defconfigs,$(BR2_EXTERNAL_$(name)_PATH),\
$(BR2_EXTERNAL_$(name)_DESC))$(sep))
release: OUT = buildroot-$(BR2_VERSION)
@ -1008,8 +1069,8 @@ print-version:
@echo $(BR2_VERSION_FULL)
#include docs/manual/manual.mk
#-include $(BR2_EXTERNAL)/docs/*/*.mk
#-include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(dir)/docs/*/*.mk)
.PHONY: $(noconfig_targets)
endif #umask
endif #umask / $(CURDIR) / $(O)

View File

@ -4,9 +4,6 @@
# This file contains placeholders to detect backward-compatibility problems.
# When a buildroot "API" feature is being deprecated, a rule should be added
# here that issues an error when the old feature is used.
#
# This file is not included if BR2_DEPRECATED is selected, so it is possible
# to bypass the errors (although that's usually a bad idea).
ifeq ($(BR2_LEGACY),y)
$(error "You have legacy configuration in your .config! Please check your configuration.")

View File

@ -159,6 +159,13 @@ config BR2_nios2
http://www.altera.com/
http://en.wikipedia.org/wiki/Nios_II
config BR2_or1k
bool "OpenRISC"
select BR2_ARCH_HAS_MMU_MANDATORY
help
OpenRISC is a free and open processor for embedded system.
http://openrisc.io
config BR2_powerpc
bool "PowerPC"
select BR2_ARCH_HAS_MMU_MANDATORY
@ -197,16 +204,6 @@ config BR2_sh
http://www.hitachi.com/
http://en.wikipedia.org/wiki/SuperH
config BR2_sh64
bool "SuperH64"
depends on BR2_DEPRECATED_SINCE_2015_05
select BR2_ARCH_HAS_MMU_MANDATORY
help
SuperH64 (or SH) is a 64-bit reduced instruction set computer (RISC)
instruction set architecture (ISA) developed by Hitachi.
http://www.hitachi.com/
http://en.wikipedia.org/wiki/SuperH
config BR2_sparc
bool "SPARC"
select BR2_ARCH_HAS_MMU_MANDATORY
@ -336,12 +333,19 @@ config BR2_BINFMT_FLAT_ONE
config BR2_BINFMT_FLAT_SEP_DATA
bool "Separate data and code region"
# this FLAT binary type technically exists on m68k, but fails
# to build numerous packages: due to architecture limitation,
# big functions cannot be built in this mode. They cause build
# failures such as "Tried to convert PC relative branch to
# absolute jump" or "error: value -yyyyy out of range".
depends on BR2_bfin
help
Allow for the data and text segments to be separated and placed in
different regions of memory.
config BR2_BINFMT_FLAT_SHARED
bool "Shared binary"
depends on BR2_m68k || BR2_bfin
# Even though this really generates shared binaries, there is no libdl
# and dlopen() cannot be used. So packages that require shared
# libraries cannot be built. Therefore, we don't select
@ -357,14 +361,10 @@ if BR2_arcle || BR2_arceb
source "arch/Config.in.arc"
endif
if BR2_arm || BR2_armeb
if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_aarch64_be
source "arch/Config.in.arm"
endif
if BR2_aarch64 || BR2_aarch64_be
source "arch/Config.in.aarch64"
endif
if BR2_bfin
source "arch/Config.in.bfin"
endif
@ -385,11 +385,15 @@ if BR2_nios2
source "arch/Config.in.nios2"
endif
if BR2_or1k
source "arch/Config.in.or1k"
endif
if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
source "arch/Config.in.powerpc"
endif
if BR2_sh || BR2_sh64
if BR2_sh
source "arch/Config.in.sh"
endif

View File

@ -1,7 +0,0 @@
config BR2_ARCH
default "aarch64" if BR2_aarch64
default "aarch64_be" if BR2_aarch64_be
config BR2_ENDIAN
default "LITTLE" if BR2_aarch64
default "BIG" if BR2_aarch64_be

View File

@ -31,6 +31,10 @@ config BR2_ARM_CPU_HAS_VFPV4
bool
select BR2_ARM_CPU_HAS_VFPV3
config BR2_ARM_CPU_HAS_FP_ARMV8
bool
select BR2_ARM_CPU_HAS_VFPV4
config BR2_ARM_CPU_HAS_ARM
bool
@ -55,9 +59,11 @@ config BR2_ARM_CPU_ARMV7A
config BR2_ARM_CPU_ARMV7M
bool
config BR2_ARM_CPU_ARMV8
bool
choice
prompt "Target Architecture Variant"
depends on BR2_arm || BR2_armeb
default BR2_arm926t
help
Specific CPU variant to use
@ -68,12 +74,14 @@ config BR2_arm920t
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm922t
bool "arm922t"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm926t
bool "arm926t"
select BR2_ARM_CPU_HAS_ARM
@ -81,12 +89,14 @@ config BR2_arm926t
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV5
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm1136j_s
bool "arm1136j-s"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm1136jf_s
bool "arm1136jf-s"
select BR2_ARM_CPU_HAS_ARM
@ -94,12 +104,14 @@ config BR2_arm1136jf_s
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm1176jz_s
bool "arm1176jz-s"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm1176jzf_s
bool "arm1176jzf-s"
select BR2_ARM_CPU_HAS_ARM
@ -107,6 +119,7 @@ config BR2_arm1176jzf_s
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm11mpcore
bool "mpcore"
select BR2_ARM_CPU_HAS_ARM
@ -114,6 +127,7 @@ config BR2_arm11mpcore
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a5
bool "cortex-A5"
select BR2_ARM_CPU_HAS_ARM
@ -122,6 +136,7 @@ config BR2_cortex_a5
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a7
bool "cortex-A7"
select BR2_ARM_CPU_HAS_ARM
@ -130,6 +145,7 @@ config BR2_cortex_a7
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a8
bool "cortex-A8"
select BR2_ARM_CPU_HAS_ARM
@ -138,6 +154,7 @@ config BR2_cortex_a8
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a9
bool "cortex-A9"
select BR2_ARM_CPU_HAS_ARM
@ -146,6 +163,7 @@ config BR2_cortex_a9
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a12
bool "cortex-A12"
select BR2_ARM_CPU_HAS_ARM
@ -154,6 +172,7 @@ config BR2_cortex_a12
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a15
bool "cortex-A15"
select BR2_ARM_CPU_HAS_ARM
@ -162,6 +181,7 @@ config BR2_cortex_a15
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a17
bool "cortex-A17"
select BR2_ARM_CPU_HAS_ARM
@ -170,41 +190,73 @@ config BR2_cortex_a17
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a53
bool "cortex-A53"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a57
bool "cortex-A57"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a72
bool "cortex-A72"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_m3
bool "cortex-M3"
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7M
depends on !BR2_ARCH_IS_64
config BR2_cortex_m4
bool "cortex-M4"
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7M
depends on !BR2_ARCH_IS_64
config BR2_fa526
bool "fa526/626"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_pj4
bool "pj4"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_VFPV3
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_strongarm
bool "strongarm sa110/sa1100"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_xscale
bool "xscale"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV5
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_iwmmxt
bool "iwmmxt"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_ARMV5
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
endchoice
config BR2_ARM_ENABLE_NEON
@ -284,7 +336,7 @@ endchoice
choice
prompt "Floating point strategy"
depends on BR2_ARM_EABI || BR2_ARM_EABIHF
default BR2_ARM_FPU_FP_ARMV8 if BR2_ARM_CPU_HAS_FP_ARMV8
default BR2_ARM_FPU_VFPV4D16 if BR2_ARM_CPU_HAS_VFPV4
default BR2_ARM_FPU_VFPV3D16 if BR2_ARM_CPU_HAS_VFPV3
default BR2_ARM_FPU_VFPV2 if BR2_ARM_CPU_HAS_VFPV2
@ -395,10 +447,25 @@ config BR2_ARM_FPU_NEON_VFPV4
example on Cortex-A5 and Cortex-A7, support for VFPv4 and
NEON is optional.
config BR2_ARM_FPU_FP_ARMV8
bool "FP-ARMv8"
depends on BR2_ARM_CPU_HAS_FP_ARMV8
help
This option allows to use the ARMv8 floating point unit.
config BR2_ARM_FPU_NEON_FP_ARMV8
bool "NEON/FP-ARMv8"
depends on BR2_ARM_CPU_HAS_FP_ARMV8
depends on BR2_ARM_CPU_HAS_NEON
help
This option allows to use both the ARMv8 floating point unit
and the NEON SIMD unit for floating point operations.
endchoice
choice
prompt "ARM instruction set"
depends on BR2_arm || BR2_armeb
config BR2_ARM_INSTRUCTIONS_ARM
bool "ARM"
@ -434,12 +501,14 @@ config BR2_ARM_INSTRUCTIONS_THUMB2
endchoice
config BR2_ARCH
default "arm" if BR2_arm
default "armeb" if BR2_armeb
default "arm" if BR2_arm
default "armeb" if BR2_armeb
default "aarch64" if BR2_aarch64
default "aarch64_be" if BR2_aarch64_be
config BR2_ENDIAN
default "LITTLE" if BR2_arm
default "BIG" if BR2_armeb
default "LITTLE" if (BR2_arm || BR2_aarch64)
default "BIG" if (BR2_armeb || BR2_aarch64_be)
config BR2_GCC_TARGET_CPU
default "arm920t" if BR2_arm920t
@ -465,11 +534,22 @@ config BR2_GCC_TARGET_CPU
default "strongarm" if BR2_strongarm
default "xscale" if BR2_xscale
default "iwmmxt" if BR2_iwmmxt
default "cortex-a53" if (BR2_cortex_a53 && !BR2_ARCH_IS_64)
default "cortex-a53+fp" if (BR2_cortex_a53 && BR2_ARCH_IS_64 && BR2_ARM_FPU_FP_ARMV8)
default "cortex-a53+fp+simd" if (BR2_cortex_a53 && BR2_ARCH_IS_64 && BR2_ARM_FPU_NEON_FP_ARMV8)
default "cortex-a57" if (BR2_cortex_a57 && !BR2_ARCH_IS_64)
default "cortex-a57+fp" if (BR2_cortex_a57 && BR2_ARCH_IS_64 && BR2_ARM_FPU_FP_ARMV8)
default "cortex-a57+fp+simd" if (BR2_cortex_a57 && BR2_ARCH_IS_64 && BR2_ARM_FPU_NEON_FP_ARMV8)
default "cortex-a72" if (BR2_cortex_a72 && !BR2_ARCH_IS_64)
default "cortex-a72+fp" if (BR2_cortex_a72 && BR2_ARCH_IS_64 && BR2_ARM_FPU_FP_ARMV8)
default "cortex-a72+fp+simd" if (BR2_cortex_a72 && BR2_ARCH_IS_64 && BR2_ARM_FPU_NEON_FP_ARMV8)
config BR2_GCC_TARGET_ABI
default "aapcs-linux"
default "aapcs-linux" if BR2_arm || BR2_armeb
default "lp64" if BR2_aarch64 || BR2_aarch64_be
config BR2_GCC_TARGET_FPU
depends on BR2_arm || BR2_armeb
default "vfp" if BR2_ARM_FPU_VFPV2
default "vfpv3" if BR2_ARM_FPU_VFPV3
default "vfpv3-d16" if BR2_ARM_FPU_VFPV3D16
@ -477,6 +557,8 @@ config BR2_GCC_TARGET_FPU
default "vfpv4-d16" if BR2_ARM_FPU_VFPV4D16
default "neon" if BR2_ARM_FPU_NEON
default "neon-vfpv4" if BR2_ARM_FPU_NEON_VFPV4
default "fp-armv8" if BR2_ARM_FPU_FP_ARMV8
default "neon-fp-armv8" if BR2_ARM_FPU_NEON_FP_ARMV8
config BR2_GCC_TARGET_FLOAT_ABI
default "soft" if BR2_ARM_SOFT_FLOAT

View File

@ -1,7 +1,7 @@
choice
prompt "Target CPU"
depends on BR2_bfin
default BR2_bf609
default BR2_bf532
help
Specify target CPU
config BR2_bf606

View File

@ -35,7 +35,3 @@ endchoice
config BR2_GCC_TARGET_CPU
default "68040" if BR2_m68k_68040
default "5208" if BR2_m68k_cf5208
config BR2_GCC_TARGET_ARCH
default "m68k" if BR2_m68k_m68k
default "cf" if BR2_m68k_cf

View File

@ -1,3 +1,21 @@
# mips default CPU ISAs
config BR2_MIPS_CPU_MIPS32
bool
config BR2_MIPS_CPU_MIPS32R2
bool
config BR2_MIPS_CPU_MIPS32R5
bool
config BR2_MIPS_CPU_MIPS32R6
bool
config BR2_MIPS_CPU_MIPS64
bool
config BR2_MIPS_CPU_MIPS64R2
bool
config BR2_MIPS_CPU_MIPS64R5
bool
config BR2_MIPS_CPU_MIPS64R6
bool
choice
prompt "Target Architecture Variant"
depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
@ -6,27 +24,78 @@ choice
help
Specific CPU variant to use
64bit cabable: 64, 64r2, 64r6
non-64bit capable: 32, 32r2, 32r6
64bit cabable: 64, 64r2, 64r5, 64r6
non-64bit capable: 32, 32r2, 32r5, 32r6
config BR2_mips_32
bool "mips 32"
bool "Generic MIPS32"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32
config BR2_mips_32r2
bool "mips 32r2"
bool "Generic MIPS32R2"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R2
config BR2_mips_32r5
bool "Generic MIPS32R5"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R5
config BR2_mips_32r6
bool "mips 32r6"
bool "Generic MIPS32R6"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R6
config BR2_mips_interaptiv
bool "interAptiv"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R2
config BR2_mips_m5150
bool "M5150"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R5
config BR2_mips_m6250
bool "M6250"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R6
config BR2_mips_p5600
bool "P5600"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R5
config BR2_mips_xburst
bool "XBurst"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R2
help
The Ingenic XBurst is a MIPS32R2 microprocessor. It has a
bug in the FPU that can generate incorrect results in
certain cases. The problem shows up when you have several
fused madd instructions in sequence with dependant
operands. This requires the -mno-fused-madd compiler option
to be used in order to prevent emitting these instructions.
See http://www.ingenic.com/en/?xburst.html
config BR2_mips_64
bool "mips 64"
bool "Generic MIPS64"
depends on BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS64
config BR2_mips_64r2
bool "mips 64r2"
bool "Generic MIPS64R2"
depends on BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS64R2
config BR2_mips_64r5
bool "Generic MIPS64R5"
depends on BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS64R5
config BR2_mips_64r6
bool "mips 64r6"
bool "Generic MIPS64R6"
depends on BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS64R6
config BR2_mips_i6400
bool "I6400"
depends on BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS64R6
config BR2_mips_p6600
bool "P6600"
depends on BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS64R6
endchoice
@ -70,10 +139,19 @@ config BR2_ENDIAN
config BR2_GCC_TARGET_ARCH
default "mips32" if BR2_mips_32
default "mips32r2" if BR2_mips_32r2
default "mips32r5" if BR2_mips_32r5
default "mips32r6" if BR2_mips_32r6
default "interaptiv" if BR2_mips_interaptiv
default "m5101" if BR2_mips_m5150
default "m6201" if BR2_mips_m6250
default "p5600" if BR2_mips_p5600
default "mips32r2" if BR2_mips_xburst
default "mips64" if BR2_mips_64
default "mips64r2" if BR2_mips_64r2
default "mips64r5" if BR2_mips_64r5
default "mips64r6" if BR2_mips_64r6
default "i6400" if BR2_mips_i6400
default "p6600" if BR2_mips_p6600
config BR2_MIPS_OABI32
bool

5
arch/Config.in.or1k Normal file
View File

@ -0,0 +1,5 @@
config BR2_ARCH
default "or1k"
config BR2_ENDIAN
default "BIG"

View File

@ -23,8 +23,7 @@ config BR2_ARCH
default "sh4eb" if BR2_sh4eb
default "sh4a" if BR2_sh4a
default "sh4aeb" if BR2_sh4aeb
default "sh64" if BR2_sh64
config BR2_ENDIAN
default "LITTLE" if BR2_sh4 || BR2_sh4a || BR2_sh64
default "LITTLE" if BR2_sh4 || BR2_sh4a
default "BIG" if BR2_sh2a || BR2_sh4eb || BR2_sh4aeb

View File

@ -1,7 +1,8 @@
setenv bootargs console=tty1 root=/dev/mmcblk0p2 rootwait panic=10 earlyprintk quiet loglevel=1 ipv6.disable=1 ${extra}
fatload mmc 0 0x49000000 sun7i-a20-cubietruck.dtb
fatload mmc 0 0x46000000 uImage
setenv fdt_high ffffffff
setenv video-mode sunxi:1024x768-24@60,monitor=hdmi,hpd=1,edid=1
bootm 0x46000000 - 0x49000000
fatload mmc 0 0x41000000 uImage
fatload mmc 0 0x43000000 sun7i-a20-bananapi.dtb
fatload mmc 0 0x45000000 uInitrd
bootm 0x41000000 0x45000000 0x43000000

View File

@ -1,7 +1,7 @@
setenv bootargs console=tty1 root=/dev/mmcblk0p2 rootwait panic=10 earlyprintk quiet loglevel=1 ipv6.disable=1 ${extra}
fatload mmc 0 0x49000000 sun7i-a20-bananapi.dtb
fatload mmc 0 0x46000000 uImage
setenv fdt_high ffffffff
setenv video-mode sunxi:1024x768-24@60,monitor=hdmi,hpd=1,edid=1
bootm 0x46000000 - 0x49000000
fatload mmc 0 0x41000000 uImage
fatload mmc 0 0x43000000 sun7i-a20-bananapi.dtb
bootm 0x41000000 - 0x43000000

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,7 @@
#!/bin/sh
if [ -f /boot/boot-normal.scr ]; then
mv /boot/boot.scr /boot/boot-fwupdater.scr
mv /boot/boot-normal.scr /boot/boot.scr
fi

View File

@ -1,5 +1,5 @@
#!/bin/bash
sn=$(cat /sys/class/net/eth0/address 2>/dev/null| tr -d ':')
sn=$(cat /proc/cpuinfo | grep Serial | tr -d ' ' | cut -d ':' -f 2)
echo ${sn: -8}

View File

@ -0,0 +1,7 @@
#!/bin/bash
if [ -f /boot/boot-fwupdater.scr ]; then
mv /boot/boot.scr /boot/boot-normal.scr
mv /boot/boot-fwupdater.scr /boot/boot.scr
fi

View File

@ -6,7 +6,7 @@ cp $IMG_DIR/uImage $BOOT_DIR
cp $IMG_DIR/sun7i-a20-bananapi.dtb $BOOT_DIR
$UBOOT_HOST_DIR/tools/mkimage -C none -A arm -T script -d $BOARD_DIR/boot.cmd $BOOT_DIR/boot.scr
$UBOOT_HOST_DIR/tools/mkimage -C none -A arm -T script -d $BOARD_DIR/boot-fwupdater.cmd $BOOT_DIR/boot-fwupdater.scr
# disable software updating
sed -i 's/enable_update true/enable_update false/' $TARGET/etc/motioneye.conf
cp $BOARD_DIR/uInitrd $BOOT_DIR

BIN
board/bananapi/uInitrd Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -172,11 +172,15 @@ rm -f $TARGET/usr/sbin/ctdb*
rm -f $TARGET/usr/sbin/winbindd
rm -f $TARGET/usr/share/perl5
# useless mongodb binaries
rm -f $TARGET/usr/bin/mongos
rm -f $TARGET/usr/bin/mongoperf
# unused python folders
rm -rf $TARGET/usr/lib/python2.7/site-packages/samba/
rm -rf $TARGET/usr/lib/python2.7/ensurepip/
# startup scripts
# buildroot default startup scripts
rm -f $TARGET/etc/init.d/S01logging
rm -f $TARGET/etc/init.d/S10udev
rm -f $TARGET/etc/init.d/S15watchdog
@ -187,6 +191,7 @@ rm -f $TARGET/etc/init.d/S20urandom
rm -f $TARGET/etc/init.d/S80dhcp-relay
rm -f $TARGET/etc/init.d/S80dhcp-server
rm -f $TARGET/etc/init.d/S91smb
rm -f $TARGET/etc/init.d/S99motion
# other unwanted dirs
rm -rf $TARGET/data/*

View File

@ -34,6 +34,7 @@ ROOT_IMG=$IMG_DIR/root.img
ROOT_SIZE="180" # MB
DISK_SIZE="220" # MB
OS_NAME=$(source $IMG_DIR/../../../board/common/overlay/etc/version && echo $os_short_name)
# boot filesystem
msg "creating boot loop device"
@ -163,8 +164,8 @@ msg "destroying root loop device"
losetup -d $loop_dev
sync
mv $DISK_IMG $(dirname $DISK_IMG)/motioneyeos-$BOARD.img
DISK_IMG=$(dirname $DISK_IMG)/motioneyeos-$BOARD.img
mv $DISK_IMG $(dirname $DISK_IMG)/$OS_NAME-$BOARD.img
DISK_IMG=$(dirname $DISK_IMG)/$OS_NAME-$BOARD.img
msg "$(realpath "$DISK_IMG") is ready"

View File

@ -0,0 +1,103 @@
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
msg() {
echo "* $1"
}
msg "Waiting for sdcard"
sleep 2
msg "Mounting pseudo filesystems"
mount -t devtmpfs devtmpfs /dev
mount -t proc proc /proc
ROOT_DEV=$(cat /proc/cmdline | grep -oE 'root=[/a-z0-9]+' | cut -d '=' -f 2)
if echo ${ROOT_DEV: -2} | grep -E 'p[0-9]' &>/dev/null; then # e.g. /dev/mmcblk0p2
DISK_DEV=${ROOT_DEV:0:$((${#ROOT_DEV}-2))}
BOOT_DEV=${DISK_DEV}p1
DATA_DEV=${DISK_DEV}p3
else # e.g. /dev/sdc2
DISK_DEV=${ROOT_DEV:0:$((${#ROOT_DEV}-1))}
BOOT_DEV=${DISK_DEV}1
DATA_DEV=${DISK_DEV}3
fi
msg "Disk device is $DISK_DEV"
msg "Boot device is $BOOT_DEV"
msg "Root device is $ROOT_DEV"
msg "Data device is $DATA_DEV"
FW_DIR=/data/.fwupdate
FW_FILE=firmware.img.gz
FW_FILE_EXTR=firmware.img
LEGACY_FW_DIR=/data/.firmware_update
LEGACY_FW_FILE_EXTR=firmware
ROOT_INFO_FILE=root_info
on_exit() {
msg "Switching to normal boot"
/remove_initramfs
msg "Unmounting data partition"
umount /data
msg "Unmounting boot partition"
umount /boot
msg "Syncing"
sync
msg "Rebooting"
echo 'b' > /proc/sysrq-trigger
}
trap on_exit EXIT
if [ -x /prepare_initramfs ]; then
msg "Preparing initramfs"
/prepare_initramfs
fi
msg "Mounting boot partition"
mount $BOOT_DEV /boot
msg "Mounting data partition"
mount $DATA_DEV /data
if ! [ -r $FW_DIR/$FW_FILE_EXTR ]; then
if [ -r $LEGACY_FW_DIR/$LEGACY_FW_FILE_EXTR ]; then
msg "Detected legacy firmware path"
mkdir -p $FW_DIR
mv $LEGACY_FW_DIR/$LEGACY_FW_FILE_EXTR $FW_DIR/$FW_FILE_EXTR
msg "Computing root partition info"
root_start=$(fdisk -l $FW_DIR/$FW_FILE_EXTR | grep ${FW_FILE_EXTR}2 | tr -s ' ' | cut -d ' ' -f 4)
root_start=$(($root_start / 2048))
root_size=$(fdisk -l $FW_DIR/$FW_FILE_EXTR | grep ${FW_FILE_EXTR}2 | tr -s ' ' | cut -d ' ' -f 6)
root_size=$(($root_size / 2048))
echo $root_start $root_size > $FW_DIR/$ROOT_INFO_FILE
else
msg "No firmware found, aborting"
exit 1
fi
fi
if ! [ -r $FW_DIR/$ROOT_INFO_FILE ]; then
msg "No root partition info, aborting"
exit 1
fi
msg "Copying root image"
root_start=$(cat $FW_DIR/$ROOT_INFO_FILE | cut -d ' ' -f 1)
root_size=$(cat $FW_DIR/$ROOT_INFO_FILE | cut -d ' ' -f 2)
dd if=$FW_DIR/$FW_FILE_EXTR skip=$root_start of=$ROOT_DEV bs=1048576 count=$root_size || exit 1
msg "Cleaning up"
rm -rf $FW_DIR

View File

@ -0,0 +1,4 @@
# <file system> <mount pt> <type> <options> <dump> <pass>
/dev/mmcblk0p1 /boot vfat ro,defaults 0 0
/dev/mmcblk0p3 /data ext4 defaults,noatime 0 0

View File

@ -0,0 +1,4 @@
# <file system> <mount pt> <type> <options> <dump> <pass>
/data/output /home/ftp/sdcard rbind rbind 0 0
/data/media /home/ftp/storage rbind rbind 0 0

View File

@ -4,8 +4,4 @@ devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs mode=0777 0 0
tmpfs /tmp tmpfs mode=1777 0 0
sysfs /sys sysfs defaults 0 0
/dev/mmcblk0p1 /boot vfat ro,defaults 0 0
/dev/mmcblk0p3 /data ext4 defaults,noatime 0 0
/data/output /home/ftp/sdcard rbind rbind 0 0
/data/media /home/ftp/storage rbind rbind 0 0

View File

@ -1,12 +1,23 @@
#!/bin/bash
disk_dev="/dev/mmcblk0"
data_dev="${disk_dev}p3"
test -n "$os_version" || source /etc/init.d/base
msg_begin "Detecting disk device"
root_part=$(cat /proc/cmdline | grep -oE 'root=[/a-z0-9]+' | cut -d '=' -f 2)
if [[ "$root_part" =~ ^([/a-z0-9]+)(p[0-9])$ ]]; then # e.g. /dev/mmcblk0p2
disk_dev=${BASH_REMATCH[1]}
data_dev=${disk_dev}p3
elif [[ "$root_part" =~ ^([/a-z0-9]+)([0-9])$ ]]; then # e.g. /dev/sdc2
disk_dev=${BASH_REMATCH[1]}
data_dev=${disk_dev}3
else
msg_fail "unknown ($root_part)"
exit 1
fi
msg_done "$disk_dev"
test -b $data_dev && exit 0
test -n "$os_version" || source /etc/init.d/base
case "$1" in
start)
msg_begin "Creating data partition"
@ -24,7 +35,7 @@ case "$1" in
test $? == 0 && msg_done || msg_fail
msg_begin "Mounting data partition"
mount /data
mount -T /etc/fstab.disk /data
test $? == 0 && msg_done || msg_fail
msg_begin "Creating required data files"
@ -39,7 +50,8 @@ case "$1" in
msg_done
# mount other partitions depending on data
mount -a
mount -T /etc/fstab.disk -a
mount -T /etc/fstab.extra -a
;;
stop)

View File

@ -4,7 +4,8 @@ test -n "$os_version" || source /etc/init.d/base
mount_fs() {
msg_begin "Mounting filesystems"
/bin/mount -a
/bin/mount -T /etc/fstab.disk -a
/bin/mount -T /etc/fstab.extra -a
test $? == 0 && msg_done || msg_fail
}

View File

@ -5,6 +5,8 @@ test -n "$os_version" || source /etc/init.d/base
sys_version_file="/etc/version"
version_file="/data/etc/version"
post_upgrade_dir="/usr/share/post-upgrade"
sys_os_conf="/etc/os.conf"
os_conf="/data/etc/os.conf"
hash=$(md5sum $version_file 2>/dev/null | cut -d ' ' -f 1)
sys_hash=$(md5sum $sys_version_file 2>/dev/null | cut -d ' ' -f 1)
@ -34,10 +36,23 @@ function run_post_upgrade() {
done
}
function update_os_conf() {
source $sys_os_conf
sys_vars=$(cat $sys_os_conf | cut -d '=' -f 1)
for var in $sys_vars; do
if ! grep "$var=" $os_conf &>/dev/null; then
msg_begin "Adding $var to os.conf"
echo "$var=\"${!var}\"" >> $os_conf
msg_done
fi
done
}
case "$1" in
start)
run_post_upgrade
cp $sys_version_file $version_file
update_os_conf
;;
stop)

View File

@ -38,22 +38,10 @@ date_interval="900"
source $conf
kill_after_timeout() {
sleep $date_timeout
ps aux | grep httplib | grep -v grep | tr -s ' ' | cut -d ' ' -f 2 | xargs -r kill
}
set_current_date_http() {
kill_after_timeout &
timestamp=$(python -c "import calendar, httplib, email.utils; conn = httplib.HTTPConnection('$date_host'); conn.request('HEAD', '/'); \
print calendar.timegm(email.utils.parsedate(conn.getresponse().getheader('date')))")
if [ -n "$timestamp" ]; then
date +%s -s @$timestamp > /dev/null
else
return 1
fi
date_str=$(curl -v -s -m $date_timeout -X GET http://$date_host 2>&1 | grep Date | sed -e 's/< Date: //')
date -D "%a, %d %b %Y %H:%M:%S" -s "$date_str" > /dev/null
return $?
}
set_current_date_ntp() {

View File

@ -29,7 +29,7 @@ opts=$(cat "$conf" | while read line; do echo "--$line"; done)
port=$(echo "$opts" | grep -oE 'port [[:digit:]]+' | cut -d ' ' -f 2)
responsive() {
wget --method=HEAD -q -t 1 -T 2 -O - http://127.0.0.1:$port &>/dev/null && return 0 || return 1
curl -m 2 --head http://127.0.0.1:$port &>/dev/null && return 0 || return 1
}
watch() {

View File

@ -3,8 +3,8 @@
/bin/mkdir -p /dev/pts
/bin/mkdir -p /dev/shm
/bin/mount --make-shared /
/bin/mount -a -t proc
/bin/mount -a -t devpts
/bin/mount -a -t tmpfs
/bin/mount -a -t sysfs
/bin/mount -T /etc/fstab.sys -a -t proc
/bin/mount -T /etc/fstab.sys -a -t devpts
/bin/mount -T /etc/fstab.sys -a -t tmpfs
/bin/mount -T /etc/fstab.sys -a -t sysfs

View File

@ -6,4 +6,7 @@ os_wlan="wlan0"
os_ppp="ppp0"
os_networkless="false"
os_country="GB"
os_firmware_method="github"
os_firmware_repo="ccrisan/motioneyeos"
os_firmware_username=""
os_firmware_password=""

View File

@ -1,4 +1,4 @@
os_name="motionEyeOS"
os_short_name="motioneyeos"
os_prefix="meye"
os_version="20170212"
os_version="20170312"

View File

@ -12,4 +12,3 @@ netwatch_interval=20
#meyewatch_disable="true"
meyewatch_timeout=120

View File

@ -0,0 +1,369 @@
#!/bin/bash
#### usage ####
function exit_usage() {
echo "Usage: fwupdate versions (lists available versions)"
echo " fwupdate current (shows the current version"
echo " fwupdate download <version|url> (downloads a firmware version)"
echo " fwupdate extract (extracts the downloaded firmware archive)"
echo " fwupdate flashboot (flashes the boot partition from extracted image)"
echo " fwupdate flashreboot (prepares for reboot + root partititon flash)"
echo " fwupdate status (shows the current firmware updating status; see below)"
echo ""
echo "Statuses:"
echo " idle"
echo " downloading <version>"
echo " downloaded <version>"
echo " extracting <version>"
echo " extracted <version>"
echo " flashing boot <version>"
echo " boot ready <version>"
echo ""
exit 1
}
if [ -z "$1" ]; then
exit_usage
fi
#### configuration ####
SYS_VERSION_FILE=/etc/version
SYS_BOARD_FILE=/etc/board
OS_CONF=/data/etc/os.conf
BOOT_DEV=$(mount | grep /boot | cut -d ' ' -f 1)
MIN_FREE_DISK=$((500*1024)) # 500 MB
VER_FILE=version
ROOT_INFO_FILE=root_info
BOOT_READY_FILE=boot_flash_ready
FW_DIR=/data/.fwupdate
FW_FILE=firmware.img.gz
FW_FILE_EXTR=firmware.img
CURL_LOG_FILE=curl.log
CURL_PID_FILE=curl.pid
GUNZIP_LOG_FILE=gunzip.log
GUNZIP_PID_FILE=gunzip.pid
DD_LOG_FILE=dd.log
DD_PID_FILE=dd.pid
#### versions ####
function show_versions() {
source $OS_CONF
board=$(cat $SYS_BOARD_FILE)
show_url=$1
# the /usr/libexec/list-versions-* helpers return a table with the following format:
# <version>|<prerelease>|<board>|<url>
versions=$(FW_USERNAME=$os_firmware_username FW_PASSWORD=$os_firmware_password \
/usr/libexec/list-versions-$os_firmware_method $os_firmware_repo)
for version in $versions; do
OIFS=$IFS
IFS="|"
varr=($version)
IFS=$OIFS
if [ "$os_prereleases" == "false" ] && [ "${varr[1]}" == "true" ]; then
continue # skip prereleases
fi
if [ "$board" != "${varr[2]}" ]; then
continue # skip other boards
fi
if [ "$show_url" == "true" ]; then
echo ${varr[0]} ${varr[3]}
else
echo ${varr[0]}
fi
done
}
function show_current() {
source $SYS_VERSION_FILE
echo $os_version
}
#### download ####
function do_download() {
echo "downloading..."
rm -f $FW_DIR/$FW_FILE
rm -f $FW_DIR/$FW_FILE_EXTR
rm -f $FW_DIR/$BOOT_READY_FILE
source $OS_CONF
board=$(cat $SYS_BOARD_FILE)
url=$1
version=$1
if ! [[ "$url" == http* ]]; then # a version was given
url=$(show_versions true | grep "^$1" | cut -d ' ' -f 2)
else
version="custom"
fi
if [ -z "$url" ]; then
echo "no such version" 1>&2
exit 1
fi
free_disk=$(df /data | tail -n 1 | tr -s ' ' | cut -d ' ' -f 4)
if [ "$free_disk" -lt $MIN_FREE_DISK ]; then
echo "not enough disk space" 1>&2
exit 1
fi
rm -rf $FW_DIR/*
mkdir -p $FW_DIR
echo $version > $FW_DIR/$VER_FILE
curl_opts="-S -f -L"
if [ -n "$os_firmware_username" ]; then
curl_opts+=" --user $os_firmware_username:$os_firmware_password"
fi
curl $curl_opts -o $FW_DIR/$FW_FILE "$url" &> $FW_DIR/$CURL_LOG_FILE &
pid=$!
echo $pid > $FW_DIR/$CURL_PID_FILE
wait $pid
}
function download_status() {
if [ -f $FW_DIR/$CURL_PID_FILE ]; then
pid=$(cat $FW_DIR/$CURL_PID_FILE)
if kill -0 $pid &>/dev/null; then
echo "running"
return
fi
fi
if [ -f $FW_DIR/$FW_FILE ]; then
echo "done"
fi
}
#### extract ####
function do_extract() {
echo "extracting..."
rm -f $FW_DIR/$FW_FILE_EXTR
rm -f $FW_DIR/$BOOT_READY_FILE
if ! [ -f $FW_DIR/$FW_FILE ]; then
echo "firmware file not downloaded" 1>&2
exit 1
fi
rm -f $FW_DIR/$FW_FILE_EXTR
gunzip -k -c $FW_DIR/$FW_FILE > $FW_DIR/$FW_FILE_EXTR 2>$FW_DIR/$GUNZIP_LOG_FILE &
pid=$!
echo $pid > $FW_DIR/$GUNZIP_PID_FILE
wait $pid
# TODO verify hash
}
function extract_status() {
if [ -f $FW_DIR/$GUNZIP_PID_FILE ]; then
pid=$(cat $FW_DIR/$GUNZIP_PID_FILE)
if kill -0 $pid &>/dev/null; then
echo "running"
return
fi
fi
if [ -f $FW_DIR/$FW_FILE_EXTR ]; then
echo "done"
fi
}
#### flash boot ####
function flash_boot() {
echo "flashing boot..."
rm -f $FW_DIR/$BOOT_READY_FILE
set +e
board=$(cat $SYS_BOARD_FILE)
cp -r /boot $FW_DIR/old_boot
umount /boot
trap flash_cleanup EXIT
mount -o remount,rw /
mv /sbin/reboot /sbin/reboot.bak
ln -s /bin/true /sbin/reboot
boot_info=$(fdisk --bytes -l -o device,start,end,size $FW_DIR/$FW_FILE_EXTR | grep "${FW_FILE_EXTR}1")
boot_info=($boot_info)
boot_start=$((${boot_info[1]} / 2048)) # in MB
boot_size=$((${boot_info[3]} / 1048576)) # in MB
root_info=$(fdisk --bytes -l -o device,start,end,size $FW_DIR/$FW_FILE_EXTR | grep "${FW_FILE_EXTR}2")
root_info=($root_info)
root_start=$((${root_info[1]} / 2048)) # in MB
root_size=$((${root_info[3]} / 1048576)) # in MB
echo $root_start $root_size > $FW_DIR/$ROOT_INFO_FILE
dd if=$FW_DIR/$FW_FILE_EXTR skip=$boot_start of=$BOOT_DEV bs=1048576 count=$boot_size &>$FW_DIR/$DD_LOG_FILE &
pid=$!
echo $pid > $FW_DIR/$DD_PID_FILE
wait $pid
mount -T /etc/fstab.disk -o rw /boot
# the /usr/libexec/fw-restore-boot-cfg script, if present, takes the old (backup) boot dir as argument
# and should restore any /boot configuration that needs to be preserved across updates
# from the old boot dir to the current (new) /boot dir
if [ -x /usr/libexec/fw-restore-boot-cfg ]; then
/usr/libexec/fw-restore-boot-cfg $FW_DIR/old_boot 2>/dev/null || true
fi
touch $FW_DIR/$BOOT_READY_FILE
}
function flash_boot_status() {
if [ -f $FW_DIR/$DD_PID_FILE ]; then
pid=$(cat $FW_DIR/$DD_PID_FILE)
if kill -0 $pid &>/dev/null; then
echo "running"
return
fi
fi
if [ -f $FW_DIR/$BOOT_READY_FILE ]; then
echo "done"
fi
}
function flash_cleanup() {
if [ -f /sbin/reboot.bak ]; then
rm -f /sbin/reboot
mv /sbin/reboot.bak /sbin/reboot
fi
mount /boot 2>/dev/null
}
#### flash reboot ####
function flash_reboot() {
echo "preparing for reboot..."
board=$(cat $SYS_BOARD_FILE)
# the /usr/libexec/fw-prepare-boot script should be present and should
# make the necessary changes to the current boot configuration so that
# the firmware update initramfs will be used by the next boot
mount -o remount,rw /boot
if [ -x /usr/libexec/fw-prepare-boot ]; then
/usr/libexec/fw-prepare-boot
fi
sync
busybox reboot &
sleep 10
echo b > /proc/sysrq-trigger
exit 0
}
#### status ####
function show_status() {
status=$(flash_boot_status)
if [ "$status" == "running" ]; then
echo "flashing boot $(new_version)"
return
elif [ "$status" == "done" ]; then
echo "boot ready $(new_version)"
return
fi
status=$(extract_status)
if [ "$status" == "running" ]; then
echo "extracting $(new_version)"
return
elif [ "$status" == "done" ]; then
echo "extracted $(new_version)"
return
fi
status=$(download_status)
if [ "$status" == "running" ]; then
echo "downloading $(new_version)"
return
elif [ -n "$status" ]; then
echo "downloaded $(new_version)"
return
fi
echo "idle"
}
function new_version() {
cat $FW_DIR/$VER_FILE
}
case "$1" in
versions)
show_versions
;;
current)
show_current
;;
download)
if [ -z "$2" ]; then
exit_usage
fi
do_download $2
show_status
;;
extract)
do_extract
show_status
;;
flashboot)
flash_boot
show_status
;;
flashreboot)
flash_reboot
;;
status)
show_status
;;
*)
exit_usage
;;
esac

View File

@ -0,0 +1,15 @@
#!/bin/bash
if [ -z "$1" ]; then
echo "Usage: $0 <account/project>" 1>&2
exit -1
fi
opts="-s -S -f"
test -n "$FW_USERNAME" && opts+=" --user $FW_USERNAME:$FW_PASSWORD"
url="https://api.bitbucket.org/2.0/repositories/$1/downloads?pagelen=100&_=$(date +%s)"
jq_expr='.values[] | [{a: .name | split("-"), url: .links.self.href}] | map((.a[2] | rtrimstr(".img.gz") | rtrimstr(".img")), "false", .a[1], .url) | join("|")'
curl $opts $url | jq --raw-output "$jq_expr"
exit ${PIPESTATUS[0]}

View File

@ -0,0 +1,15 @@
#!/bin/bash
if [ -z "$1" ]; then
echo "Usage: $0 <account/project>" 1>&2
exit -1
fi
opts="-s -S -f"
test -n "$FW_USERNAME" && opts+=" --user $FW_USERNAME:$FW_PASSWORD"
url=https://api.github.com/repos/$1/releases
jq_expr='.[] | {version: .name, prerelease: .prerelease | tostring} + (.assets[] | {name: .name | split("-")[1], url: .browser_download_url}) | flatten | join("|")'
curl $opts $url | jq --raw-output "$jq_expr"
exit ${PIPESTATUS[0]}

View File

@ -1,7 +0,0 @@
#!/bin/bash
# option "thumbnailer_interval" has been removed from motionEye config
grep -v 'thumbnailer_interval' /data/etc/motioneye.conf > /tmp/motioneye.conf
mv /tmp/motioneye.conf /data/etc/

View File

@ -0,0 +1 @@
../tmp/log

View File

@ -0,0 +1 @@
tmp

View File

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +0,0 @@
#!/bin/bash -e
BOARD_DIR=$(dirname $0)
COMMON_DIR=$BOARD_DIR/../common
export BOARD=$(basename $BOARD_DIR)
export IMG_DIR=$BOARD_DIR/../../output/$BOARD/images/
export UBOOT_BIN=$IMG_DIR/u-boot-sunxi-with-spl.bin
export UBOOT_SEEK=16
$COMMON_DIR/mkimage.sh

View File

@ -1 +0,0 @@
cubietruck

View File

@ -1,5 +0,0 @@
#!/bin/bash
sn=$(cat /sys/class/net/eth0/address 2>/dev/null| tr -d ':')
echo ${sn: -8}

View File

@ -1,11 +0,0 @@
#!/bin/sh
UBOOT_HOST_DIR=$TARGET/../build/host-uboot-tools-*
cp $IMG_DIR/uImage $BOOT_DIR
cp $IMG_DIR/sun7i-a20-cubietruck.dtb $BOOT_DIR
$UBOOT_HOST_DIR/tools/mkimage -C none -A arm -T script -d $BOARD_DIR/boot.cmd $BOOT_DIR/boot.scr
# disable software updating
sed -i 's/enable_update true/enable_update false/' $TARGET/etc/motioneye.conf

View File

@ -51,6 +51,7 @@ setenv bootargs "console=ttyS0,115200n8 root=/dev/mmcblk0p2 rootwait ro no_conso
# Booting
fatload mmc 0:1 0x21000000 uImage
fatload mmc 0:1 0x22000000 uInitrd
fatload mmc 0:1 0x21800000 meson8b_odroidc.dtb
fdt addr 21800000

View File

@ -0,0 +1,7 @@
#!/bin/sh
# we don't have the codepage kernel modules compiled in, so we have to manually insert them
mkdir /system
mount /dev/mmcblk0p2 /system
/system/bin/busybox insmod /system/lib/modules/*/kernel/fs/nls/nls_cp437.ko

View File

@ -0,0 +1,4 @@
#!/bin/sh
sed -i 's/00 0x22000000 0x/00 - 0x/' /boot/boot.ini

View File

@ -5,4 +5,7 @@ os_eth="eth0"
os_wlan="wlan0"
os_ppp="ppp0"
os_networkless="false"
os_firmware_method="github"
os_firmware_repo="ccrisan/motioneyeos"
os_firmware_username=""
os_firmware_password=""

View File

@ -0,0 +1,4 @@
#!/bin/bash
sed -i 's/00 - 0x/00 0x22000000 0x/' /boot/boot.ini

View File

@ -8,9 +8,7 @@ cp $IMG_DIR/meson8b_odroidc.dtb $BOOT_DIR
cp $BOARD_DIR/bl1.bin.hardkernel $IMG_DIR
cp $BOARD_DIR/u-boot.bin $IMG_DIR
cp $BOARD_DIR/boot.ini $BOOT_DIR
# disable software updating
sed -i 's/enable_update true/enable_update false/' $TARGET/etc/motioneye.conf
cp $BOARD_DIR/uInitrd $BOOT_DIR
# fix some lib dirs
if ! [ -L $TARGET/lib/arm-linux-gnueabihf ]; then

BIN
board/odroidc1/uInitrd Normal file

Binary file not shown.

View File

@ -94,6 +94,7 @@ setenv bootargs "console=ttyS0,115200n8 root=/dev/mmcblk0p2 rootwait ro no_conso
# Booting
fatload mmc 0:1 0x11000000 Image
fatload mmc 0:1 0x13000000 uInitrd
fatload mmc 0:1 0x1000000 meson64_odroidc2.dtb
fdt addr 0x1000000

View File

@ -0,0 +1,4 @@
#!/bin/sh
sed -i 's/00 0x22000000 0x/00 - 0x/' /boot/boot.ini

View File

@ -5,4 +5,7 @@ os_eth="eth0"
os_wlan="wlan0"
os_ppp="ppp0"
os_networkless="false"
os_firmware_method="github"
os_firmware_repo="ccrisan/motioneyeos"
os_firmware_username=""
os_firmware_password=""

View File

@ -0,0 +1,4 @@
#!/bin/bash
sed -i 's/00 - 0x/00 0x13000000 0x/' /boot/boot.ini

View File

@ -8,6 +8,3 @@ cp $IMG_DIR/meson64_odroidc2.dtb $BOOT_DIR
cp $BOARD_DIR/bl1.bin.hardkernel $IMG_DIR
cp $BOARD_DIR/u-boot.bin $IMG_DIR
cp $BOARD_DIR/boot.ini $BOOT_DIR
# disable software updating
sed -i 's/enable_update true/enable_update false/' $TARGET/etc/motioneye.conf

BIN
board/odroidc2/uInitrd Normal file

Binary file not shown.

View File

@ -1,7 +1,7 @@
ODROIDXU-UBOOT-CONFIG
setenv fdt_high "0xffffffff"
setenv bootcmd "fatload mmc 0:1 0x40008000 zImage; fatload mmc 0:1 0x44000000 exynos5422-odroidxu3.dtb; bootz 0x40008000 - 0x44000000"
setenv bootargs "console=tty1 root=/dev/mmcblk0p2 rootwait ro no_console_suspend panic=10 quiet loglevel=1 ipv6.disable=1"
setenv bootcmd "fatload mmc 0:1 0x40008000 zImage; fatload mmc 0:1 0x42000000 uInitrd; fatload mmc 0:1 0x44000000 exynos5422-odroidxu4.dtb; bootz 0x40008000 - 0x44000000"
setenv bootargs "console=tty1 root=/dev/mmcblk1p2 rootwait ro no_console_suspend panic=10 quiet loglevel=1 ipv6.disable=1"
boot

View File

@ -0,0 +1,4 @@
#!/bin/sh
sed -i 's/00 0x42000000 0x/00 - 0x/' /boot/boot.ini

View File

@ -0,0 +1,4 @@
# <file system> <mount pt> <type> <options> <dump> <pass>
/dev/mmcblk1p1 /boot vfat ro,defaults 0 0
/dev/mmcblk1p3 /data ext4 defaults,noatime 0 0

View File

@ -1 +0,0 @@
/lib

View File

@ -1 +0,0 @@
/usr/lib

View File

@ -0,0 +1,4 @@
#!/bin/bash
sed -i 's/00 - 0x/00 0x42000000 0x/' /boot/boot.ini

View File

@ -3,14 +3,13 @@
# boot directory
mkdir -p $BOOT_DIR
cp $IMG_DIR/zImage $BOOT_DIR
cp $IMG_DIR/exynos5422-odroidxu3.dtb $BOOT_DIR
cp $BOARD_DIR/bl1.bin.hardkernel $IMG_DIR
cp $BOARD_DIR/bl2.bin.hardkernel $IMG_DIR
cp $BOARD_DIR/tzsw.bin.hardkernel $IMG_DIR
cp $BOARD_DIR/u-boot.bin $IMG_DIR
cp $IMG_DIR/zImage $BOOT_DIR
cp $IMG_DIR/exynos5422-odroidxu4.dtb $BOOT_DIR
cp $BOARD_DIR/boot.ini $BOOT_DIR
# disable software updating
sed -i 's/enable_update true/enable_update false/' $TARGET/etc/motioneye.conf
cp $BOARD_DIR/uInitrd $BOOT_DIR

BIN
board/odroidxu4/uInitrd Normal file

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,4 @@
#!/bin/sh
sed -i 's/^initramfs.*//g' /boot/config.txt

View File

@ -0,0 +1,4 @@
#!/bin/bash
echo "initramfs fwupdater.gz" >> /boot/config.txt

View File

@ -0,0 +1,10 @@
#!/bin/bash
if [ -z "$1" ]; then
echo "Usage: $0 <old_boot>" 1>&2
exit -1
fi
old_boot=$1
cp $old_boot/config.txt /boot

Binary file not shown.

View File

@ -0,0 +1,4 @@
#!/bin/bash
echo "initramfs fwupdater.gz" >> /boot/config.txt

View File

@ -0,0 +1,10 @@
#!/bin/bash
if [ -z "$1" ]; then
echo "Usage: $0 <old_boot>" 1>&2
exit -1
fi
old_boot=$1
cp $old_boot/config.txt /boot

Binary file not shown.

View File

@ -0,0 +1,4 @@
#!/bin/bash
echo "initramfs fwupdater.gz" >> /boot/config.txt

Some files were not shown because too many files have changed in this diff Show More