#!/bin/busybox ash usage() { printf "usage: %s [add|list|del|action] [subsystem]\n" "$(basename $1)" >&2 exit 1 } action="list" if [ $# -gt 0 ]; then action="$1" fi if [ "$action" = "list" ]; then printf "class:\n" for i in /sys/class/*; do printf "\t%s\n" $(basename $i) done printf "bus:\n" for i in /sys/bus/*; do printf "\t%s\n" $(basename $i) done printf "devices:\n" for i in /sys/devices/*; do printf "\t%s\n" $(basename $i) done exit 0 fi if [ $# -lt 2 ]; then usage "$0" fi subsystem="$2" if [ "$subsystem" != "all" ]; then if [ -d /sys/class/$subsystem ]; then for i in /sys/class/$subsystem/*/uevent; do echo $action > $i done exit 0 fi if [ -d /sys/bus/$subsystem ]; then for i in /sys/bus/$subsystem/devices/*/uevent; do echo $action > $i done exit 0 fi if [ -d /sys/devices/$subsystem ]; then for i in /sys/devices/$subsystem/*/uevent \ /sys/devices/$subsystem/*/*/uevent; do echo $action > $i done exit 0 fi printf "Could not find subsystem '%s'.\n" $i >&2 exit 1 fi for i in /sys/class/*/*/uevent; do echo $action > $i done exit 0