Автор Тема: [Решено] udev + USB Flash - как поменять имя sda (udev не работает)  (Прочитано 3953 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Boris888

есть флешка sda, как поменять её имя в системе, например на sdd, т.к. после подключения USB модема имя само меняется на sdb

ls /dev | grep sdsda

lsusb -v | grep -A 5 Vendorответ
idVendor           0x0951 Kingston Technology
  idProduct          0x1666
  bcdDevice            1.00
  iManufacturer           1 Kingston
  iProduct                2 DataTraveler 3.0
  iSerial                 3 F46D04613D14BEB199310423

в каталоге
/etc/udev/rules.d
создал правило с названием
8-usbstick.rules
Содержимое файла
KERNEL=="sd*", ATTRS{idVendor}=="0x0951", ATTRS{idProduct}=="0x1666" SYMLINK+="/dev/sdd%n"

Пробовал пыполнить
udevadm control --reload-rules
потом перезагружался
ничего не помогает

ls /dev | grep sd
ответ снова
sda
« Последнее редактирование: 10 Октября 2016, 23:55:16 от Boris888 »
 

Оффлайн vadd

Re: udev + USB Flash - как поменять имя sda на другое (sdd)
« Ответ #1 : 09 Октября 2016, 00:47:09 »
Скорее всего надо задавать через uuid
Вот как здесь например
http://forum.runtu.org/index.php?topic=1431.0
 

Оффлайн Boris888

Re: udev + USB Flash - как поменять имя sda на другое (sdd)
« Ответ #2 : 09 Октября 2016, 19:34:51 »
это не подходит для Debian. мне нужен именно для udev !
я пробовал переименовать СОМ-порт ttyUSB0

SUBSYSTEMS=="usb", ATTRS{ID_SERIAL}=="1a86_USB2.0-Serial", KERNEL=="ttyUSB*", SYMLINK+="pilot"
тоже не работает.
получается что не работает ни одно правило UDEV
сам UDEV запущен !
root@raspberrypi:~# /etc/init.d/udev status[ ok ] udevd is running.
« Последнее редактирование: 09 Октября 2016, 19:57:01 от Boris888 »
 

Оффлайн qupl

Boris888, жестких дисков в системе нет ? почему флешка первая?
при подключенной флешке
udevadm info -a -n /dev/sdaи последить через udevadm monitor  какие события происходят при ее подключении.

арч-вики

Оффлайн vadd

это не подходит для Debian.

UUID в дебиане никто не отменял:

https://wiki.debian.org/ru/Part-UUID
http://unixforum.org/index.php?showtopic=116279

PS. У вас распберри?  там вроде достаточно старенькое ядро и могут быть свои нюансы
« Последнее редактирование: 10 Октября 2016, 10:04:02 от vadd »
 

Оффлайн Boris888

жестких дисков в системе нет, это Raspberry там загрузка идет с SD флешки
Вот то что вы просили

udevadm info -a -n /dev/sda

Spoiler: ShowHide
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host1/target1:0:0/1:0:0:0/block/sda':
    KERNEL=="sda"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{ro}=="0"
    ATTR{size}=="30728832"
    ATTR{stat}=="       1        0        8       30        0        0        0        0        0       30       30"
    ATTR{range}=="16"
    ATTR{discard_alignment}=="0"
    ATTR{ext_range}=="256"
    ATTR{alignment_offset}=="0"
    ATTR{inflight}=="       0        0"
    ATTR{removable}=="1"
    ATTR{capability}=="51"

  looking at parent device '/devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host1/target1:0:0/1:0:0:0':
    KERNELS=="1:0:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS=="sd"
    ATTRS{rev}=="PMAP"
    ATTRS{type}=="0"
    ATTRS{scsi_level}=="7"
    ATTRS{model}=="DataTraveler 3.0"
    ATTRS{state}=="running"
    ATTRS{queue_type}=="none"
    ATTRS{iodone_cnt}=="0x12"
    ATTRS{iorequest_cnt}=="0x12"
    ATTRS{device_busy}=="0"
    ATTRS{evt_capacity_change_reported}=="0"
    ATTRS{timeout}=="30"
    ATTRS{evt_media_change}=="0"
    ATTRS{max_sectors}=="240"
    ATTRS{ioerr_cnt}=="0x2"
    ATTRS{queue_depth}=="1"
    ATTRS{vendor}=="Kingston"
    ATTRS{evt_soft_threshold_reached}=="0"
    ATTRS{device_blocked}=="0"
    ATTRS{evt_mode_parameter_change_reported}=="0"
    ATTRS{evt_lun_change_reported}=="0"
    ATTRS{evt_inquiry_change_reported}=="0"
    ATTRS{iocounterbits}=="32"
    ATTRS{eh_timeout}=="10"

  looking at parent device '/devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host1/target1:0:0':
    KERNELS=="target1:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS==""

  looking at parent device '/devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host1':
    KERNELS=="host1"
    SUBSYSTEMS=="scsi"
    DRIVERS==""

  looking at parent device '/devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0':
    KERNELS=="1-1.4:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb-storage"
    ATTRS{bInterfaceClass}=="08"
    ATTRS{bInterfaceSubClass}=="06"
    ATTRS{bInterfaceProtocol}=="50"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceNumber}=="00"

  looking at parent device '/devices/platform/soc/20980000.usb/usb1/1-1/1-1.4':
    KERNELS=="1-1.4"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{devpath}=="1.4"
    ATTRS{idVendor}=="0951"
    ATTRS{speed}=="480"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="13"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}=="300mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="80"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="0"
    ATTRS{bcdDevice}=="0100"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{serial}=="F46D04613D14BEB199310423"
    ATTRS{version}==" 2.10"
    ATTRS{urbnum}=="158"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Kingston"
    ATTRS{removable}=="removable"
    ATTRS{idProduct}=="1666"
    ATTRS{bDeviceClass}=="00"
    ATTRS{product}=="DataTraveler 3.0"

  looking at parent device '/devices/platform/soc/20980000.usb/usb1/1-1':
    KERNELS=="1-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="02"
    ATTRS{devpath}=="1"
    ATTRS{idVendor}=="0424"
    ATTRS{speed}=="480"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="2"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}=="2mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="5"
    ATTRS{bcdDevice}=="0200"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="237"
    ATTRS{ltm_capable}=="no"
    ATTRS{removable}=="unknown"
    ATTRS{idProduct}=="9514"
    ATTRS{bDeviceClass}=="09"

  looking at parent device '/devices/platform/soc/20980000.usb/usb1':
    KERNELS=="usb1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{devpath}=="0"
    ATTRS{idVendor}=="1d6b"
    ATTRS{speed}=="480"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{authorized_default}=="1"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="1"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}=="0mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="1"
    ATTRS{bcdDevice}=="0401"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{serial}=="20980000.usb"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="25"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 4.1.7+ dwc_otg_hcd"
    ATTRS{removable}=="unknown"
    ATTRS{idProduct}=="0002"
    ATTRS{bDeviceClass}=="09"
    ATTRS{product}=="DWC OTG Controller"

  looking at parent device '/devices/platform/soc/20980000.usb':
    KERNELS=="20980000.usb"
    SUBSYSTEMS=="platform"
    DRIVERS=="dwc_otg"
    ATTRS{hnp}=="HstNegScs = 0x0"
    ATTRS{srp}=="SesReqScs = 0x1"
    ATTRS{regvalue}=="invalid offset"
    ATTRS{hsic_connect}=="HSIC Connect = 0x1"
    ATTRS{guid}=="GUID = 0x2708a000"
    ATTRS{mode}=="Mode = 0x1"
    ATTRS{srpcapable}=="SRPCapable = 0x1"
    ATTRS{regdump}=="Register Dump"
    ATTRS{gpvndctl}=="GPVNDCTL = 0x00000000"
    ATTRS{ggpio}=="GGPIO = 0x00000000"
    ATTRS{hprt0}=="HPRT0 = 0x00001005"
    ATTRS{wr_reg_test}=="Time to write GNPTXFSIZ reg 10000000 times: 1470 msecs (147 jiffies)"
    ATTRS{driver_override}=="(null)"
    ATTRS{hcd_frrem}=="HCD Dump Frame Remaining"
    ATTRS{mode_ch_tim_en}=="Mode Change Ready Timer Enable = 0x0"
    ATTRS{gnptxfsiz}=="GNPTXFSIZ = 0x01000306"
    ATTRS{remote_wakeup}=="Remote Wakeup Sig = 0 Enabled = 0 LPM Remote Wakeup = 0"
    ATTRS{busconnected}=="Bus Connected = 0x1"
    ATTRS{hcddump}=="HCD Dump"
    ATTRS{gotgctl}=="GOTGCTL = 0x001c0001"
    ATTRS{spramdump}=="SPRAM Dump"
    ATTRS{grxfsiz}=="GRXFSIZ = 0x00000306"
    ATTRS{gsnpsid}=="GSNPSID = 0x4f54280a"
    ATTRS{gusbcfg}=="GUSBCFG = 0x20001700"
    ATTRS{hptxfsiz}=="HPTXFSIZ = 0x02000406"
    ATTRS{devspeed}=="Device Speed = 0x0"
    ATTRS{fr_interval}=="Frame Interval = 0x1d4c"
    ATTRS{rem_wakeup_pwrdn}==""
    ATTRS{bussuspend}=="Bus Suspend = 0x0"
    ATTRS{buspower}=="Bus Power = 0x1"
    ATTRS{hnpcapable}=="HNPCapable = 0x1"
    ATTRS{rd_reg_test}=="Time to read GNPTXFSIZ reg 10000000 times: 3100 msecs (310 jiffies)"
    ATTRS{enumspeed}=="Device Enumeration Speed = 0x1"
    ATTRS{inv_sel_hsic}=="Invert Select HSIC = 0x0"
    ATTRS{regoffset}=="0xffffffff"

  looking at parent device '/devices/platform/soc':
    KERNELS=="soc"
    SUBSYSTEMS=="platform"
    DRIVERS==""
    ATTRS{driver_override}=="(null)"

  looking at parent device '/devices/platform':
    KERNELS=="platform"
    SUBSYSTEMS==""
    DRIVERS==""

вынул флешку, набрал комманду
root@raspberrypi:~# udevadm monitor
вставил флешку
Spoiler: ShowHide
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[54833.161002] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4 (usb)
KERNEL[54833.170618] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0 (usb)
KERNEL[54833.182326] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2 (scsi)
KERNEL[54833.182575] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2/scsi_host/host2 (scsi_host)
UDEV  [54833.248231] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4 (usb)
UDEV  [54833.300757] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0 (usb)
UDEV  [54833.304547] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2 (scsi)
UDEV  [54833.323380] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2/scsi_host/host2 (scsi_host)
KERNEL[54834.270827] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2/target2:0:0 (scsi)
KERNEL[54834.271062] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2/target2:0:0/2:0:0:0 (scsi)
KERNEL[54834.271232] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2/target2:0:0/2:0:0:0/scsi_disk/2:0:0:0 (                  scsi_disk)
UDEV  [54834.273772] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2/target2:0:0 (scsi)
KERNEL[54834.276110] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2/target2:0:0/2:0:0:0/scsi_device/2:0:0:0                   (scsi_device)
KERNEL[54834.276983] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2/target2:0:0/2:0:0:0/scsi_generic/sg0 (s                  csi_generic)
KERNEL[54834.283935] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2/target2:0:0/2:0:0:0/bsg/2:0:0:0 (bsg)
UDEV  [54834.329940] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2/target2:0:0/2:0:0:0 (scsi)
UDEV  [54834.342052] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2/target2:0:0/2:0:0:0/scsi_device/2:0:0:0                   (scsi_device)
UDEV  [54834.345221] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2/target2:0:0/2:0:0:0/scsi_disk/2:0:0:0 (                  scsi_disk)
UDEV  [54834.369865] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2/target2:0:0/2:0:0:0/bsg/2:0:0:0 (bsg)
UDEV  [54834.401699] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2/target2:0:0/2:0:0:0/scsi_generic/sg0 (s                  csi_generic)
KERNEL[54835.355646] add      /devices/virtual/bdi/8:0 (bdi)
UDEV  [54835.358911] add      /devices/virtual/bdi/8:0 (bdi)
KERNEL[54835.392382] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2/target2:0:0/2:0:0:0/block/sda (block)
UDEV  [54835.644870] add      /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/host2/target2:0:0/2:0:0:0/block/sda (block)


Cообщение объединено [time]10 Октябрь 2016, 11:46:37[/time]
UUID в дебиане никто не отменял:

я согласен что надо использовать UUID а как покажите !
я же выставил свой файл правил udev - который не работает

переименовать ttyUSB0 - я тоже не могу, потому и написал что не работает udev
вот такое правило тоже не работает
SUBSYSTEM==«tty», ATTRS{idVendor}==«1a86», ATTRS{idProduct}==«7523», SYMLINK+=«USB_A»,
« Последнее редактирование: 10 Октября 2016, 15:35:16 от Boris888 »
 

Оффлайн qupl

KERNEL=="sd*", ATTRS{idVendor}=="0x0951", ATTRS{idProduct}=="0x1666" SYMLINK+="/dev/sdd%n"

выделенная часть id лишняя  и эти атрибуты видно только для подсистемы usb   (могу ошибаться)

Оффлайн ogost

Boris888, уберите длинные выводы под спойлер, прошу вас.

Оффлайн Boris888

я пробовал без 0х
тоже самое получается
даже вот так не будет работать: (т.е. любая sd* должна превратиться в sdd1 )
KERNEL=="sd*", SYMLINK+="/dev/sdd%n"
 

Оффлайн vadd

Вы непременно хотите работать с системными именами? Это тоже вроде как не совсем корректно.  Монтируйте модем и флэшку по uuid в fstab и работайте с точками монтирования.

Еще вариант - запретить модему монтироваться как флешка, чтобы работал в режиме "только модем"
« Последнее редактирование: 10 Октября 2016, 16:09:03 от vadd »
 

Оффлайн Boris888

Re: udev + USB Flash - как поменять имя sda (udev не работает)
« Ответ #10 : 10 Октября 2016, 20:38:39 »
я зацепился за UDEV потому что, у меня подключено несколько Arduino (ttyUSBx) к моей Raspberry, они у меня путаются при случайном перезапуске (бывает редко - не чаще раз в месяц, из-за отключения электричества на даче) а моя программа по Крону открывает не тот COM-порт, в итоге при всех исправных устройствах, система управления светом и водой в целом не работает !
на сайте debian.org очень красиво все описано про UDEV с примерами, мне очень понравилось - но только ничего не работает.

а флешка меня добила написать "эту тему" потому что путается с USB-модемом и фото-архив перестает записываться.
c fstab  я не пробовал работать, щас попробую. но кажется там только диски можно поменять.
 

Оффлайн mrgoodvin

Re: udev + USB Flash - как поменять имя sda (udev не работает)
« Ответ #11 : 10 Октября 2016, 21:20:58 »
я пробовал без 0х
тоже самое получается
даже вот так не будет работать: (т.е. любая sd* должна превратиться в sdd1 )
KERNEL=="sd*", SYMLINK+="/dev/sdd%n"
Все верно, 0х не надо. И SYMLINK+="sdd%n", или относительные пути. Устройства и так появляются в /dev, иначе это уже не правильно.
KERNEL=="sd*", ATTRS{idVendor}=="0951", ATTRS{idProduct}=="1666", SYMLINK+="sdd%n"
Обычно достаточно набрать lsusb: как пример - Bus 007 Device 001: ID 1d6b:0002. Зеленым idVendor, синим - idProduct.
« Последнее редактирование: 10 Октября 2016, 21:25:37 от mrgoodvin »
 

Оффлайн Boris888

Re: udev + USB Flash - как поменять имя sda (udev не работает)
« Ответ #12 : 10 Октября 2016, 23:54:33 »
Спасибо. все получилось.
решение поставил SYMLINK+="sdd"
(вместо неработающего SYMLINK+="/dev/sdd%n")
полный вариант
KERNEL=="sd*", ATTRS{idVendor}=="0951", ATTRS{idProduct}=="1666", SYMLINK+="sdd"

только по команде
ls /dev | grep sdответ
sda
sdd
т.е. и старое осталось sda и новое sdd, но мне это не мешает монтирую я по новому имени sdd и все работает.
при вставлении модема: sda превращается в sdb - но мне это больше не мешает, т.к. sdd - осталось. и примонтирована флешка по sdd

и с COM-портом тоже работает ! вот так
KERNEL=="tty*", ACTION=="add", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="USB_CH340"
пробовал даже открывать этот новый COM-порт USB_CH340 в программе minicom
minicom -b 9600 -o -D /dev/USB_CH340

все работает. я за COM-порт обрадовался больше чем за флешку, теперь моя Raspberry не будет путать разные Arduino.
« Последнее редактирование: 11 Октября 2016, 00:05:43 от Boris888 »
 

Теги:
     

    [Решено] Не могу настроить Wi-Fi Broadcom BCM4313

    Автор Hafu

    Ответов: 11
    Просмотров: 19797
    Последний ответ 16 Октября 2015, 22:15:10
    от Moonlight0x0
    [РЕШЕНО] HP Ultrium 960 data compression

    Автор terminazaurus

    Ответов: 4
    Просмотров: 2174
    Последний ответ 02 Декабря 2014, 10:22:46
    от terminazaurus
    Интегрированная и внешняя видеоадаптеры [РЕШЕНО]

    Автор Travel

    Ответов: 2
    Просмотров: 1850
    Последний ответ 30 Сентября 2011, 22:22:43
    от Travel
    [Решено] (EE) No devices detected. NVIDIA GeForce 710M Linux Debian

    Автор Wanderer

    Ответов: 26
    Просмотров: 20661
    Последний ответ 13 Ноября 2013, 12:57:56
    от Wanderer
    (РЕШЕНО)установка драйвера к видео карте nvidia в Debian testing

    Автор grey_wolf

    Ответов: 5
    Просмотров: 2053
    Последний ответ 15 Февраля 2017, 19:11:33
    от ferum