summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configs/qemu_arm_versatile_defconfig2
-rw-r--r--configs/qemu_mipsel_malta_defconfig2
-rw-r--r--fs/Config.in48
-rw-r--r--fs/common.mk10
-rw-r--r--fs/skeleton/etc/inittab4
-rw-r--r--linux/Config.in6
-rw-r--r--linux/linux.mk7
-rw-r--r--package/avahi/avahi.mk2
-rw-r--r--package/busybox/S10mdev20
-rw-r--r--package/busybox/busybox.mk15
-rw-r--r--package/dropbear/dropbear-0.53.1-static_build_fix.patch26
-rw-r--r--package/dropbear/dropbear.mk9
-rw-r--r--package/haserl/Config.in2
-rw-r--r--package/makedevs/README35
-rw-r--r--package/multimedia/ffmpeg/Config.in1
-rw-r--r--package/multimedia/ffmpeg/ffmpeg.mk11
-rw-r--r--package/qt/Config.in2
-rwxr-xr-xpackage/udev/S10udev34
-rw-r--r--target/generic/Config.in82
-rw-r--r--target/generic/Makefile.in2
-rw-r--r--target/generic/device_table.txt187
-rw-r--r--target/generic/device_table_dev.txt143
-rw-r--r--toolchain/kernel-headers/Config.in2
23 files changed, 366 insertions, 286 deletions
diff --git a/configs/qemu_arm_versatile_defconfig b/configs/qemu_arm_versatile_defconfig
index 1a1a0ff1c..6274b686c 100644
--- a/configs/qemu_arm_versatile_defconfig
+++ b/configs/qemu_arm_versatile_defconfig
@@ -13,7 +13,7 @@ BR2_TARGET_ROOTFS_EXT2=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="2.6.38.5"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="2.6.38.6"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/arm-versatile/linux-2.6.38.config"
BR2_LINUX_KERNEL_ZIMAGE=y
diff --git a/configs/qemu_mipsel_malta_defconfig b/configs/qemu_mipsel_malta_defconfig
index 0523a1451..64ce976cd 100644
--- a/configs/qemu_mipsel_malta_defconfig
+++ b/configs/qemu_mipsel_malta_defconfig
@@ -9,7 +9,7 @@ BR2_TARGET_ROOTFS_EXT2=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="2.6.38.5"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="2.6.38.6"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mipsel-malta/linux-2.6.38.config"
BR2_LINUX_KERNEL_VMLINUX=y
diff --git a/fs/Config.in b/fs/Config.in
index 188e8155b..94154ea81 100644
--- a/fs/Config.in
+++ b/fs/Config.in
@@ -1,50 +1,4 @@
-menu "Target filesystem options"
-
-config BR2_ROOTFS_POST_BUILD_SCRIPT
- string "Custom script to run before packing files"
- default ""
- help
- Specify a script to be run after the build has finished and before
- the BR2 starts packing the files into selected packages.
-
- This gives users the oportunity to do board-specific cleanups,
- add-ons and the like, so the generated files can be used directly
- without further processing.
-
- The script is called with the target directory name as first and
- only argument. Make sure the exit code of that script is 0,
- otherwise make will stop after calling it.
-
-config BR2_ROOTFS_DEVICE_TABLE
- string "Path to the device table"
- default "target/generic/device_table.txt"
- help
- Specify the location of a device table, that will be passed
- to the makedevs utility to create all the special device
- files in the target filesystem.
-
-choice
- prompt "Root FS skeleton"
-
-config BR2_ROOTFS_SKELETON_DEFAULT
- bool "default target skeleton"
- help
- Use default target skeleton
-
-config BR2_ROOTFS_SKELETON_CUSTOM
- bool "custom target skeleton"
- help
- Use custom target skeleton.
-
-endchoice
-
-if BR2_ROOTFS_SKELETON_CUSTOM
-config BR2_ROOTFS_SKELETON_CUSTOM_PATH
- string "custom target skeleton path"
- default "fs/skeleton"
- help
- Path custom target skeleton.
-endif
+menu "Filesystem images"
source "fs/cramfs/Config.in"
source "fs/cloop/Config.in"
diff --git a/fs/common.mk b/fs/common.mk
index 92be00cc0..4d5051460 100644
--- a/fs/common.mk
+++ b/fs/common.mk
@@ -32,7 +32,8 @@
# macro will automatically generate a compressed filesystem image.
FAKEROOT_SCRIPT = $(BUILD_DIR)/_fakeroot.fs
-ROOTFS_DEVICE_TABLE = $(call qstrip,$(BR2_ROOTFS_DEVICE_TABLE))
+FULL_DEVICE_TABLE = $(BUILD_DIR)/_device_table.txt
+ROOTFS_DEVICE_TABLES = $(call qstrip,$(BR2_ROOTFS_DEVICE_TABLE))
define ROOTFS_TARGET_INTERNAL
@@ -46,13 +47,14 @@ $(BINARIES_DIR)/rootfs.$(1): $(ROOTFS_$(2)_DEPENDENCIES)
touch $(BUILD_DIR)/.fakeroot.00000
cat $(BUILD_DIR)/.fakeroot* > $(FAKEROOT_SCRIPT)
echo "chown -R 0:0 $(TARGET_DIR)" >> $(FAKEROOT_SCRIPT)
-ifneq ($(ROOTFS_DEVICE_TABLE),)
- echo "$(HOST_DIR)/usr/bin/makedevs -d $(ROOTFS_DEVICE_TABLE) $(TARGET_DIR)" >> $(FAKEROOT_SCRIPT)
+ifneq ($(ROOTFS_DEVICE_TABLES),)
+ cat $(ROOTFS_DEVICE_TABLES) > $(FULL_DEVICE_TABLE)
+ echo "$(HOST_DIR)/usr/bin/makedevs -d $(FULL_DEVICE_TABLE) $(TARGET_DIR)" >> $(FAKEROOT_SCRIPT)
endif
echo "$(ROOTFS_$(2)_CMD)" >> $(FAKEROOT_SCRIPT)
chmod a+x $(FAKEROOT_SCRIPT)
$(HOST_DIR)/usr/bin/fakeroot -- $(FAKEROOT_SCRIPT)
- -@rm -f $(FAKEROOT_SCRIPT)
+ -@rm -f $(FAKEROOT_SCRIPT) $(FULL_DEVICE_TABLE)
$(foreach hook,$(ROOTFS_$(2)_POST_GEN_HOOKS),$(call $(hook))$(sep))
ifeq ($$(BR2_TARGET_ROOTFS_$(2)_GZIP),y)
gzip -9 -c $$@ > $$@.gz
diff --git a/fs/skeleton/etc/inittab b/fs/skeleton/etc/inittab
index 873db29c7..b1e5c164e 100644
--- a/fs/skeleton/etc/inittab
+++ b/fs/skeleton/etc/inittab
@@ -22,10 +22,6 @@ null::sysinit:/bin/hostname -F /etc/hostname
# now run any rc scripts
::sysinit:/etc/init.d/rcS
-# Set up a couple of getty's
-tty1::respawn:/sbin/getty 38400 tty1
-tty2::respawn:/sbin/getty 38400 tty2
-
# Put a getty on the serial port
#ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100 # GENERIC_SERIAL
diff --git a/linux/Config.in b/linux/Config.in
index cfef5bbe7..ea04c7d97 100644
--- a/linux/Config.in
+++ b/linux/Config.in
@@ -22,7 +22,7 @@ choice
default BR2_LINUX_KERNEL_2_6_38
config BR2_LINUX_KERNEL_2_6_38
- bool "2.6.38.5"
+ bool "2.6.38.6"
config BR2_LINUX_KERNEL_SAME_AS_HEADERS
bool "Same as toolchain kernel headers"
@@ -52,7 +52,7 @@ endchoice
config BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE
string "Kernel version"
depends on BR2_LINUX_KERNEL_CUSTOM_VERSION
- default "2.6.38.5"
+ default "2.6.38.6"
config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
string "URL of custom kernel tarball"
@@ -60,7 +60,7 @@ config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
config BR2_LINUX_KERNEL_VERSION
string
- default "2.6.38.5" if BR2_LINUX_KERNEL_2_6_38
+ default "2.6.38.6" if BR2_LINUX_KERNEL_2_6_38
default BR2_DEFAULT_KERNEL_HEADERS if BR2_LINUX_KERNEL_SAME_AS_HEADERS
default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE if BR2_LINUX_KERNEL_CUSTOM_VERSION
default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL
diff --git a/linux/linux.mk b/linux/linux.mk
index 90dc1dcb9..43ca87b9f 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -134,6 +134,13 @@ ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
$(call KCONFIG_DISABLE_OPT,CONFIG_INITRAMFS_COMPRESSION_NONE,$(@D)/.config)
$(call KCONFIG_ENABLE_OPT,CONFIG_INITRAMFS_COMPRESSION_GZIP,$(@D)/.config)
endif
+ifneq ($(BR2_ROOTFS_DEVICE_CREATION_STATIC),y)
+ $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS,$(@D)/.config)
+ $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS_MOUNT,$(@D)/.config)
+endif
+ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV),y)
+ $(call KCONFIG_SET_OPT,CONFIG_UEVENT_HELPER_PATH,\"/sbin/mdev\",$(@D)/.config)
+endif
$(TARGET_MAKE_ENV) $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig
$(Q)touch $@
diff --git a/package/avahi/avahi.mk b/package/avahi/avahi.mk
index 4dfa3547a..fdf039086 100644
--- a/package/avahi/avahi.mk
+++ b/package/avahi/avahi.mk
@@ -64,7 +64,7 @@ AVAHI_CONF_ENV = ac_cv_func_strtod=yes \
jm_cv_func_working_re_compile_pattern=yes \
ac_use_included_regex=no \
avahi_cv_sys_cxx_works=yes \
- DATADIR=share
+ DATADIRNAME=share
AVAHI_CONF_OPT = --localstatedir=/var \
--disable-qt3 \
diff --git a/package/busybox/S10mdev b/package/busybox/S10mdev
new file mode 100644
index 000000000..d2643d023
--- /dev/null
+++ b/package/busybox/S10mdev
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# Start mdev....
+#
+
+case "$1" in
+ start)
+ echo "Starting mdev..."
+ /sbin/mdev -s
+ ;;
+ stop)
+ ;;
+ restart|reload)
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart}"
+ exit 1
+esac
+
+exit $?
diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
index ffd66679e..711d11b0f 100644
--- a/package/busybox/busybox.mk
+++ b/package/busybox/busybox.mk
@@ -28,6 +28,19 @@ ifndef BUSYBOX_CONFIG_FILE
BUSYBOX_CONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG))
endif
+# 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 -m 0755 package/busybox/S10mdev $(TARGET_DIR)/etc/init.d
+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
+
# If we have external syslogd, force busybox to use it
ifeq ($(BR2_PACKAGE_SYSKLOGD),y)
define BUSYBOX_SET_SYSKLOGD
@@ -122,6 +135,7 @@ define BUSYBOX_CONFIGURE_CMDS
$(BUSYBOX_SET_IPV6)
$(BUSYBOX_SET_RPC)
$(BUSYBOX_PREFER_STATIC)
+ $(BUSYBOX_SET_MDEV)
$(BUSYBOX_NETKITBASE)
$(BUSYBOX_NETKITTELNET)
@yes "" | $(MAKE) ARCH=$(KERNEL_ARCH) CROSS_COMPILE="$(TARGET_CROSS)" \
@@ -138,6 +152,7 @@ define BUSYBOX_INSTALL_TARGET_CMDS
$(INSTALL) -m 0755 -D package/busybox/udhcpc.script \
$(TARGET_DIR)/usr/share/udhcpc/default.script; \
fi
+ $(BUSYBOX_INSTALL_MDEV_SCRIPT)
endef
define BUSYBOX_UNINSTALL_TARGET_CMDS
diff --git a/package/dropbear/dropbear-0.53.1-static_build_fix.patch b/package/dropbear/dropbear-0.53.1-static_build_fix.patch
new file mode 100644
index 000000000..0e0a91a27
--- /dev/null
+++ b/package/dropbear/dropbear-0.53.1-static_build_fix.patch
@@ -0,0 +1,26 @@
+dropbear: fix static build
+
+the -lcrypt is missing during the link
+
+svr-authpasswd.o: In function `svr_auth_password':
+svr-authpasswd.c:(.text+0xfc): undefined reference to `crypt'
+collect2: ld returned 1 exit status
+
+Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: b/Makefile.in
+===================================================================
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -77,7 +77,7 @@ STRIP=@STRIP@
+ INSTALL=@INSTALL@
+ CPPFLAGS=@CPPFLAGS@
+ CFLAGS+=-I. -I$(srcdir) $(CPPFLAGS) @CFLAGS@
+-LIBS+=@LIBS@
++LIBS+=@CRYPTLIB@ @LIBS@
+ LDFLAGS=@LDFLAGS@
+
+ EXEEXT=@EXEEXT@
diff --git a/package/dropbear/dropbear.mk b/package/dropbear/dropbear.mk
index fab7c9678..d73e99346 100644
--- a/package/dropbear/dropbear.mk
+++ b/package/dropbear/dropbear.mk
@@ -9,14 +9,13 @@ DROPBEAR_SOURCE = dropbear-$(DROPBEAR_VERSION).tar.gz
DROPBEAR_SITE = http://matt.ucc.asn.au/dropbear/releases
DROPBEAR_DEPENDENCIES = zlib
DROPBEAR_TARGET_BINS = dbclient dropbearkey dropbearconvert scp ssh
-# configure misdetects this as no, but the result is not used for
-# anything. Unfortunately it breaks the build for other packages also
-# checking for struct sockaddr_storage when using a shared config
-# cache, so force it to yes
-DROPBEAR_CONF_ENV = ac_cv_type_struct_sockaddr_storage=yes
DROPBEAR_MAKE = $(MAKE) MULTI=1 SCPPROGRESS=1 \
PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"
+ifeq ($(BR2_PREFER_STATIC_LIB),y)
+DROPBEAR_MAKE += STATIC=1
+endif
+
define DROPBEAR_FIX_XAUTH
$(SED) 's,^#define XAUTH_COMMAND.*/xauth,#define XAUTH_COMMAND "/usr/bin/xauth,g' $(@D)/options.h
endef
diff --git a/package/haserl/Config.in b/package/haserl/Config.in
index ad9a8e91e..7710fa1c3 100644
--- a/package/haserl/Config.in
+++ b/package/haserl/Config.in
@@ -38,4 +38,4 @@ endchoice
config BR2_PACKAGE_HASERL_VERSION
string
default "0.8.0" if BR2_PACKAGE_HASERL_VERSION_0_8_X
- default "0.9.28" if BR2_PACKAGE_HASERL_VERSION_0_9_X
+ default "0.9.29" if BR2_PACKAGE_HASERL_VERSION_0_9_X
diff --git a/package/makedevs/README b/package/makedevs/README
new file mode 100644
index 000000000..6c54052ee
--- /dev/null
+++ b/package/makedevs/README
@@ -0,0 +1,35 @@
+When building a target filesystem, it is desirable to not have to
+become root and then run 'mknod' a thousand times. Using a device
+table you can create device nodes and directories "on the fly".
+
+You can do all sorts of interesting things with a device table file.
+For example, if you want to adjust the permissions on a particular
+file you can just add an entry like:
+
+ /sbin/foobar f 2755 0 0 - - - - -
+
+and (assuming the file /sbin/foobar exists) it will be made setuid
+root (regardless of what its permissions are on the host filesystem.
+
+Furthermore, you can use a single table entry to create a many device
+minors. For example, if I wanted to create /dev/hda and
+/dev/hda[0-15] I could just use the following two table entries:
+
+ /dev/hda b 640 0 0 3 0 0 0 -
+ /dev/hda b 640 0 0 3 1 1 1 15
+
+Device table entries take the form of:
+
+<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
+
+where name is the file name, type can be one of:
+
+ f A regular file
+ d Directory
+ c Character special device file
+ b Block special device file
+ p Fifo (named pipe)
+
+uid is the user id for the target file, gid is the group id for the
+target file. The rest of the entries (major, minor, etc) apply only
+to device special files.
diff --git a/package/multimedia/ffmpeg/Config.in b/package/multimedia/ffmpeg/Config.in
index 7a9513c09..d11233e94 100644
--- a/package/multimedia/ffmpeg/Config.in
+++ b/package/multimedia/ffmpeg/Config.in
@@ -27,6 +27,7 @@ config BR2_PACKAGE_FFMPEG_NONFREE
config BR2_PACKAGE_FFMPEG_FFMPEG
bool "Build ffmpeg (the command line application)"
+ select BR2_PACKAGE_FFMPEG_SWSCALE
default y
help
FFmpeg is a very fast video and audio converter.
diff --git a/package/multimedia/ffmpeg/ffmpeg.mk b/package/multimedia/ffmpeg/ffmpeg.mk
index 1e8f09a30..172bfc0f3 100644
--- a/package/multimedia/ffmpeg/ffmpeg.mk
+++ b/package/multimedia/ffmpeg/ffmpeg.mk
@@ -4,7 +4,7 @@
#
#############################################################
-FFMPEG_VERSION = 0.6.1
+FFMPEG_VERSION = 0.6.3
FFMPEG_SOURCE = ffmpeg-$(FFMPEG_VERSION).tar.bz2
FFMPEG_SITE = http://ffmpeg.org/releases
FFMPEG_INSTALL_STAGING = YES
@@ -13,6 +13,7 @@ FFMPEG_CONF_OPT = \
--prefix=/usr \
--enable-shared \
--disable-avfilter \
+ $(if $(BR2_HAVE_DOCUMENTATION),,--disable-doc)
ifeq ($(BR2_PACKAGE_FFMPEG_GPL),y)
FFMPEG_CONF_OPT += --enable-gpl
@@ -142,6 +143,14 @@ endif
ifeq ($(BR2_cortex_a8),y)
FFMPEG_CONF_OPT += --enable-neon
endif
+# Set powerpc altivec appropriately
+ifeq ($(BR2_powerpc),y)
+ifeq ($(BR2_powerpc_7400)$(BR2_powerpc_7450)$(BR2_powerpc_970),y)
+FFMPEG_CONF_OPT -= --enable-altivec
+else
+FFMPEG_CONF_OPT += --disable-altivec
+endif
+endif
FFMPEG_CONF_OPT += $(call qstrip,$(BR2_PACKAGE_FFMPEG_EXTRACONF))
diff --git a/package/qt/Config.in b/package/qt/Config.in
index b223772cf..eafc855a4 100644
--- a/package/qt/Config.in
+++ b/package/qt/Config.in
@@ -23,12 +23,12 @@ config BR2_PACKAGE_QT_DEMOS
choice
prompt "Library type"
- default BR2_PACKAGE_QT_SHARED
help
Selects the library type: Shared or Static
config BR2_PACKAGE_QT_SHARED
bool "Shared library"
+ depends on !BR2_PREFER_STATIC_LIB
help
Create and use shared Qt libraries.
If you have multiple programs that depend on Qt or intend to use
diff --git a/package/udev/S10udev b/package/udev/S10udev
index 6418f63cb..0d2a23afa 100755
--- a/package/udev/S10udev
+++ b/package/udev/S10udev
@@ -16,12 +16,6 @@
# /dev/zero, /dev/null -- that's needed to boot and run this script.
#
-# old kernels don't use udev
-case $(uname -r) in
- 2.6*|2.7*) ;;
- *) exit 0;;
-esac
-
# Check for missing binaries
UDEV_BIN=/sbin/udevd
test -x $UDEV_BIN || exit 5
@@ -33,41 +27,13 @@ UDEV_CONFIG=/etc/udev/udev.conf
test -r $UDEV_CONFIG || exit 6
. $UDEV_CONFIG
-# Directory where sysfs is mounted
-SYSFS_DIR=/sys
-
case "$1" in
start)
- # mount sysfs if it's not yet mounted
- if [ ! -d $SYSFS_DIR ]; then
- echo "${0}: SYSFS_DIR \"$SYSFS_DIR\" not found"
- exit 1
- fi
- grep -q "^sysfs $SYSFS_DIR" /proc/mounts ||
- mount -t sysfs /sys /sys ||
- exit 1
-
- # mount $udev_root as ramfs if it's not yet mounted
- # we know 2.6 kernels always support ramfs
- if [ ! -d $udev_root ]; then
- echo "${0}: udev_root \"$udev_root\" not found"
- exit 1
- fi
- grep -q "^udev $udev_root" /proc/mounts ||
- mount -t ramfs udev $udev_root ||
- exit 1
-
- mkdir $udev_root/pts $udev_root/shm
mknod -m 0666 /dev/null c 1 3
- mknod -m 0666 /dev/zero c 1 5
- mknod -m 0600 /dev/console c 5 1
-
- # populate /dev (normally)
echo -n "Populating $udev_root using udev: "
echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
$UDEV_BIN -d || (echo "FAIL" && exit 1)
$UDEVSTART_BIN || (echo "FAIL" && exit 1)
- mount -t devpts /dev/pts /dev/pts || (echo "FAIL" && exit 1)
echo "done"
;;
stop)
diff --git a/target/generic/Config.in b/target/generic/Config.in
index c624ba872..4969fcdc4 100644
--- a/target/generic/Config.in
+++ b/target/generic/Config.in
@@ -12,13 +12,70 @@ config BR2_TARGET_GENERIC_ISSUE
help
Select system banner (/etc/issue) to be displayed at login.
-menuconfig BR2_TARGET_GENERIC_GETTY
- bool "Generic serial port config"
+choice
+ prompt "/dev management"
+ default BR2_ROOTFS_DEVICE_CREATION_STATIC
+
+config BR2_ROOTFS_DEVICE_CREATION_STATIC
+ bool "Static using device table"
+
+config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS
+ bool "Dynamic using devtmpfs only"
+
+config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV
+ bool "Dynamic using mdev"
+ select BR2_PACKAGE_BUSYBOX
+
+config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
+ bool "Dynamic using udev"
+ select BR2_PACKAGE_UDEV
+
+endchoice
+
+config BR2_ROOTFS_DEVICE_TABLE
+ string "Path to the device tables"
+ default "target/generic/device_table.txt target/generic/device_table_dev.txt" \
+ if BR2_ROOTFS_DEVICE_CREATION_STATIC
+ default "target/generic/device_table.txt" \
+ if (BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV || \
+ BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV || \
+ BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS)
+ help
+ Specify a space-separated list of device table locations,
+ that will be passed to the makedevs utility to create all
+ the special device files and assign correct owners and
+ permissions on various files in the target filesystem.
+
+ See package/makedevs/README for details on the usage and
+ syntax of these files.
+
+choice
+ prompt "Root FS skeleton"
-if BR2_TARGET_GENERIC_GETTY
+config BR2_ROOTFS_SKELETON_DEFAULT
+ bool "default target skeleton"
+ help
+ Use default target skeleton
+
+config BR2_ROOTFS_SKELETON_CUSTOM
+ bool "custom target skeleton"
+ help
+ Use custom target skeleton.
+
+endchoice
+
+if BR2_ROOTFS_SKELETON_CUSTOM
+config BR2_ROOTFS_SKELETON_CUSTOM_PATH
+ string "custom target skeleton path"
+ default "fs/skeleton"
+ help
+ Path custom target skeleton.
+endif
+
+if BR2_ROOTFS_SKELETON_DEFAULT
config BR2_TARGET_GENERIC_GETTY_PORT
- string "Serial port to run a getty on"
+ string "Port to run a getty (login prompt) on"
default "ttyS0"
help
Specify a port to run a getty (login prompt) on.
@@ -52,6 +109,21 @@ config BR2_TARGET_GENERIC_GETTY_BAUDRATE
default "57600" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600
default "115200" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200
-endif # BR2_TARGET_GENERIC_GETTY
+endif # BR2_ROOTFS_SKELETON_DEFAULT
+
+config BR2_ROOTFS_POST_BUILD_SCRIPT
+ string "Custom script to run before creating filesystem images"
+ default ""
+ help
+ Specify a script to be run after the build has finished and before
+ Buildroot starts packing the files into selected filesystem images.
+
+ This gives users the oportunity to do board-specific cleanups,
+ add-ons and the like, so the generated files can be used directly
+ without further processing.
+
+ The script is called with the target directory name as first and
+ only argument. Make sure the exit code of that script is 0,
+ otherwise make will stop after calling it.
endmenu
diff --git a/target/generic/Makefile.in b/target/generic/Makefile.in
index ba6e4b060..ce07ecfd0 100644
--- a/target/generic/Makefile.in
+++ b/target/generic/Makefile.in
@@ -31,7 +31,7 @@ ifneq ($(TARGET_GENERIC_ISSUE),)
TARGETS += target-generic-issue
endif
-ifeq ($(BR2_TARGET_GENERIC_GETTY),y)
+ifeq ($(BR2_ROOTFS_SKELETON_DEFAULT),y)
ifeq ($(BR2_PACKAGE_SYSVINIT),y)
TARGETS += target-generic-getty-sysvinit
else
diff --git a/target/generic/device_table.txt b/target/generic/device_table.txt
index 38fe1e8e3..12f35b275 100644
--- a/target/generic/device_table.txt
+++ b/target/generic/device_table.txt
@@ -1,44 +1,15 @@
-# When building a target filesystem, it is desirable to not have to
-# become root and then run 'mknod' a thousand times. Using a device
-# table you can create device nodes and directories "on the fly".
+# See package/makedevs/README for details
#
-# This is a sample device table file for use with genext2fs. You can
-# do all sorts of interesting things with a device table file. For
-# example, if you want to adjust the permissions on a particular file
-# you can just add an entry like:
-# /sbin/foobar f 2755 0 0 - - - - -
-# and (assuming the file /sbin/foobar exists) it will be made setuid
-# root (regardless of what its permissions are on the host filesystem.
-# Furthermore, you can use a single table entry to create a many device
-# minors. For example, if I wanted to create /dev/hda and /dev/hda[0-15]
-# I could just use the following two table entries:
-# /dev/hda b 640 0 0 3 0 0 0 -
-# /dev/hda b 640 0 0 3 1 1 1 15
-#
-# Device table entries take the form of:
-# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
-# where name is the file name, type can be one of:
-# f A regular file
-# d Directory
-# c Character special device file
-# b Block special device file
-# p Fifo (named pipe)
-# uid is the user id for the target file, gid is the group id for the
-# target file. The rest of the entries (major, minor, etc) apply only
-# to device special files.
-
-# Have fun
-# -Erik Andersen <andersen@codepoet.org>
+# This device table is used to assign proper ownership and permissions
+# on various files. It doesn't create any device file, as it is used
+# in both static device configurations (where /dev/ is static) and in
+# dynamic configurations (where devtmpfs, mdev or udev are used).
#
-
-#<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
-/dev d 755 0 0 - - - - -
-/dev/pts d 755 0 0 - - - - -
-/dev/shm d 755 0 0 - - - - -
-/tmp d 1777 0 0 - - - - -
-/etc d 755 0 0 - - - - -
-/home/default d 2755 1000 1000 - - - - -
-#<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
+# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
+/dev d 755 0 0 - - - - -
+/tmp d 1777 0 0 - - - - -
+/etc d 755 0 0 - - - - -
+/home/default d 2755 1000 1000 - - - - -
/bin/busybox f 4755 0 0 - - - - -
/etc/shadow f 600 0 0 - - - - -
/etc/passwd f 644 0 0 - - - - -
@@ -48,140 +19,4 @@
/etc/network/if-post-down.d d 755 0 0 - - - - -
/usr/share/udhcpc/default.script f 755 0 0 - - - - -
# uncomment this to allow starting x as non-root
-#/usr/X11R6/bin/Xfbdev f 4755 0 0 - - - - -
-# Normal system devices
-/dev/mem c 640 0 0 1 1 0 0 -
-/dev/kmem c 640 0 0 1 2 0 0 -
-/dev/null c 666 0 0 1 3 0 0 -
-/dev/zero c 666 0 0 1 5 0 0 -
-/dev/random c 666 0 0 1 8 0 0 -
-/dev/urandom c 666 0 0 1 9 0 0 -
-/dev/ram b 640 0 0 1 1 0 0 -
-/dev/ram b 640 0 0 1 0 0 1 4
-/dev/loop b 640 0 0 7 0 0 1 2
-/dev/rtc c 640 0 0 10 135 - - -
-/dev/console c 666 0 0 5 1 - - -
-/dev/tty c 666 0 0 5 0 - - -
-/dev/tty c 666 0 0 4 0 0 1 8
-/dev/ttyp c 666 0 0 3 0 0 1 10
-/dev/ptyp c 666 0 0 2 0 0 1 10
-/dev/ptmx c 666 0 0 5 2 - - -
-/dev/ttyP c 666 0 0 57 0 0 1 4
-/dev/ttyS c 666 0 0 4 64 0 1 4
-/dev/fb c 640 0 5 29 0 0 1 4
-#/dev/ttySA c 666 0 0 204 5 0 1 3
-/dev/psaux c 666 0 0 10 1 0 0 -
-#/dev/ppp c 666 0 0 108 0 - - -
-/dev/ttyAM c 666 0 0 204 16 0 1 3
-/dev/ttyCPM c 666 0 0 204 46 0 1 4
-/dev/ttyAMA c 666 0 0 204 64 0 1 4
-/dev/ttySAC c 666 0 0 204 64 0 1 4
-/dev/ttySC c 666 0 0 204 8 0 1 6
-/dev/ttyPSC c 666 0 0 204 148 0 1 4
-/dev/ttyUL c 666 0 0 204 187 0 1 4
-/dev/ttymxc c 666 0 0 207 16 0 1 3
-
-# Input stuff
-/dev/input d 755 0 0 - - - - -
-/dev/input/mice c 640 0 0 13 63 0 0 -
-/dev/input/mouse c 660 0 0 13 32 0 1 4
-/dev/input/event c 660 0 0 13 64 0 1 4
-#/dev/input/js c 660 0 0 13 0 0 1 4
-
-
-# MTD stuff
-/dev/mtd c 640 0 0 90 0 0 2 4
-/dev/mtdblock b 640 0 0 31 0 0 1 4
-
-#Tun/tap driver
-/dev/net d 755 0 0 - - - - -
-/dev/net/tun c 660 0 0 10 200 - - -
-
-# Audio stuff
-#/dev/audio c 666 0 29 14 4 - - -
-#/dev/audio1 c 666 0 29 14 20 - - -
-#/dev/dsp c 666 0 29 14 3 - - -
-#/dev/dsp1 c 666 0 29 14 19 - - -
-#/dev/sndstat c 666 0 29 14 6 - - -
-
-# User-mode Linux stuff
-#/dev/ubda b 640 0 0 98 0 0 0 -
-#/dev/ubda b 640 0 0 98 1 1 1 15
-
-# IDE Devices
-/dev/hda b 640 0 0 3 0 0 0 -
-/dev/hda b 640 0 0 3 1 1 1 15
-/dev/hdb b 640 0 0 3 64 0 0 -
-/dev/hdb b 640 0 0 3 65 1 1 15
-#/dev/hdc b 640 0 0 22 0 0 0 -
-#/dev/hdc b 640 0 0 22 1 1 1 15
-#/dev/hdd b 640 0 0 22 64 0 0 -
-#/dev/hdd b 640 0 0 22 65 1 1 15
-#/dev/hde b 640 0 0 33 0 0 0 -
-#/dev/hde b 640 0 0 33 1 1 1 15
-#/dev/hdf b 640 0 0 33 64 0 0 -
-#/dev/hdf b 640 0 0 33 65 1 1 15
-#/dev/hdg b 640 0 0 34 0 0 0 -
-#/dev/hdg b 640 0 0 34 1 1 1 15
-#/dev/hdh b 640 0 0 34 64 0 0 -
-#/dev/hdh b 640 0 0 34 65 1 1 15
-
-# SCSI Devices
-/dev/sda b 640 0 0 8 0 0 0 -
-/dev/sda b 640 0 0 8 1 1 1 15
-/dev/sdb b 640 0 0 8 16 0 0 -
-/dev/sdb b 640 0 0 8 17 1 1 15
-#/dev/sdc b 640 0 0 8 32 0 0 -
-#/dev/sdc b 640 0 0 8 33 1 1 15
-#/dev/sdd b 640 0 0 8 48 0 0 -
-#/dev/sdd b 640 0 0 8 49 1 1 15
-#/dev/sde b 640 0 0 8 64 0 0 -
-#/dev/sde b 640 0 0 8 65 1 1 15
-#/dev/sdf b 640 0 0 8 80 0 0 -
-#/dev/sdf b 640 0 0 8 81 1 1 15
-#/dev/sdg b 640 0 0 8 96 0 0 -
-#/dev/sdg b 640 0 0 8 97 1 1 15
-#/dev/sdh b 640 0 0 8 112 0 0 -
-#/dev/sdh b 640 0 0 8 113 1 1 15
-#/dev/sg c 640 0 0 21 0 0 1 15
-#/dev/scd b 640 0 0 11 0 0 1 15
-#/dev/st c 640 0 0 9 0 0 1 8
-#/dev/nst c 640 0 0 9 128 0 1 8
-#/dev/st c 640 0 0 9 32 1 1 4
-#/dev/st c 640 0 0 9 64 1 1 4
-#/dev/st c 640 0 0 9 96 1 1 4
-
-# USB block devices (ub driver)
-/dev/uba b 640 0 0 180 0 0 0 -
-/dev/uba b 640 0 0 180 1 1 1 6
-/dev/ubb b 640 0 0 180 8 0 0 -
-/dev/ubb b 640 0 0 180 65 1 1 6
-
-# Floppy disk devices
-#/dev/fd b 640 0 0 2 0 0 1 2
-#/dev/fd0d360 b 640 0 0 2 4 0 0 -
-#/dev/fd1d360 b 640 0 0 2 5 0 0 -
-#/dev/fd0h1200 b 640 0 0 2 8 0 0 -
-#/dev/fd1h1200 b 640 0 0 2 9 0 0 -
-#/dev/fd0u1440 b 640 0 0 2 28 0 0 -
-#/dev/fd1u1440 b 640 0 0 2 29 0 0 -
-#/dev/fd0u2880 b 640 0 0 2 32 0 0 -
-#/dev/fd1u2880 b 640 0 0 2 33 0 0 -
-
-# All the proprietary cdrom devices in the world
-#/dev/aztcd b 640 0 0 29 0 0 0 -
-#/dev/bpcd b 640 0 0 41 0 0 0 -
-#/dev/capi20 c 640 0 0 68 0 0 1 2
-#/dev/cdu31a b 640 0 0 15 0 0 0 -
-#/dev/cdu535 b 640 0 0 24 0 0 0 -
-#/dev/cm206cd b 640 0 0 32 0 0 0 -
-#/dev/sjcd b 640 0 0 18 0 0 0 -
-#/dev/sonycd b 640 0 0 15 0 0 0 -
-#/dev/gscd b 640 0 0 16 0 0 0 -
-#/dev/sbpcd b 640 0 0 25 0 0 0 -
-#/dev/sbpcd b 640 0 0 25 0 0 1 4
-#/dev/mcd b 640 0 0 23 0 0 0 -
-#/dev/optcd b 640 0 0 17 0 0 0 -
-
-# I2C device nodes
-/dev/i2c- c 666 0 0 89 0 0 1 4
+#/usr/X11R6/bin/Xfbdev f 4755 0 0 - - - - -
diff --git a/target/generic/device_table_dev.txt b/target/generic/device_table_dev.txt
new file mode 100644
index 000000000..a3d53d460
--- /dev/null
+++ b/target/generic/device_table_dev.txt
@@ -0,0 +1,143 @@
+# See package/makedevs/README for details
+#
+# This device table is used only to create device files when a static
+# device configuration is used (entries in /dev are static).
+#
+# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
+
+# Normal system devices
+/dev/mem c 640 0 0 1 1 0 0 -
+/dev/kmem c 640 0 0 1 2 0 0 -
+/dev/null c 666 0 0 1 3 0 0 -
+/dev/zero c 666 0 0 1 5 0 0 -
+/dev/random c 666 0 0 1 8 0 0 -
+/dev/urandom c 666 0 0 1 9 0 0 -
+/dev/ram b 640 0 0 1 1 0 0 -
+/dev/ram b 640 0 0 1 0 0 1 4
+/dev/loop b 640 0 0 7 0 0 1 2
+/dev/rtc c 640 0 0 10 135 - - -
+/dev/console c 666 0 0 5 1 - - -
+/dev/tty c 666 0 0 5 0 - - -
+/dev/tty c 666 0 0 4 0 0 1 8
+/dev/ttyp c 666 0 0 3 0 0 1 10
+/dev/ptyp c 666 0 0 2 0 0 1 10
+/dev/ptmx c 666 0 0 5 2 - - -
+/dev/ttyP c 666 0 0 57 0 0 1 4
+/dev/ttyS c 666 0 0 4 64 0 1 4
+/dev/fb c 640 0 5 29 0 0 1 4
+#/dev/ttySA c 666 0 0 204 5 0 1 3
+/dev/psaux c 666 0 0 10 1 0 0 -
+#/dev/ppp c 666 0 0 108 0 - - -
+/dev/ttyAM c 666 0 0 204 16 0 1 3
+/dev/ttyCPM c 666 0 0 204 46 0 1 4
+/dev/ttyAMA c 666 0 0 204 64 0 1 4
+/dev/ttySAC c 666 0 0 204 64 0 1 4
+/dev/ttySC c 666 0 0 204 8 0 1 6
+/dev/ttyPSC c 666 0 0 204 148 0 1 4
+/dev/ttyUL c 666 0 0 204 187 0 1 4
+/dev/ttymxc c 666 0 0 207 16 0 1 3
+
+# Input stuff
+/dev/input d 755 0 0 - - - - -
+/dev/input/mice c 640 0 0 13 63 0 0 -
+/dev/input/mouse c 660 0 0 13 32 0 1 4
+/dev/input/event c 660 0 0 13 64 0 1 4
+#/dev/input/js c 660 0 0 13 0 0 1 4
+
+
+# MTD stuff
+/dev/mtd c 640 0 0 90 0 0 2 4
+/dev/mtdblock b 640 0 0 31 0 0 1 4
+
+#Tun/tap driver
+/dev/net d 755 0 0 - - - - -
+/dev/net/tun c 660 0 0 10 200 - - -
+
+# Audio stuff
+#/dev/audio c 666 0 29 14 4 - - -
+#/dev/audio1 c 666 0 29 14 20 - - -
+#/dev/dsp c 666 0 29 14 3 - - -
+#/dev/dsp1 c 666 0 29 14 19 - - -
+#/dev/sndstat c 666 0 29 14 6 - - -
+
+# User-mode Linux stuff
+#/dev/ubda b 640 0 0 98 0 0 0 -
+#/dev/ubda b 640 0 0 98 1 1 1 15
+
+# IDE Devices
+/dev/hda b 640 0 0 3 0 0 0 -
+/dev/hda b 640 0 0 3 1 1 1 15
+/dev/hdb b 640 0 0 3 64 0 0 -
+/dev/hdb b 640 0 0 3 65 1 1 15
+#/dev/hdc b 640 0 0 22 0 0 0 -
+#/dev/hdc b 640 0 0 22 1 1 1 15
+#/dev/hdd b 640 0 0 22 64 0 0 -
+#/dev/hdd b 640 0 0 22 65 1 1 15
+#/dev/hde b 640 0 0 33 0 0 0 -
+#/dev/hde b 640 0 0 33 1 1 1 15
+#/dev/hdf b 640 0 0 33 64 0 0 -
+#/dev/hdf b 640 0 0 33 65 1 1 15
+#/dev/hdg b 640 0 0 34 0 0 0 -
+#/dev/hdg b 640 0 0 34 1 1 1 15
+#/dev/hdh b 640 0 0 34 64 0 0 -
+#/dev/hdh b 640 0 0 34 65 1 1 15
+
+# SCSI Devices
+/dev/sda b 640 0 0 8 0 0 0 -
+/dev/sda b 640 0 0 8 1 1 1 15
+/dev/sdb b 640 0 0 8 16 0 0 -
+/dev/sdb b 640 0 0 8 17 1 1 15
+#/dev/sdc b 640 0 0 8 32 0 0 -
+#/dev/sdc b 640 0 0 8 33 1 1 15
+#/dev/sdd b 640 0 0 8 48 0 0 -
+#/dev/sdd b 640 0 0 8 49 1 1 15
+#/dev/sde b 640 0 0 8 64 0 0 -
+#/dev/sde b 640 0 0 8 65 1 1 15
+#/dev/sdf b 640 0 0 8 80 0 0 -
+#/dev/sdf b 640 0 0 8 81 1 1 15
+#/dev/sdg b 640 0 0 8 96 0 0 -
+#/dev/sdg b 640 0 0 8 97 1 1 15
+#/dev/sdh b 640 0 0 8 112 0 0 -
+#/dev/sdh b 640 0 0 8 113 1 1 15
+#/dev/sg c 640 0 0 21 0 0 1 15
+#/dev/scd b 640 0 0 11 0 0 1 15
+#/dev/st c 640 0 0 9 0 0 1 8
+#/dev/nst c 640 0 0 9 128 0 1 8
+#/dev/st c 640 0 0 9 32 1 1 4
+#/dev/st c 640 0 0 9 64 1 1 4
+#/dev/st c 640 0 0 9 96 1 1 4
+
+# USB block devices (ub driver)
+/dev/uba b 640 0 0 180 0 0 0 -
+/dev/uba b 640 0 0 180 1 1 1 6
+/dev/ubb b 640 0 0 180 8 0 0 -
+/dev/ubb b 640 0 0 180 65 1 1 6
+
+# Floppy disk devices
+#/dev/fd b 640 0 0 2 0 0 1 2
+#/dev/fd0d360 b 640 0 0 2 4 0 0 -
+#/dev/fd1d360 b 640 0 0 2 5 0 0 -
+#/dev/fd0h1200 b 640 0 0 2 8 0 0 -
+#/dev/fd1h1200 b 640 0 0 2 9 0 0 -
+#/dev/fd0u1440 b 640 0 0 2 28 0 0 -
+#/dev/fd1u1440 b 640 0 0 2 29 0 0 -
+#/dev/fd0u2880 b 640 0 0 2 32 0 0 -
+#/dev/fd1u2880 b 640 0 0 2 33 0 0 -
+
+# All the proprietary cdrom devices in the world
+#/dev/aztcd b 640 0 0 29 0 0 0 -
+#/dev/bpcd b 640 0 0 41 0 0 0 -
+#/dev/capi20 c 640 0 0 68 0 0 1 2
+#/dev/cdu31a b 640 0 0 15 0 0 0 -
+#/dev/cdu535 b 640 0 0 24 0 0 0 -
+#/dev/cm206cd b 640 0 0 32 0 0 0 -
+#/dev/sjcd b 640 0 0 18 0 0 0 -
+#/dev/sonycd b 640 0 0 15 0 0 0 -
+#/dev/gscd b 640 0 0 16 0 0 0 -
+#/dev/sbpcd b 640 0 0 25 0 0 0 -
+#/dev/sbpcd b 640 0 0 25 0 0 1 4
+#/dev/mcd b 640 0 0 23 0 0 0 -
+#/dev/optcd b 640 0 0 17 0 0 0 -
+
+# I2C device nodes
+/dev/i2c- c 666 0 0 89 0 0 1 4
diff --git a/toolchain/kernel-headers/Config.in b/toolchain/kernel-headers/Config.in
index 6bf4d6fe3..da6f1c3fc 100644
--- a/toolchain/kernel-headers/Config.in
+++ b/toolchain/kernel-headers/Config.in
@@ -46,6 +46,6 @@ config BR2_DEFAULT_KERNEL_HEADERS
default "2.6.35.13" if BR2_KERNEL_HEADERS_2_6_35
default "2.6.36.4" if BR2_KERNEL_HEADERS_2_6_36
default "2.6.37.6" if BR2_KERNEL_HEADERS_2_6_37
- default "2.6.38.5" if BR2_KERNEL_HEADERS_2_6_38
+ default "2.6.38.6" if BR2_KERNEL_HEADERS_2_6_38
default "2.6" if BR2_KERNEL_HEADERS_SNAP
default $BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION