script hotplug em Tomato Shibby

1

Eu uso o Advanced Tomato no meu Asus RT-AC68R / U. Este é o Shibby Tomato com apenas algumas modificações na GUI. Eu quero conectar via unidade de medição USB e criar um dispositivo exclusivo dedicado. Neste momento, o Tomato cria um dispositivo chamado /dev/usbdevX.Y, onde X e Y são números aleatórios. Abaixo está parte do meu script hotplug. Não é a versão final, apenas parte da minha investigação para resolver o problema.

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

A variável DEVPATH retorna valor:

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

A variável DEVICE_NAME retorna a listagem do conteúdo do diretório /sys/devices/pci0000:00/0000:00:0b.0/usb3/3-2/3-2:1.0.

lsusb retorna para o valor desse dispositivo:

Bus 003 Device 007: ID 5555:0001

Os subdir /sys/devices/pci0000:00/0000:00:0b.0/usb3/3-2/3-2:1.0 consistem em arquivos:

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

E o arquivo uevent consiste em:

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

Observe que a linha:

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

corresponde à saída do lsusb para esse dispositivo. Então, é com certeza meu novo dispositivo conectado

Minha pergunta é. Como neste caso eu posso criar link simbólico para tal dispositivo criado aleatoriamente para / dev / arco?

    
por mackowiakp 18.08.2016 / 11:45

1 resposta

0

Finalmente descobri a solução. Este é o meu script hotplug de trabalho. Ele cria um link simbólico de / dev / arco para um novo dispositivo "genérico" criado chamado /dev/usbdev3.Y, onde Y é um número aleatório. Eu uso Advanced Tomato, então o script é adicionado na seção NAS & USB - > Suporte USB - > Script Hotplug

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 

E isso é tudo; -)

    
por 06.09.2016 / 14:39