blob: 72a61aa0089d54611bc63e111f80aa367f3175b1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
#!/sbin/runscript
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/pcmcia-cs/files/pcmcia-cs-3.2.9_pre20050614-init.d,v 1.1 2006/01/20 18:16:08 brix Exp $
RUN=/var/run
SCHEME_FILE=${RUN}/pcmcia-scheme
depend() {
use coldplug
}
cleanup() {
while read SN CLASS MOD INST DEV EXTRA; do
if [[ "${SN}" != "Socket" ]]; then
/etc/pcmcia/${CLASS} stop ${DEV} 2> /dev/null
fi
done
}
pcmcia_probe() {
/sbin/modprobe ${1} ${2} 2> /dev/null
return ${?}
}
start() {
local retval
# Scheme is set for the /etc/pcmcia/shared script
if [[ -n "${SCHEME}" ]]; then
umask 022
echo ${SCHEME} > ${SCHEME_FILE}
else
umask 022
touch ${SCHEME_FILE}
fi
# clean up any old interfaces
if [[ -r ${RUN}/stab ]]; then
cat ${RUN}/stab | cleanup
fi
# if /var/lib/pcmcia exists (and sometimes it gets created
# accidentally if you run pcmcia-cs apps without the proper
# flags), then it will really confuse the process
if [[ -d /var/lib/pcmcia ]]; then
rm -rf /var/lib/pcmcia
fi
if [[ -e /proc/bus/pccard ]]; then
einfo "PCMCIA support detected"
else
pcmcia_probe pcmcia_core ${CORE_OPTS}
if [[ -n "${PCIC}" ]]; then
if ! pcmcia_probe ${PCIC} ${PCIC_OPTS}; then
ewarn "'modprobe ${PCIC}' failed"
ewarn "Trying alternative PCIC driver: ${PCIC_ALT}"
pcmcia_probe ${PCIC_ALT} ${PCIC_ALT_OPTS}
fi
fi
pcmcia_probe ds
fi
ebegin "Starting pcmcia"
start-stop-daemon --start --quiet --exec /sbin/cardmgr -- \
-s ${RUN}/stab ${CARDMGR_OPTS}
retval=${?}
if [[ ${retval} -gt 0 ]]; then
einfo "cardmgr failed to start. Make sure that you have PCMCIA"
einfo "modules built or support compiled into the kernel"
fi
eend ${retval}
}
stop() {
local retval
ebegin "Stopping pcmcia"
[[ -w ${SCHEME_FILE} ]] && rm -f ${SCHEME_FILE}
start-stop-daemon --stop --quiet --pidfile /var/run/cardmgr.pid --retry 5
retval=${?}
if [[ -e /proc/modules && -n $(fgrep "ds " /proc/modules | head -n1 | cut -c1) ]]; then
/sbin/rmmod ds 2> /dev/null
/sbin/rmmod ${PCIC} 2> /dev/null
/sbin/rmmod ${PCIC_ALT} 2> /dev/null
/sbin/rmmod pcmcia 2> /dev/null
/sbin/rmmod pcmcia_core 2> /dev/null
fi
eend ${retval}
}
|