1

I'm trying to understand how exactly SDcard unmounting/ejecting works in Ubuntu to debug context of this issue: https://bugs.launchpad.net/ubuntu/+source/gvfs/+bug/1980080

Looked this thread getting essential info:

kernel/linux → sysfs → udev → udisks2 → GVolumeMonitor → desktop-manager (usually, same as the file manager).
udisks2 is the first daemon to provide an API through DBUS

Now my concern is what actually should happen on correctly working system when eject button is hit via Gnome or eject /dev/mmcblk0 command launched from command line. In my case eject command fails with error code 1 whether /dev/mmcblk0p1 partition is mounted or not. The strace eject /dev/mmcblk0 includes then the following lines:

openat(AT_FDCWD, "/dev/mmcblk0", O_RDWR|O_EXCL|O_NONBLOCK) = 3
ioctl(3, CDROM_LOCKDOOR, 0)             = -1 EINVAL (Invalid argument)
ioctl(3, SG_GET_VERSION_NUM, 0x7ffd53f9b2e8) = -1 EINVAL (Invalid argument)
ioctl(3, FDEJECT, 0x55874d4359d0)       = -1 EINVAL (Invalid argument)
ioctl(3, MTIOCTOP, 0x7ffd53f9b320)      = -1 EINVAL (Invalid argument)
write(2, "eject: ", 7eject: )                  = 7
write(2, "unable to eject", 15unable to eject)         = 15

wondering if this mean that the exit code will be 0 only for devices which can by physically and programatically ejected like CDROM drive. And how other userspace programs like different Gnome services interpret this output.

udevadm monitor shows the following lines:

Card inserted

KERNEL[49421.254375] add      /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa (mmc)
KERNEL[49421.255242] add      /devices/virtual/bdi/179:0 (bdi)
UDEV  [49421.256281] add      /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa (mmc)
UDEV  [49421.256354] add      /devices/virtual/bdi/179:0 (bdi)
KERNEL[49421.264022] add      /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0 (block)
KERNEL[49421.264062] add      /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0/mmcblk0p1 (block)
KERNEL[49421.264093] bind     /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa (mmc)
UDEV  [49421.321281] add      /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0 (block)
UDEV  [49421.409280] add      /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0/mmcblk0p1 (block)
UDEV  [49421.413271] bind     /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa (mmc)

Eject button hit in Gnome:

KERNEL[49428.212348] remove   /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0/mmcblk0p1 (block)
KERNEL[49428.213105] change   /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0 (block)
KERNEL[49428.213189] add      /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0/mmcblk0p1 (block)
UDEV  [49428.215677] remove   /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0/mmcblk0p1 (block)
UDEV  [49428.242018] change   /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0 (block)
UDEV  [49428.310305] add      /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0/mmcblk0p1 (block)

In above I'm mostly concerned about the reason of readding device by kernel in 3rd line.

Card physically removed:

KERNEL[49432.237855] remove   /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0/mmcblk0p1 (block)
KERNEL[49432.238271] remove   /devices/virtual/bdi/179:0 (bdi)
KERNEL[49432.238678] remove   /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0 (block)
UDEV  [49432.241920] remove   /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0/mmcblk0p1 (block)
UDEV  [49432.242568] remove   /devices/virtual/bdi/179:0 (bdi)
UDEV  [49432.245293] remove   /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0 (block)
KERNEL[49432.269966] unbind   /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa (mmc)
KERNEL[49432.270065] remove   /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa (mmc)
UDEV  [49432.271890] unbind   /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa (mmc)
UDEV  [49432.273292] remove   /devices/pci0000:00/0000:00:1d.0/0000:72:00.0/rtsx_pci_sdmmc.0/mmc_host/mmc0/mmc0:aaaa (mmc)
nusch
  • 41

0 Answers0