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.

406
Config.in
View File

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

View File

@ -142,6 +142,402 @@ comment "build, or run, in unpredictable ways. "
comment "----------------------------------------------------" comment "----------------------------------------------------"
endif 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" comment "Legacy options removed in 2016.05"
@ -220,12 +616,19 @@ config BR2_PACKAGE_QT5QUICK1
from upstream starting from Qt 5.6. from upstream starting from Qt 5.6.
config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR
bool "uboot custom patch dir removed" string "uboot custom patch dir has been removed"
select BR2_LEGACY
help help
The uboot custom patch directory option has been removed. Use The uboot custom patch directory option has been removed. Use
the improved BR2_TARGET_UBOOT_PATCH option instead. 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 config BR2_PACKAGE_XDRIVER_XF86_INPUT_VOID
bool "xf86-input-void removed" bool "xf86-input-void removed"
select BR2_LEGACY select BR2_LEGACY
@ -235,12 +638,12 @@ config BR2_PACKAGE_XDRIVER_XF86_INPUT_VOID
config BR2_KERNEL_HEADERS_3_17 config BR2_KERNEL_HEADERS_3_17
bool "kernel headers version 3.17.x are no longer supported" 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 select BR2_LEGACY
help help
Version 3.17.x of the Linux kernel headers have been deprecated Version 3.17.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. 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. automatically selected in your configuration.
config BR2_GDB_VERSION_7_7 config BR2_GDB_VERSION_7_7
@ -302,7 +705,7 @@ config BR2_GCC_VERSION_4_5_X
version instead. version instead.
config BR2_PACKAGE_SQLITE_READLINE 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_NCURSES
select BR2_PACKAGE_READLINE select BR2_PACKAGE_READLINE
select BR2_LEGACY select BR2_LEGACY
@ -336,7 +739,7 @@ config BR2_PACKAGE_E2FSPROGS_FINDFS
This option attempted to enable findfs capabilities from This option attempted to enable findfs capabilities from
e2fsprogs but has not worked since July 2015 (due to e2fsprogs but has not worked since July 2015 (due to
packaging changes). One can use BusyBox's findfs support or 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 config BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL
bool "openpowerlink debug option has been removed" bool "openpowerlink debug option has been removed"
@ -381,12 +784,12 @@ config BR2_PACKAGE_CUPS_PDFTOPS
config BR2_KERNEL_HEADERS_3_16 config BR2_KERNEL_HEADERS_3_16
bool "kernel headers version 3.16.x are no longer supported" 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 select BR2_LEGACY
help help
Version 3.16.x of the Linux kernel headers have been deprecated Version 3.16.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. 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. automatically selected in your configuration.
config BR2_PACKAGE_PYTHON_PYXML config BR2_PACKAGE_PYTHON_PYXML
@ -597,32 +1000,32 @@ config BR2_KERNEL_HEADERS_3_0
config BR2_KERNEL_HEADERS_3_11 config BR2_KERNEL_HEADERS_3_11
bool "kernel headers version 3.11.x are no longer supported" 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 select BR2_LEGACY
help help
Version 3.11.x of the Linux kernel headers have been deprecated Version 3.11.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. 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. automatically selected in your configuration.
config BR2_KERNEL_HEADERS_3_13 config BR2_KERNEL_HEADERS_3_13
bool "kernel headers version 3.13.x are no longer supported" 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 select BR2_LEGACY
help help
Version 3.13.x of the Linux kernel headers have been deprecated Version 3.13.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. 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. automatically selected in your configuration.
config BR2_KERNEL_HEADERS_3_15 config BR2_KERNEL_HEADERS_3_15
bool "kernel headers version 3.15.x are no longer supported" 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 select BR2_LEGACY
help help
Version 3.15.x of the Linux kernel headers have been deprecated Version 3.15.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. 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. automatically selected in your configuration.
config BR2_PACKAGE_DIRECTFB_EXAMPLES_ANDI config BR2_PACKAGE_DIRECTFB_EXAMPLES_ANDI
@ -913,11 +1316,9 @@ config BR2_PACKAGE_KODI_PVR_ADDONS
config BR2_BINUTILS_VERSION_2_23_2 config BR2_BINUTILS_VERSION_2_23_2
bool "binutils 2.23 option renamed" bool "binutils 2.23 option renamed"
select BR2_LEGACY select BR2_LEGACY
select BR2_BINUTILS_VERSION_2_23_X
help help
The binutils version option has been renamed to match the Binutils 2.23.2 has been removed, using a newer version is
same patchlevel logic used by gcc. The new option is now recommended.
BR2_BINUTILS_VERSION_2_23_X.
config BR2_BINUTILS_VERSION_2_24 config BR2_BINUTILS_VERSION_2_24
bool "binutils 2.24 option renamed" bool "binutils 2.24 option renamed"
@ -1174,11 +1575,12 @@ config BR2_PACKAGE_STRONGSWAN_TOOLS
deprecated. deprecated.
config BR2_PACKAGE_XBMC_ADDON_XVDR config BR2_PACKAGE_XBMC_ADDON_XVDR
bool "xbmc options have been renamed" bool "xbmc-addon-xvdr removed"
select BR2_LEGACY select BR2_LEGACY
select BR2_PACKAGE_KODI_ADDON_XVDR
help 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 config BR2_PACKAGE_XBMC_PVR_ADDONS
bool "xbmc options have been renamed" bool "xbmc options have been renamed"
@ -1430,12 +1832,12 @@ config BR2_PACKAGE_LIBELF
config BR2_KERNEL_HEADERS_3_8 config BR2_KERNEL_HEADERS_3_8
bool "kernel headers version 3.8.x are no longer supported" 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 select BR2_LEGACY
help help
Version 3.8.x of the Linux kernel headers have been deprecated Version 3.8.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. 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. automatically selected in your configuration.
config BR2_PACKAGE_GETTEXT_TOOLS config BR2_PACKAGE_GETTEXT_TOOLS
@ -1588,22 +1990,22 @@ config BR2_PACKAGE_EVTEST_CAPTURE
config BR2_KERNEL_HEADERS_3_6 config BR2_KERNEL_HEADERS_3_6
bool "kernel headers version 3.6.x are no longer supported" 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 select BR2_LEGACY
help help
Version 3.6.x of the Linux kernel headers have been deprecated Version 3.6.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. 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. automatically selected in your configuration.
config BR2_KERNEL_HEADERS_3_7 config BR2_KERNEL_HEADERS_3_7
bool "kernel headers version 3.7.x are no longer supported" 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 select BR2_LEGACY
help help
Version 3.7.x of the Linux kernel headers have been deprecated Version 3.7.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. 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. automatically selected in your configuration.
config BR2_PACKAGE_VALA config BR2_PACKAGE_VALA
@ -1776,22 +2178,22 @@ config BR2_KERNEL_HEADERS_3_1
config BR2_KERNEL_HEADERS_3_3 config BR2_KERNEL_HEADERS_3_3
bool "kernel headers version 3.3.x are no longer supported" 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 select BR2_LEGACY
help help
Version 3.3.x of the Linux kernel headers have been deprecated Version 3.3.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. 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. automatically selected in your configuration.
config BR2_KERNEL_HEADERS_3_5 config BR2_KERNEL_HEADERS_3_5
bool "kernel headers version 3.5.x are no longer supported" 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 select BR2_LEGACY
help help
Version 3.5.x of the Linux kernel headers have been deprecated Version 3.5.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. 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. automatically selected in your configuration.
config BR2_GDB_VERSION_7_2 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) 1999-2005 by Erik Andersen <andersen@codepoet.org>
# Copyright (C) 2006-2014 by the Buildroot developers <buildroot@uclibc.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 # 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 # 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... # You shouldn't need to mess with anything beyond this point...
#-------------------------------------------------------------- #--------------------------------------------------------------
# Trick for always running with a fixed umask # Delete default rules. We don't use them. This saves a bit of time.
UMASK = 0022 .SUFFIXES:
ifneq ($(shell umask),$(UMASK))
# 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) .PHONY: _all $(MAKECMDGOALS)
$(MAKECMDGOALS): _all $(MAKECMDGOALS): _all
@: @:
_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 # This is our default rule, so must come first
all: all:
# Set and export the version string # 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 # Save running make version since it's clobbered by the make package
RUNNING_MAKE_VERSION := $(MAKE_VERSION) 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 \ noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \
defconfig %_defconfig allyesconfig allnoconfig silentoldconfig release \ defconfig %_defconfig allyesconfig allnoconfig silentoldconfig release \
randpackageconfig allyespackageconfig allnopackageconfig \ 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 # Some global targets do not trigger a build, but are used to collect
# metadata, or do various checks. When such targets are triggered, # 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 # We're building in two situations: when MAKECMDGOALS is empty
# (default target is to build), or when MAKECMDGOALS contains # (default target is to build), or when MAKECMDGOALS contains
# something else than one of the nobuild_targets. # something else than one of the nobuild_targets.
nobuild_targets := source source-check \ nobuild_targets := source %-source source-check \
legal-info external-deps _external-deps \ legal-info %-legal-info external-deps _external-deps \
clean distclean help clean distclean help show-targets graph-depends \
%-graph-depends %-show-depends %-show-version \
graph-build graph-size list-defconfigs \
savedefconfig printvars
ifeq ($(MAKECMDGOALS),) ifeq ($(MAKECMDGOALS),)
BR_BUILDING = y BR_BUILDING = y
else ifneq ($(filter-out $(nobuild_targets),$(MAKECMDGOALS)),) else ifneq ($(filter-out $(nobuild_targets),$(MAKECMDGOALS)),)
BR_BUILDING = y BR_BUILDING = y
endif endif
# Strip quotes and then whitespaces # We call make recursively to build packages. The command-line overrides that
qstrip = $(strip $(subst ",,$(1))) # 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 # Include some helper macros and variables
comma := , include support/misc/utils.mk
empty :=
space := $(empty) $(empty)
ifneq ("$(origin O)", "command line") # Set variables related to in-tree or out-of-tree build.
O := output # Here, both $(O) and $(CURDIR) are absolute canonical paths.
CONFIG_DIR := $(TOPDIR) ifeq ($(O),$(CURDIR)/output)
CONFIG_DIR := $(CURDIR)
NEED_WRAPPER = NEED_WRAPPER =
else 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) CONFIG_DIR := $(O)
# we need to pass O= everywhere we call back into the toplevel makefile
EXTRAMAKEARGS = O=$(O)
NEED_WRAPPER = y NEED_WRAPPER = y
endif endif
# bash prints the name of the directory on 'cd <dir>' if CDPATH is # 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 # set, so unset it here to not cause problems. Notice that the export
# line doesn't affect the environment of $(shell ..) calls, so # line doesn't affect the environment of $(shell ..) calls.
# explictly throw away any output from 'cd' here.
export CDPATH := 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)) $(if $(BASE_DIR),, $(error output directory "$(O)" does not exist))
# Handling of BR2_EXTERNAL. # Handling of BR2_EXTERNAL.
# #
# The value of BR2_EXTERNAL is stored in .br-external in the output directory. # 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 # The location of the external.mk makefile fragments is computed in that file.
# on the command line, therefore the file is re-created every time make is run. # 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
# When BR2_EXTERNAL is set to an empty value (e.g. explicitly in command # every time make is run.
# 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.
BR2_EXTERNAL_FILE = $(BASE_DIR)/.br-external BR2_EXTERNAL_FILE = $(BASE_DIR)/.br-external.mk
-include $(BR2_EXTERNAL_FILE) -include $(BR2_EXTERNAL_FILE)
ifeq ($(BR2_EXTERNAL),) $(shell support/scripts/br2-external \
override BR2_EXTERNAL = support/dummy-external -m -o '$(BR2_EXTERNAL_FILE)' $(BR2_EXTERNAL))
$(shell rm -f $(BR2_EXTERNAL_FILE)) BR2_EXTERNAL_ERROR =
else include $(BR2_EXTERNAL_FILE)
_BR2_EXTERNAL = $(shell cd $(BR2_EXTERNAL) >/dev/null 2>&1 && pwd) ifneq ($(BR2_EXTERNAL_ERROR),)
ifeq ($(_BR2_EXTERNAL),) $(error $(BR2_EXTERNAL_ERROR))
$(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))
endif endif
# To make sure that the environment variable overrides the .config option, # 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 LICENSE_FILES_DIR_HOST = $(LEGAL_INFO_DIR)/host-licenses
LEGAL_MANIFEST_CSV_TARGET = $(LEGAL_INFO_DIR)/manifest.csv LEGAL_MANIFEST_CSV_TARGET = $(LEGAL_INFO_DIR)/manifest.csv
LEGAL_MANIFEST_CSV_HOST = $(LEGAL_INFO_DIR)/host-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_WARNINGS = $(LEGAL_INFO_DIR)/.warnings
LEGAL_REPORT = $(LEGAL_INFO_DIR)/README 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 BR2_CONFIG = $(CONFIG_DIR)/.config
# Pull in the user's configuration file # Pull in the user's configuration file
@ -208,6 +246,17 @@ ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
-include $(BR2_CONFIG) -include $(BR2_CONFIG)
endif 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 # To put more focus on warnings, be less verbose as default
# Use 'make V=1' to see the full commands # Use 'make V=1' to see the full commands
ifeq ("$(origin V)", "command line") ifeq ("$(origin V)", "command line")
@ -227,11 +276,6 @@ else
Q = @ Q = @
endif 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 # kconfig uses CONFIG_SHELL
CONFIG_SHELL := $(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) HOSTNM := $(shell which $(HOSTNM) || type -p $(HOSTNM) || echo nm)
HOSTOBJCOPY := $(shell which $(HOSTOBJCOPY) || type -p $(HOSTOBJCOPY) || echo objcopy) HOSTOBJCOPY := $(shell which $(HOSTOBJCOPY) || type -p $(HOSTOBJCOPY) || echo objcopy)
HOSTRANLIB := $(shell which $(HOSTRANLIB) || type -p $(HOSTRANLIB) || echo ranlib) 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 HOSTAR HOSTAS HOSTCC HOSTCXX HOSTLD
export HOSTCC_NOCCACHE HOSTCXX_NOCCACHE export HOSTCC_NOCCACHE HOSTCXX_NOCCACHE
@ -357,6 +402,7 @@ unexport QMAKESPEC
unexport TERMINFO unexport TERMINFO
unexport MACHINE unexport MACHINE
unexport O unexport O
unexport GCC_COLORS
GNU_HOST_NAME := $(shell support/gnuconfig/config.guess) 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/arm.*/arm/ -e s/sa110/arm/ \
-e s/aarch64.*/arm64/ \ -e s/aarch64.*/arm64/ \
-e s/bfin/blackfin/ \ -e s/bfin/blackfin/ \
-e s/or1k/openrisc/ \
-e s/parisc64/parisc/ \ -e s/parisc64/parisc/ \
-e s/powerpc64.*/powerpc/ \ -e s/powerpc64.*/powerpc/ \
-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \ -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)) ZCAT := $(call qstrip,$(BR2_ZCAT))
BZCAT := $(call qstrip,$(BR2_BZCAT)) BZCAT := $(call qstrip,$(BR2_BZCAT))
XZCAT := $(call qstrip,$(BR2_XZCAT)) XZCAT := $(call qstrip,$(BR2_XZCAT))
LZCAT := $(call qstrip,$(BR2_LZCAT))
TAR_OPTIONS = $(call qstrip,$(BR2_TAR_OPTIONS)) -xf TAR_OPTIONS = $(call qstrip,$(BR2_TAR_OPTIONS)) -xf
# packages compiled for the host go here # packages compiled for the host go here
@ -410,6 +458,7 @@ endif
# Scripts in support/ or post-build scripts may need to reference # Scripts in support/ or post-build scripts may need to reference
# these locations, so export them so it is easier to use # these locations, so export them so it is easier to use
export BR2_CONFIG export BR2_CONFIG
export BR2_REPRODUCIBLE
export TARGET_DIR export TARGET_DIR
export STAGING_DIR export STAGING_DIR
export HOST_DIR export HOST_DIR
@ -427,9 +476,7 @@ all: world
# Include legacy before the other things, because package .mk files # Include legacy before the other things, because package .mk files
# may rely on it. # may rely on it.
ifneq ($(BR2_DEPRECATED),y)
include Makefile.legacy include Makefile.legacy
endif
include package/Makefile.in include package/Makefile.in
include support/dependencies/dependencies.mk include support/dependencies/dependencies.mk
@ -450,7 +497,15 @@ include boot/common.mk
include linux/linux.mk include linux/linux.mk
include fs/common.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 # 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 # 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 \ legal-info legal-info-prepare legal-info-clean printvars help \
list-defconfigs target-finalize target-post-image source-check 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 # Populating the staging with the base directories is handled by the skeleton package
$(STAGING_DIR): $(STAGING_DIR):
@mkdir -p $(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/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \
$(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake $(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)/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 \( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f
ifneq ($(BR2_PACKAGE_GDB),y) ifneq ($(BR2_PACKAGE_GDB),y)
rm -rf $(TARGET_DIR)/usr/share/gdb 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/info $(TARGET_DIR)/usr/share/info
rm -rf $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/doc rm -rf $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/doc
rm -rf $(TARGET_DIR)/usr/share/gtk-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 $(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 # 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 # besides the one in which crash occurred; or SIGTRAP kills my program when
# I set a breakpoint" # I set a breakpoint"
ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) 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) xargs -r $(STRIPCMD) $(STRIP_STRIP_DEBUG)
endif endif
# Valgrind needs ld.so with enough information, so only strip # Valgrind needs ld.so with enough information, so only strip
# debugging symbols. # 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) xargs -r $(STRIPCMD) $(STRIP_STRIP_DEBUG)
test -f $(TARGET_DIR)/etc/ld.so.conf && \ test -f $(TARGET_DIR)/etc/ld.so.conf && \
{ echo "ERROR: we shouldn't have a /etc/ld.so.conf file"; exit 1; } || true { 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 \ cat support/legal-info/README.warnings-header \
$(LEGAL_WARNINGS) >>$(LEGAL_REPORT); \ $(LEGAL_WARNINGS) >>$(LEGAL_REPORT); \
cat $(LEGAL_WARNINGS); fi cat $(LEGAL_WARNINGS); fi
@echo "Legal info produced in $(LEGAL_INFO_DIR)"
@rm -f $(LEGAL_WARNINGS) @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: show-targets:
@echo $(PACKAGES) $(TARGETS_ROOTFS) @echo $(PACKAGES) $(TARGETS_ROOTFS)
@ -726,7 +773,7 @@ graph-depends: graph-depends-requirements
@$(INSTALL) -d $(GRAPHS_DIR) @$(INSTALL) -d $(GRAPHS_DIR)
@cd "$(CONFIG_DIR)"; \ @cd "$(CONFIG_DIR)"; \
$(TOPDIR)/support/scripts/graph-depends $(BR2_GRAPH_DEPS_OPTS) \ $(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) \ dot $(BR2_GRAPH_DOT_OPTS) -T$(BR_GRAPH_OUT) \
-o $(GRAPHS_DIR)/$(@).$(BR_GRAPH_OUT) \ -o $(GRAPHS_DIR)/$(@).$(BR_GRAPH_OUT) \
$(GRAPHS_DIR)/$(@).dot $(GRAPHS_DIR)/$(@).dot
@ -754,6 +801,9 @@ endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
HOSTCFLAGS = $(CFLAGS_FOR_BUILD) HOSTCFLAGS = $(CFLAGS_FOR_BUILD)
export HOSTCFLAGS export HOSTCFLAGS
.PHONY: prepare-kconfig
prepare-kconfig: outputmakefile $(BUILD_DIR)/.br2-external.in
$(BUILD_DIR)/buildroot-config/%onf: $(BUILD_DIR)/buildroot-config/%onf:
mkdir -p $(@D)/lxdialog mkdir -p $(@D)/lxdialog
PKG_CONFIG_PATH="$(HOST_PKG_CONFIG_PATH)" $(MAKE) CC="$(HOSTCC_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" \ 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_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
KCONFIG_TRISTATE=$(BUILD_DIR)/buildroot-config/tristate.config \ KCONFIG_TRISTATE=$(BUILD_DIR)/buildroot-config/tristate.config \
BR2_CONFIG=$(BR2_CONFIG) \ BR2_CONFIG=$(BR2_CONFIG) \
BR2_EXTERNAL=$(BR2_EXTERNAL) \
HOST_GCC_VERSION="$(HOSTCC_VERSION)" \ HOST_GCC_VERSION="$(HOSTCC_VERSION)" \
BUILD_DIR=$(BUILD_DIR) \
SKIP_LEGACY= SKIP_LEGACY=
xconfig: $(BUILD_DIR)/buildroot-config/qconf outputmakefile xconfig: $(BUILD_DIR)/buildroot-config/qconf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN) @$(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) @$(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) @$(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) @$(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) @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
# For the config targets that automatically select options, we pass # 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 # no values are set for the legacy options so a subsequent oldconfig
# will query them. Therefore, run an additional olddefconfig. # 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) @$(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) SKIP_LEGACY=y $< --randconfig $(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null @$(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) SKIP_LEGACY=y $< --allyesconfig $(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null @$(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) SKIP_LEGACY=y $< --allnoconfig $(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null @$(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 @grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \ @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \ KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
@ -816,7 +866,7 @@ randpackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@rm -f $(CONFIG_DIR)/.config.nopkg @rm -f $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null @$(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 @grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \ @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \ KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
@ -824,7 +874,7 @@ allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@rm -f $(CONFIG_DIR)/.config.nopkg @rm -f $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null @$(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 @grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \ @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \ KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
@ -832,25 +882,24 @@ allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@rm -f $(CONFIG_DIR)/.config.nopkg @rm -f $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null @$(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) $(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) $(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) @$(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 # Override the BR2_DEFCONFIG from COMMON_CONFIG_ENV with the new defconfig
%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(TOPDIR)/configs/%_defconfig outputmakefile %_defconfig: $(BUILD_DIR)/buildroot-config/conf $(1)/configs/%_defconfig prepare-kconfig
@$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(TOPDIR)/configs/$@ \ @$$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(1)/configs/$$@ \
$< --defconfig=$(TOPDIR)/configs/$@ $(CONFIG_CONFIG_IN) $$< --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 savedefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(BR2_EXTERNAL)/configs/$@ \
$< --defconfig=$(BR2_EXTERNAL)/configs/$@ $(CONFIG_CONFIG_IN)
savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@$(COMMON_CONFIG_ENV) $< \ @$(COMMON_CONFIG_ENV) $< \
--savedefconfig=$(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) \ --savedefconfig=$(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) \
$(CONFIG_CONFIG_IN) $(CONFIG_CONFIG_IN)
@ -872,6 +921,13 @@ ifeq ($(NEED_WRAPPER),y)
$(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O) $(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O)
endif 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 # printvars prints all the variables currently defined in our
# Makefiles. Alternatively, if a non-empty VARS variable is passed, # Makefiles. Alternatively, if a non-empty VARS variable is passed,
# only the variables matching the make pattern passed in VARS are # only the variables matching the make pattern passed in VARS are
@ -889,13 +945,10 @@ clean:
$(LEGAL_INFO_DIR) $(GRAPHS_DIR) $(LEGAL_INFO_DIR) $(GRAPHS_DIR)
distclean: clean distclean: clean
ifeq ($(DL_DIR),$(TOPDIR)/dl) ifeq ($(O),$(CURDIR)/output)
rm -rf $(DL_DIR)
endif
ifeq ($(O),output)
rm -rf $(O) rm -rf $(O)
endif 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) $(CONFIG_DIR)/.auto.deps $(BR2_EXTERNAL_FILE)
help: help:
@ -933,26 +986,17 @@ help:
@echo ' <pkg>-depends - Build <pkg>'\''s dependencies' @echo ' <pkg>-depends - Build <pkg>'\''s dependencies'
@echo ' <pkg>-configure - Build <pkg> up to the configure step' @echo ' <pkg>-configure - Build <pkg> up to the configure step'
@echo ' <pkg>-build - Build <pkg> up to the build 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-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>-dirclean - Remove <pkg> build directory'
@echo ' <pkg>-reconfigure - Restart the build from the configure step' @echo ' <pkg>-reconfigure - Restart the build from the configure step'
@echo ' <pkg>-rebuild - Restart the build from the build step' @echo ' <pkg>-rebuild - Restart the build from the build step'
ifeq ($(BR2_PACKAGE_BUSYBOX),y) $(foreach p,$(HELP_PACKAGES), \
@echo ' busybox-menuconfig - Run BusyBox menuconfig' @echo $(sep) \
endif @echo '$($(p)_NAME):' $(sep) \
ifeq ($(BR2_LINUX_KERNEL),y) $($(p)_HELP_CMDS)$(sep))
@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
@echo @echo
@echo 'Documentation:' @echo 'Documentation:'
@echo ' manual - build manual in all formats' @echo ' manual - build manual in all formats'
@ -979,17 +1023,34 @@ endif
@echo 'it on-line at http://buildroot.org/docs.html' @echo 'it on-line at http://buildroot.org/docs.html'
@echo @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: list-defconfigs:
@echo 'Built-in configs:' $(call list-defconfigs,$(TOPDIR))
@$(foreach b, $(sort $(notdir $(wildcard $(TOPDIR)/configs/*_defconfig))), \ $(foreach name,$(BR2_EXTERNAL_NAMES),\
printf " %-35s - Build for %s\\n" $(b) $(b:_defconfig=);) $(call list-defconfigs,$(BR2_EXTERNAL_$(name)_PATH),\
ifneq ($(wildcard $(BR2_EXTERNAL)/configs/*_defconfig),) $(BR2_EXTERNAL_$(name)_DESC))$(sep))
@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
release: OUT = buildroot-$(BR2_VERSION) release: OUT = buildroot-$(BR2_VERSION)
@ -1008,8 +1069,8 @@ print-version:
@echo $(BR2_VERSION_FULL) @echo $(BR2_VERSION_FULL)
#include docs/manual/manual.mk #include docs/manual/manual.mk
#-include $(BR2_EXTERNAL)/docs/*/*.mk #-include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(dir)/docs/*/*.mk)
.PHONY: $(noconfig_targets) .PHONY: $(noconfig_targets)
endif #umask endif #umask / $(CURDIR) / $(O)

View File

@ -4,9 +4,6 @@
# This file contains placeholders to detect backward-compatibility problems. # This file contains placeholders to detect backward-compatibility problems.
# When a buildroot "API" feature is being deprecated, a rule should be added # When a buildroot "API" feature is being deprecated, a rule should be added
# here that issues an error when the old feature is used. # 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) ifeq ($(BR2_LEGACY),y)
$(error "You have legacy configuration in your .config! Please check your configuration.") $(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://www.altera.com/
http://en.wikipedia.org/wiki/Nios_II 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 config BR2_powerpc
bool "PowerPC" bool "PowerPC"
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
@ -197,16 +204,6 @@ config BR2_sh
http://www.hitachi.com/ http://www.hitachi.com/
http://en.wikipedia.org/wiki/SuperH 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 config BR2_sparc
bool "SPARC" bool "SPARC"
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
@ -336,12 +333,19 @@ config BR2_BINFMT_FLAT_ONE
config BR2_BINFMT_FLAT_SEP_DATA config BR2_BINFMT_FLAT_SEP_DATA
bool "Separate data and code region" 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 help
Allow for the data and text segments to be separated and placed in Allow for the data and text segments to be separated and placed in
different regions of memory. different regions of memory.
config BR2_BINFMT_FLAT_SHARED config BR2_BINFMT_FLAT_SHARED
bool "Shared binary" bool "Shared binary"
depends on BR2_m68k || BR2_bfin
# Even though this really generates shared binaries, there is no libdl # Even though this really generates shared binaries, there is no libdl
# and dlopen() cannot be used. So packages that require shared # and dlopen() cannot be used. So packages that require shared
# libraries cannot be built. Therefore, we don't select # libraries cannot be built. Therefore, we don't select
@ -357,14 +361,10 @@ if BR2_arcle || BR2_arceb
source "arch/Config.in.arc" source "arch/Config.in.arc"
endif endif
if BR2_arm || BR2_armeb if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_aarch64_be
source "arch/Config.in.arm" source "arch/Config.in.arm"
endif endif
if BR2_aarch64 || BR2_aarch64_be
source "arch/Config.in.aarch64"
endif
if BR2_bfin if BR2_bfin
source "arch/Config.in.bfin" source "arch/Config.in.bfin"
endif endif
@ -385,11 +385,15 @@ if BR2_nios2
source "arch/Config.in.nios2" source "arch/Config.in.nios2"
endif endif
if BR2_or1k
source "arch/Config.in.or1k"
endif
if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
source "arch/Config.in.powerpc" source "arch/Config.in.powerpc"
endif endif
if BR2_sh || BR2_sh64 if BR2_sh
source "arch/Config.in.sh" source "arch/Config.in.sh"
endif 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 bool
select BR2_ARM_CPU_HAS_VFPV3 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 config BR2_ARM_CPU_HAS_ARM
bool bool
@ -55,9 +59,11 @@ config BR2_ARM_CPU_ARMV7A
config BR2_ARM_CPU_ARMV7M config BR2_ARM_CPU_ARMV7M
bool bool
config BR2_ARM_CPU_ARMV8
bool
choice choice
prompt "Target Architecture Variant" prompt "Target Architecture Variant"
depends on BR2_arm || BR2_armeb
default BR2_arm926t default BR2_arm926t
help help
Specific CPU variant to use Specific CPU variant to use
@ -68,12 +74,14 @@ config BR2_arm920t
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV4 select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm922t config BR2_arm922t
bool "arm922t" bool "arm922t"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV4 select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm926t config BR2_arm926t
bool "arm926t" bool "arm926t"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -81,12 +89,14 @@ config BR2_arm926t
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV5 select BR2_ARM_CPU_ARMV5
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm1136j_s config BR2_arm1136j_s
bool "arm1136j-s" bool "arm1136j-s"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6 select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm1136jf_s config BR2_arm1136jf_s
bool "arm1136jf-s" bool "arm1136jf-s"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -94,12 +104,14 @@ config BR2_arm1136jf_s
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6 select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm1176jz_s config BR2_arm1176jz_s
bool "arm1176jz-s" bool "arm1176jz-s"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6 select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm1176jzf_s config BR2_arm1176jzf_s
bool "arm1176jzf-s" bool "arm1176jzf-s"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -107,6 +119,7 @@ config BR2_arm1176jzf_s
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6 select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm11mpcore config BR2_arm11mpcore
bool "mpcore" bool "mpcore"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -114,6 +127,7 @@ config BR2_arm11mpcore
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6 select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a5 config BR2_cortex_a5
bool "cortex-A5" bool "cortex-A5"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -122,6 +136,7 @@ config BR2_cortex_a5
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a7 config BR2_cortex_a7
bool "cortex-A7" bool "cortex-A7"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -130,6 +145,7 @@ config BR2_cortex_a7
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a8 config BR2_cortex_a8
bool "cortex-A8" bool "cortex-A8"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -138,6 +154,7 @@ config BR2_cortex_a8
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a9 config BR2_cortex_a9
bool "cortex-A9" bool "cortex-A9"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -146,6 +163,7 @@ config BR2_cortex_a9
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a12 config BR2_cortex_a12
bool "cortex-A12" bool "cortex-A12"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -154,6 +172,7 @@ config BR2_cortex_a12
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a15 config BR2_cortex_a15
bool "cortex-A15" bool "cortex-A15"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -162,6 +181,7 @@ config BR2_cortex_a15
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a17 config BR2_cortex_a17
bool "cortex-A17" bool "cortex-A17"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -170,41 +190,73 @@ config BR2_cortex_a17
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL 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 config BR2_cortex_m3
bool "cortex-M3" bool "cortex-M3"
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7M select BR2_ARM_CPU_ARMV7M
depends on !BR2_ARCH_IS_64
config BR2_cortex_m4 config BR2_cortex_m4
bool "cortex-M4" bool "cortex-M4"
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7M select BR2_ARM_CPU_ARMV7M
depends on !BR2_ARCH_IS_64
config BR2_fa526 config BR2_fa526
bool "fa526/626" bool "fa526/626"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_ARMV4 select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_pj4 config BR2_pj4
bool "pj4" bool "pj4"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_VFPV3 select BR2_ARM_CPU_HAS_VFPV3
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_strongarm config BR2_strongarm
bool "strongarm sa110/sa1100" bool "strongarm sa110/sa1100"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_ARMV4 select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_xscale config BR2_xscale
bool "xscale" bool "xscale"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV5 select BR2_ARM_CPU_ARMV5
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_iwmmxt config BR2_iwmmxt
bool "iwmmxt" bool "iwmmxt"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_ARMV5 select BR2_ARM_CPU_ARMV5
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
endchoice endchoice
config BR2_ARM_ENABLE_NEON config BR2_ARM_ENABLE_NEON
@ -284,7 +336,7 @@ endchoice
choice choice
prompt "Floating point strategy" 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_VFPV4D16 if BR2_ARM_CPU_HAS_VFPV4
default BR2_ARM_FPU_VFPV3D16 if BR2_ARM_CPU_HAS_VFPV3 default BR2_ARM_FPU_VFPV3D16 if BR2_ARM_CPU_HAS_VFPV3
default BR2_ARM_FPU_VFPV2 if BR2_ARM_CPU_HAS_VFPV2 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 example on Cortex-A5 and Cortex-A7, support for VFPv4 and
NEON is optional. 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 endchoice
choice choice
prompt "ARM instruction set" prompt "ARM instruction set"
depends on BR2_arm || BR2_armeb
config BR2_ARM_INSTRUCTIONS_ARM config BR2_ARM_INSTRUCTIONS_ARM
bool "ARM" bool "ARM"
@ -436,10 +503,12 @@ endchoice
config BR2_ARCH config BR2_ARCH
default "arm" if BR2_arm default "arm" if BR2_arm
default "armeb" if BR2_armeb default "armeb" if BR2_armeb
default "aarch64" if BR2_aarch64
default "aarch64_be" if BR2_aarch64_be
config BR2_ENDIAN config BR2_ENDIAN
default "LITTLE" if BR2_arm default "LITTLE" if (BR2_arm || BR2_aarch64)
default "BIG" if BR2_armeb default "BIG" if (BR2_armeb || BR2_aarch64_be)
config BR2_GCC_TARGET_CPU config BR2_GCC_TARGET_CPU
default "arm920t" if BR2_arm920t default "arm920t" if BR2_arm920t
@ -465,11 +534,22 @@ config BR2_GCC_TARGET_CPU
default "strongarm" if BR2_strongarm default "strongarm" if BR2_strongarm
default "xscale" if BR2_xscale default "xscale" if BR2_xscale
default "iwmmxt" if BR2_iwmmxt 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 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 config BR2_GCC_TARGET_FPU
depends on BR2_arm || BR2_armeb
default "vfp" if BR2_ARM_FPU_VFPV2 default "vfp" if BR2_ARM_FPU_VFPV2
default "vfpv3" if BR2_ARM_FPU_VFPV3 default "vfpv3" if BR2_ARM_FPU_VFPV3
default "vfpv3-d16" if BR2_ARM_FPU_VFPV3D16 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 "vfpv4-d16" if BR2_ARM_FPU_VFPV4D16
default "neon" if BR2_ARM_FPU_NEON default "neon" if BR2_ARM_FPU_NEON
default "neon-vfpv4" if BR2_ARM_FPU_NEON_VFPV4 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 config BR2_GCC_TARGET_FLOAT_ABI
default "soft" if BR2_ARM_SOFT_FLOAT default "soft" if BR2_ARM_SOFT_FLOAT

View File

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

View File

@ -35,7 +35,3 @@ endchoice
config BR2_GCC_TARGET_CPU config BR2_GCC_TARGET_CPU
default "68040" if BR2_m68k_68040 default "68040" if BR2_m68k_68040
default "5208" if BR2_m68k_cf5208 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 choice
prompt "Target Architecture Variant" prompt "Target Architecture Variant"
depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
@ -6,27 +24,78 @@ choice
help help
Specific CPU variant to use Specific CPU variant to use
64bit cabable: 64, 64r2, 64r6 64bit cabable: 64, 64r2, 64r5, 64r6
non-64bit capable: 32, 32r2, 32r6 non-64bit capable: 32, 32r2, 32r5, 32r6
config BR2_mips_32 config BR2_mips_32
bool "mips 32" bool "Generic MIPS32"
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32
config BR2_mips_32r2 config BR2_mips_32r2
bool "mips 32r2" bool "Generic MIPS32R2"
depends on !BR2_ARCH_IS_64 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 config BR2_mips_32r6
bool "mips 32r6" bool "Generic MIPS32R6"
depends on !BR2_ARCH_IS_64 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 config BR2_mips_64
bool "mips 64" bool "Generic MIPS64"
depends on BR2_ARCH_IS_64 depends on BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS64
config BR2_mips_64r2 config BR2_mips_64r2
bool "mips 64r2" bool "Generic MIPS64R2"
depends on BR2_ARCH_IS_64 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 config BR2_mips_64r6
bool "mips 64r6" bool "Generic MIPS64R6"
depends on BR2_ARCH_IS_64 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 endchoice
@ -70,10 +139,19 @@ config BR2_ENDIAN
config BR2_GCC_TARGET_ARCH config BR2_GCC_TARGET_ARCH
default "mips32" if BR2_mips_32 default "mips32" if BR2_mips_32
default "mips32r2" if BR2_mips_32r2 default "mips32r2" if BR2_mips_32r2
default "mips32r5" if BR2_mips_32r5
default "mips32r6" if BR2_mips_32r6 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 "mips64" if BR2_mips_64
default "mips64r2" if BR2_mips_64r2 default "mips64r2" if BR2_mips_64r2
default "mips64r5" if BR2_mips_64r5
default "mips64r6" if BR2_mips_64r6 default "mips64r6" if BR2_mips_64r6
default "i6400" if BR2_mips_i6400
default "p6600" if BR2_mips_p6600
config BR2_MIPS_OABI32 config BR2_MIPS_OABI32
bool 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 "sh4eb" if BR2_sh4eb
default "sh4a" if BR2_sh4a default "sh4a" if BR2_sh4a
default "sh4aeb" if BR2_sh4aeb default "sh4aeb" if BR2_sh4aeb
default "sh64" if BR2_sh64
config BR2_ENDIAN 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 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} 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 fdt_high ffffffff
setenv video-mode sunxi:1024x768-24@60,monitor=hdmi,hpd=1,edid=1 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} 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 fdt_high ffffffff
setenv video-mode sunxi:1024x768-24@60,monitor=hdmi,hpd=1,edid=1 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 #!/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} 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 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.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 cp $BOARD_DIR/uInitrd $BOOT_DIR
sed -i 's/enable_update true/enable_update false/' $TARGET/etc/motioneye.conf

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/sbin/winbindd
rm -f $TARGET/usr/share/perl5 rm -f $TARGET/usr/share/perl5
# useless mongodb binaries
rm -f $TARGET/usr/bin/mongos
rm -f $TARGET/usr/bin/mongoperf
# unused python folders # unused python folders
rm -rf $TARGET/usr/lib/python2.7/site-packages/samba/ rm -rf $TARGET/usr/lib/python2.7/site-packages/samba/
rm -rf $TARGET/usr/lib/python2.7/ensurepip/ 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/S01logging
rm -f $TARGET/etc/init.d/S10udev rm -f $TARGET/etc/init.d/S10udev
rm -f $TARGET/etc/init.d/S15watchdog 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-relay
rm -f $TARGET/etc/init.d/S80dhcp-server rm -f $TARGET/etc/init.d/S80dhcp-server
rm -f $TARGET/etc/init.d/S91smb rm -f $TARGET/etc/init.d/S91smb
rm -f $TARGET/etc/init.d/S99motion
# other unwanted dirs # other unwanted dirs
rm -rf $TARGET/data/* rm -rf $TARGET/data/*

View File

@ -34,6 +34,7 @@ ROOT_IMG=$IMG_DIR/root.img
ROOT_SIZE="180" # MB ROOT_SIZE="180" # MB
DISK_SIZE="220" # MB DISK_SIZE="220" # MB
OS_NAME=$(source $IMG_DIR/../../../board/common/overlay/etc/version && echo $os_short_name)
# boot filesystem # boot filesystem
msg "creating boot loop device" msg "creating boot loop device"
@ -163,8 +164,8 @@ msg "destroying root loop device"
losetup -d $loop_dev losetup -d $loop_dev
sync sync
mv $DISK_IMG $(dirname $DISK_IMG)/motioneyeos-$BOARD.img mv $DISK_IMG $(dirname $DISK_IMG)/$OS_NAME-$BOARD.img
DISK_IMG=$(dirname $DISK_IMG)/motioneyeos-$BOARD.img DISK_IMG=$(dirname $DISK_IMG)/$OS_NAME-$BOARD.img
msg "$(realpath "$DISK_IMG") is ready" 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 /dev/shm tmpfs mode=0777 0 0
tmpfs /tmp tmpfs mode=1777 0 0 tmpfs /tmp tmpfs mode=1777 0 0
sysfs /sys sysfs defaults 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 #!/bin/bash
disk_dev="/dev/mmcblk0" test -n "$os_version" || source /etc/init.d/base
data_dev="${disk_dev}p3"
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 -b $data_dev && exit 0
test -n "$os_version" || source /etc/init.d/base
case "$1" in case "$1" in
start) start)
msg_begin "Creating data partition" msg_begin "Creating data partition"
@ -24,7 +35,7 @@ case "$1" in
test $? == 0 && msg_done || msg_fail test $? == 0 && msg_done || msg_fail
msg_begin "Mounting data partition" msg_begin "Mounting data partition"
mount /data mount -T /etc/fstab.disk /data
test $? == 0 && msg_done || msg_fail test $? == 0 && msg_done || msg_fail
msg_begin "Creating required data files" msg_begin "Creating required data files"
@ -39,7 +50,8 @@ case "$1" in
msg_done msg_done
# mount other partitions depending on data # mount other partitions depending on data
mount -a mount -T /etc/fstab.disk -a
mount -T /etc/fstab.extra -a
;; ;;
stop) stop)

View File

@ -4,7 +4,8 @@ test -n "$os_version" || source /etc/init.d/base
mount_fs() { mount_fs() {
msg_begin "Mounting filesystems" 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 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" sys_version_file="/etc/version"
version_file="/data/etc/version" version_file="/data/etc/version"
post_upgrade_dir="/usr/share/post-upgrade" 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) hash=$(md5sum $version_file 2>/dev/null | cut -d ' ' -f 1)
sys_hash=$(md5sum $sys_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 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 case "$1" in
start) start)
run_post_upgrade run_post_upgrade
cp $sys_version_file $version_file cp $sys_version_file $version_file
update_os_conf
;; ;;
stop) stop)

View File

@ -38,22 +38,10 @@ date_interval="900"
source $conf 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() { set_current_date_http() {
kill_after_timeout & 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
timestamp=$(python -c "import calendar, httplib, email.utils; conn = httplib.HTTPConnection('$date_host'); conn.request('HEAD', '/'); \ return $?
print calendar.timegm(email.utils.parsedate(conn.getresponse().getheader('date')))")
if [ -n "$timestamp" ]; then
date +%s -s @$timestamp > /dev/null
else
return 1
fi
} }
set_current_date_ntp() { 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) port=$(echo "$opts" | grep -oE 'port [[:digit:]]+' | cut -d ' ' -f 2)
responsive() { 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() { watch() {

View File

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

View File

@ -6,4 +6,7 @@ os_wlan="wlan0"
os_ppp="ppp0" os_ppp="ppp0"
os_networkless="false" os_networkless="false"
os_country="GB" 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_name="motionEyeOS"
os_short_name="motioneyeos" os_short_name="motioneyeos"
os_prefix="meye" os_prefix="meye"
os_version="20170212" os_version="20170312"

View File

@ -12,4 +12,3 @@ netwatch_interval=20
#meyewatch_disable="true" #meyewatch_disable="true"
meyewatch_timeout=120 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 # Booting
fatload mmc 0:1 0x21000000 uImage fatload mmc 0:1 0x21000000 uImage
fatload mmc 0:1 0x22000000 uInitrd
fatload mmc 0:1 0x21800000 meson8b_odroidc.dtb fatload mmc 0:1 0x21800000 meson8b_odroidc.dtb
fdt addr 21800000 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_wlan="wlan0"
os_ppp="ppp0" os_ppp="ppp0"
os_networkless="false" 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/bl1.bin.hardkernel $IMG_DIR
cp $BOARD_DIR/u-boot.bin $IMG_DIR cp $BOARD_DIR/u-boot.bin $IMG_DIR
cp $BOARD_DIR/boot.ini $BOOT_DIR cp $BOARD_DIR/boot.ini $BOOT_DIR
cp $BOARD_DIR/uInitrd $BOOT_DIR
# disable software updating
sed -i 's/enable_update true/enable_update false/' $TARGET/etc/motioneye.conf
# fix some lib dirs # fix some lib dirs
if ! [ -L $TARGET/lib/arm-linux-gnueabihf ]; then 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 # Booting
fatload mmc 0:1 0x11000000 Image fatload mmc 0:1 0x11000000 Image
fatload mmc 0:1 0x13000000 uInitrd
fatload mmc 0:1 0x1000000 meson64_odroidc2.dtb fatload mmc 0:1 0x1000000 meson64_odroidc2.dtb
fdt addr 0x1000000 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_wlan="wlan0"
os_ppp="ppp0" os_ppp="ppp0"
os_networkless="false" 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/bl1.bin.hardkernel $IMG_DIR
cp $BOARD_DIR/u-boot.bin $IMG_DIR cp $BOARD_DIR/u-boot.bin $IMG_DIR
cp $BOARD_DIR/boot.ini $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

BIN
board/odroidc2/uInitrd Normal file

Binary file not shown.

View File

@ -1,7 +1,7 @@
ODROIDXU-UBOOT-CONFIG ODROIDXU-UBOOT-CONFIG
setenv fdt_high "0xffffffff" setenv fdt_high "0xffffffff"
setenv bootcmd "fatload mmc 0:1 0x40008000 zImage; fatload mmc 0:1 0x44000000 exynos5422-odroidxu3.dtb; bootz 0x40008000 - 0x44000000" 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/mmcblk0p2 rootwait ro no_console_suspend panic=10 quiet loglevel=1 ipv6.disable=1" setenv bootargs "console=tty1 root=/dev/mmcblk1p2 rootwait ro no_console_suspend panic=10 quiet loglevel=1 ipv6.disable=1"
boot 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 # boot directory
mkdir -p $BOOT_DIR 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/bl1.bin.hardkernel $IMG_DIR
cp $BOARD_DIR/bl2.bin.hardkernel $IMG_DIR cp $BOARD_DIR/bl2.bin.hardkernel $IMG_DIR
cp $BOARD_DIR/tzsw.bin.hardkernel $IMG_DIR cp $BOARD_DIR/tzsw.bin.hardkernel $IMG_DIR
cp $BOARD_DIR/u-boot.bin $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 cp $BOARD_DIR/boot.ini $BOOT_DIR
cp $BOARD_DIR/uInitrd $BOOT_DIR
# disable software updating
sed -i 's/enable_update true/enable_update false/' $TARGET/etc/motioneye.conf

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