1

Я использую Advanced Tomato на своем Asus RT-AC68R/U. Это Shibby Tomato только с некоторыми изменениями в GUI. Я хочу подключить через USB измерительный блок и создать для него выделенное, уникальное устройство. В этот момент Tomato создает устройство с именем /dev/usbdevX.Y, где X и Y - случайные числа. Ниже приведена часть моего сценария горячего подключения. Это не окончательная версия, просто часть моего расследования, чтобы решить проблему.

PRODID="5555/1/600"
SYMLINK="arco"

if [ "${PRODUCT}" = "${PRODID}" ];
then if [ "${ACTION}" = "add" ];
then
DEVICE_NAME=$(ls /sys/$DEVPATH)
echo $DEVICE_NAME > /tmp/arco1
echo $DEVPATH > /tmp/arco2
if [ -z ${DEVICE_NAME} ];
then echo " Hotplug Warning DEVICE_NAME is empty" > /tmp/arco
exit
fi

Переменная DEVPATH возвращает значение:

/sys/devices/pci0000:00/0000:00:0b.0/usb3/3-2/3-2:1.0

Переменная DEVICE_NAME возвращает список содержимого каталога /sys/devices/pci0000:00/0000:00:0b.0/usb3/3-2/3-2:1.0.

lsusb возвращает значение этого устройства:

Bus 003 Device 007: ID 5555:0001

Файлы subdir /sys/devices/pci0000:00/0000:00:0b.0/usb3/3-2/3-2:1.0 состоят из:

root@asus:/sys/devices/pci0000:00/0000:00:0b.0/usb3/3-2/3-2:1.0# ls
bAlternateSetting     bInterfaceProtocol    bus                          interface             supports_autosuspend
bInterfaceClass       bInterfaceSubClass    ep_02                 modalias              uevent
bInterfaceNumber      bNumEndpoints         ep_81                 subsystem

И файл uevent состоит из:

DEVTYPE=usb_interface
PHYSDEVBUS=usb
DEVICE=/proc/bus/usb/003/007
PRODUCT=5555/1/600
TYPE=0/0/0
INTERFACE=255/255/255
MODALIAS=usb:v5555p0001d0600dc00dsc00dp00icFFiscFFipFF

Обратите внимание, что строка:

DEVICE=/proc/bus/usb/003/007

соответствует выводу lsusb для этого устройства. Так что это точно мое новое подключенное устройство

Мой вопрос Как в этом случае я могу создать символическую ссылку для такого случайно созданного устройства на /dev /arco?

1 ответ1

0

Наконец я нашел решение. Это мой рабочий скрипт горячего подключения. Он создает символическую ссылку /dev /arco на новое созданное "универсальное" устройство с именем /dev /usbdev3.Y где Y - случайные числа. Я использую Advanced Tomato, поэтому скрипт добавлен в раздел NAS & USB -> Поддержка USB -> Скрипт горячего подключения

PRODID="5555/1/600"
SYMLINK="arco"

if [ "${PRODUCT}" = "${PRODID}" ];
then if [ "${ACTION}" = "add" ];
then
echo $DEVICE > /tmp/arco1


if [ -z ${DEVICE} ];
then echo " Hotplug Warning DEVICE is empty" > /tmp/arco
exit
fi

usb=`echo -n $DEVICE | tail -c 1`
echo " Hotplug Device name of ARCO is $DEVICE" > /tmp/arco
ln -s /dev/usbdev3.$usb /dev/${SYMLINK}
echo " Hotplug Symlink from $DEVICE to /dev/${SYMLINK} created" > /tmp/arco
fi
fi

if [ "${PRODUCT}" = "${PRODID}" ];
then if [ "${ACTION}" = "remove" ];
then rm /dev/${SYMLINK}
echo " Hotplug Symlink /dev/${SYMLINK} removed" > /tmp/arco
fi
fi 

И это все ;-)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .