All of lore.kernel.org
 help / color / mirror / Atom feed
* udevstart v udevtrigger
@ 2006-07-13 20:59 Rich Turner
  2006-07-13 21:29 ` Greg KH
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Rich Turner @ 2006-07-13 20:59 UTC (permalink / raw)
  To: linux-hotplug

i am doing some testing with SLES10_GMC and have noticed that there is no 
longer a udevstart command. or i should say that SLES10 does not include the 
udevstart command. it looks for the most part that where udevstart used to be 
used udevtrigger is now being used.

i now see from the changelog that udev and udevstart programs are no longer 
part of the base install.

what is the difference between udevstart and udevtrigger?

if i have the udev command and i run udevtrigger would i expect the same 
results as running udevstart while having the udev command (assuming that 
udevd is not running)?

is there any reason that i can not use the udevtrigger command everywhere i 
used to use udevstart? my thoughts are that i will create a link 
(udevstart->udevtrigger) if i have the udevtrigger command and not the 
udevstart command.




-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x120709&bid&3057&dat\x121642
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

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

* Re: udevstart v udevtrigger
  2006-07-13 20:59 udevstart v udevtrigger Rich Turner
@ 2006-07-13 21:29 ` Greg KH
  2006-07-13 22:06 ` Rich Turner
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Greg KH @ 2006-07-13 21:29 UTC (permalink / raw)
  To: linux-hotplug

On Thu, Jul 13, 2006 at 01:59:37PM -0700, Rich Turner wrote:
> i am doing some testing with SLES10_GMC and have noticed that there is no 
> longer a udevstart command. or i should say that SLES10 does not include the 
> udevstart command. it looks for the most part that where udevstart used to be 
> used udevtrigger is now being used.
> 
> i now see from the changelog that udev and udevstart programs are no longer 
> part of the base install.
> 
> what is the difference between udevstart and udevtrigger?

Older kernels want to use udevstart, newer ones, with the uevent sysfs
file, can use udevtrigger, which is much simpler.

> if i have the udev command and i run udevtrigger would i expect the same 
> results as running udevstart while having the udev command (assuming that 
> udevd is not running)?

Why would you ever run these?  Only the startup code needs to.

> is there any reason that i can not use the udevtrigger command everywhere i 
> used to use udevstart? my thoughts are that i will create a link 
> (udevstart->udevtrigger) if i have the udevtrigger command and not the 
> udevstart command.

Yeah, it might work.  For details on how to get this to work on a range
of kernel versions, you might want to look at the gentoo startup logic
for udev, which I've included below.

hope this helps,

greg k-h


--------------

# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

udev_version() {
	local version=0

	if [[ -x /sbin/udev ]] ; then
		version=$(/sbin/udev -V)
		# We need it without a leading '0', else bash do the wrong thing
		version=${version##0}
		# Older udev's will print nothing
		[[ -z ${version} ]] && version=0
	fi

	echo "${version}"
}

# This works for 2.6.15 kernels or greater
trigger_events() {
	list=""
	# if you want real coldplug (with all modules being loaded for all
	# devices in the system), uncomment out the next line.
	#list="$list $(echo /sys/bus/*/devices/*/uevent)"
	list="$list $(echo /sys/class/*/*/uevent)"
	list="$list $(echo /sys/block/*/uevent /sys/block/*/*/uevent)"
	for i in $list; do
		case "$i" in
			*/device/uevent)
				# skip followed device symlinks
				continue
				;;
			*/class/mem/*|*/class/tty/*)
				first="$first $i"
				;;
			*/block/md*)
				last="$last $i"
				;;
			*/*)
				default="$default $i"
				;;
		esac
	done

	# trigger the sorted events
	for i in $first $default $last; do
		echo "add" > "$i"
	done
}

populate_udev() {
	# populate /dev with devices already found by the kernel
	if [ "$(get_KV)" -gt "$(KV_to_int '2.6.14')" ] ; then
		ebegin "Populating /dev with existing devices through uevents"
		udevtrigger
		eend 0
	else
		ebegin "Populating /dev with existing devices with udevstart"
		/sbin/udevstart
		eend 0
	fi

	# loop until everything is finished
	# there's gotta be a better way...
	ebegin "Letting udev process events"
	loop=0
	while test -d /dev/.udev/queue; do
		sleep 0.1;
		test "$loop" -gt 300 && break
		loop=$(($loop + 1))
	done
	#einfo "loop = $loop"
	eend 0

	return 0
}

seed_dev() {
	# Seed /dev with some things that we know we need
	ebegin "Seeding /dev with needed nodes"

	# copy over any persistant things
	if [[ -d /lib/udev/devices ]] ; then
		cp --preserve=all --recursive --update /lib/udev/devices/* /dev
	fi

	# Not provided by sysfs but needed
	ln -snf /proc/self/fd /dev/fd
	ln -snf fd/0 /dev/stdin
	ln -snf fd/1 /dev/stdout
	ln -snf fd/2 /dev/stderr
	[[ -e /proc/kcore ]] && ln -snf /proc/kcore /dev/core

	# Create problematic directories
	mkdir -p /dev/{pts,shm}
	eend 0
}


main() {
	# Setup temporary storage for /dev
	ebegin "Mounting /dev for udev"
	if [[ ${RC_USE_FSTAB} = "yes" ]] ; then
		mntcmd=$(get_mount_fstab /dev)
	else
		unset mntcmd
	fi
	if [[ -n ${mntcmd} ]] ; then
		try mount -n ${mntcmd}
	else
		if egrep -qs tmpfs /proc/filesystems ; then
			mntcmd="tmpfs"
		else
			mntcmd="ramfs"
		fi
		# many video drivers require exec access in /dev #92921
		try mount -n -t ${mntcmd} udev /dev -o exec,nosuid,mode\a55
	fi
	eend $?

	# Create a file so that our rc system knows it's still in sysinit.
	# Existance means init scripts will not directly run.
	# rc will remove the file when done with sysinit.
	touch /dev/.rcsysinit

	# Selinux lovin; /selinux should be mounted by selinux-patched init
	if [[ -x /sbin/restorecon && -c /selinux/null ]] ; then
		restorecon /dev &> /selinux/null
	fi

	# Actually get udev rolling
	if [[ ${RC_DEVICE_TARBALL} = "yes" && \
	      -s /lib/udev-state/devices.tar.bz2 ]] ; then
		ebegin "Populating /dev with saved device nodes"
		try tar -jxpf /lib/udev-state/devices.tar.bz2 -C /dev
		eend $?
	fi

	seed_dev

	# Setup hotplugging (if possible)
	ebegin "Setting up proper hotplug agent"
	if [[ -e /proc/sys/kernel/hotplug ]] ; then
		if [ "$(get_KV)" -gt "$(KV_to_int '2.6.14')" ] ; then
			einfo "  Using netlink for hotplug events..."
			echo "" > /proc/sys/kernel/hotplug
		elif [[ $(udev_version) -ge "48" ]] ; then
			einfo "  Setting /sbin/udevsend as hotplug agent ..."
			echo "/sbin/udevsend" > /proc/sys/kernel/hotplug
		elif [[ -x /sbin/hotplug ]] ; then
			einfo "  Using /sbin/hotplug as hotplug agent ..."
		else
			einfo "  Setting /sbin/udev as hotplug agent ..."
			echo "/sbin/udev" > /proc/sys/kernel/hotplug
		fi
	fi
	eend 0

	ebegin "Starting udevd"
	/sbin/udevd --daemon
	eend $?

	populate_udev

	# Create nodes that udev can't
	ebegin "Finalizing udev configuration"
	[[ -x /sbin/dmsetup ]] && /sbin/dmsetup mknodes &>/dev/null
	[[ -x /sbin/lvm ]] && \
		/sbin/lvm vgscan -P --mknodes --ignorelockingfailure &>/dev/null
	# Running evms_activate on a LiveCD causes lots of headaches
	[[ -z ${CDBOOT} ]] && [[ -x /sbin/evms_activate ]] && \
		/sbin/evms_activate -q &>/dev/null
	eend 0
}

main


# vim:ts=4


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x120709&bid&3057&dat\x121642
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

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

* Re: udevstart v udevtrigger
  2006-07-13 20:59 udevstart v udevtrigger Rich Turner
  2006-07-13 21:29 ` Greg KH
@ 2006-07-13 22:06 ` Rich Turner
  2006-07-13 22:21 ` Greg KH
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Rich Turner @ 2006-07-13 22:06 UTC (permalink / raw)
  To: linux-hotplug

we use udev when we perform a bare-metal restore of a system from a backup (if 
the system that we created boot media from has it available). we use udev to 
create device nodes in our boot media environment only. once the system is 
rebuilt then the system's original udev support is used.

our only support requirement is that the system is running kernel 2.4 or 
later. granted udev requires 2.6 so those systems are the only ones we are 
discussing.

in short:
we create the system installation boot media and include the following 
udev-related files on the media:
udev
udevstart
udevd (only if udev is not available and there is udevstart)
/etc/udev/*

we use udev by running udevstart if we have udev command. or we start udevd if 
we do not have the udev command and then run udevstart. this is creating all 
necessary device nodes.

i have not tested this yet, but my thoughts are to add udevtrigger to the boot 
media. then if there is not a udevstart command create a link 
udevstart->udevtrigger. that way i will not have to make changes everywhere 
else in the software where i do run udevstart.

i guess the question is can i treat udevstart and udevtrigger as the same 
command?

will udevtrigger provide me with the same results as udevstart?

On Thursday 13 July 2006 14:29, Greg KH wrote:
> On Thu, Jul 13, 2006 at 01:59:37PM -0700, Rich Turner wrote:
> > i am doing some testing with SLES10_GMC and have noticed that there is no
> > longer a udevstart command. or i should say that SLES10 does not include
> > the udevstart command. it looks for the most part that where udevstart
> > used to be used udevtrigger is now being used.
> >
> > i now see from the changelog that udev and udevstart programs are no
> > longer part of the base install.
> >
> > what is the difference between udevstart and udevtrigger?
>
> Older kernels want to use udevstart, newer ones, with the uevent sysfs
> file, can use udevtrigger, which is much simpler.
>
> > if i have the udev command and i run udevtrigger would i expect the same
> > results as running udevstart while having the udev command (assuming that
> > udevd is not running)?
>
> Why would you ever run these?  Only the startup code needs to.
>
> > is there any reason that i can not use the udevtrigger command everywhere
> > i used to use udevstart? my thoughts are that i will create a link
> > (udevstart->udevtrigger) if i have the udevtrigger command and not the
> > udevstart command.
>
> Yeah, it might work.  For details on how to get this to work on a range
> of kernel versions, you might want to look at the gentoo startup logic
> for udev, which I've included below.
>
> hope this helps,
>
> greg k-h
>
>
> --------------
>
> # Copyright 1999-2005 Gentoo Foundation
> # Distributed under the terms of the GNU General Public License v2
>
> udev_version() {
> 	local version=0
>
> 	if [[ -x /sbin/udev ]] ; then
> 		version=$(/sbin/udev -V)
> 		# We need it without a leading '0', else bash do the wrong thing
> 		version=${version##0}
> 		# Older udev's will print nothing
> 		[[ -z ${version} ]] && version=0
> 	fi
>
> 	echo "${version}"
> }
>
> # This works for 2.6.15 kernels or greater
> trigger_events() {
> 	list=""
> 	# if you want real coldplug (with all modules being loaded for all
> 	# devices in the system), uncomment out the next line.
> 	#list="$list $(echo /sys/bus/*/devices/*/uevent)"
> 	list="$list $(echo /sys/class/*/*/uevent)"
> 	list="$list $(echo /sys/block/*/uevent /sys/block/*/*/uevent)"
> 	for i in $list; do
> 		case "$i" in
> 			*/device/uevent)
> 				# skip followed device symlinks
> 				continue
> 				;;
> 			*/class/mem/*|*/class/tty/*)
> 				first="$first $i"
> 				;;
> 			*/block/md*)
> 				last="$last $i"
> 				;;
> 			*/*)
> 				default="$default $i"
> 				;;
> 		esac
> 	done
>
> 	# trigger the sorted events
> 	for i in $first $default $last; do
> 		echo "add" > "$i"
> 	done
> }
>
> populate_udev() {
> 	# populate /dev with devices already found by the kernel
> 	if [ "$(get_KV)" -gt "$(KV_to_int '2.6.14')" ] ; then
> 		ebegin "Populating /dev with existing devices through uevents"
> 		udevtrigger
> 		eend 0
> 	else
> 		ebegin "Populating /dev with existing devices with udevstart"
> 		/sbin/udevstart
> 		eend 0
> 	fi
>
> 	# loop until everything is finished
> 	# there's gotta be a better way...
> 	ebegin "Letting udev process events"
> 	loop=0
> 	while test -d /dev/.udev/queue; do
> 		sleep 0.1;
> 		test "$loop" -gt 300 && break
> 		loop=$(($loop + 1))
> 	done
> 	#einfo "loop = $loop"
> 	eend 0
>
> 	return 0
> }
>
> seed_dev() {
> 	# Seed /dev with some things that we know we need
> 	ebegin "Seeding /dev with needed nodes"
>
> 	# copy over any persistant things
> 	if [[ -d /lib/udev/devices ]] ; then
> 		cp --preserve=all --recursive --update /lib/udev/devices/* /dev
> 	fi
>
> 	# Not provided by sysfs but needed
> 	ln -snf /proc/self/fd /dev/fd
> 	ln -snf fd/0 /dev/stdin
> 	ln -snf fd/1 /dev/stdout
> 	ln -snf fd/2 /dev/stderr
> 	[[ -e /proc/kcore ]] && ln -snf /proc/kcore /dev/core
>
> 	# Create problematic directories
> 	mkdir -p /dev/{pts,shm}
> 	eend 0
> }
>
>
> main() {
> 	# Setup temporary storage for /dev
> 	ebegin "Mounting /dev for udev"
> 	if [[ ${RC_USE_FSTAB} = "yes" ]] ; then
> 		mntcmd=$(get_mount_fstab /dev)
> 	else
> 		unset mntcmd
> 	fi
> 	if [[ -n ${mntcmd} ]] ; then
> 		try mount -n ${mntcmd}
> 	else
> 		if egrep -qs tmpfs /proc/filesystems ; then
> 			mntcmd="tmpfs"
> 		else
> 			mntcmd="ramfs"
> 		fi
> 		# many video drivers require exec access in /dev #92921
> 		try mount -n -t ${mntcmd} udev /dev -o exec,nosuid,mode\a55
> 	fi
> 	eend $?
>
> 	# Create a file so that our rc system knows it's still in sysinit.
> 	# Existance means init scripts will not directly run.
> 	# rc will remove the file when done with sysinit.
> 	touch /dev/.rcsysinit
>
> 	# Selinux lovin; /selinux should be mounted by selinux-patched init
> 	if [[ -x /sbin/restorecon && -c /selinux/null ]] ; then
> 		restorecon /dev &> /selinux/null
> 	fi
>
> 	# Actually get udev rolling
> 	if [[ ${RC_DEVICE_TARBALL} = "yes" && \
> 	      -s /lib/udev-state/devices.tar.bz2 ]] ; then
> 		ebegin "Populating /dev with saved device nodes"
> 		try tar -jxpf /lib/udev-state/devices.tar.bz2 -C /dev
> 		eend $?
> 	fi
>
> 	seed_dev
>
> 	# Setup hotplugging (if possible)
> 	ebegin "Setting up proper hotplug agent"
> 	if [[ -e /proc/sys/kernel/hotplug ]] ; then
> 		if [ "$(get_KV)" -gt "$(KV_to_int '2.6.14')" ] ; then
> 			einfo "  Using netlink for hotplug events..."
> 			echo "" > /proc/sys/kernel/hotplug
> 		elif [[ $(udev_version) -ge "48" ]] ; then
> 			einfo "  Setting /sbin/udevsend as hotplug agent ..."
> 			echo "/sbin/udevsend" > /proc/sys/kernel/hotplug
> 		elif [[ -x /sbin/hotplug ]] ; then
> 			einfo "  Using /sbin/hotplug as hotplug agent ..."
> 		else
> 			einfo "  Setting /sbin/udev as hotplug agent ..."
> 			echo "/sbin/udev" > /proc/sys/kernel/hotplug
> 		fi
> 	fi
> 	eend 0
>
> 	ebegin "Starting udevd"
> 	/sbin/udevd --daemon
> 	eend $?
>
> 	populate_udev
>
> 	# Create nodes that udev can't
> 	ebegin "Finalizing udev configuration"
> 	[[ -x /sbin/dmsetup ]] && /sbin/dmsetup mknodes &>/dev/null
> 	[[ -x /sbin/lvm ]] && \
> 		/sbin/lvm vgscan -P --mknodes --ignorelockingfailure &>/dev/null
> 	# Running evms_activate on a LiveCD causes lots of headaches
> 	[[ -z ${CDBOOT} ]] && [[ -x /sbin/evms_activate ]] && \
> 		/sbin/evms_activate -q &>/dev/null
> 	eend 0
> }
>
> main
>
>
> # vim:ts=4

-- 
Rich Turner
Storix, Inc.
619-543-0200 x113


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x120709&bid&3057&dat\x121642
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

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

* Re: udevstart v udevtrigger
  2006-07-13 20:59 udevstart v udevtrigger Rich Turner
  2006-07-13 21:29 ` Greg KH
  2006-07-13 22:06 ` Rich Turner
@ 2006-07-13 22:21 ` Greg KH
  2006-07-13 23:59 ` Kay Sievers
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Greg KH @ 2006-07-13 22:21 UTC (permalink / raw)
  To: linux-hotplug

On Thu, Jul 13, 2006 at 03:06:23PM -0700, Rich Turner wrote:
> we use udev when we perform a bare-metal restore of a system from a backup (if 
> the system that we created boot media from has it available). we use udev to 
> create device nodes in our boot media environment only. once the system is 
> rebuilt then the system's original udev support is used.
> 
> our only support requirement is that the system is running kernel 2.4 or 
> later. granted udev requires 2.6 so those systems are the only ones we are 
> discussing.
> 
> in short:
> we create the system installation boot media and include the following 
> udev-related files on the media:
> udev
> udevstart
> udevd (only if udev is not available and there is udevstart)
> /etc/udev/*
> 
> we use udev by running udevstart if we have udev command. or we start udevd if 
> we do not have the udev command and then run udevstart. this is creating all 
> necessary device nodes.
> 
> i have not tested this yet, but my thoughts are to add udevtrigger to the boot 
> media. then if there is not a udevstart command create a link 
> udevstart->udevtrigger. that way i will not have to make changes everywhere 
> else in the software where i do run udevstart.
> 
> i guess the question is can i treat udevstart and udevtrigger as the same 
> command?
> 
> will udevtrigger provide me with the same results as udevstart?

Yes, it should, it just depends on the kernel version running.

thanks,

greg k-h


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x120709&bid&3057&dat\x121642
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

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

* Re: udevstart v udevtrigger
  2006-07-13 20:59 udevstart v udevtrigger Rich Turner
                   ` (2 preceding siblings ...)
  2006-07-13 22:21 ` Greg KH
@ 2006-07-13 23:59 ` Kay Sievers
  2006-07-14 16:49 ` Rich Turner
  2006-07-14 17:09 ` Andrey Borzenkov
  5 siblings, 0 replies; 7+ messages in thread
From: Kay Sievers @ 2006-07-13 23:59 UTC (permalink / raw)
  To: linux-hotplug

On Thu, 2006-07-13 at 15:06 -0700, Rich Turner wrote:
> we use udev when we perform a bare-metal restore of a system from a backup (if 
> the system that we created boot media from has it available). we use udev to 
> create device nodes in our boot media environment only. once the system is 
> rebuilt then the system's original udev support is used.
> 
> our only support requirement is that the system is running kernel 2.4 or 
> later. granted udev requires 2.6 so those systems are the only ones we are 
> discussing.
> 
> in short:
> we create the system installation boot media and include the following 
> udev-related files on the media:
> udev
> udevstart
> udevd (only if udev is not available and there is udevstart)
> /etc/udev/*
> 
> we use udev by running udevstart if we have udev command. or we start udevd if 
> we do not have the udev command and then run udevstart. this is creating all 
> necessary device nodes.
> 
> i have not tested this yet, but my thoughts are to add udevtrigger to the boot 
> media. then if there is not a udevstart command create a link 
> udevstart->udevtrigger. that way i will not have to make changes everywhere 
> else in the software where i do run udevstart.
> 
> i guess the question is can i treat udevstart and udevtrigger as the same 
> command?
> 
> will udevtrigger provide me with the same results as udevstart?

Udevstart, just creates devices nodes and runs completely serialized, it
will return when all currently known kernel devices are found and all
device nodes are created. It will not cause a coldplug run or trigger
kernel module loads for events that got lost during boot.

Udevtrigger, just asks the kernel to emit all events for all devices
again. Everything runs in parallel, also events to load kerenl modules
are generated. Everything, including device node creation, runs
asynchronously. If needed, you have to wait until the kernel has sent
all events and udev is finished handling the events. That's what
udevsettle is used for.

Udevstart will hang, if one rule execution blocks, udevtrigger will not
block the whole process.

Udevtrigger replaced the coldplug logic from the old hotplug package,
udevstart can't do any coldplug. Udevtrigger needs at least kernel
2.6.15.

Udevstart and the udev binary are no longer installed by default on
recent systems.

Kay



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x120709&bid&3057&dat\x121642
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

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

* Re: udevstart v udevtrigger
  2006-07-13 20:59 udevstart v udevtrigger Rich Turner
                   ` (3 preceding siblings ...)
  2006-07-13 23:59 ` Kay Sievers
@ 2006-07-14 16:49 ` Rich Turner
  2006-07-14 17:09 ` Andrey Borzenkov
  5 siblings, 0 replies; 7+ messages in thread
From: Rich Turner @ 2006-07-14 16:49 UTC (permalink / raw)
  To: linux-hotplug

what would be the effects of running udevtrigger on a system running a kernel 
prior to 2.6.15?

will it fail and return a non-zero return code? will it lock up the kernel?

if running udevtrigger on a pre-2.6.15 kernel causes bad things then i will 
need to do some kernel level checking before running it.

On Thursday 13 July 2006 16:59, Kay Sievers wrote:
> On Thu, 2006-07-13 at 15:06 -0700, Rich Turner wrote:
> > we use udev when we perform a bare-metal restore of a system from a
> > backup (if the system that we created boot media from has it available).
> > we use udev to create device nodes in our boot media environment only.
> > once the system is rebuilt then the system's original udev support is
> > used.
> >
> > our only support requirement is that the system is running kernel 2.4 or
> > later. granted udev requires 2.6 so those systems are the only ones we
> > are discussing.
> >
> > in short:
> > we create the system installation boot media and include the following
> > udev-related files on the media:
> > udev
> > udevstart
> > udevd (only if udev is not available and there is udevstart)
> > /etc/udev/*
> >
> > we use udev by running udevstart if we have udev command. or we start
> > udevd if we do not have the udev command and then run udevstart. this is
> > creating all necessary device nodes.
> >
> > i have not tested this yet, but my thoughts are to add udevtrigger to the
> > boot media. then if there is not a udevstart command create a link
> > udevstart->udevtrigger. that way i will not have to make changes
> > everywhere else in the software where i do run udevstart.
> >
> > i guess the question is can i treat udevstart and udevtrigger as the same
> > command?
> >
> > will udevtrigger provide me with the same results as udevstart?
>
> Udevstart, just creates devices nodes and runs completely serialized, it
> will return when all currently known kernel devices are found and all
> device nodes are created. It will not cause a coldplug run or trigger
> kernel module loads for events that got lost during boot.
>
> Udevtrigger, just asks the kernel to emit all events for all devices
> again. Everything runs in parallel, also events to load kerenl modules
> are generated. Everything, including device node creation, runs
> asynchronously. If needed, you have to wait until the kernel has sent
> all events and udev is finished handling the events. That's what
> udevsettle is used for.
>
> Udevstart will hang, if one rule execution blocks, udevtrigger will not
> block the whole process.
>
> Udevtrigger replaced the coldplug logic from the old hotplug package,
> udevstart can't do any coldplug. Udevtrigger needs at least kernel
> 2.6.15.
>
> Udevstart and the udev binary are no longer installed by default on
> recent systems.
>
> Kay

-- 
Rich Turner
Storix, Inc.
619-543-0200 x113


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x120709&bid&3057&dat\x121642
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

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

* Re: udevstart v udevtrigger
  2006-07-13 20:59 udevstart v udevtrigger Rich Turner
                   ` (4 preceding siblings ...)
  2006-07-14 16:49 ` Rich Turner
@ 2006-07-14 17:09 ` Andrey Borzenkov
  5 siblings, 0 replies; 7+ messages in thread
From: Andrey Borzenkov @ 2006-07-14 17:09 UTC (permalink / raw)
  To: linux-hotplug

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Friday 14 July 2006 20:49, Rich Turner wrote:
> what would be the effects of running udevtrigger on a system running a
> kernel prior to 2.6.15?
>

likely noop.

> will it fail and return a non-zero return code?

No

> will it lock up the kernel? 
>

no

> if running udevtrigger on a pre-2.6.15 kernel causes bad things then i will
> need to do some kernel level checking before running it.
>

It should not cause any bad things; it is just useless.

- -andrey
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)

iD8DBQFEt8/yR6LMutpd94wRAkngAJ0aXEQnwyPc/cVJLugQTIuA3g0VPACgwSfZ
rGARwNoPHJkDsozOLg2cGN0=0GTv
-----END PGP SIGNATURE-----


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x120709&bid&3057&dat\x121642
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

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

end of thread, other threads:[~2006-07-14 17:09 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-07-13 20:59 udevstart v udevtrigger Rich Turner
2006-07-13 21:29 ` Greg KH
2006-07-13 22:06 ` Rich Turner
2006-07-13 22:21 ` Greg KH
2006-07-13 23:59 ` Kay Sievers
2006-07-14 16:49 ` Rich Turner
2006-07-14 17:09 ` Andrey Borzenkov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.