Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/5] Provides a framework and initial modules for initramfs
@ 2011-12-06 16:07 Otavio Salvador
  2011-12-06 16:07 ` [PATCH 1/5] initramfs-base: provides the base for a modular initramfs Otavio Salvador
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Otavio Salvador @ 2011-12-06 16:07 UTC (permalink / raw)
  To: openembedded-core

This patchset adds a very flexible and powerful initramfs framework
together with a small set of modules using it. Please refer to each
commit for the respective documentation.

The following changes since commit fb642d21111691b9302e16e984aff9d8fb18c431:

  buildhistory bbclass: avoid absolute paths for files-in-image.txt to avoid diff churn when relocating TMPDIR (2011-12-06 14:40:00 +0000)

are available in the git repository at:
  git://github.com/OSSystems/oe-core master
  https://github.com/OSSystems/oe-core/tree/HEAD

Otavio Salvador (5):
  initramfs-base: provides the base for a modular initramfs
  initramfs-module-debug: add
  initramfs-module-mdev: add
  initramfs-module-e2fs: add
  initramfs-module-udev: add

 .../initrdscripts/initramfs-base/finish            |   42 ++++++
 .../recipes-core/initrdscripts/initramfs-base/init |  136 ++++++++++++++++++++
 .../initrdscripts/initramfs-base_1.0.bb            |   17 +++
 .../initrdscripts/initramfs-module-debug/debug     |   82 ++++++++++++
 .../initrdscripts/initramfs-module-debug_1.0.bb    |   15 ++
 .../initrdscripts/initramfs-module-e2fs/e2fs       |   28 ++++
 .../initrdscripts/initramfs-module-e2fs_1.0.bb     |   15 ++
 .../initrdscripts/initramfs-module-mdev/mdev       |   30 +++++
 .../initrdscripts/initramfs-module-mdev_1.0.bb     |   16 +++
 .../initrdscripts/initramfs-module-udev/udev       |   22 +++
 .../initrdscripts/initramfs-module-udev_1.0.bb     |   16 +++
 11 files changed, 419 insertions(+), 0 deletions(-)
 create mode 100755 meta/recipes-core/initrdscripts/initramfs-base/finish
 create mode 100755 meta/recipes-core/initrdscripts/initramfs-base/init
 create mode 100644 meta/recipes-core/initrdscripts/initramfs-base_1.0.bb
 create mode 100644 meta/recipes-core/initrdscripts/initramfs-module-debug/debug
 create mode 100644 meta/recipes-core/initrdscripts/initramfs-module-debug_1.0.bb
 create mode 100755 meta/recipes-core/initrdscripts/initramfs-module-e2fs/e2fs
 create mode 100644 meta/recipes-core/initrdscripts/initramfs-module-e2fs_1.0.bb
 create mode 100644 meta/recipes-core/initrdscripts/initramfs-module-mdev/mdev
 create mode 100644 meta/recipes-core/initrdscripts/initramfs-module-mdev_1.0.bb
 create mode 100644 meta/recipes-core/initrdscripts/initramfs-module-udev/udev
 create mode 100644 meta/recipes-core/initrdscripts/initramfs-module-udev_1.0.bb

-- 
1.7.2.5




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/5] initramfs-base: provides the base for a modular initramfs
  2011-12-06 16:07 [PATCH 0/5] Provides a framework and initial modules for initramfs Otavio Salvador
@ 2011-12-06 16:07 ` Otavio Salvador
  2011-12-06 16:07 ` [PATCH 2/5] initramfs-module-debug: add Otavio Salvador
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Otavio Salvador @ 2011-12-06 16:07 UTC (permalink / raw)
  To: openembedded-core

Provides the API to be used by the initramfs module. The modules need
to provide the following functions:

 <module>_enabled : check if the module ought to run (return 1 to skip)
 <module>_run     : do what is need

Boot parameters are available on environment in the as:

 'foo=value' as 'bootparam_foo=value'
 'foo' as 'bootparam_foo=true'

Another possibility is to add hooks to be run before and/or after a
module to be run, allowing for fancy features as dynamic debug shells
and like.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
 .../initrdscripts/initramfs-base/finish            |   42 ++++++
 .../recipes-core/initrdscripts/initramfs-base/init |  136 ++++++++++++++++++++
 .../initrdscripts/initramfs-base_1.0.bb            |   17 +++
 3 files changed, 195 insertions(+), 0 deletions(-)
 create mode 100755 meta/recipes-core/initrdscripts/initramfs-base/finish
 create mode 100755 meta/recipes-core/initrdscripts/initramfs-base/init
 create mode 100644 meta/recipes-core/initrdscripts/initramfs-base_1.0.bb

diff --git a/meta/recipes-core/initrdscripts/initramfs-base/finish b/meta/recipes-core/initrdscripts/initramfs-base/finish
new file mode 100755
index 0000000..8139b42
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/initramfs-base/finish
@@ -0,0 +1,42 @@
+#!/bin/sh
+# Copyright (C) 2011 O.S. Systems Software LTDA.
+# Licensed on MIT
+
+finish_enabled() {
+	return 0
+}
+
+finish_run() {
+	if [ -n "$ROOTFS_DIR" ]; then
+		if [ -n "$bootparam_rootdelay" ]; then
+			debug "Sleeping for $rootdelay second(s) to wait root to settle..."
+			sleep $bootparam_rootdelay
+		fi
+
+		if [ -n "$bootparam_root" ]; then
+			debug "No e2fs compatible filesystem has been mounted, mounting $bootparam_root..."
+
+			if [ -e "$bootparam_root" ]; then
+				mount $bootparam_root $ROOTFS_DIR
+			else
+				debug "root '$bootparam_root' doesn't exist."
+			fi
+		fi
+
+		if [ ! -d $ROOTFS_DIR/dev ]; then
+			fatal "ERROR: There's no '/dev' on rootfs."
+		fi
+
+		info "Switching root to '$ROOTFS_DIR'..."
+
+		debug "Moving /dev, /proc and /sys onto rootfs..."
+		mount --move /dev $ROOTFS_DIR/dev
+		mount --move /proc $ROOTFS_DIR/proc
+		mount --move /sys $ROOTFS_DIR/sys
+
+		cd $ROOTFS_DIR
+		exec switch_root -c /dev/console $ROOTFS_DIR /sbin/init
+	else
+		debug "No rootfs has been set"
+	fi
+}
diff --git a/meta/recipes-core/initrdscripts/initramfs-base/init b/meta/recipes-core/initrdscripts/initramfs-base/init
new file mode 100755
index 0000000..fc4b0db
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/initramfs-base/init
@@ -0,0 +1,136 @@
+#!/bin/sh
+# Copyright (C) 2011 O.S. Systems Software LTDA.
+# Licensed on MIT
+#
+# Provides the API to be used by the initramfs modules
+#
+# Modules need to provide the following functions:
+#
+# <module>_enabled : check if the module ought to run (return 1 to skip)
+# <module>_run     : do what is need
+#
+# Boot parameters are available on environment in the as:
+#
+# 'foo=value' as 'bootparam_foo=value'
+# 'foo' as 'bootparam_foo=true'
+
+# Register a function to be called before running a module
+# The hook is called as:
+#   <function> pre <module>
+add_module_pre_hook() {
+	MODULE_PRE_HOOKS="$MODULE_PRE_HOOKS $1"
+}
+
+# Register a function to be called after running a module
+# The hook is called as:
+#   <function> post <module>
+add_module_post_hook() {
+	MODULE_POST_HOOKS="$MODULE_POST_HOOKS $1"
+}
+
+# Load kernel module
+load_kernel_module() {
+	if modprobe $1 >/dev/null 2>&1; then
+		info "Loaded module $1"
+	else
+		debug "Failed to load module $1"
+	fi
+}
+
+# Prints information
+msg() {
+	echo "$@" >/dev/console
+}
+
+# Prints information if verbose bootparam is used
+info() {
+	[ -n "$bootparam_verbose" ] && echo "$@" >/dev/console
+}
+
+# Prints information if debug bootparam is used
+debug() {
+	[ -n "$bootparam_debug" ] && echo "DEBUG: $@" >/dev/console
+}
+
+# Prints a message and start a endless loop
+fatal() {
+    echo $1 >/dev/console
+    echo >/dev/console
+
+	while [ "true" ]; do
+		sleep 3600
+	done
+}
+
+# Variables shared amoung modules
+ROOTFS_DIR="/rootfs" # where to do the switch root
+MODULE_PRE_HOOKS=""  # functions to call before running each module
+MODULE_POST_HOOKS="" # functions to call after running each module
+MODULES_DIR=/init.d  # place to look for modules
+
+# initialize /proc and /sys
+mkdir -p /proc /sys
+mount -t proc proc /proc
+mount -t sysfs sysfs /sys
+
+# populate bootparam environment
+for p in `cat /proc/cmdline`; do
+	opt="${p%%=*}"
+	opt=${opt/-/_}
+	if [ "${p/=/}" = "$p" ]; then
+		eval "bootparam_${opt}=true"
+	else
+		eval "bootparam_${opt}=\"${p#*=}\""
+	fi
+done
+
+# use /dev with devtmpfs
+if grep -q devtmpfs /proc/filesystems; then
+	mkdir -p /dev
+	mount -t devtmpfs devtmpfs /dev
+else
+	if [ ! -d /dev ]; then
+		fatal "ERROR: /dev doesn't exist and kernel doesn't has devtmpfs enabled."
+	fi
+fi
+
+mkdir $ROOTFS_DIR
+
+# Load and run modules
+for m in $MODULES_DIR/*; do
+	# Skip backup files
+	if [ "${m/\~/}" != "$m" ]; then
+		continue
+	fi
+
+	module=`basename $m | cut -d'-' -f 2`
+	debug "Loading module $module"
+
+	# pre hooks
+	for h in $MODULE_PRE_HOOKS; do
+		debug "Calling module hook (pre): $h"
+		eval "$h pre $module"
+		debug "Finished module hook (pre): $h"
+	done
+
+	# process module
+	source $m
+
+	if ! eval "${module}_enabled"; then
+		debug "Skipping module $module"
+		continue
+	fi
+
+	debug "Running ${module}_run"
+	eval "${module}_run"
+
+	# post hooks
+	for h in $MODULE_POST_HOOKS; do
+		debug "Calling module hook (post): $h"
+		eval "$h post $module"
+		debug "Finished module hook (post): $h"
+	done
+done
+
+# Catch all
+fatal "ERROR: Initramfs failed to initialize the system."
diff --git a/meta/recipes-core/initrdscripts/initramfs-base_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-base_1.0.bb
new file mode 100644
index 0000000..e98e0f5
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/initramfs-base_1.0.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "initramfs modular system base"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+RDEPENDS = "busybox"
+
+inherit allarch
+
+SRC_URI = "file://init \
+           file://finish"
+
+do_install() {
+    install -d ${D}/init.d
+    install -m 0755 ${WORKDIR}/init ${D}/init
+    install -m 0755 ${WORKDIR}/finish ${D}/init.d/99-finish
+}
+
+FILES_${PN} = "/init /init.d/*"
-- 
1.7.2.5




^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/5] initramfs-module-debug: add
  2011-12-06 16:07 [PATCH 0/5] Provides a framework and initial modules for initramfs Otavio Salvador
  2011-12-06 16:07 ` [PATCH 1/5] initramfs-base: provides the base for a modular initramfs Otavio Salvador
@ 2011-12-06 16:07 ` Otavio Salvador
  2011-12-06 16:07 ` [PATCH 3/5] initramfs-module-mdev: add Otavio Salvador
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Otavio Salvador @ 2011-12-06 16:07 UTC (permalink / raw)
  To: openembedded-core

Adds support to dynamic debugging of initramfs using bootparam in
following format:

 - shell                 : starts a shell before and after each module
 - shell=before:<module> : starts a shell before <module> is loaded and run
 - shell=after:<module>  : starts a shell after <module> is loaded and run

 - shell-debug                 : run set -x as soon as possible
 - shell-debug=before:<module> : run set -x before <module> is loaded and run
 - shell-debug=after:<module>  : run set -x after <module> is loaded and run

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
 .../initrdscripts/initramfs-module-debug/debug     |   82 ++++++++++++++++++++
 .../initrdscripts/initramfs-module-debug_1.0.bb    |   15 ++++
 2 files changed, 97 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-core/initrdscripts/initramfs-module-debug/debug
 create mode 100644 meta/recipes-core/initrdscripts/initramfs-module-debug_1.0.bb

diff --git a/meta/recipes-core/initrdscripts/initramfs-module-debug/debug b/meta/recipes-core/initrdscripts/initramfs-module-debug/debug
new file mode 100644
index 0000000..00bfd7d
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/initramfs-module-debug/debug
@@ -0,0 +1,82 @@
+#!/bin/sh
+# Copyright (C) 2011 O.S. Systems Software LTDA.
+# Licensed on MIT
+
+# Adds support to dynamic debugging of initramfs using bootparam in
+# following format:
+#   shell                 : starts a shell before and after each module
+#   shell=before:<module> : starts a shell before <module> is loaded and run
+#   shell=after:<module>  : starts a shell after <module> is loaded and run
+#
+#   shell-debug                 : run set -x as soon as possible
+#   shell-debug=before:<module> : run set -x before <module> is loaded and run
+#   shell-debug=after:<module>  : run set -x after <module> is loaded and run
+
+DEBUG_SHELL="false"
+
+debug_hook_handler() {
+	status=$1
+	module=$2
+
+	if [ -n "$bootparam_shell" ] && [ "$bootparam_shell" != "true" ]; then
+		shell_wanted_status=`expr $bootparam_shell : '\(.*\):.*'`
+		shell_wanted_module=`expr $bootparam_shell : '.*:\(.*\)'`
+
+		if [ "$shell_wanted_status" = "before" ]; then
+			shell_wanted_status=pre
+		else
+			shell_wanted_status=post
+		fi
+	fi
+
+	if [ "$bootparam_shell" = "true" ] ||
+		( [ "$status" = "$shell_wanted_status" ] &&
+			[ "$module" = "$shell_wanted_module" ] ); then
+		if [ "$status" = "pre" ]; then
+			status_msg="before"
+		else
+			status_msg="after"
+		fi
+
+		msg "Starting shell $status_msg $module..."
+		sh
+	fi
+
+	if [ -n "$bootparam_shell_debug" ] && [ "$bootparam_shell_debug" != "true" ]; then
+		shell_debug_wanted_status=`expr $bootparam_shell_debug : '\(.*\):.*'`
+		shell_debug_wanted_module=`expr $bootparam_shell_debug : '.*:\(.*\)'`
+
+		if [ "$shell_debug_wanted_status" = "before" ]; then
+			shell_debug_wanted_status=pre
+		else
+			shell_debug_wanted_status=post
+		fi
+	fi
+
+	if [ "$bootparam_shell_debug" = "true" ] ||
+		( [ "$status" = "$shell_debug_wanted_status" ] &&
+			[ "$module" = "$shell_debug_wanted_module" ] ); then
+		if [ "$DEBUG_SHELL" = "true" ]; then
+			return 0
+		fi
+
+		if [ "$status" = "pre" ]; then
+			status_msg="before"
+		else
+			status_msg="after"
+		fi
+
+		msg "Starting shell debugging $status_msg $module..."
+		DEBUG_SHELL="true"
+		set -x
+	fi
+}
+
+debug_enabled() {
+	return 0
+}
+
+debug_run() {
+	add_module_pre_hook "debug_hook_handler"
+	add_module_post_hook "debug_hook_handler"
+}
diff --git a/meta/recipes-core/initrdscripts/initramfs-module-debug_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-module-debug_1.0.bb
new file mode 100644
index 0000000..d0380f4
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/initramfs-module-debug_1.0.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "initramfs debug helper"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+RDEPENDS = "initramfs-base"
+
+inherit allarch
+
+SRC_URI = "file://debug"
+
+do_install() {
+    install -d ${D}/init.d
+    install -m 0755 ${WORKDIR}/debug ${D}/init.d/00-debug
+}
+
+FILES_${PN} = "/init.d/*"
-- 
1.7.2.5




^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/5] initramfs-module-mdev: add
  2011-12-06 16:07 [PATCH 0/5] Provides a framework and initial modules for initramfs Otavio Salvador
  2011-12-06 16:07 ` [PATCH 1/5] initramfs-base: provides the base for a modular initramfs Otavio Salvador
  2011-12-06 16:07 ` [PATCH 2/5] initramfs-module-debug: add Otavio Salvador
@ 2011-12-06 16:07 ` Otavio Salvador
  2011-12-06 16:07 ` [PATCH 4/5] initramfs-module-e2fs: add Otavio Salvador
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Otavio Salvador @ 2011-12-06 16:07 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
 .../initrdscripts/initramfs-module-mdev/mdev       |   30 ++++++++++++++++++++
 .../initrdscripts/initramfs-module-mdev_1.0.bb     |   16 ++++++++++
 2 files changed, 46 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-core/initrdscripts/initramfs-module-mdev/mdev
 create mode 100644 meta/recipes-core/initrdscripts/initramfs-module-mdev_1.0.bb

diff --git a/meta/recipes-core/initrdscripts/initramfs-module-mdev/mdev b/meta/recipes-core/initrdscripts/initramfs-module-mdev/mdev
new file mode 100644
index 0000000..a5df1d7
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/initramfs-module-mdev/mdev
@@ -0,0 +1,30 @@
+#!/bin/sh
+# Copyright (C) 2011 O.S. Systems Software LTDA.
+# Licensed on MIT
+
+mdev_enabled() {
+	if [ ! -e /sbin/mdev ]; then
+		debug "/sbin/mdev doesn't exist"
+		return 1
+	fi
+
+	return 0
+}
+
+mdev_run() {
+	# setup the environment
+	mount -t tmpfs tmpfs /dev
+
+	mkdir -m 1777 /dev/shm
+
+	mkdir -m 0755 /dev/pts
+	mount -t devpts devpts /dev/pts
+
+	echo /sbin/mdev > /proc/sys/kernel/hotplug
+	mdev -s
+
+	# load modules for devices
+	find /sys -name modalias | while read m; do
+		load_kernel_module $(cat $m)
+	done
+}
diff --git a/meta/recipes-core/initrdscripts/initramfs-module-mdev_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-module-mdev_1.0.bb
new file mode 100644
index 0000000..e1af0e3
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/initramfs-module-mdev_1.0.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "initramfs support for mdev"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+RDEPENDS = "initramfs-base"
+RCONFLICTS = "initramfs-module-udev"
+
+inherit allarch
+
+SRC_URI = "file://mdev"
+
+do_install() {
+    install -d ${D}/init.d
+    install -m 0755 ${WORKDIR}/mdev ${D}/init.d/01-mdev
+}
+
+FILES_${PN} = "/init.d/*"
-- 
1.7.2.5




^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/5] initramfs-module-e2fs: add
  2011-12-06 16:07 [PATCH 0/5] Provides a framework and initial modules for initramfs Otavio Salvador
                   ` (2 preceding siblings ...)
  2011-12-06 16:07 ` [PATCH 3/5] initramfs-module-mdev: add Otavio Salvador
@ 2011-12-06 16:07 ` Otavio Salvador
  2011-12-06 16:07 ` [PATCH 5/5] initramfs-module-udev: add Otavio Salvador
  2011-12-07 12:34 ` [PATCH 0/5] Provides a framework and initial modules for initramfs Richard Purdie
  5 siblings, 0 replies; 8+ messages in thread
From: Otavio Salvador @ 2011-12-06 16:07 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
 .../initrdscripts/initramfs-module-e2fs/e2fs       |   28 ++++++++++++++++++++
 .../initrdscripts/initramfs-module-e2fs_1.0.bb     |   15 ++++++++++
 2 files changed, 43 insertions(+), 0 deletions(-)
 create mode 100755 meta/recipes-core/initrdscripts/initramfs-module-e2fs/e2fs
 create mode 100644 meta/recipes-core/initrdscripts/initramfs-module-e2fs_1.0.bb

diff --git a/meta/recipes-core/initrdscripts/initramfs-module-e2fs/e2fs b/meta/recipes-core/initrdscripts/initramfs-module-e2fs/e2fs
new file mode 100755
index 0000000..29f801a
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/initramfs-module-e2fs/e2fs
@@ -0,0 +1,28 @@
+#!/bin/sh
+# Copyright (C) 2011 O.S. Systems Software LTDA.
+# Licensed on MIT
+
+e2fs_enabled() {
+	return 0
+}
+
+e2fs_run() {
+	filesystems="ext4 ext3 ext2"
+
+	# load modules
+	for fs in $filesystems; do
+		load_kernel_module $fs
+	done
+
+	for fs in $filesystems; do
+		eval "fs_options=\$bootparam_${fs}"
+		if [ -n "$fs_options" ]; then
+		    dev=`expr "$fs_options" : '\([^:]*\).*'`
+		    path=`expr "$fs_options" : '[^:]*:\([^:]*\).*'`
+
+		    info "Mounting $dev as $fs on $path as $fs..."
+			mkdir -p $path
+		    mount -t $fs $dev $path
+		fi
+	done
+}
diff --git a/meta/recipes-core/initrdscripts/initramfs-module-e2fs_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-module-e2fs_1.0.bb
new file mode 100644
index 0000000..89f15ae
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/initramfs-module-e2fs_1.0.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "initramfs support for ext2/ext3/ext3"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+RDEPENDS = "initramfs-base"
+
+inherit allarch
+
+SRC_URI = "file://e2fs"
+
+do_install() {
+    install -d ${D}/init.d
+    install -m 0755 ${WORKDIR}/e2fs ${D}/init.d/20-e2fs
+}
+
+FILES_${PN} = "/init.d/*"
-- 
1.7.2.5




^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 5/5] initramfs-module-udev: add
  2011-12-06 16:07 [PATCH 0/5] Provides a framework and initial modules for initramfs Otavio Salvador
                   ` (3 preceding siblings ...)
  2011-12-06 16:07 ` [PATCH 4/5] initramfs-module-e2fs: add Otavio Salvador
@ 2011-12-06 16:07 ` Otavio Salvador
  2011-12-07 12:34 ` [PATCH 0/5] Provides a framework and initial modules for initramfs Richard Purdie
  5 siblings, 0 replies; 8+ messages in thread
From: Otavio Salvador @ 2011-12-06 16:07 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
 .../initrdscripts/initramfs-module-udev/udev       |   22 ++++++++++++++++++++
 .../initrdscripts/initramfs-module-udev_1.0.bb     |   16 ++++++++++++++
 2 files changed, 38 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-core/initrdscripts/initramfs-module-udev/udev
 create mode 100644 meta/recipes-core/initrdscripts/initramfs-module-udev_1.0.bb

diff --git a/meta/recipes-core/initrdscripts/initramfs-module-udev/udev b/meta/recipes-core/initrdscripts/initramfs-module-udev/udev
new file mode 100644
index 0000000..9ea8aa3
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/initramfs-module-udev/udev
@@ -0,0 +1,22 @@
+#!/bin/sh
+# Copyright (C) 2011 O.S. Systems Software LTDA.
+# Licensed on MIT
+
+udev_enabled() {
+	if [ ! -e /sbin/udevd ]; then
+		debug "/sbin/udev doesn't exist"
+		return 1
+	fi
+
+	return 0
+}
+
+udev_run() {
+	mkdir -p /run
+
+	udevd --daemon > /dev/null
+	udevadm trigger --action=add
+	udevadm settle
+
+	killall udevd 2>/dev/null
+}
diff --git a/meta/recipes-core/initrdscripts/initramfs-module-udev_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-module-udev_1.0.bb
new file mode 100644
index 0000000..a3fcba0
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/initramfs-module-udev_1.0.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "initramfs support for udev"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+RDEPENDS = "initramfs-base udev udev-utils"
+RCONFLICTS = "initramfs-module-mdev"
+
+inherit allarch
+
+SRC_URI = "file://udev"
+
+do_install() {
+    install -d ${D}/init.d
+    install -m 0755 ${WORKDIR}/udev ${D}/init.d/01-udev
+}
+
+FILES_${PN} = "/init.d/*"
-- 
1.7.2.5




^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/5] Provides a framework and initial modules for initramfs
  2011-12-06 16:07 [PATCH 0/5] Provides a framework and initial modules for initramfs Otavio Salvador
                   ` (4 preceding siblings ...)
  2011-12-06 16:07 ` [PATCH 5/5] initramfs-module-udev: add Otavio Salvador
@ 2011-12-07 12:34 ` Richard Purdie
  2011-12-07 14:30   ` Otavio Salvador
  5 siblings, 1 reply; 8+ messages in thread
From: Richard Purdie @ 2011-12-07 12:34 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Tue, 2011-12-06 at 16:07 +0000, Otavio Salvador wrote:
> This patchset adds a very flexible and powerful initramfs framework
> together with a small set of modules using it. Please refer to each
> commit for the respective documentation.
> 
> The following changes since commit fb642d21111691b9302e16e984aff9d8fb18c431:
> 
>   buildhistory bbclass: avoid absolute paths for files-in-image.txt to avoid diff churn when relocating TMPDIR (2011-12-06 14:40:00 +0000)
> 
> are available in the git repository at:
>   git://github.com/OSSystems/oe-core master
>   https://github.com/OSSystems/oe-core/tree/HEAD
> 
> Otavio Salvador (5):
>   initramfs-base: provides the base for a modular initramfs
>   initramfs-module-debug: add
>   initramfs-module-mdev: add
>   initramfs-module-e2fs: add
>   initramfs-module-udev: add
> 

Rather than add five different recipes for this, could we have one
recipe with five different packages? I'm a little bit sensitive to
parsing speed and whilst its a detail, small details add up :)

Cheers,

Richard





^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/5] Provides a framework and initial modules for initramfs
  2011-12-07 12:34 ` [PATCH 0/5] Provides a framework and initial modules for initramfs Richard Purdie
@ 2011-12-07 14:30   ` Otavio Salvador
  0 siblings, 0 replies; 8+ messages in thread
From: Otavio Salvador @ 2011-12-07 14:30 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 568 bytes --]

On Wed, Dec 7, 2011 at 10:34, Richard Purdie <
richard.purdie@linuxfoundation.org> wrote:

> Rather than add five different recipes for this, could we have one
> recipe with five different packages? I'm a little bit sensitive to
> parsing speed and whilst its a detail, small details add up :)
>

Yes; that works for me.

Besides that, are you OK with that?

-- 
Otavio Salvador                             O.S. Systems
E-mail: otavio@ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br

[-- Attachment #2: Type: text/html, Size: 1081 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-12-07 14:37 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-06 16:07 [PATCH 0/5] Provides a framework and initial modules for initramfs Otavio Salvador
2011-12-06 16:07 ` [PATCH 1/5] initramfs-base: provides the base for a modular initramfs Otavio Salvador
2011-12-06 16:07 ` [PATCH 2/5] initramfs-module-debug: add Otavio Salvador
2011-12-06 16:07 ` [PATCH 3/5] initramfs-module-mdev: add Otavio Salvador
2011-12-06 16:07 ` [PATCH 4/5] initramfs-module-e2fs: add Otavio Salvador
2011-12-06 16:07 ` [PATCH 5/5] initramfs-module-udev: add Otavio Salvador
2011-12-07 12:34 ` [PATCH 0/5] Provides a framework and initial modules for initramfs Richard Purdie
2011-12-07 14:30   ` Otavio Salvador

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox