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

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 »
 

Теги:
     

    [Решено] Xerox Phaser 3010 не печатает

    Автор Лесьяр

    Ответов: 18
    Просмотров: 1133
    Последний ответ 12 Июля 2021, 22:07:43
    от dzhoser
    Функции энергосбережения. Управление CPU [РЕШЕНО]

    Автор Thunder

    Ответов: 7
    Просмотров: 2532
    Последний ответ 09 Мая 2011, 19:13:10
    от Thunder
    Не читается карта памяти [РЕШЕНО]

    Автор sx88

    Ответов: 19
    Просмотров: 33686
    Последний ответ 04 Октября 2013, 19:05:29
    от sx88
    [Решено] iMX6. Debian 7. Помогите оживить тачскрин

    Автор qqqqq2

    Ответов: 1
    Просмотров: 1803
    Последний ответ 17 Января 2017, 09:57:31
    от qqqqq2
    [Решено] Не устанавливается драйвер ATI 5770

    Автор kivalrd

    Ответов: 26
    Просмотров: 8551
    Последний ответ 15 Марта 2013, 18:12:19
    от Легас