equal
deleted
inserted
replaced
47 # Description: |
47 # Description: |
48 ### END INIT INFO |
48 ### END INIT INFO |
49 |
49 |
50 #------------------------------------------------------------------------------ |
50 #------------------------------------------------------------------------------ |
51 |
51 |
52 CDEV='EtherCAT' |
|
53 MODPROBE=/sbin/modprobe |
52 MODPROBE=/sbin/modprobe |
54 RMMOD=/sbin/rmmod |
53 RMMOD=/sbin/rmmod |
55 MODINFO=/sbin/modinfo |
54 MODINFO=/sbin/modinfo |
56 |
55 |
57 #------------------------------------------------------------------------------ |
56 #------------------------------------------------------------------------------ |
171 parse_mac_address ${BACKUP} |
170 parse_mac_address ${BACKUP} |
172 BACKUPS=${BACKUPS}${MAC} |
171 BACKUPS=${BACKUPS}${MAC} |
173 |
172 |
174 MASTER_INDEX=$(expr ${MASTER_INDEX} + 1) |
173 MASTER_INDEX=$(expr ${MASTER_INDEX} + 1) |
175 done |
174 done |
176 MASTER_INDICES=`seq 0 $((${MASTER_INDEX} - 1))` |
|
177 |
175 |
178 # load master module |
176 # load master module |
179 if ! ${MODPROBE} ${MODPROBE_FLAGS} ec_master \ |
177 if ! ${MODPROBE} ${MODPROBE_FLAGS} ec_master \ |
180 main_devices=${DEVICES} backup_devices=${BACKUPS}; then |
178 main_devices=${DEVICES} backup_devices=${BACKUPS}; then |
181 exit_fail |
179 exit_fail |
182 fi |
180 fi |
183 |
|
184 # remove stale device nodes |
|
185 rm -f /dev/${CDEV}* |
|
186 |
|
187 # get dynamic major number |
|
188 MAJOR=$(awk "\$2==\"EtherCAT\" {print \$1}" /proc/devices) |
|
189 if [ -z "${MAJOR}" ]; then |
|
190 echo "Failed to get device major number!" |
|
191 ${RMMOD} ec_master |
|
192 exit_fail |
|
193 fi |
|
194 |
|
195 # create character devices |
|
196 for i in ${MASTER_INDICES}; do |
|
197 mknod /dev/${CDEV}${i} c ${MAJOR} ${i} |
|
198 done |
|
199 |
181 |
200 # check for modules to replace |
182 # check for modules to replace |
201 for MODULE in ${DEVICE_MODULES}; do |
183 for MODULE in ${DEVICE_MODULES}; do |
202 ECMODULE=ec_${MODULE} |
184 ECMODULE=ec_${MODULE} |
203 if ! ${MODINFO} ${ECMODULE} > /dev/null; then |
185 if ! ${MODINFO} ${ECMODULE} > /dev/null; then |
229 if ! ${RMMOD} ${ECMODULE}; then |
211 if ! ${RMMOD} ${ECMODULE}; then |
230 exit_fail |
212 exit_fail |
231 fi; |
213 fi; |
232 done |
214 done |
233 |
215 |
234 # remove device nodes |
|
235 rm -f /dev/${CDEV}* |
|
236 |
|
237 sleep 1 |
216 sleep 1 |
238 |
217 |
239 # reload previous modules |
218 # reload previous modules |
240 for MODULE in ${DEVICE_MODULES}; do |
219 for MODULE in ${DEVICE_MODULES}; do |
241 if ! ${MODPROBE} ${MODPROBE_FLAGS} ${MODULE}; then |
220 if ! ${MODPROBE} ${MODPROBE_FLAGS} ${MODULE}; then |