Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
По просьбам трудящихся, размещаю :) AUR: eject-unlock |
bobart |
|
Темы:
38
Сообщения:
2537
Участник с: 28 ноября 2009
|
Спасибо, поставил. Жди пока там разрабы udev раздуплятся… |
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
Это патч на eject, который решает две проблемы, возникшие за последние несколько лет, пока он не обновлялся. 1) С некоторых пор, чтобы посылать устройству команды SCSI, надо открывать его на запись. Раньше для этого, как и для команд CD-ROM, хватало открытия на чтение, что eject и делал. Я научил его сначала пытаться открыть устройство на запись, а если не получится – тогда на чтение. 2) Собственно, блокировка привода, которую делает udev, начиная с версии 172. В результате выяснилось, что раньше, когда для доступа к IDE/ATA устройствам не использовалась эмуляция SCSI, при получении ioctl-вызова CDROMEJECT модуль ядра cdrom сам на всякий случай разблокировал привод. В нём до сих пор есть этот код, но он больше не работает – теперь этот вызов обрабатывается где-то в другом месте, без разблокирования. Поэтому в eject не была предусмотрена отдельная разблокировка привода в режиме CD-ROM (eject -r), хотя в режиме SCSI (eject -s) она есть. Мне пришлось прикрутить перед извлечением диска методом CDROMEJECT отдельную команду разблокирования лотка. Ждать теперь минимум пока мэйнтейнеры Arch добавят патч в основной пакет eject. Что касается разработчиков udev, то им надо ещё как-то доказать, что блокировать привод всем подряд нехорошо, и переносить такого рода функции из udisks в udev тоже не очень правильно. |
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
Итак, я сегодня хвастаюсь :) Мои переговоры с мэйнтейнерами по eject завершились переносом моего пакета eject-unlock из AUR в , и теперь он просто eject-2.1.5-7 . В пакет я добавил два моих патча, и патчи из Федоры (по предложению мэйнтейнеров). У Федоры было шесть патчей, пять я добавил, а шестой выкинул, поскольку у меня он уже был реализован полнее. Кроме того, они добавили от себя “–enable-default-device=sr0”, так что теперь симлинк /dev/cdrom больше не обязателен для команды eject . |
bobart |
|
Темы:
38
Сообщения:
2537
Участник с: 28 ноября 2009
|
Хорошая новость и мои поздравления! |
vdemin |
|
Темы:
54
Сообщения:
1615
Участник с: 24 января 2009
|
Супер, поздравляю! |
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
Спасибо :) Вот бы всё было так же просто с udisks, udev и ядром… udisks каким-то образом ухитряется разблокировать привод при монтировании, так что его можно вынуть просто кнопкой без отмонтирования. udev по-прежнему тормозит, творит что-то своими “хелперами” помимо правил, и работает слегка нестабильно. Ядро (точнее драйвер сиди в нём), как выяснилось, тоже чудит – именно оно во время опознавания и раскрутки диска ухитряется два раза пересоздать устройство, из-за чего смонтировать его получается с N-го раза, а иногда вообще никак. В общем, надо решиться, взять лопату и копать глубже :) |