LINUX.ORG.RU

Как удалить устройство из системы после eject'a?


0

2

Пример для флешки:

# mount | grep sdb
/dev/sdb on /media/QWERTY type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0077,codepage=cp437,iocharset=utf8,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks)
# umount /dev/sdb
# eject -v /dev/sdb
eject: device name is `/dev/sdb'
eject: expanded name is `/dev/sdb'
eject: `/dev/sdb' is not mounted
eject: `/dev/sdb' is not a mount point
eject: `/dev/sdb' is a multipartition device
eject: trying to eject `/dev/sdb' using CD-ROM eject command
eject: CD-ROM eject command succeeded
# ls -l /dev/sdb
brw-rw---T 1 root floppy 8, 16 Mar 15 13:47 /dev/sdb
# ls /sys/block/sdb/
alignment_offset  capability  device             events        events_poll_msecs  holders   power  range      ro    slaves  subsystem  uevent
bdi               dev         discard_alignment  events_async  ext_range          inflight  queue  removable  size  stat    trace

Команда eject делает ioctl CDROMEJECT, после этого с флешки снимается питание (судя по светодиоду). Но устройство продолжает присутствовать для системы. WTF?


а вы хотели чтобы флешка выскочила из разъёма ?

MKuznetsov ★★★★★ ()

устройство продолжает присутствовать для системы

Убивай модуль УСБ, чё... Тока смотри - клава с мышью тоже отвалятся, если усбшные. Ну или закусывай получше.

LMD ()
Ответ на: комментарий от MKuznetsov

а вы хотели чтобы флешка выскочила из разъёма ?

Нет, я хочу чтобы у меня исчез device file.

gogi ()
Ответ на: комментарий от LMD

Убивай модуль УСБ, чё... Тока смотри - клава с мышью тоже отвалятся, если усбшные.

Выглядит геморойно. Клавиатуры с мышей нету, так что не страшно. Но вот модуль динамическим делать не хочется.

Ну или закусывай получше.

Речь не про десктоп.

gogi ()
Ответ на: комментарий от ttnl

rm

Не катит. В sysfs остаётся упоминание того, что устройство существует, а значит device file будет пересоздан.

gogi ()
Ответ на: комментарий от gogi

нафига это тебе, болезный? под венду маскируешь?

anonymous ()
Ответ на: комментарий от gogi

Тогда делай unbind устройства от драйвера:

echo 0000:00:1d.1 > /sys/devices/pci0000:00/0000:00:1d.1/driver/unbind

ttnl ★★★★★ ()
Ответ на: комментарий от ttnl

Тогда делай unbind устройства от драйвера:

echo 0000:00:1d.1 > /sys/devices/pci0000:00/0000:00:1d.1/driver/unbind

PCI-шины нету. А вот что есть

# ls /sys/block/sda/device/ -l
total 0
lrwxrwxrwx    1 root     root             0 Aug 24 10:17 block:sda -> ../../../../../../../../../../block/sda
lrwxrwxrwx    1 root     root             0 Aug 24 10:17 bus -> ../../../../../../../../../../bus/scsi
--w-------    1 root     root          4096 Aug 24 10:17 delete
-r--r--r--    1 root     root          4096 Aug 24 10:17 device_blocked
lrwxrwxrwx    1 root     root             0 Aug 24 10:17 driver -> ../../../../../../../../../../bus/scsi/drivers/sd
-r--r--r--    1 root     root          4096 Aug 24 10:17 iocounterbits
-r--r--r--    1 root     root          4096 Aug 24 10:17 iodone_cnt
-r--r--r--    1 root     root          4096 Aug 24 10:17 ioerr_cnt
-r--r--r--    1 root     root          4096 Aug 24 10:17 iorequest_cnt
-rw-r--r--    1 root     root          4096 Aug 24 10:17 max_sectors
-r--r--r--    1 root     root          4096 Aug 24 10:17 modalias
-r--r--r--    1 root     root          4096 Aug 24 10:17 model
drwxr-xr-x    2 root     root             0 Aug 24 10:15 power
-r--r--r--    1 root     root          4096 Aug 24 10:17 queue_depth
-r--r--r--    1 root     root          4096 Aug 24 10:17 queue_type
--w-------    1 root     root          4096 Aug 24 10:17 rescan
-r--r--r--    1 root     root          4096 Aug 24 10:17 rev
lrwxrwxrwx    1 root     root             0 Aug 24 10:17 scsi_device:1:0:0:0 -> ../../../../../../../../../../class/scsi_device/1:0:0:0
lrwxrwxrwx    1 root     root             0 Aug 24 10:17 scsi_disk:1:0:0:0 -> ../../../../../../../../../../class/scsi_disk/1:0:0:0
-r--r--r--    1 root     root          4096 Aug 24 10:17 scsi_level
-rw-r--r--    1 root     root          4096 Aug 24 10:17 state
lrwxrwxrwx    1 root     root             0 Aug 24 10:17 subsystem -> ../../../../../../../../../../bus/scsi
-rw-r--r--    1 root     root          4096 Aug 24 10:17 timeout
-r--r--r--    1 root     root          4096 Aug 24 10:17 type
-rw-r--r--    1 root     root          4096 Aug 24 10:17 uevent
-r--r--r--    1 root     root          4096 Aug 24 10:17 vendor

gogi ()
Ответ на: комментарий от anonymous

Спасибо, ну я уже и сам попробовал. То что нужно.

gogi ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.