вторник, 26 февраля 2008 г.

Извлечение USB Flash в Xfce

Проблема монтирования/автомонтирования флэшек в Linux уже давно не актуальна, но актуально их отмонтирование. :) Меня всегда раздражало что в винде при отключении флэшки на неё переставало подаваться питание и индикатор на флэшке гас, а в Linux только делалось отмонтирование разделов. Поэтому я всегда руками делал eject /dev/sdX. Недавно поставил себе Xfce и обнаружил что монтирование флэшек здесь дико удобно. Прямо повиндузятнически удобно. А извлечение все так же не выключает питание. После брождения по форумам, читания сорцов и манов нашел такое решение:


У HAL-устройств есть свойство storage.requires_eject которое заставляет Xfce-шный exo-eject (exo-mount) выдёргивать устройство при отмонтировании его целиком (не отдельных разделов). Чтобы его включить, я создал /usr/share/hal/fdi/policy/10osvendor/16-storage-usbflash.fdi и написал в нём:



<?xml version="1.0" encoding="UTF-8"?>

<deviceinfo version="0.2">
<device>
<match key="info.category" string="storage">
<match key="storage.bus" string="usb">
<merge key="storage.requires_eject" type="bool">true</merge>
</match>
</match>
</device>
</deviceinfo>

Надо заметить, что это уже сделано в Ubuntu и судя по постам на ubuntuforums.org вызывает проблемы с внешними USB-винчестерами.


Казалось бы этого достаточно, но теперь exo-eject не хочет считать USB-флэшку (именно сами флэшки а не их разделы) "томом или приводом". После некоторого тупления правила для hal были переписаны на такие:



<?xml version="1.0" encoding="UTF-8"?>

<deviceinfo version="0.2">
<device>
<match key="info.category" string="storage">
<match key="storage.bus" string="usb">
<merge key="storage.requires_eject" type="bool">true</merge>
<append key="info.interfaces" type="strlist">org.freedesktop.Hal.Device.Volume</append>
<append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Eject</append>
<append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">as</append>
<append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">extra_options</append>
<append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-eject</append>
<merge key="volume.ignore" type="bool">false</merge>
</match>
</match>
</device>
</deviceinfo>

-->

Но теперь при выдирании раздела вываливается флэшка целиком... Ладно на этом успокоюсь. У меня нет флэшек с несколькими разделами.


вторник, 5 февраля 2008 г.

Привет мир!

Добро пожаловать в WordPress. Это Ваша первая запись. Отредактируйте или удалите ее. Затем начинайте заниматься блогингом!


понедельник, 4 февраля 2008 г.

Тест

Тестовый трекбэк к маклауду к трэкбэку на мою страницу :D