update buildroot to 2017.02.11
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
From d4fec31889ad660a58dab633c511221feb66e817 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Sat, 5 Oct 2013 15:55:06 +0200
|
||||
Subject: [PATCH] networking/libiproute: use <linux/if_packet.h> instead of
|
||||
<net/if_packet.h>
|
||||
|
||||
The musl C library doesn't provide the <net/if_packet.h> since the
|
||||
corresponding kernel headers <linux/if_packet.h> already provides the
|
||||
necessary definitions. Replacing <net/if_packet.h> by
|
||||
<linux/if_packet.h> also removes the need to include
|
||||
<netpacket/packet.h>
|
||||
|
||||
This commit fixes the build of iplink with the musl C library.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
[Gustavo: update for busybox 1.22.0]
|
||||
|
||||
diff -Nura busybox-1.22.0.orig/networking/libiproute/iplink.c busybox-1.22.0/networking/libiproute/iplink.c
|
||||
--- busybox-1.22.0.orig/networking/libiproute/iplink.c 2014-01-01 09:42:40.301137882 -0300
|
||||
+++ busybox-1.22.0/networking/libiproute/iplink.c 2014-01-01 09:43:01.282827700 -0300
|
||||
@@ -7,7 +7,7 @@
|
||||
*/
|
||||
#include <net/if.h>
|
||||
/*#include <net/if_packet.h> - not needed? */
|
||||
-#include <netpacket/packet.h>
|
||||
+#include <linux/if_packet.h>
|
||||
#include <netinet/if_ether.h>
|
||||
|
||||
#include <linux/if_vlan.h>
|
||||
@@ -0,0 +1,28 @@
|
||||
From 67eb23d2be8aba3c474dac81a15b0fa11e5847b7 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Mon, 25 Nov 2013 22:51:53 +0100
|
||||
Subject: [PATCH] Makefile.flags: strip non -l arguments returned by pkg-config
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
Makefile.flags | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile.flags b/Makefile.flags
|
||||
index 307afa7..885e323 100644
|
||||
--- a/Makefile.flags
|
||||
+++ b/Makefile.flags
|
||||
@@ -141,7 +141,9 @@ ifeq ($(CONFIG_SELINUX),y)
|
||||
SELINUX_PC_MODULES = libselinux libsepol
|
||||
$(eval $(call pkg_check_modules,SELINUX,$(SELINUX_PC_MODULES)))
|
||||
CPPFLAGS += $(SELINUX_CFLAGS)
|
||||
-LDLIBS += $(if $(SELINUX_LIBS),$(SELINUX_LIBS:-l%=%),$(SELINUX_PC_MODULES:lib%=%))
|
||||
+LDLIBS += $(if $(SELINUX_LIBS),\
|
||||
+ $(patsubst -l%,%,$(filter -l%,$(SELINUX_LIBS))),\
|
||||
+ $(SELINUX_PC_MODULES:lib%=%))
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_EFENCE),y)
|
||||
--
|
||||
1.8.1.2
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
From 2b400d9b2b7309d6e479102fc3ce646e893058a5 Mon Sep 17 00:00:00 2001
|
||||
From: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Date: Mon, 18 Sep 2017 13:09:11 +0200
|
||||
Subject: [PATCH] httpd: fix handling of range requests
|
||||
|
||||
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
networking/httpd.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/networking/httpd.c b/networking/httpd.c
|
||||
index e072f23c7..5e32fc936 100644
|
||||
--- a/networking/httpd.c
|
||||
+++ b/networking/httpd.c
|
||||
@@ -2337,7 +2337,7 @@ static void handle_incoming_and_exit(const len_and_sockaddr *fromAddr)
|
||||
if (STRNCASECMP(iobuf, "Range:") == 0) {
|
||||
/* We know only bytes=NNN-[MMM] */
|
||||
char *s = skip_whitespace(iobuf + sizeof("Range:")-1);
|
||||
- if (is_prefixed_with(s, "bytes=") == 0) {
|
||||
+ if (is_prefixed_with(s, "bytes=")) {
|
||||
s += sizeof("bytes=")-1;
|
||||
range_start = BB_STRTOOFF(s, &s, 10);
|
||||
if (s[0] != '-' || range_start < 0) {
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
From 0402cb32df015d9372578e3db27db47b33d5c7b0 Mon Sep 17 00:00:00 2001
|
||||
From: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Date: Sun, 22 Oct 2017 18:23:23 +0200
|
||||
Subject: [PATCH] bunzip2: fix runCnt overflow from bug 10431
|
||||
|
||||
This particular corrupted file can be dealth with by using "unsigned".
|
||||
If there will be cases where it genuinely overflows, there is a disabled
|
||||
code to deal with that too.
|
||||
|
||||
function old new delta
|
||||
get_next_block 1678 1667 -11
|
||||
|
||||
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
|
||||
---
|
||||
Patch status: upstream commit 0402cb32df0
|
||||
|
||||
archival/libarchive/decompress_bunzip2.c | 30 +++++++++++++++++++-----------
|
||||
1 file changed, 19 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/archival/libarchive/decompress_bunzip2.c b/archival/libarchive/decompress_bunzip2.c
|
||||
index 7cd18f5ed4cf..bec89edd3a4d 100644
|
||||
--- a/archival/libarchive/decompress_bunzip2.c
|
||||
+++ b/archival/libarchive/decompress_bunzip2.c
|
||||
@@ -156,15 +156,15 @@ static unsigned get_bits(bunzip_data *bd, int bits_wanted)
|
||||
static int get_next_block(bunzip_data *bd)
|
||||
{
|
||||
struct group_data *hufGroup;
|
||||
- int dbufCount, dbufSize, groupCount, *base, *limit, selector,
|
||||
- i, j, runPos, symCount, symTotal, nSelectors, byteCount[256];
|
||||
- int runCnt = runCnt; /* for compiler */
|
||||
+ int groupCount, *base, *limit, selector,
|
||||
+ i, j, symCount, symTotal, nSelectors, byteCount[256];
|
||||
uint8_t uc, symToByte[256], mtfSymbol[256], *selectors;
|
||||
uint32_t *dbuf;
|
||||
unsigned origPtr, t;
|
||||
+ unsigned dbufCount, runPos;
|
||||
+ unsigned runCnt = runCnt; /* for compiler */
|
||||
|
||||
dbuf = bd->dbuf;
|
||||
- dbufSize = bd->dbufSize;
|
||||
selectors = bd->selectors;
|
||||
|
||||
/* In bbox, we are ok with aborting through setjmp which is set up in start_bunzip */
|
||||
@@ -187,7 +187,7 @@ static int get_next_block(bunzip_data *bd)
|
||||
it didn't actually work. */
|
||||
if (get_bits(bd, 1)) return RETVAL_OBSOLETE_INPUT;
|
||||
origPtr = get_bits(bd, 24);
|
||||
- if ((int)origPtr > dbufSize) return RETVAL_DATA_ERROR;
|
||||
+ if (origPtr > bd->dbufSize) return RETVAL_DATA_ERROR;
|
||||
|
||||
/* mapping table: if some byte values are never used (encoding things
|
||||
like ascii text), the compression code removes the gaps to have fewer
|
||||
@@ -435,7 +435,14 @@ static int get_next_block(bunzip_data *bd)
|
||||
symbols, but a run of length 0 doesn't mean anything in this
|
||||
context). Thus space is saved. */
|
||||
runCnt += (runPos << nextSym); /* +runPos if RUNA; +2*runPos if RUNB */
|
||||
- if (runPos < dbufSize) runPos <<= 1;
|
||||
+//The 32-bit overflow of runCnt wasn't yet seen, but probably can happen.
|
||||
+//This would be the fix (catches too large count way before it can overflow):
|
||||
+// if (runCnt > bd->dbufSize) {
|
||||
+// dbg("runCnt:%u > dbufSize:%u RETVAL_DATA_ERROR",
|
||||
+// runCnt, bd->dbufSize);
|
||||
+// return RETVAL_DATA_ERROR;
|
||||
+// }
|
||||
+ if (runPos < bd->dbufSize) runPos <<= 1;
|
||||
goto end_of_huffman_loop;
|
||||
}
|
||||
|
||||
@@ -445,14 +452,15 @@ static int get_next_block(bunzip_data *bd)
|
||||
literal used is the one at the head of the mtfSymbol array.) */
|
||||
if (runPos != 0) {
|
||||
uint8_t tmp_byte;
|
||||
- if (dbufCount + runCnt > dbufSize) {
|
||||
- dbg("dbufCount:%d+runCnt:%d %d > dbufSize:%d RETVAL_DATA_ERROR",
|
||||
- dbufCount, runCnt, dbufCount + runCnt, dbufSize);
|
||||
+ if (dbufCount + runCnt > bd->dbufSize) {
|
||||
+ dbg("dbufCount:%u+runCnt:%u %u > dbufSize:%u RETVAL_DATA_ERROR",
|
||||
+ dbufCount, runCnt, dbufCount + runCnt, bd->dbufSize);
|
||||
return RETVAL_DATA_ERROR;
|
||||
}
|
||||
tmp_byte = symToByte[mtfSymbol[0]];
|
||||
byteCount[tmp_byte] += runCnt;
|
||||
- while (--runCnt >= 0) dbuf[dbufCount++] = (uint32_t)tmp_byte;
|
||||
+ while ((int)--runCnt >= 0)
|
||||
+ dbuf[dbufCount++] = (uint32_t)tmp_byte;
|
||||
runPos = 0;
|
||||
}
|
||||
|
||||
@@ -466,7 +474,7 @@ static int get_next_block(bunzip_data *bd)
|
||||
first symbol in the mtf array, position 0, would have been handled
|
||||
as part of a run above. Therefore 1 unused mtf position minus
|
||||
2 non-literal nextSym values equals -1.) */
|
||||
- if (dbufCount >= dbufSize) return RETVAL_DATA_ERROR;
|
||||
+ if (dbufCount >= bd->dbufSize) return RETVAL_DATA_ERROR;
|
||||
i = nextSym - 1;
|
||||
uc = mtfSymbol[i];
|
||||
|
||||
--
|
||||
2.15.1
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
From 9ac42c500586fa5f10a1f6d22c3f797df11b1f6b Mon Sep 17 00:00:00 2001
|
||||
From: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Date: Fri, 27 Oct 2017 15:37:03 +0200
|
||||
Subject: [PATCH] unlzma: fix SEGV, closes 10436
|
||||
|
||||
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
|
||||
---
|
||||
Patch status: upstream commit 9ac42c500586f
|
||||
|
||||
archival/libarchive/decompress_unlzma.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/archival/libarchive/decompress_unlzma.c b/archival/libarchive/decompress_unlzma.c
|
||||
index a9040877efa0..be4342414435 100644
|
||||
--- a/archival/libarchive/decompress_unlzma.c
|
||||
+++ b/archival/libarchive/decompress_unlzma.c
|
||||
@@ -450,8 +450,12 @@ unpack_lzma_stream(transformer_state_t *xstate)
|
||||
IF_NOT_FEATURE_LZMA_FAST(string:)
|
||||
do {
|
||||
uint32_t pos = buffer_pos - rep0;
|
||||
- if ((int32_t)pos < 0)
|
||||
+ if ((int32_t)pos < 0) {
|
||||
pos += header.dict_size;
|
||||
+ /* bug 10436 has an example file where this triggers: */
|
||||
+ if ((int32_t)pos < 0)
|
||||
+ goto bad;
|
||||
+ }
|
||||
previous_byte = buffer[pos];
|
||||
IF_NOT_FEATURE_LZMA_FAST(one_byte2:)
|
||||
buffer[buffer_pos++] = previous_byte;
|
||||
--
|
||||
2.15.1
|
||||
|
||||
89
bsp/buildroot-2017.02.11/package/busybox/Config.in
Normal file
89
bsp/buildroot-2017.02.11/package/busybox/Config.in
Normal file
@@ -0,0 +1,89 @@
|
||||
config BR2_PACKAGE_BUSYBOX
|
||||
bool "BusyBox"
|
||||
default y
|
||||
help
|
||||
The Swiss Army Knife of embedded Linux. It slices, it dices, it
|
||||
makes Julian Fries.
|
||||
|
||||
http://busybox.net/
|
||||
|
||||
Most people will answer Y.
|
||||
|
||||
if BR2_PACKAGE_BUSYBOX
|
||||
|
||||
config BR2_PACKAGE_BUSYBOX_CONFIG
|
||||
string "BusyBox configuration file to use?"
|
||||
default "package/busybox/busybox.config"
|
||||
help
|
||||
Some people may wish to use their own modified BusyBox configuration
|
||||
file, and will specify their config file location with this option.
|
||||
|
||||
Most people will just use the default BusyBox configuration file.
|
||||
|
||||
config BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES
|
||||
string "Additional BusyBox configuration fragment files"
|
||||
help
|
||||
A space-separated list of configuration fragment files,
|
||||
that will be merged to the main BusyBox configuration file.
|
||||
|
||||
# This option is not an option of Busybox, it can be selected even
|
||||
# if Busybox is not enabled.
|
||||
config BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
|
||||
bool "Show packages that are also provided by busybox"
|
||||
help
|
||||
Show packages in menuconfig that are potentially also provided
|
||||
by busybox.
|
||||
|
||||
config BR2_PACKAGE_BUSYBOX_SELINUX
|
||||
select BR2_PACKAGE_LIBSELINUX
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on !BR2_STATIC_LIBS
|
||||
depends on BR2_TOOLCHAIN_USES_GLIBC
|
||||
depends on !BR2_arc
|
||||
bool "Enable SELinux support"
|
||||
help
|
||||
Enable SELinux support in BusyBox. Please note that
|
||||
depending on your BusyBox configuration and the SELinux
|
||||
policy implementation, you may want to also enable
|
||||
BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES.
|
||||
|
||||
For instance, if your BusyBox configuration only uses a
|
||||
couple of minor BusyBox features, such as simple command
|
||||
line utilities, the symlinked version of BusyBox can be used
|
||||
to save space. If BusyBox provides more features, such as
|
||||
crond, then individual binaries have to be enabled for the
|
||||
SELinux type transitions to occur properly.
|
||||
|
||||
config BR2_PACKAGE_BUSYBOX_WATCHDOG
|
||||
bool "Install the watchdog daemon startup script"
|
||||
help
|
||||
Install the watchdog daemon startup script,
|
||||
that just start at the boot the busybox watchdog daemon.
|
||||
|
||||
if BR2_PACKAGE_BUSYBOX_WATCHDOG
|
||||
|
||||
config BR2_PACKAGE_BUSYBOX_WATCHDOG_PERIOD
|
||||
string "Delay between reset"
|
||||
default "5"
|
||||
help
|
||||
Select the number of seconds between each
|
||||
reset of the watchdog (default 5)
|
||||
|
||||
Use ms suffix to specify milliseconds (e.g. 500ms)
|
||||
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
if !BR2_PACKAGE_BUSYBOX # kconfig doesn't support else
|
||||
|
||||
comment "You may need to enable other packages to get a working system"
|
||||
comment "You better know what you're doing!"
|
||||
|
||||
# This option is not an option of Busybox, it can be selected even if
|
||||
# Busybox is not enabled. This dummy option ensures that packages that
|
||||
# depend on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS are visible when Busybox
|
||||
# is disabled.
|
||||
config BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
|
||||
default y
|
||||
endif
|
||||
40
bsp/buildroot-2017.02.11/package/busybox/S01logging
Normal file
40
bsp/buildroot-2017.02.11/package/busybox/S01logging
Normal file
@@ -0,0 +1,40 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Start logging
|
||||
#
|
||||
|
||||
SYSLOGD_ARGS=-n
|
||||
KLOGD_ARGS=-n
|
||||
[ -r /etc/default/logging ] && . /etc/default/logging
|
||||
|
||||
start() {
|
||||
printf "Starting logging: "
|
||||
start-stop-daemon -b -S -q -m -p /var/run/syslogd.pid --exec /sbin/syslogd -- $SYSLOGD_ARGS
|
||||
start-stop-daemon -b -S -q -m -p /var/run/klogd.pid --exec /sbin/klogd -- $KLOGD_ARGS
|
||||
echo "OK"
|
||||
}
|
||||
|
||||
stop() {
|
||||
printf "Stopping logging: "
|
||||
start-stop-daemon -K -q -p /var/run/syslogd.pid
|
||||
start-stop-daemon -K -q -p /var/run/klogd.pid
|
||||
echo "OK"
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
restart|reload)
|
||||
stop
|
||||
start
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit $?
|
||||
23
bsp/buildroot-2017.02.11/package/busybox/S10mdev
Normal file
23
bsp/buildroot-2017.02.11/package/busybox/S10mdev
Normal file
@@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Start mdev....
|
||||
#
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo "Starting mdev..."
|
||||
echo /sbin/mdev >/proc/sys/kernel/hotplug
|
||||
/sbin/mdev -s
|
||||
# coldplug modules
|
||||
find /sys/ -name modalias -print0 | xargs -0 sort -u -z | xargs -0 modprobe -abq
|
||||
;;
|
||||
stop)
|
||||
;;
|
||||
restart|reload)
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit $?
|
||||
20
bsp/buildroot-2017.02.11/package/busybox/S15watchdog
Normal file
20
bsp/buildroot-2017.02.11/package/busybox/S15watchdog
Normal file
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Start watchdog
|
||||
#
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo "Starting watchdog..."
|
||||
watchdog -t PERIOD /dev/watchdog
|
||||
;;
|
||||
stop)
|
||||
;;
|
||||
restart|reload)
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit $?
|
||||
39
bsp/buildroot-2017.02.11/package/busybox/S50telnet
Executable file
39
bsp/buildroot-2017.02.11/package/busybox/S50telnet
Executable file
@@ -0,0 +1,39 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Start telnet....
|
||||
#
|
||||
|
||||
TELNETD_ARGS=-F
|
||||
[ -r /etc/default/telnet ] && . /etc/default/telnet
|
||||
|
||||
start() {
|
||||
printf "Starting telnetd: "
|
||||
start-stop-daemon -S -q -m -b -p /var/run/telnetd.pid \
|
||||
-x /usr/sbin/telnetd -- $TELNETD_ARGS
|
||||
[ $? = 0 ] && echo "OK" || echo "FAIL"
|
||||
}
|
||||
|
||||
stop() {
|
||||
printf "Stopping telnetd: "
|
||||
start-stop-daemon -K -q -p /var/run/telnetd.pid \
|
||||
-x /usr/sbin/telnetd
|
||||
[ $? = 0 ] && echo "OK" || echo "FAIL"
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
restart|reload)
|
||||
stop
|
||||
start
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit $?
|
||||
1122
bsp/buildroot-2017.02.11/package/busybox/busybox-minimal.config
Normal file
1122
bsp/buildroot-2017.02.11/package/busybox/busybox-minimal.config
Normal file
File diff suppressed because it is too large
Load Diff
1134
bsp/buildroot-2017.02.11/package/busybox/busybox.config
Normal file
1134
bsp/buildroot-2017.02.11/package/busybox/busybox.config
Normal file
File diff suppressed because it is too large
Load Diff
3
bsp/buildroot-2017.02.11/package/busybox/busybox.hash
Normal file
3
bsp/buildroot-2017.02.11/package/busybox/busybox.hash
Normal file
@@ -0,0 +1,3 @@
|
||||
# From https://busybox.net/downloads/busybox-1.27.2.tar.bz2.sign
|
||||
md5 476186f4bab81781dab2369bfd42734e busybox-1.27.2.tar.bz2
|
||||
sha1 11669e223cc38de646ce26080e91ca29b8d42ad9 busybox-1.27.2.tar.bz2
|
||||
264
bsp/buildroot-2017.02.11/package/busybox/busybox.mk
Normal file
264
bsp/buildroot-2017.02.11/package/busybox/busybox.mk
Normal file
@@ -0,0 +1,264 @@
|
||||
################################################################################
|
||||
#
|
||||
# busybox
|
||||
#
|
||||
################################################################################
|
||||
|
||||
BUSYBOX_VERSION = 1.27.2
|
||||
BUSYBOX_SITE = http://www.busybox.net/downloads
|
||||
BUSYBOX_SOURCE = busybox-$(BUSYBOX_VERSION).tar.bz2
|
||||
BUSYBOX_LICENSE = GPLv2
|
||||
BUSYBOX_LICENSE_FILES = LICENSE
|
||||
|
||||
define BUSYBOX_HELP_CMDS
|
||||
@echo ' busybox-menuconfig - Run BusyBox menuconfig'
|
||||
endef
|
||||
|
||||
BUSYBOX_CFLAGS = \
|
||||
$(TARGET_CFLAGS)
|
||||
|
||||
BUSYBOX_LDFLAGS = \
|
||||
$(TARGET_LDFLAGS)
|
||||
|
||||
# Link against libtirpc if available so that we can leverage its RPC
|
||||
# support for NFS mounting with BusyBox
|
||||
ifeq ($(BR2_PACKAGE_LIBTIRPC),y)
|
||||
BUSYBOX_DEPENDENCIES += libtirpc host-pkgconf
|
||||
BUSYBOX_CFLAGS += "`$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc`"
|
||||
# Don't use LDFLAGS for -ltirpc, because LDFLAGS is used for
|
||||
# the non-final link of modules as well.
|
||||
BUSYBOX_CFLAGS_busybox += "`$(PKG_CONFIG_HOST_BINARY) --libs libtirpc`"
|
||||
endif
|
||||
|
||||
BUSYBOX_BUILD_CONFIG = $(BUSYBOX_DIR)/.config
|
||||
# Allows the build system to tweak CFLAGS
|
||||
BUSYBOX_MAKE_ENV = \
|
||||
$(TARGET_MAKE_ENV) \
|
||||
CFLAGS="$(BUSYBOX_CFLAGS)" \
|
||||
CFLAGS_busybox="$(BUSYBOX_CFLAGS_busybox)"
|
||||
|
||||
ifeq ($(BR2_REPRODUCIBLE),y)
|
||||
BUSYBOX_MAKE_ENV += \
|
||||
KCONFIG_NOTIMESTAMP=1
|
||||
endif
|
||||
|
||||
BUSYBOX_MAKE_OPTS = \
|
||||
CC="$(TARGET_CC)" \
|
||||
ARCH=$(KERNEL_ARCH) \
|
||||
PREFIX="$(TARGET_DIR)" \
|
||||
EXTRA_LDFLAGS="$(BUSYBOX_LDFLAGS)" \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
CONFIG_PREFIX="$(TARGET_DIR)" \
|
||||
SKIP_STRIP=y
|
||||
|
||||
ifndef BUSYBOX_CONFIG_FILE
|
||||
BUSYBOX_CONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG))
|
||||
endif
|
||||
|
||||
BUSYBOX_KCONFIG_FILE = $(BUSYBOX_CONFIG_FILE)
|
||||
BUSYBOX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES))
|
||||
BUSYBOX_KCONFIG_EDITORS = menuconfig xconfig gconfig
|
||||
BUSYBOX_KCONFIG_OPTS = $(BUSYBOX_MAKE_OPTS)
|
||||
|
||||
define BUSYBOX_PERMISSIONS
|
||||
/bin/busybox f 4755 0 0 - - - - -
|
||||
endef
|
||||
|
||||
# If mdev will be used for device creation enable it and copy S10mdev to /etc/init.d
|
||||
ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV),y)
|
||||
define BUSYBOX_INSTALL_MDEV_SCRIPT
|
||||
$(INSTALL) -D -m 0755 package/busybox/S10mdev \
|
||||
$(TARGET_DIR)/etc/init.d/S10mdev
|
||||
endef
|
||||
define BUSYBOX_INSTALL_MDEV_CONF
|
||||
$(INSTALL) -D -m 0644 package/busybox/mdev.conf \
|
||||
$(TARGET_DIR)/etc/mdev.conf
|
||||
endef
|
||||
define BUSYBOX_SET_MDEV
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_MDEV,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_MDEV_CONF,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_MDEV_EXEC,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_MDEV_LOAD_FIRMWARE,$(BUSYBOX_BUILD_CONFIG))
|
||||
endef
|
||||
endif
|
||||
|
||||
# sha passwords need USE_BB_CRYPT_SHA
|
||||
ifeq ($(BR2_TARGET_GENERIC_PASSWD_SHA256)$(BR2_TARGET_GENERIC_PASSWD_SHA512),y)
|
||||
define BUSYBOX_SET_CRYPT_SHA
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_USE_BB_CRYPT_SHA,$(BUSYBOX_BUILD_CONFIG))
|
||||
endef
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_USE_MMU),y)
|
||||
define BUSYBOX_SET_MMU
|
||||
$(call KCONFIG_DISABLE_OPT,CONFIG_NOMMU,$(BUSYBOX_BUILD_CONFIG))
|
||||
endef
|
||||
else
|
||||
define BUSYBOX_SET_MMU
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_NOMMU,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_DISABLE_OPT,CONFIG_SWAPON,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_DISABLE_OPT,CONFIG_SWAPOFF,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_DISABLE_OPT,CONFIG_ASH,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_HUSH,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_BASH_COMPAT,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_BRACE_EXPANSION,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_HELP,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_INTERACTIVE,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_SAVEHISTORY,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_JOB,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_TICK,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_IF,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_LOOPS,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_CASE,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_FUNCTIONS,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_LOCAL,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_RANDOM_SUPPORT,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_EXPORT_N,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_MODE_X,$(BUSYBOX_BUILD_CONFIG))
|
||||
endef
|
||||
endif
|
||||
|
||||
# If we're using static libs do the same for busybox
|
||||
ifeq ($(BR2_STATIC_LIBS),y)
|
||||
define BUSYBOX_PREFER_STATIC
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_STATIC,$(BUSYBOX_BUILD_CONFIG))
|
||||
endef
|
||||
endif
|
||||
|
||||
# Disable shadow passwords support if unsupported by the C library
|
||||
ifeq ($(BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS),)
|
||||
define BUSYBOX_INTERNAL_SHADOW_PASSWORDS
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_USE_BB_PWD_GRP,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_USE_BB_SHADOW,$(BUSYBOX_BUILD_CONFIG))
|
||||
endef
|
||||
endif
|
||||
|
||||
# We also need to use internal shadow password functions when using
|
||||
# the musl C library, since some of them are not yet implemented by
|
||||
# musl.
|
||||
#
|
||||
# Do not use utmp/wmtp support. wmtp support is not available in musl,
|
||||
# and utmp support is not sufficient for Busybox.
|
||||
ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
|
||||
define BUSYBOX_MUSL_TWEAKS
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_USE_BB_PWD_GRP,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_USE_BB_SHADOW,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_DISABLE_OPT,CONFIG_FEATURE_UTMP,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_DISABLE_OPT,CONFIG_FEATURE_WTMP,$(BUSYBOX_BUILD_CONFIG))
|
||||
endef
|
||||
endif
|
||||
|
||||
define BUSYBOX_INSTALL_UDHCPC_SCRIPT
|
||||
if grep -q CONFIG_UDHCPC=y $(@D)/.config; then \
|
||||
$(INSTALL) -m 0755 -D package/busybox/udhcpc.script \
|
||||
$(TARGET_DIR)/usr/share/udhcpc/default.script; \
|
||||
$(INSTALL) -m 0755 -d \
|
||||
$(TARGET_DIR)/usr/share/udhcpc/default.script.d; \
|
||||
fi
|
||||
endef
|
||||
|
||||
ifeq ($(BR2_INIT_BUSYBOX),y)
|
||||
define BUSYBOX_SET_INIT
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_INIT,$(BUSYBOX_BUILD_CONFIG))
|
||||
endef
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_BUSYBOX_SELINUX),y)
|
||||
BUSYBOX_DEPENDENCIES += host-pkgconf libselinux libsepol
|
||||
define BUSYBOX_SET_SELINUX
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_SELINUX,$(BUSYBOX_BUILD_CONFIG))
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_SELINUXENABLED,$(BUSYBOX_BUILD_CONFIG))
|
||||
endef
|
||||
endif
|
||||
|
||||
define BUSYBOX_INSTALL_LOGGING_SCRIPT
|
||||
if grep -q CONFIG_SYSLOGD=y $(@D)/.config; then \
|
||||
$(INSTALL) -m 0755 -D package/busybox/S01logging \
|
||||
$(TARGET_DIR)/etc/init.d/S01logging; \
|
||||
fi
|
||||
endef
|
||||
|
||||
ifeq ($(BR2_INIT_BUSYBOX),y)
|
||||
define BUSYBOX_INSTALL_INITTAB
|
||||
$(INSTALL) -D -m 0644 package/busybox/inittab $(TARGET_DIR)/etc/inittab
|
||||
endef
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_BUSYBOX_WATCHDOG),y)
|
||||
define BUSYBOX_SET_WATCHDOG
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_WATCHDOG,$(BUSYBOX_BUILD_CONFIG))
|
||||
endef
|
||||
define BUSYBOX_INSTALL_WATCHDOG_SCRIPT
|
||||
$(INSTALL) -D -m 0755 package/busybox/S15watchdog \
|
||||
$(TARGET_DIR)/etc/init.d/S15watchdog
|
||||
$(SED) s/PERIOD/$(call qstrip,$(BR2_PACKAGE_BUSYBOX_WATCHDOG_PERIOD))/ \
|
||||
$(TARGET_DIR)/etc/init.d/S15watchdog
|
||||
endef
|
||||
endif
|
||||
|
||||
# PAM support requires thread support in the toolchain
|
||||
ifeq ($(BR2_PACKAGE_LINUX_PAM)$(BR2_TOOLCHAIN_HAS_THREADS),yy)
|
||||
define BUSYBOX_LINUX_PAM
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_PAM,$(BUSYBOX_BUILD_CONFIG))
|
||||
endef
|
||||
BUSYBOX_DEPENDENCIES += linux-pam
|
||||
endif
|
||||
|
||||
# Telnet support
|
||||
define BUSYBOX_INSTALL_TELNET_SCRIPT
|
||||
if grep -q CONFIG_FEATURE_TELNETD_STANDALONE=y $(@D)/.config; then \
|
||||
$(INSTALL) -m 0755 -D package/busybox/S50telnet \
|
||||
$(TARGET_DIR)/etc/init.d/S50telnet ; \
|
||||
fi
|
||||
endef
|
||||
|
||||
# Enable "noclobber" in install.sh, to prevent BusyBox from overwriting any
|
||||
# full-blown versions of apps installed by other packages with sym/hard links.
|
||||
define BUSYBOX_NOCLOBBER_INSTALL
|
||||
$(SED) 's/^noclobber="0"$$/noclobber="1"/' $(@D)/applets/install.sh
|
||||
endef
|
||||
|
||||
define BUSYBOX_KCONFIG_FIXUP_CMDS
|
||||
$(BUSYBOX_SET_MMU)
|
||||
$(BUSYBOX_PREFER_STATIC)
|
||||
$(BUSYBOX_SET_MDEV)
|
||||
$(BUSYBOX_SET_CRYPT_SHA)
|
||||
$(BUSYBOX_LINUX_PAM)
|
||||
$(BUSYBOX_INTERNAL_SHADOW_PASSWORDS)
|
||||
$(BUSYBOX_SET_INIT)
|
||||
$(BUSYBOX_SET_WATCHDOG)
|
||||
$(BUSYBOX_SET_SELINUX)
|
||||
$(BUSYBOX_MUSL_TWEAKS)
|
||||
endef
|
||||
|
||||
define BUSYBOX_CONFIGURE_CMDS
|
||||
$(BUSYBOX_NOCLOBBER_INSTALL)
|
||||
endef
|
||||
|
||||
define BUSYBOX_BUILD_CMDS
|
||||
$(BUSYBOX_MAKE_ENV) $(MAKE) $(BUSYBOX_MAKE_OPTS) -C $(@D)
|
||||
endef
|
||||
|
||||
define BUSYBOX_INSTALL_TARGET_CMDS
|
||||
$(BUSYBOX_MAKE_ENV) $(MAKE) $(BUSYBOX_MAKE_OPTS) -C $(@D) install
|
||||
$(BUSYBOX_INSTALL_INITTAB)
|
||||
$(BUSYBOX_INSTALL_UDHCPC_SCRIPT)
|
||||
$(BUSYBOX_INSTALL_MDEV_CONF)
|
||||
endef
|
||||
|
||||
define BUSYBOX_INSTALL_INIT_SYSV
|
||||
$(BUSYBOX_INSTALL_MDEV_SCRIPT)
|
||||
$(BUSYBOX_INSTALL_LOGGING_SCRIPT)
|
||||
$(BUSYBOX_INSTALL_WATCHDOG_SCRIPT)
|
||||
$(BUSYBOX_INSTALL_TELNET_SCRIPT)
|
||||
endef
|
||||
|
||||
# Checks to give errors that the user can understand
|
||||
# Must be before we call to kconfig-package
|
||||
ifeq ($(BR2_PACKAGE_BUSYBOX)$(BR_BUILDING),yy)
|
||||
ifeq ($(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG)),)
|
||||
$(error No BusyBox configuration file specified, check your BR2_PACKAGE_BUSYBOX_CONFIG setting)
|
||||
endif
|
||||
endif
|
||||
|
||||
$(eval $(kconfig-package))
|
||||
35
bsp/buildroot-2017.02.11/package/busybox/inittab
Normal file
35
bsp/buildroot-2017.02.11/package/busybox/inittab
Normal file
@@ -0,0 +1,35 @@
|
||||
# /etc/inittab
|
||||
#
|
||||
# Copyright (C) 2001 Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# Note: BusyBox init doesn't support runlevels. The runlevels field is
|
||||
# completely ignored by BusyBox init. If you want runlevels, use
|
||||
# sysvinit.
|
||||
#
|
||||
# Format for each entry: <id>:<runlevels>:<action>:<process>
|
||||
#
|
||||
# id == tty to run on, or empty for /dev/console
|
||||
# runlevels == ignored
|
||||
# action == one of sysinit, respawn, askfirst, wait, and once
|
||||
# process == program to run
|
||||
|
||||
# Startup the system
|
||||
::sysinit:/bin/mount -t proc proc /proc
|
||||
::sysinit:/bin/mount -o remount,rw /
|
||||
::sysinit:/bin/mkdir -p /dev/pts
|
||||
::sysinit:/bin/mkdir -p /dev/shm
|
||||
::sysinit:/bin/mount -a
|
||||
::sysinit:/bin/hostname -F /etc/hostname
|
||||
# now run any rc scripts
|
||||
::sysinit:/etc/init.d/rcS
|
||||
|
||||
# Put a getty on the serial port
|
||||
#ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100 # GENERIC_SERIAL
|
||||
|
||||
# Stuff to do for the 3-finger salute
|
||||
#::ctrlaltdel:/sbin/reboot
|
||||
|
||||
# Stuff to do before rebooting
|
||||
::shutdown:/etc/init.d/rcK
|
||||
::shutdown:/sbin/swapoff -a
|
||||
::shutdown:/bin/umount -a -r
|
||||
39
bsp/buildroot-2017.02.11/package/busybox/mdev.conf
Normal file
39
bsp/buildroot-2017.02.11/package/busybox/mdev.conf
Normal file
@@ -0,0 +1,39 @@
|
||||
# null may already exist; therefore ownership has to be changed with command
|
||||
null root:root 666 @chmod 666 $MDEV
|
||||
zero root:root 666
|
||||
full root:root 666
|
||||
random root:root 444
|
||||
urandom root:root 444
|
||||
hwrandom root:root 444
|
||||
grsec root:root 660
|
||||
|
||||
kmem root:root 640
|
||||
mem root:root 640
|
||||
port root:root 640
|
||||
# console may already exist; therefore ownership has to be changed with command
|
||||
console root:tty 600 @chmod 600 $MDEV
|
||||
ptmx root:tty 666
|
||||
pty.* root:tty 660
|
||||
|
||||
# Typical devices
|
||||
tty root:tty 666
|
||||
tty[0-9]* root:tty 660
|
||||
vcsa*[0-9]* root:tty 660
|
||||
ttyS[0-9]* root:root 660
|
||||
ttyUSB[0-9]* root:root 660
|
||||
|
||||
# alsa sound devices
|
||||
snd/pcm.* root:audio 660
|
||||
snd/control.* root:audio 660
|
||||
snd/midi.* root:audio 660
|
||||
snd/seq root:audio 660
|
||||
snd/timer root:audio 660
|
||||
|
||||
# input stuff
|
||||
input/event[0-9]+ root:root 640
|
||||
input/mice root:root 640
|
||||
input/mouse[0-9] root:root 640
|
||||
input/ts[0-9] root:root 600
|
||||
|
||||
# load modules
|
||||
$MODALIAS=.* root:root 660 @modprobe "$MODALIAS"
|
||||
82
bsp/buildroot-2017.02.11/package/busybox/udhcpc.script
Executable file
82
bsp/buildroot-2017.02.11/package/busybox/udhcpc.script
Executable file
@@ -0,0 +1,82 @@
|
||||
#!/bin/sh
|
||||
|
||||
# udhcpc script edited by Tim Riker <Tim@Rikers.org>
|
||||
|
||||
[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
|
||||
|
||||
RESOLV_CONF="/etc/resolv.conf"
|
||||
[ -e $RESOLV_CONF ] || touch $RESOLV_CONF
|
||||
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
|
||||
[ -n "$subnet" ] && NETMASK="netmask $subnet"
|
||||
|
||||
case "$1" in
|
||||
deconfig)
|
||||
/sbin/ifconfig $interface up
|
||||
/sbin/ifconfig $interface 0.0.0.0
|
||||
|
||||
# drop info from this interface
|
||||
# resolv.conf may be a symlink to /tmp/, so take care
|
||||
TMPFILE=$(mktemp)
|
||||
grep -vE "# $interface\$" $RESOLV_CONF > $TMPFILE
|
||||
cat $TMPFILE > $RESOLV_CONF
|
||||
rm -f $TMPFILE
|
||||
|
||||
if [ -x /usr/sbin/avahi-autoipd ]; then
|
||||
/usr/sbin/avahi-autoipd -k $interface
|
||||
fi
|
||||
;;
|
||||
|
||||
leasefail|nak)
|
||||
if [ -x /usr/sbin/avahi-autoipd ]; then
|
||||
/usr/sbin/avahi-autoipd -wD $interface --no-chroot
|
||||
fi
|
||||
;;
|
||||
|
||||
renew|bound)
|
||||
if [ -x /usr/sbin/avahi-autoipd ]; then
|
||||
/usr/sbin/avahi-autoipd -k $interface
|
||||
fi
|
||||
/sbin/ifconfig $interface $ip $BROADCAST $NETMASK
|
||||
|
||||
if [ -n "$router" ] ; then
|
||||
echo "deleting routers"
|
||||
while route del default gw 0.0.0.0 dev $interface 2> /dev/null; do
|
||||
:
|
||||
done
|
||||
|
||||
for i in $router ; do
|
||||
route add default gw $i dev $interface
|
||||
done
|
||||
fi
|
||||
|
||||
# drop info from this interface
|
||||
# resolv.conf may be a symlink to /tmp/, so take care
|
||||
TMPFILE=$(mktemp)
|
||||
grep -vE "# $interface\$" $RESOLV_CONF > $TMPFILE
|
||||
cat $TMPFILE > $RESOLV_CONF
|
||||
rm -f $TMPFILE
|
||||
|
||||
# prefer rfc3359 domain search list (option 119) if available
|
||||
if [ -n "$search" ]; then
|
||||
search_list=$search
|
||||
elif [ -n "$domain" ]; then
|
||||
search_list=$domain
|
||||
fi
|
||||
|
||||
[ -n "$search_list" ] &&
|
||||
echo "search $search_list # $interface" >> $RESOLV_CONF
|
||||
|
||||
for i in $dns ; do
|
||||
echo adding dns $i
|
||||
echo "nameserver $i # $interface" >> $RESOLV_CONF
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
HOOK_DIR="$0.d"
|
||||
for hook in "${HOOK_DIR}/"*; do
|
||||
[ -f "${hook}" -a -x "${hook}" ] || continue
|
||||
"${hook}" "${@}"
|
||||
done
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user