1

Temat: Zmiana nazwy pendrive przez hotplug

Tak sobie czytam o zmianie nazw przez hotplug i natrafiłem na ten wpis . Tam, co prawda, jest informacja na temat zmiany nazw interfejsów modemów USB ale w katalogu /etc/hotplug.d/ jest też podkatalog block/ . Wgrałem tam ten skrypt od pokazywania zmiennych i dostałem coś w poniższym stylu:

# cat /tmp/plik.txt
----
DEVNAME=sda3
USER=root
ACTION=add
SHLVL=2
HOME=/
SEQNUM=766
HOTPLUG_TYPE=block
MAJOR=8
DEVPATH=/devices/platform/ehci-platform/usb1/1-1/1-1.2/1-1.2:1.0/host9/target9:0:0/9:0:0:0/block/sda/sda3
DEVICENAME=sda3
LOGNAME=root
TERM=linux
SUBSYSTEM=block
board=TL-WDR4300
PATH=/usr/sbin:/usr/bin:/sbin:/bin
MINOR=3
PWD=/
DEVTYPE=partition

Niby chciałem napisać skrypt pod mojego pendrive ale w tych zmiennych nie ma informacji na temat numerów seryjnych czy tych VendorID i ProductID, które są pokazywane w przypadku skryptu umieszczonego w katalogu usb/ . To jak zmienić nazwę tego pendrive? Da radę jakoś zaimportować te zmienne z usb/ ?:D

2

Odp: Zmiana nazwy pendrive przez hotplug

Obejrzyj sobie /devices/platform/ehci-platform/usb1/1-1/1-1.2/1-1.2:1.0/host9/target9:0:0/9:0:0:0/block/sda tak samo jak /sys/kernel/debug/usb/devices Wszystko możesz wyciągnąć z plików.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Zmiana nazwy pendrive przez hotplug

W /sys/kernel/debug/usb/devices jest info o VID i PID oraz serialu:

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 12 Spd=480  MxCh= 0
D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0951 ProdID=1666 Rev= 1.00
S:  Manufacturer=Kingston
S:  Product=DataTraveler 3.0
S:  SerialNumber=0019E06B9C8ABE41C7A2C3EC
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=300mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

Ale pod /sys/devices/platform/ehci-platform/usb1/1-1/1-1.2/1-1.2:1.0/host9/target9:0:0/9:0:0:0/block/sda nic użytecznego nie ma. No za wyjątkiem tego że są tam trzy katalogi od partycji pendrive. Ale nadal nie wiem jak to urządzenie dopasować w tym skrypcie hotpluga. big_smile

4

Odp: Zmiana nazwy pendrive przez hotplug

No naprawdę, nie chce Ci się szukać?

cat /sys/class/block/sda/device/vendor
cat /sys/class/block/sda/device/model

Jaki dysk masz to w zmiennych/możesz wyciąć ze zmiennych. Do /sys/class/block już możesz zajrzeć skryptem.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Zmiana nazwy pendrive przez hotplug

To nie to, że się nie chce, tylko w przypadku modemu było to bez większego problemu. A tutaj coś trzeba na około. big_smile

6

Odp: Zmiana nazwy pendrive przez hotplug

Ale wszystko jest w /sys, po prostu musisz poszukać.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: Zmiana nazwy pendrive przez hotplug

A tak w ogóle - po co chcesz zmieniać nazwę?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8

Odp: Zmiana nazwy pendrive przez hotplug

Tak tylko sprawdzam sobie czy się da.

9

Odp: Zmiana nazwy pendrive przez hotplug

Udało mi się coś wykombinować:

#!/bin/sh

new_devpath="$(echo "$DEVPATH" | cut -d/ -f 1-7)"
serial="$(cat /sys/$new_devpath/serial)"

if [ "$serial" = "0019E06B9C8ABE41C7A2C3EC" ] && [ "$ACTION" = "add" ]; then

        old_dev="$DEVICENAME"
        new_dev="king"${DEVICENAME##sd[a-z]}

        rm /dev/$new_dev
        ln -s /dev/$old_dev /dev/$new_dev

fi

No i w ten sposób w oparciu o serial pendrive powstają linki: king, king1, king2, king3, czyli w sumie to o co mi chodziło. Choć ja i tak wolałbym ten nazwy przepisywać via udev. Nawet jest w openwrt ale ~300k swoje waży. big_smile