Сидел я значит, ковырял openwrt, полез в фаил /etc/hotplug.json, надо было мне обрабатывать событие по хотплагу своим особым путём. Что-то мне содержимое этого фаила начало напоминать:
http://git.openwrt.org/?p=openwrt.git;a=blob;f=package/system/procd/files/hot...
Начал писать и до меня дошло! Если немножко поправить синтаксис... Да это же...
(
( "case" "ACTION" (
"add" (
( "if"
( "and"
( "has" "MAJOR" )
( "has" "MINOR" )
)
(
( "if"
( "or"
( "eq" "DEVNAME"
( "null" "full" "ptmx" "zero" )
)
( "regex" "DEVNAME"
( "^gpio" "^hvc" )
)
)
(
( "makedev" "/dev/%DEVNAME%" "0666" )
( "return" )
)
)
( "if"
( "or"
( "eq" "DEVNAME" "mapper/control" )
( "regex" "DEVPATH" "^ppp" )
)
(
( "makedev" "/dev/%DEVNAME%" "0600" )
( "return" )
)
)
( "if"
( "has" "DEVNAME" )
( "makedev" "/dev/%DEVNAME%" "0644" )
)
)
)
( "if"
( "has" "FIRMWARE" )
(
( "exec" "/sbin/hotplug-call" "%SUBSYSTEM%" )
( "load-firmware" "/lib/firmware" )
( "return" )
)
)
)
"remove" (
( "if"
( "and"
( "has" "DEVNAME" )
( "has" "MAJOR" )
( "has" "MINOR" )
)
( "rm" "/dev/%DEVNAME%" )
)
)
} )
( "if"
( "eq" "SUBSYSTEM" "platform" )
( "exec" "/sbin/hotplug-call" "%SUBSYSTEM%" )
)
( "if"
( "and"
( "has" "BUTTON" )
( "eq" "SUBSYSTEM" "button" )
)
( "exec" "/etc/rc.button/%BUTTON%" )
)
( "if"
( "eq" "SUBSYSTEM"
( "net" "input" "usb" "usbmisc" "ieee1394" "block" "atm" "zaptel" "tty" "button" )
)
( "exec" "/sbin/hotplug-call" "%SUBSYSTEM%" )
)
( "if"
( "and"
( "eq" "SUBSYSTEM" "usb-serial" )
( "regex" "DEVNAME"
( "^ttyUSB" "^ttyACM" )
)
)
( "exec" "/sbin/hotplug-call" "tty" )
)
)
... LISP! Кривой, убогий и в JSON синтаксисе. От так вот...