[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Проблема с подключением смартфона как usb-накопителя (Debian Jessie, KDE)



On 2014-01-28, Alexander Galanin wrote:

> On Tue, 28 Jan 2014 00:16:45 +0400
> Руслан Зиганшин <ziganshinruslan@gmail.com> wrote:
>
>> попытаться примонтировать этот самый /dev/sdX девайс куда-либо
>> (разумеется неудачно, зато станут доступны /dev/sdX1 и /dev/sdX2). Что
>> надо сделать, чтобы разделы на устройстве виделись автоматически?
>
> Таблица разделов, как я понимаю, считывается при первом обращении к
> устройству. Соответственно, надо иметь какую-либо программу, которая
> будет периодически устройства опрашивать. На моей рабочей станции этим
> занимается udisks, который кто-то притащил по зависимостям.
>
Спасибо! Поглядел на apt-cache show udisks/udisks2 (D-Bus поделия) и сразу в
голову пришли ключевые слова:

  linux reload disk partition table

Можно:

  $ sudo partprobe   # apt-get install parted

или:

  $ sudo partprobe /dev/sde

Для "отключения" Android диска используем:

  $ sudo eject /dev/sde   # apt-get install eject

Как сделать udev правило - не знаю какие события нужно ловить о изменении
таблицы разделов диска.

В parted/libparted/arch/linux.c нашел:

  ioctl (... HDIO_GET_IDENTITY ...) для ide
  ioctl (... SCSI_IOCTL_GET_IDLUN ...) для scsi
  ioctl (... HDIO_GETGEO ...) для generic

По идее эти системные вызовы отвечают за перечитывание разделов.

Код интерсный в parted:

  static void
  linux_probe_all ()
  {
          _probe_standard_devices ();
          ...
  }

  static int
  _probe_standard_devices ()
  {
          _ped_device_probe ("/dev/hda");
          _ped_device_probe ("/dev/hdb");
          ...
          _ped_device_probe ("/dev/hdg");
          _ped_device_probe ("/dev/hdh");

          _ped_device_probe ("/dev/sda");
          ...
          _ped_device_probe ("/dev/sdf");

          return 1;
  }

У меня как раз на "f" заканчивается с Android устройством:

  $ ls /dev/sd?
  /dev/sda
  /dev/sdb
  /dev/sdc
  /dev/sdd
  /dev/sde
  /dev/sdf

-- 
Best regards!


Reply to: