Page 1 of 1

Замена CD диска во время работы

Posted: Thu Nov 27, 2014 1:46 am
by Anton_K
Скажите, а Колибри поддерживает замену CD диска в приводе во время работы? У меня она стоит в VirtualBox и при попытке подключить другой iso-образ к виртуальному приводу или вообще его отключить VirtualBox ругается, что "disk locked", но дает сменить диск насильно. Колибри при этом замену диска не распознает и продолжает показывать файлы с предыдущего образа (достает из кэша, видимо) или ругается, что доступ невозможен. Это так и должно быть или где-то баг? Обновление в ФМ не помогает, в дебаг-борде ничего интересного не пишется. Помогает перезагрузка Колибри, но только до следующей смены iso.

Posted: Thu Nov 27, 2014 1:56 am
by punk_joker
Список разделов в ФМ при этом обнлвляли?

Re: Замена CD диска во время работы

Posted: Thu Nov 27, 2014 2:27 am
by Anton_K
Как именно это сделать?

Posted: Thu Nov 27, 2014 10:11 am
by punk_joker
самый прстой способ закрыть ФМ и запустить его снова.

Re: Замена CD диска во время работы

Posted: Thu Nov 27, 2014 3:14 pm
by Anton_K
Нет, это не помогает...

Re: Замена CD диска во время работы

Posted: Thu Nov 27, 2014 4:20 pm
by CleverMouse
Del в списке дисков kfar и kfm вместо насильного извлечения.

Re: Замена CD диска во время работы

Posted: Thu Nov 27, 2014 6:04 pm
by Anton_K
CleverMouse wrote:Del в списке дисков kfar и kfm вместо насильного извлечения.
Да, это работает, спасибо. Не самое очевидное поведение :?

Re: Замена CD диска во время работы

Posted: Thu Nov 27, 2014 6:26 pm
by CleverMouse
На реальной машине Del физически выдвигает CD-диск из привода, а Ins, наоборот, задвигает. В виндовом Far так же, к слову. Должно ли ядро действительно блокировать CD-диск, не давая его извлечь кроме как "изнутри" системы, это баг в VirtualBox или что-то сломалось в ядре, надо у Mario_r4 спрашивать.

Re: Замена CD диска во время работы

Posted: Fri Nov 28, 2014 12:15 am
by Mario_r4
На физической машине код ядра отлавливает событие нажатия кнопки и соответственно выдвигает лоток. Между прочим никакого поступления прерывания для этого факта в системе ATAPI не предусмотрено. Блокировка необходима, чтобы поддерживать актуальность кэша. Пользователь может как вставить другой диск, так и вставить обратно тот же. Отлов события нажатия кнопки производится лишь внутри периода блокировки, чтобы снизить нагрузку на процессор. В старых версиях Шиндовс (включая XP) часто можно было наблюдать баг, когда при смене диска все еще отображалось содержимое старого диска и кэш сбрасывался лишь при повторном цикле смены диска. В Linux диск при вставке блокируется всегда, причем иногда его даже бывает не достать без перезагрузки системы. На фоне поведения больших систем код в Колибри работает достаточно четко. Я писал код для физических машин, а не для эмуляторов, и отлаживал его на физических машинах. На физических машинах код работает везде. Ни одной жалобы на физические машины за все годы существования кода не поступило. Так что если VirtualBox не умеет правильно имитировать нажатие кнопки выброса лотка, то это все же проблема эмулятора. Если кто то считает по другому, то может сам написать более качественный код, чем мой.

Re: Замена CD диска во время работы

Posted: Fri Nov 28, 2014 1:02 am
by Anton_K
Спасибо за развернутый ответ!