udev and pcmcia

Pete Zaitcev zaitcev at redhat.com
Thu Aug 25 05:50:09 UTC 2005


I seem to have figured this out. The udev is not implicated at all,
because the kernel will not deliver any hotplug events until the
pcmcia-socket-startup was run (so udev cannot do anything about it).

Harald suggested to look at scsi_replay() in /sbin/start_udev.
I did, and while interesting, it seems like an overkill.
I don't know if we want to enable pcmcia sockets that early.
We do not boot from CF-in-PCMCIA adapter, right? My main concern
is that anything running so early is hard to debug.

Bill, how about adding a script to pcmciautils (see appended)?

-- Pete

#!/bin/sh
#
# pcmcia        This shell script runs pcmcia-socket-statup for sockets
#               with statically linked socket drivers.
#               For Ethernet to work, this has to be run before network.
#
# chkconfig: 2345 09 95
# description: The pcmcia is a fake service. All necessary setup is proviced \
#              by udev, except in case a socket driver is built statically.
# probe: true
# config: /etc/sysconfig/pcmcia

. /etc/init.d/functions
prog=pcmcia
startup=/sbin/pcmcia-socket-startup

start () {
	if [ \! -x $startup ]; then
		return 1;
	fi

	names=$(find /sys/class/pcmcia_socket -name pcmcia_socket[0-9]* 2>&1)
	if [ \! "$?" ]; then
		# Something is very broken. Not sure what to do though...
		return 1;
	fi
	if [ -z "$names" ]; then
		# No PCMCIA on this box, or dynamic socket driver. Good!
		return 0;
	fi

	echo -n $"Running $prog: "

	for name in $names
	do
		name=$(basename $name)
		/sbin/pcmcia-socket-startup $name
	done

	[ $? -eq 0 ] && success || failure
	echo
}

case "$1" in
  start)
  	start
	;;
  stop|restart|reload|status|condrestart)
	# Do nothing
	;;
  *)
	echo $"Usage: $0 {start|stop|status|reload|restart|condrestart}"
	exit 1
esac




More information about the fedora-devel-list mailing list